====== Sheevaplug == Installation of Slackware on a Sheevaplug with MMCard ===== Where to buy == http://www.sheevaplug.de/links/16-europaeische-bezugsquellen.html ===== 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]] Default login is ''root / nosoup4u'' ===== USB connection == 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 == 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 == # add to /etc/exports: /home/export/armedslack 192.168.1.0/255.255.255.0(ro,nohide,root_squash,sync,no_subtree_check) # 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 ==== Setup TFTP boot server == # ucomment in /etc/inetd.conf: tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot -r blksize # 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 ==== Downloading Slackware ARM == 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 . 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 == 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/ 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]] 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 ==== Slackware ARM installation == Plug in the MMC card and type ''mmcinit'' (May not work the first time, so retry): 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 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 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. # 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 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: fdisk /dev/mmcblk0 Unset DOS Compatibility flag and change display/entry units to sectors: Command (m for help): c DOS Compatibility flag is not set Command (m for help): u Changing display/entry units to sectors Now with fdisk delete the existing FAT32 partition and set up the following partitions (100MB for /boot, 800MB for swap, the rest for /): 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 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 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'' * 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. /* 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 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 */ 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 ===== Install Go == See [[golang]] ===== Pending / Todo == * Check [[http://www.linuxplanet.com/linuxplanet/tutorials/7292/|Un-Bricking Linux Plug Computers]] * Check www.plugcomputer.org * Check www.computingplugs.com