Installation of Slackware on a Sheevaplug with MMCard
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 here
Default login is root / nosoup4u
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. 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 Tips)
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.
Source: INSTALL_KIRKWOOD.TXT
Note that it is currently not possible to install Armed on the internal Sheeva NAND Flash. You need an MMCard or eSata card. (Used Trascend Ultimate 8GB SDHC Class10, 11,99€)
# 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
# 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
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.
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? Source
Marvell>> version U-Boot 1.1.4 (Jul 14 2009 - 06:46:57) Marvell version: 3.4.16
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.
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 ]
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
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 installation, here only the key points:
/dev/mmcblk0p2
as swap/dev/mmcblk0p3
as /
with ext4/dev/mmcblk0p1
as /boot
with ext2ext2
was ignored and the /boot
was partition formattet with ext4
anyway! Hence booting the system failed after install. Here is a workaround:/dev/mmcblk0p1
/dev/mmcblk0p1
with the notebook (mkfs.ext2 /dev/mmcblk0p1
)/dev/mmcblk0p1
/home/export/armedslack/armedslack-13.37/slackware
as source
Reboot the system with reboot
and enter U-boot once again.
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