Inhaltsverzeichnis

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 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. 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)

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: 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€)

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? 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 ] 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 installation, here only the key points:

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:
  1. Insert the MMCard into a Notbook after installation of armedslack has finished
  2. Save the contents of /dev/mmcblk0p1
  3. Reformat /dev/mmcblk0p1 with the notebook (mkfs.ext2 /dev/mmcblk0p1)
  4. Restore the contents of /dev/mmcblk0p1

Booting the Slackware ARM OS

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

Install Go

See Go Programming Language Tips

Pending / Todo