################################################################################## # Document: INSTALL_KIRKWOOD.TXT # Purpose : How to install Slackware ARM on the Marvell SoC Kirkwood series # including: # SheevaPlug # GuruPlug # OpenRD Base # OpenRD Client # Author : Stuart Winter # For questions and support, please use the Slackware ARM forum # http://www.linuxquestions.org/questions/slackware-arm-108/ # Date : 01-Sep-2020 ################################################################################## # # References: # http://computingplugs.com/index.php/Booting_entirely_off_an_external_USB_device # http://www.cyrius.com/debian/kirkwood/sheevaplug/unpack.html # http://dev.gentoo.org/~armin76/arm/sheevaplug/install.xml # http://www.cyrius.com/debian/kirkwood/openrd/install.html # http://code.google.com/p/openrd/wiki/UbootConfigForMainLineKernel ################################################################################## # Change Log ## # 01-Sep-2020 # * The OpenRD systems require Flattened Device Tree blobs (DTBs). # Removed incorrect information stating otherwise. # Thanks to Bruce M. Penrod. # 06-Feb-2016 # * Updated to work with U-Boot 2016.11+dfsg1-3 (built Dec 22 2016) # See this URL for how to update U-Boot if necessary: # http://ftp.arm.slackware.com/slackwarearm/platform/arm/refs/kirkwood/Upgrade-U-Boot_Kirkwood_HOWTO.txt # * Modified $() to ${} # * Removed mmcinit instruction because newer uBoot versions do not need it. # * Copy DTB files to /tftpboot/slackwarearm-14.2/ since fdt-selector needs them. # Thanks to Dedalus Tlaxcallan Orwell for the suggestions and changes. # # 19-Jun-2015 # * Suggest adjusting the default time out for dhcpcd from 12 seconds to 70 # which gives dhcpcd enough time to get an IP on the SheevaPlug. # 05-Mar-2015 # * Changed 'kirkwood' Kernel names and Ramdisks to 'armv5'. # 18-Dec-2014 # * Linux 3.18 has Flattened Device Tree support for the OpenRD systems: # Modified U-Boot configuration settings to support Flattened Device Tree. # # 23-Jul-2014 # * Added U-Boot configuration to support booting from an eSATA drive on a # GuruPlug Server Plus. # # 14-Jul-2014 # * Added section about the new Flattened Device Tree selector script. # * Added the DTB and SLKKERNEL U-Boot variables/Kernel cmdline settings. # # 06-Dec-2013 # * Removed instructions to login via SSH, as this is no longer necessary - the # installation can be conducted purely through the serial port. # Removed mentions of minicom and Hyperterm as terminal emulators, since the # installer is now only tested using 'screen' under Linux as a terminal emulator. # The settings for minicom and Hyperterm can still be found in # slackwarearm-14.1/INSTALL_TRIMSLICE.txt but note that you may need to work # on getting a good termcap setting to make it work with the 'dialog' menus # in the installer. # # 29-Dec-2012 # * Reverted to 'waitforroot' in the examples because the Kernel pauses for the # duration of 'rootdelay' before mounting the initrd, so the delay ends up being # doubled. This way only the initrd pauses before mounting the root fs. # # 06-Dec-2012 # * Added instructions for a local HTTP installation option. # Thanks to dlachausse on linuxquestions.org. # * Switched the parameter names that control the delay before attempting to mount # the root file system, and the root file system type: 'rootdelay' 'rootfstype' # respectively. These are the official/documented parameters in the Kernel # documentation. # The original parameters ('rootfs' and 'waitforroot') may still be used. # Thanks to Thorsten Mühlfelder and Richard Lapointe for the suggestion. # # 03-Oct-2012 # * Modified U-boot configuration settings to assume that the SheevaPlugs are # using the 'DENX' U-boot release rather than the supplied version from 'Marvell'. # The 'OpenRD' systems remain using the 'Marvell' release, so still have the # 'archNumber' values set. # The U-boot loader and upgrade instructions can be found here: # http://arm.slackware.com/maint_kirkwooduboot/ # Thanks to Michael Langfinger for the suggestion. # # 19-Jul-2010 # * First version ################################################################################### 1.0 Assumptions ----------- Several assumptions -- in the form of IP addresses and directory paths -- are made to help writing the examples for this documentation. These values are easy to modify to suit your environment. Environment: - You have a host machine running an existing Slackware system. Any other Unix/Linux system will suffice, but each Linux distribution is different so you'll have to make some adjustments. This machine will house the Slackware ARM tree, NFS/HTTP & TFTP server. - Your host machine has Internet access, or some method of obtaining the Slackware ARM tree. - You have a secure (you trust the people using it) LAN, on 192.168.1.0/24 - Your host machine has the IP 192.168.1.1 - You can NFS export the Slackware ARM tree, or can run the Python 'SimpleHTTPServer' module within a local copy of the Slackware ARM tree. - You can run a TFTP daemon on your host - You want to use /export to house the Slackware ARM tree. Kirkwood system: - You want to install the OS onto an eSATA hard disc, MMC device or a USB hard drive or USB memory device. Some Kirkwood devices such as the OpenRD and some "Plug" devices have an eSATA port. If you have an eSATA enclosure, it's recommended to use this because the disc throughput will be faster. You have at least an 8GB hard disk or USB flash stick - a full installation of Slackware is approximately 6.5GB. - You want to retain the stock Ubuntu/Fedora installation. 2.0 Configuring your environment ---------------------------- 2.1 Downloading Slackware ARM -------------------------- Assumptions: [ ] Your current user has read/write/execute access to /export Make the directory that we'll download Slackware ARM into: # mkdir -p /export/slackwarearm # cd /export/slackwarearm Download: The easiest way to download Slackware ARM is to use rsync. # rsync \ --exclude '*/source/*' \ --delete -Pavv \ ftp.arm.slackware.com::slackwarearm/slackwarearm-14.2 . Whilst it is possible to use the FTP or HTTP installation over the Internet, it's recommended to download the full tree first, as in this example, and install from a local NFS export or local HTTP server. This is because if something were to go wrong during the installation, you do not need to download the packages from the Internet again. The full download will be approximately 3GB. You may choose a mirror site - some are listed on the Slackware ARM web page: http://arm.slackware.com 2.2 Setting up the data export service ---------------------------------- Unless you already have an existing NFS configuration set up on your machine, the easiest way to make the Slackware ARM tree available is to run the simple Python-based HTTP server. Choose the most appropriate option for you and setup either an HTTP server or an NFS export, detailed in the two sections below. 2.2.1 HTTP server ----------- On your Slackware host, change into the directory into which you downloaded the Slackware ARM tree, and launch the Python HTTP server: You may wish to start this under 'screen' or at least in another shell - and preferably as a non-root user unless you are on a secure LAN: # cd /export/slackwarearm && python -m SimpleHTTPServer 2.2.2 NFS export ---------- On your Slackware host, add a line similar to the example below: /export/slackwarearm 192.168.1.0/255.255.255.0(ro,nohide,root_squash,sync,no_subtree_check) If you don't have an NFS server already running: # chmod +x /etc/rc.d/{rc.rpc,rc.nfsd} # /etc/rc.d/rc.nfsd restart If you have an NFS server already running: # exportfs -va 2.3 Setting up your TFTP boot server -------------------------------- Slackware ships a tftpd (TFTP boot daemon) in the 'tftp-hpa' package which can be found in the 'n/' package series. Ensure that inetd is running: # chmod +x /etc/rc.d/rc.inetd # /etc/rc.d/rc.inetd restart By default, the line in /etc/inetd.conf that loads the TFTP server is commented out. # tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot -r blksize Uncomment that line. Note: If you want to use a directory other than /tftpboot to house the data, you may do so - but note that the instructions in this document refer to /tftpboot, so please remember to adjust the paths as you go. Cause inetd to re-load its configuration file: # killall -HUP inetd 2.4 Populating the /tftpboot directory ---------------------------------- Assumptions: [ ] Your current user has read/write/execute access to /tftpboot To begin the installation on the Kirkwood unit, we'll boot the Linux Kernel and Initial RAM disk via TFTP. It *is* possible to place these two files onto an ext2 or FAT partition on USB stick/drive (even the one you'll be installing Slackware onto), but during development I've found it beneficial to have the images available by TFTP. Copy the Kernel and Initial RAM disk images into the tftpboot directory: # mkdir -vpm755 /tftpboot/slackwarearm-14.2 # cd /export/slackwarearm/slackwarearm-14.2/ Copy the Slackware ARM installer: # cp -fav isolinux/uinitrd-armv5.img /tftpboot/slackwarearm-14.2/ The Linux Kernel: # cp -fav kernels/armv5/uImage* /tftpboot/slackwarearm-14.2/ The Initial RAM disk, used for booting the OS after installation (This shouldn't be needed, but if your SheevaPlug cannot make the USB device 'ready' at the U-Boot console, we still have the option to boot the initrd & Kernel from the network/tftp) # cp -fav kernels/armv5/uinitrd* /tftpboot/slackwarearm-14.2/ The Flattened Device Tree Selector and DTB files: # cp -fav kernels/armv5/{dtb,fdt-selector} /tftpboot/slackwarearm-14.2/ 2.4.1 Updating U-Boot on your device ------------------------------- To boot Linux 3.12 and upwards requires a particular version of U-Boot. * This guide expects that for 'Plug' devices (Sheeva, Guru etc) * * that the version of U-Boot is the upstream version from 'DENX'. * * If you are running the release from 'Marvell', you must upgrade * * in order to use these instructions. * Please visit the Kirkwood maintenance page for details and a HOWTO guide for updating U-Boot on your system: http://arm.slackware.com/maint_kirkwooduboot For 'OpenRD' systems, this document assumes you are using the 'Marvell' release of U-Boot (as there appear to be no other versions available and an upgrade is not required here). 2.5 Selecting the appropriate Flattened Device Tree blob ---------------------------------------------------- Flattened Device Tree is a method to supply information about your particular devices to the Linux Kernel. ARM devices have no BIOS like PCs, do so there's no method of 'probing' the hardware. Flattened Device Tree ('FDT') is the solution to this. In order to supply this FDT file (called an 'FDTB' or 'Flattened Device Tree Blob' (or 'binary')), you either need your U-Boot boot loader to support it, or you have to append the FDTB to the 'zImage', and re-create the uImage file from that zImage. Unfortunately the versions of U-Boot for most of the Kirkwood devices do not support FDT, so we need to append the file instead. Therefore you will find a a shell script called 'fdt-selector.sh' in your /tftpboot/$SLACKTREE/ directory. To run this script, you need the 'mkimage' tool from the 'U-Boot-Tools' package. You can find pre-packaged versions for x86 and x86_64 here:- http://ftp.arm.slackware.com/slackwarearm/slackwarearm-devtools/u-boot-tools/packages/ Choose the appropriate one for your system and install it: # installpkg u-boot-tools-*_slack*.txz Run this script and choose your system from the list. # cd /tftpboot/slackwarearm-14.2/ # sh fdt-selector This script will append the appropriate FDTB to the Kernel, and rebuild the U-Boot Kernel file 'uImage'. If you want to install a different type of Kirkwood device later on, simply re-run the script. If you want to install a system that does not need an FDT such, you can select 'No FDT' from the menu and it will re-build 'uImage' without an FDT appended. Typically, however, this isn't the case - at least with the devices supported by Slackware ARM because the tested and working U-Boot versions don't support loading a DTB (the Device Tree Blob's that are part of the Flattened Device Tree system) separately. 3.0 Connecting to the Kirkwood system via the Serial Port ----------------------------------------------------- 1. Create a udev rules file for the Kirkwood system: When you power cycle the Kirkwood system, often the /dev/ttyUSB device numbers will change which means you have to update your terminal program's settings; this way you don't need to. Paste the following into a root shell on your host: echo ' # /etc/udev/rules.d/99-marvell-kirkwood.rules # Attach /dev/{openrd,sheevaplug} to the serial console of the Marvel Kirkwood systems. # # The JTAG module supplied with the GuruPlug identifies itself as "SheevaPlug" so you # can use the /dev/sheevaplug device. # ACTION=="add", SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="01", ATTRS{interface}=="SheevaPlug JTAGKey FT2232D B", SYMLINK+="sheevaplug" ACTION=="add", SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="01", ATTRS{interface}=="OpenRD JTAGKey FT2232D B", SYMLINK+="openrd" ' > /etc/udev/rules.d/99-marvell-kirkwood.rules Cause udev to find the new rules: # sh /etc/rc.d/rc.udev restart 2. Load the Kernel modules required: Loading the Kernel modules should not be necessary with a Linux kernel version 3.10 or above, but this is left in for users on older Operating Systems. For SheevaPlug, GuruPlug (using JTAG module), OpenRD client: ```````````````````````````````````````````````````````````` # modprobe usbserial vendor=0x9e88 product=0x9e8f # modprobe ftdi_sio vendor=0x9e88 product=0x9e8f For the OpenRD Ultimate: ```````````````````````` # modprobe ftdi_sio vendor=0x0403 product=0x9e90 For any other devices, if you're running Linux 2.6.26 or higher, try omitting the vendor and product parameters - the module should be able to determine the correct parameters by itself. 3. Configure your terminal software with the following settings: In Slackware you can use 'screen' which provides great terminal emulation and also allows you to connect to the device's serial port: 'screen' in the 'ap' series To use 'screen': # screen -T screen-256color /dev/openrd 115200,-crtscts # or /dev/sheevaplug 4. Connect the USB serial cable that comes with the Kirkwood system to your PC. 5. Connect your USB stick or hard disk to the unit. If the hard disk has an external power supply, power on the drive now and wait for it to spin up. 6. Power on the Kirkwood system unit. 7. Open the connection to the Kirkwood system serial port Example: # screen -T screen-256color /dev/openrd 115200,-crtscts # or /dev/sheevaplug 8. You should see the output from the Kirkwood system appearing in your terminal window. 9. You will see a prompt saying you can press any key to interrupt the boot process. Press ENTER a few times and you will be dropped into the U-Boot console, and sit at the 'Marvell>>' prompt. 3.1 Configuring the Kirkwood system ------------------------------- 1. Set or request an IP address for the Kirkwood system: ````````````````````````````````````````````````````` The Kirkwood system U-Boot console needs an IP address temporarily to contact the TFTP boot server. If you are running a DHCP server on your network, you may prefer to request an IP address by DHCP. However, after following the instructions here and updating U-Boot, the MAC address of the Kirkwood system will change - so if you were planning on binding a MAC to an IP address in your /etc/dhcpd.conf, don't just yet! To set an IP statically: Marvell>> setenv ipaddr 192.168.1.20 To request an IP via DHCP: Marvell>> dhcp 2. Set the IP address of the TFTP server: `````````````````````````````````````` This is the IP address of your Slackware x86 host on which the TFTP daemon runs. Marvell>> setenv serverip 192.168.1.1 3. Kernel and boot-time configuration: ``````````````````````````````````` Some Kirkwood systems need to know how to boot the correct kernel for the particular device you're installing upon. Note: The author has only tested Slackware ARM (and these installation instructions) upon the OpenRD Client with the *original* Marvell U-Boot firmware. So far it hasn't been necessary to upgrade the U-Boot firmware on the OpenRD Client. For the OpenRD *CLIENT*: Marvell>> setenv arcNumber 2361 Marvell>> setenv mainlineLinux yes Marvell>> setenv DTB dtb=kirkwood-openrd-client.dtb Marvell>> setenv SLKKERNEL slkkernel=armv5 Marvell>> setenv machid ffffffff For the OpenRD *BASE*: Marvell>> setenv arcNumber 2325 Marvell>> setenv mainlineLinux yes Marvell>> setenv DTB dtb=kirkwood-openrd-base.dtb Marvell>> setenv SLKKERNEL slkkernel=armv5 Marvell>> setenv machid ffffffff For the OpenRD *ULTIMATE*: Marvell>> setenv arcNumber 2884 Marvell>> setenv mainlineLinux yes Marvell>> setenv DTB dtb=kirkwood-openrd-ultimate.dtb Marvell>> setenv SLKKERNEL slkkernel=armv5 Marvell>> setenv machid ffffffff For the original SheevaPlug: Marvell>> setenv DTB dtb=kirkwood-sheevaplug.dtb Marvell>> setenv SLKKERNEL slkkernel=armv5 Marvell>> setenv machid ffffffff For the eSATA SheevaPlug: Marvell>> setenv DTB dtb=kirkwood-sheevaplug-esata.dtb Marvell>> setenv SLKKERNEL slkkernel=armv5 Marvell>> setenv machid ffffffff For the GuruPlug: Marvell>> setenv DTB dtb=kirkwood-guruplug-server-plus.dtb Marvell>> setenv SLKKERNEL slkkernel=armv5 Marvell>> setenv machid ffffffff For _other_ Kirkwood-based systems not listed above: Marvell>> setenv SLKKERNEL slkkernel=armv5 Marvell>> setenv machid ffffffff For the DTB setting please refer to the output from the 'fdt-selector' tool (see section 2.5 'Selecting the appropriate Flattened Device Tree blob'), as it tells you which DTB file has been chosen for your device. Marvell>> setenv DTB dtb= 4. Save the settings and reboot ```````````````````````````` Marvell>> saveenv ; reset 4.0 Slackware ARM installation -------------------------- Power cycle/reset the Kirkwood system and Interrupt the boot process by pressing ENTER a few times. 4.1 Performing an installation to a USB disc ---------------------------------------- If you want to perform the installation to a USB disc: At the U-Boot console: Marvell>> usb start If your device says: (Re)start USB... USB: scanning bus for devices... 2 USB Device(s) found scanning bus for storage devices... Device NOT ready Request Sense returned 05 24 00 1 Storage Device(s) found Where it says that the device is not ready, reset the device again and retry. If after four or so goes it still doesn't work, then it may be that the Kirkwood system simply does not like your device and you'll either have to check if there's a newer U-Boot version for your Kirkwood system system, or find another USB enclosure. If the system finds your USB device, it should report something similar to: Marvell>> usb start (Re)start USB... USB: scanning bus for devices... 2 USB Device(s) found scanning bus for storage devices... 1 Storage Device(s) found Marvell>> 4.2 Performing an installation to an eSATA disc ------------------------------------------- To perform an installation to an eSATA drive, we need to reset the IDE interface: Marvell>> ide reset 4.3 Booting the installer --------------------- Now download the Kernel and Slackware ARM installer via TFTP: Marvell>> tftpboot 0x01100000 slackwarearm-14.2/uinitrd-armv5.img Marvell>> tftpboot 0x00800000 slackwarearm-14.2/uImage-armv5 Marvell>> setenv bootargs ${SLKKERNEL} ${DTB} earlyprintk TERM=screen-256color console=ttyS0,115200 nodhcp root=/dev/ram rw Marvell>> bootm 0x00800000 0x01100000 4.3.2 Starting the network automatically ---------------------------------- To save manual effort, you may wish to have the installer boot and automatically: - have the IP address assigned by DHCP (requires a DHCP server on your network); - start the SSH server This way the network piece will be automated immediately after selecting your preferred keymap. To do this, adjust the "bootargs" above to be: Marvell>> setenv bootargs ${SLKKERNEL} ${DTB} earlyprintk TERM=screen-256color console=ttyS0,115200 nic=auto:eth0:dhcp root=/dev/ram rw;bootm 0x00800000 0x01100000;reset 4.3.2 Starting the network manually ----------------------------- If you would rather bring up networking manually, or you do not have a DHCP server on your network, you need to follow this section. Before you can mount the NFS share, you need to setup networking in the installer. # ifconfig eth0 You should see a stanza for eth0. If you have a DHCP server on your network, you can request an IP address by dhcp: # dhcpcd eth0 # ifconfig eth0 Note down the IP address. You'll be SSHing into it soon. If you don't have a DHCP server then you need to configure the network address manually: # ifconfig eth0 192.168.1.20 netmask 255.255.255.0 Remember that you'll need to adjust these network settings for your own LAN! 4.4 Begin the setup --------------- Slackware ARM has an identical installer to Slackware x86, so the same tools are available, including fdisk. The installation will be conducted via the serial console. 4.4.1 Partitioning your hard disk --------------------------- You should find your USB/eSATA drives are identified as /dev/sda. If you're using an MMC device you will find it identified as /dev/mmcblk0 and the partitions as /dev/mmcblk0pN (where N is the partition number). In the examples below, for MMC the device names become /dev/sda1 = /dev/mmcblk0p1 /dev/sda2 = /dev/mmcblk0p2 /dev/sda3 = /dev/mmcblk0p3 The rest of the examples use the /dev/sda names for ease of documentation. If you're using MMC, you need to substitute /dev/sda for the MMC device names in the table above. Please choose a partitioning scheme. The recommended scheme is: /dev/sda1 - Size: 100MB Mount point: /boot Partition type: 83 "Linux" Filesystem: ext2 * Note: * The reason for a separate /boot partition with an ext2 filesystem, rather than say one large / formatted as ext4, is because the ext2 support in u-boot does not support anything higher than ext2. /dev/sda2 - Size: 800MB Mount point: Not applicable Partition tyoe: 82 "Linux Swap" Tip: If you have small sized storage you may wish to have a small swap partition. But if you're going to be doing software development, it's advisable to have a larger swap partition to 'avoid out of memory' errors. /dev/sda3 - Size: Remainder of the disc Mount point: / Partition type: 83 "Linux" Filesystem: ext4 (or your choice) You are free to choose your own partitioning scheme but U-Boot is restricted to loading files (the Linux Kernel & Initial RAM disk) from either ext2 or FAT partitions; therefore it's recommended to have a small ext2 formatted /boot partition. You can create the partition table using fdisk or cfdisk. 4.4.2 Start the installer menu ------------------------ In the terminal window, on the Kirkwood system's Slackware installer shell, start up the installer menu: # setup The first thing to do is 'ADD SWAP'. Select this menu option and let the installer locate the swap partition and format it. From now on, the installer will continue the flow of events automatically. 4.4.3 Setting up filesystems ---------------------- The Slackware installer will first present a list of available "Linux" type partitions, and ask which one should be the root ('/') partition. If you are following the partition layout as suggested in this document then you should choose /dev/sda3, and choose any format you wish. The next step to "Select other Linux partitions for /etc/fstab" Here: - Select /dev/sda1 - Format it - Select 'ext2' as its filesystem - Mount point: /boot 4.4.4 Source media selection ---------------------- Depending upon your choice in section 2.2, you must now choose the corresponding installation source - NFS or HTTP. 4.4.4.1 Installing from an NFS export ----------------------------- Choose menu option '3 - Install from NFS (Network Filesystem)' Enter the IP address: 192.168.1.1 Enter the directory : /export/slackwarearm/slackwarearm-14.2/slackware 4.4.4.2 Installing from an HTTP server ----------------------------- Choose menu option '4 Install from FTP/HTTP server' Enter the URL......: http://192.168.1.1:8000 Enter the directory: /slackware/ 4.4.5 Package selection ----------------- Slackware ARM has all of the Slackware packages apart from those which are x86 only. It's up to you which packages you install, but we recommend a full installation. 4.4.5.1 Choosing a Window manager for X.org ----------------------------------- Whilst KDE does work on the ARM platform, it's not recommended since it's very resource heavy. You can choose any of them, but it's recommended to choose something light weight such as WindowMaker or Fluxbox. 5.0 Booting the Slackware ARM OS ---------------------------- Congratulations! After you've completed the installation of Slackware ARM, you will be prompted to reboot - choose 'Yes'. The system will now reboot back into the U-Boot console. Once again, interrupt the boot process of the Kirkwood, and you'll be dropped into the familiar 'Marvell>>' U-Boot console. We now need to tell the Kirkwood how to boot the Operating System. In section 4.4.1 (Partitioning your hard disk), you chose a disk layout and chose which filesystem to use. If you followed the example in this document, you won't need to change anything below. If you chose your own disk layout, here follows an explanation of the values contained in the U-Boot configuration below: The first line: root=/dev/sda3 This is where Linux will find its root filesystem ('/'). rootfstype=ext4 The filesystem (e.g. ext2,ext3,ext4,xfs,jfs,reiserfs) used on the root filesystem. The second and third lines tell U-Boot to start the USB subsystem; load the Initial RAM disk off an ext2 filesystem which is the first partition on the disk; load the Linux Kernel off an ext2 filesystem which is on the first partition on the disk. The fourth line boots the Kernel and Initial RAM disk using the values configured. Paste these lines into your Kirkwood U-Boot console, adjusting any necessary settings, as described above: Marvell>> setenv bootargs_console earlyprintk console=ttyS0,115200 Marvell>> setenv bootargs_root 'root=/dev/sda3 waitforroot=5 rootfstype=ext4' Marvell>> setenv bootcmd 'setenv bootargs ${SLKKERNEL} ${DTB} ${bootargs_console} ${bootargs_root} ; run bootcmd_slk ; reset' For installation to a *USB* disc: Marvell>> setenv bootcmd_slk 'usb start;ext2load usb 0:1 0x01100000 /uinitrd-armv5;ext2load usb 0:1 0x00800000 /uImage-armv5;bootm 0x00800000 0x01100000' For installations on an Open RD Client to an EXTERNAL *eSATA* disc: Marvell>> setenv bootcmd_slk 'ide reset;ext2load ide 1:1 0x01100000 /uinitrd-armv5;ext2load ide 1:1 0x00800000 /uImage-armv5;bootm 0x00800000 0x01100000' For installations on an Open RD Client to an INTERNAL *SATA* disc: Marvell>> setenv bootcmd_slk 'ide reset;ext2load ide 0:1 0x01100000 /uinitrd-armv5;ext2load ide 0:1 0x00800000 /uImage-armv5;bootm 0x00800000 0x01100000' For installations on a GuruPlug Server Plus to an EXTERNAL *eSATA* disc: Marvell>> setenv bootcmd_slk 'ide reset;ide reset;ext2load ide 0:1 0x01100000 /uinitrd-armv5;ext2load ide 0:1 0x00800000 /uImage-armv5;bootm 0x00800000 0x01100000' For installations to an *MMC* device: Marvell>> setenv bootcmd_slk 'ext2load mmc 0:1 0x01100000 /uinitrd-armv5;ext2load mmc 0:1 0x00800000 /uImage-armv5;bootm 0x00800000 0x01100000' Finally, save the settings and reboot the device: Marvell>> saveenv ; reset The Kirkwood will reboot and should begin running the Linux Kernel, and booting into your new Slackware ARM installation. 6.0 Post installation tweaks ------------------------ For an as-yet unknown issue, on the SheevaPlug it takes over a minute for the dhcpcd client to obtain an IP address. The default time out is set to 12 seconds, so it's recommended that if you will obtain an IP via dhcp that you adjust it to at least 70 seconds: As root paste the following in to the shell (without the leading '#') # sed -i -e 's?12 seconds?70 seconds?g' \ -e 's?\${DHCP_TIMEOUT\[\$i\]:-12\}?\$\{DHCP_TIMEOUT\[\$i\]:-70\}?g' \ /etc/rc.d/rc.inet1 7.0 Help support the Slackware ARM project -------------------------------------- Maintainance of the Slackware ARM port takes not only a lot of time, but also has financial costs such as the on-going use of electricity, Internet hosting and purchasing and maintainance of ARM hardware. Once you find yourself enjoying using the ARM port of Slackware, please take a few moments to show your appreciation by sponsoring either through * A one-off donation: https://paypal.me/armedslack * or (preferably, for this author) a monthly appreciation payment: https://www.patreon.com/armedslack More information on this subject may be found here: http://arm.slackware.com/sponsor 7.1 Helping support the upstream Slackware project ---------------------------------------------- Please consider donating to the parent Slackware project also, developed and maintained by Patrick Volkerding. Without this project, the ARM port of Slackware would, in short order, cease to exist. https://www.patreon.com/slackwarelinux/overview 8.0 Suggestions/alterations ----------------------- If you have any suggestions, recommendations or corrections(!) for this document, please do email me. Thanks! Stuart Winter. -- Stuart Winter mozes@slackware.com