Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
becki:linux:sheevaplug [2010-08-27 14:57] becki created |
becki:linux:sheevaplug [2011-06-10 10:05] (aktuell) becki |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Sheevaplug == | ====== Sheevaplug == | ||
+ | |||
+ | Installation of Slackware on a Sheevaplug with MMCard | ||
+ | |||
+ | ===== Where to buy == | ||
+ | |||
+ | http://www.sheevaplug.de/links/16-europaeische-bezugsquellen.html | ||
+ | |||
===== Login == | ===== Login == | ||
To log in you need either a DHCP server for SSH or you have to set up a serial connection. These and everyting necessary described [[http://www.openplug.org/plugwiki/index.php/New_Plugger_How_To|here]] | To log in you need either a DHCP server for SSH or you have to set up a serial connection. These and everyting necessary described [[http://www.openplug.org/plugwiki/index.php/New_Plugger_How_To|here]] | ||
+ | |||
+ | Default login is ''root / nosoup4u'' | ||
===== USB connection == | ===== USB connection == | ||
- | For me (on Slack12.2) it was necessary to ''modprobe ftdi_sio vendor=0x9e88 product=0x9e8f'' before a serial connection with seyon or minicom was possible. [[http://www.openplug.org/plugwiki/index.php/Serial_terminal_program|Source]] | + | For me (on Slack 12.2 and 13.0) it was necessary to ''modprobe ftdi_sio vendor=0x9e88 product=0x9e8f'' before a serial connection with seyon or minicom was possible. [[http://www.openplug.org/plugwiki/index.php/Serial_terminal_program|Source]] |
+ | |||
+ | After inserting the kernel module and powering on the Sheevaplug, ''/var/log/messages'' tells that 2 serial device files are created, eg. ''ttyUSB1'' and ''ttyUSB2''. One of them (probably the latter) ist for the serial terminal. Try both! | ||
+ | |||
+ | Establish serial connection with eg: ''screen /dev/ttyUSB1 115200'' (and exit with ''Ctrl-a K''; see also: [[gnu screen]]) | ||
+ | |||
+ | ===== MMC mount == | ||
+ | |||
+ | With the off the shelf Ubuntu a SD Card can be mounted on ''/dev/mmcblk0p1''. Note that ''/var/log/messages'' only reports ''/dev/mmcblk0''. You have to inspect the ''/dev'' directory to get the actual device. | ||
===== Installing Slackware == | ===== Installing Slackware == | ||
- | [[ftp://ftp.armedslack.org/armedslack/armedslack-13.1/INSTALL_KIRKWOOD.TXT|Source]] | + | Source: [[http://mirror.inode.at/data/armedslack/armedslack-13.37/INSTALL_KIRKWOOD.TXT|INSTALL_KIRKWOOD.TXT]] |
+ | |||
+ | Note that it is currently not possible to [[http://lists.armedslack.org/2009-September/000239.html|install Armed on the internal Sheeva NAND Flash]]. You need an MMCard or eSata card. (Used Trascend Ultimate 8GB SDHC Class10, 11,99€) | ||
+ | |||
+ | ==== Activate NFS == | ||
+ | |||
+ | <code bash> | ||
+ | # add to /etc/exports: | ||
+ | /home/export/armedslack 192.168.1.0/255.255.255.0(ro,nohide,root_squash,sync,no_subtree_check) | ||
+ | </code> | ||
+ | |||
+ | <code bash> | ||
+ | # create directory to be exported: | ||
+ | su | ||
+ | mkdir -p /home/export/armedslack | ||
+ | chmod g+w /home/export/armedslack | ||
+ | chgrp users /home/export/armedslack | ||
+ | |||
+ | # start NFS daemon: | ||
+ | chmod +x /etc/rc.d/rc.rpc # check if this line is really necessary | ||
+ | chmod +x /etc/rc.d/rc.nfsd | ||
+ | /etc/rc.d/rc.nfsd restart | ||
+ | </code> | ||
+ | |||
+ | ==== Setup TFTP boot server == | ||
+ | |||
+ | <code bash> | ||
+ | # ucomment in /etc/inetd.conf: | ||
+ | tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot -r blksize | ||
+ | </code> | ||
+ | |||
+ | <code bash> | ||
+ | # create directory to be exported: | ||
+ | su | ||
+ | mkdir /tftpboot | ||
+ | chmod g+w /tftpboot | ||
+ | chgrp users /tftpboot | ||
+ | |||
+ | # start inetd: | ||
+ | chmod +x /etc/rc.d/rc.inetd | ||
+ | /etc/rc.d/rc.inetd restart | ||
+ | </code> | ||
+ | |||
+ | ==== Downloading Slackware ARM == | ||
+ | |||
+ | <code bash> | ||
+ | cd /home/export/armedslack | ||
+ | rsync --exclude '*/source/*' --delete -Pavv ftp.armedslack.org::armedslack/armedslack-13.37 . | ||
+ | # or use a mirror: | ||
+ | rsync --exclude '*/source/*' --delete -Pavv mirror.inode.at::mirror/armedslack/armedslack-13.37 . | ||
+ | </code> | ||
+ | This creates ''/home/export/armedslack/armedslack-13.37''. | ||
+ | |||
+ | Other mirrors are listed in www.armedslack.org/getslack. Note that it is better to use rsync than FTP, because with rsync you can resume an aborted download with reusing already downloaded files. | ||
+ | |||
+ | ==== Populating the /tftpboot directory == | ||
+ | |||
+ | <code bash> | ||
+ | mkdir /tftpboot/armedslack-13.37 | ||
+ | cd /home/export/armedslack/armedslack-13.37/ | ||
+ | |||
+ | # Copy the Slackware ARM installer: | ||
+ | cp -fav isolinux/uinitrd-kirkwood.img /tftpboot/armedslack-13.37/ | ||
+ | |||
+ | # The Linux Kernel: | ||
+ | cp -fav kernels/kirkwood/uImage* /tftpboot/armedslack-13.37/ | ||
+ | |||
+ | # The Initial RAM disk, used for booting the OS after installation | ||
+ | cp -fav kernels/kirkwood/uinitrd* /tftpboot/armedslack-13.37/ | ||
+ | </code> | ||
+ | |||
+ | Is an uboot update necessary? [[http://www.armedslack.org/maint_kirkwooduboot|Source]] | ||
+ | |||
+ | Marvell>> version | ||
+ | U-Boot 1.1.4 (Jul 14 2009 - 06:46:57) Marvell version: 3.4.16 | ||
+ | |||
+ | => U-Boot version is ok, but Marvell version (whatever that is) is outdated FIXME | ||
+ | |||
+ | ==== Connecting to the Kirkwood system via the Serial Port == | ||
+ | |||
+ | A ''screen /dev/ttyUSB1 115200'' is sufficient for me, skipped this section in the source | ||
+ | |||
+ | Log into the Sheevaplug as root and reboot the system. When the system comes up again, hit the enter key several times to get into Uboot. | ||
+ | |||
+ | ==== Configuring the Sheevaplug Uboot == | ||
+ | |||
+ | Get available uboot commands with ''help''. You can scroll in ''screen'' upward with ''Ctl-a ['' and then simply use the arrow keys. End scrolling with ''Ctl-a ]'' [[http://www.tutorials.de/linux-tutorials/151906-einfuehrung-screen.html|Source]] | ||
+ | |||
+ | <code> | ||
+ | Marvell>> printenv ipaddr | ||
+ | ipaddr=10.4.50.165 | ||
+ | Marvell>> printenv serverip | ||
+ | serverip=10.4.50.5 | ||
+ | Marvell>> printenv arcNumber | ||
+ | ## Error: "arcNumber" not defined | ||
+ | Marvell>> printenv mainlineLinux | ||
+ | mainlineLinux=no | ||
+ | |||
+ | Marvell>> setenv ipaddr 192.168.0.99 | ||
+ | Marvell>> setenv serverip 192.168.0.7 | ||
+ | Marvell>> setenv arcNumber 2097 | ||
+ | Marvell>> setenv mainlineLinux yes | ||
+ | Marvell>> saveenv | ||
+ | Marvell>> reset | ||
+ | </code> | ||
+ | |||
+ | ==== Slackware ARM installation == | ||
+ | |||
+ | Plug in the MMC card and type ''mmcinit'' (May not work the first time, so retry): | ||
+ | |||
+ | <code> | ||
+ | Marvell>> mmcinit | ||
+ | SDHC found. Card desciption is: | ||
+ | Manufacturer: 0x1b, OEM "SM" | ||
+ | Product name: "00000", revision 1.0 | ||
+ | Serial number: 1962687311 | ||
+ | Manufacturing date: 9/2010 | ||
+ | CRC: 0x00, b0 = 0 | ||
+ | </code> | ||
+ | |||
+ | <code> | ||
+ | Marvell>> tftpboot 0x01100000 armedslack-13.37/uinitrd-kirkwood.img | ||
+ | Marvell>> tftpboot 0x00800000 armedslack-13.37/uImage-kirkwood | ||
+ | Marvell>> printenv bootargs | ||
+ | [empty] | ||
+ | setenv bootargs console=ttyS0,115200 nodhcp kbd=de root=/dev/ram rw | ||
+ | bootm 0x00800000 0x01100000 | ||
+ | </code> | ||
+ | |||
+ | An animated loading sequence comes up. After the first 2 commands | ||
+ | Note that keyboard was set to ''de''. Use your appropriate entry. After ''bootm ...'' the kernel gets uncompressed und you will see the welcome screen of the standard Slackware installation :-) Log in as root. | ||
+ | |||
+ | <code> | ||
+ | # Bring up network: | ||
+ | # (a ping to the sheevaplug should work after this command) | ||
+ | ifconfig eth0 192.168.0.99 netmask 255.255.255.0 | ||
+ | |||
+ | # start SSH daemon: | ||
+ | /etc/rc.d/rc.dropbear start | ||
+ | </code> | ||
+ | |||
+ | Now you can log into the Sheevaplug with SSH as user root with no password: ''ssh root@192.168.0.99''. From here use the ssh, not the serial login. | ||
+ | |||
+ | ''fdisk -l'' shows your available drive: ''/dev/mmcblk0''. Use ''fdisk'' to partition the drive, cfdisk did not work: | ||
+ | |||
+ | <code> | ||
+ | fdisk /dev/mmcblk0 | ||
+ | </code> | ||
+ | |||
+ | Unset DOS Compatibility flag and change display/entry units to sectors: | ||
+ | <code> | ||
+ | Command (m for help): c | ||
+ | DOS Compatibility flag is not set | ||
+ | Command (m for help): u | ||
+ | Changing display/entry units to sectors | ||
+ | </code> | ||
+ | |||
+ | Now with fdisk delete the existing FAT32 partition and set up the following partitions (100MB for /boot, 800MB for swap, the rest for /): | ||
+ | |||
+ | <code> | ||
+ | Command (m for help): p | ||
+ | Disk /dev/mmcblk0: 8011 MB, 8011120640 bytes | ||
+ | ... | ||
+ | Device Boot Start End Blocks Id System | ||
+ | /dev/mmcblk0p1 2048 206847 102400 83 Linux | ||
+ | /dev/mmcblk0p2 206848 1845247 819200 82 Linux swap | ||
+ | /dev/mmcblk0p3 1845248 15646719 6900736 83 Linux | ||
+ | </code> | ||
+ | |||
+ | Set the TERM varialble to linux (why?) and run Slack setup: | ||
+ | |||
+ | root@slackware:~# TERM=linux setup | ||
+ | |||
+ | Because the following steps are very similar to a normal [[slack_setup_tips|Slack installation]], here only the key points: | ||
+ | |||
+ | * Keymap: qwertz/de-latin1-nodeadkeys.map | ||
+ | * Using ''/dev/mmcblk0p2'' as swap | ||
+ | * Using ''/dev/mmcblk0p3'' :!: as ''/'' with ext4 | ||
+ | * Using ''/dev/mmcblk0p1'' as ''/boot'' with ext2 | ||
+ | |||
+ | <note important>With armedslack-13.37, selection of ''ext2'' was ignored and the ''/boot'' was partition formattet with ''ext4'' anyway! Hence booting the system failed after install. Here is a workaround: | ||
+ | - Insert the MMCard into a Notbook after installation of armedslack has finished | ||
+ | - Save the contents of ''/dev/mmcblk0p1'' | ||
+ | - Reformat ''/dev/mmcblk0p1'' with the notebook (''mkfs.ext2 /dev/mmcblk0p1'') | ||
+ | - Restore the contents of ''/dev/mmcblk0p1'' | ||
+ | </note> | ||
+ | |||
+ | * Install from NFS with ''/home/export/armedslack/armedslack-13.37/slackware'' as source | ||
+ | * Package selection: Everything except KDEI (=default); mode: full. Installation takes a long time. | ||
+ | |||
+ | ==== Booting the Slackware ARM OS == | ||
+ | |||
+ | Reboot the system with ''reboot'' and enter U-boot once again. | ||
+ | |||
+ | /* | ||
+ | <code> | ||
+ | Marvell>> printenv bootargs_console | ||
+ | ## Error: "bootargs_console" not defined | ||
+ | Marvell>> printenv bootargs_root | ||
+ | bootargs_root=root=/dev/nfs rw | ||
+ | Marvell>> printenv bootcmd | ||
+ | bootcmd=nand read.e 0x800000 0x100000 0x400000; bootm 0x800000 | ||
+ | Marvell>> printenv bootcmd_slk | ||
+ | ## Error: "bootcmd_slk" not defined | ||
+ | </code> | ||
+ | |||
+ | <code> | ||
+ | Marvell>> printenv bootargs_console | ||
+ | bootargs_console=console=ttyS0,115200 | ||
+ | Marvell>> printenv bootargs_root | ||
+ | bootargs_root=ubi.mtd=1 root=ubi0:rootfs rootfstype=ubifs | ||
+ | Marvell>> printenv bootcmd | ||
+ | bootcmd=run bootcmd_mmc; run bootcmd_nand | ||
+ | Marvell>> printenv bootcmd_slk | ||
+ | ## Error: "bootcmd_slk" not defined | ||
+ | </code> | ||
+ | */ | ||
+ | |||
+ | <code> | ||
+ | Marvell>> setenv bootargs_console console=ttyS0,115200 | ||
+ | # note changed device file: | ||
+ | Marvell>> setenv bootargs_root 'root=/dev/mmcblk0p3 waitforroot=10 rootfs=ext4' | ||
+ | Marvell>> setenv bootcmd 'setenv bootargs $(bootargs_console) $(bootargs_root); run bootcmd_slk ; reset' | ||
+ | # for MMC: | ||
+ | Marvell>> setenv bootcmd_slk 'mmcinit;ext2load mmc 0:1 0x01100000 /uinitrd-kirkwood;ext2load mmc 0:1 0x00800000 /uImage-kirkwood;bootm 0x00800000 0x01100000' | ||
+ | # save | ||
+ | Marvell>> saveenv | ||
+ | Marvell>> reset | ||
+ | </code> | ||
+ | |||
+ | ===== Install Go == | ||
+ | |||
+ | See [[golang]] | ||
+ | |||
+ | ===== Pending / Todo == | ||
- | FIXME | + | * Check [[http://www.linuxplanet.com/linuxplanet/tutorials/7292/|Un-Bricking Linux Plug Computers]] |
+ | * Check www.plugcomputer.org | ||
+ | * Check www.computingplugs.com |