######################################################################################## # Document........: INSTALL_AllWinner_H3.TXT # Purpose.........: How to install Slackware ARM on Hardware Models using the AllWinner # H3 SoC. # # Supported Hardware Models: # (version numbers are printed on the PCB underneath the GPIO pins) # * Orange Pi Plus (H3) v1.1 # * Orange Pi Plus 2E (H3) v1.1 # * Orange Pi PC (H3) v1.2 # # There are many other Orange Pi variants, but these have _not_ # been tested and most likely are not supported. # If you have an Orange Pi that is not listed above, and have tested # it, please share your experience on the Slackware ARM board within # the LinuxQuestions.org site (see URL below). # # Date............: 21-Dec-2021 # Version.........: v1.07 # Author..........: Stuart Winter # For questions and support, please use the Slackware ARM forum # https://www.linuxquestions.org/questions/slackware-arm-108/ # References......: http://linux-sunxi.org/H3 # Acknowledements : Thank you to the kind folks at www.orangepi.org for sending some of # the hardware used to develop support for the Orange Pi Hardware # Models, and to the Sunxi developers for building the device support. # Also, thanks to those who have contributed financially to the # project which permits the purchase of more Hardware Models. ####################################################################################### # Change Log ############# # 22-Dec-2021, v1.07 # * Reference root filesystem using labels - root=LABEL=SLKroot # This is the new Slackware ARM default. # 06-Mar-2019, v1.06 # * Add "console=tty0 disp.screen0_output_mode=EDID:1280x720p50" to slkconsole variable, # to have the Linux console appear both on HDMI and Serial. Thanks to glorsplitz for # the suggestion. # * Added 'hdmi.audio=EDID:0' to 'bootcmd_generic' variable. # 19-Feb-2019, v1.05 # * The U-Boot version that we're using now supports HDMI. Updated the configuration # section accordingly. # 11-Jan-2018, v1.04 # * Moved Orange Pi A20 model documentation in to INSTALL_AllWinner_A20.TXT # * Adjusted FTP locations for U-Boot binaries. # * Changed default board reference from "Orange Pi" to "board", as this document # will cater for more Hardware Models than just Orange Pi in the future. # 05-Jan-2018, v1.03 # * Added Orange Pi Plus 2E v1.1 (H3 model) # This board does not have eSATA, so USB installation hard disk installation option # is documented. # 21-Dec-2017, v1.02 # * Added Orange Pi (A20) v1.2 # 13-Nov-2017, v1.01 # * Added note about enabling SSH root logins. # Thanks to Tomas Kolousek for the suggestion. # 23-Feb-2017, v1.00 # * First version ####################################################################################### # Issues & To Do list: # # 23-Feb-2017 # [a] Test installation setup on to on board MMC. # [b] Test HDMI console & X11 - HDMI documentation copied from INSTALL_AllWinner_A20 # and not yet tested with OPi. I don't believe that HDMI support exists in the # mainline Kernel yet (Linux 4.14 does not). # Also see section 5.1 re. HDMI for console login. # [c] Consider installation to MMC for Orange Pi Plus H3 v1.1, or note that you # will need to answer questions about /dev/mmcblk with regard to formatting and # having the devices appear in /etc/fstab. # [d] Add alternative installer boot method - provide USB images to save user having # to set up a tftp server. # Note: Instructions will need to include REMOVAL of USB stick from USB socket # once the installer has booted, since the eSATA on H3 Plus appears later in the # USB device tree and as such /dev/sda (esata disk) appears as /dev/sdb, thus # makes /etc/fstab and so on incorrect once the USB stick is removed. # If anybody wants to install from a USB media (e.g. 'slackware' dir is on a USB # stick - although this will never be a supported/documented option since it'll # clash with the USB installer boot system (the USB installer will not include # the package tree, just the installer image)) then you'd need to add the USB # stick _after_ the OS has booted. # The other option is to use e2fslabeling but that means editing the installer, # and seeing how other non-e2fs filesystems do labeling. ###################################################################################### 0.0 Hardware and accessories requirements -------------------------------------- - The board and its appropriate power cable/PSU - For the Orange Pi Plus H3 v1.1 and any Hardware Models that support eSATA: SATA cable such as:- https://www.newit.co.uk/shop/All-Banana-Pi/BananaPi/BPiSATACable + 2.5inch SATA drive of at least 15GB - For the Orange Pi PC v1.2 (or any other device that does NOT support eSATA): A 'USB hard drive' (USB enclosure + HDD) of at least 15GB. - PL2303 serial cable with wires terminating in pin blocks that can sit on the UART interface of the board. The author uses this product, but there are many others available:- https://www.amazon.co.uk/Raspberry-Programming-Serial-Windows-Supported/dp/B01N4X3BJB At other suppliers, search for terms such as: 'PL2303HX USB to TTL to UART RS232 COM Cable module Converter' * Be aware that the cheapest cables tend to be of poor quality, which may result * in on-screen corruption, and incorrect characters being entered into the * U-Boot console and Slackware installer (the author typically finds that this is * because the physical connections within the pins is weak, which results in * signals being sent to the serial bus that weren't generated by the user!). * You must connect the pins according to the vendor's documentation! * ** Be sure only to connect the TX, RX and GND pins! ** * * The pin layout for the Orange Pi's is printed on the board itself, apart from * the Orange Pi Plus 2E. See:- * http://ftp.arm.slackware.com/slackwarearm/platform/arm/refs/allwinner/H3/pinouts/Orange_Pi_Plus_2e_pinout.jpg - Micro SD Card This document covers installing the Slackware Operating System on to the 2.5" SATA drive. The SD card is only used for the boot loader ('U-Boot') which is a few hundred KBytes in size. The smallest capacity (<=10MBytes will suffice) SD card you can find - anything else is just wasted (but will work). The reason for writing U-Boot to an SD card rather than the built-in MMC is in case you are going to be modifying U-Boot at any stage: it's best to be able to easily write a known-good version back to the SD card and boot the device again. This is based on the experiences from the SheevaPlug era. The Orange Pi PC v1.2 does not have onboard MMC so the only option for U-Boot is to use a Micro SD card. - SD Card slot in your x86 host, or a USB SD Card reader/writer 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. Network 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. Usage profile of the Hardware Models: ````````````````````````````````````` - You will be installing the Slackware Operating System on to an external SATA or USB-connected drive, or the internal MMC (depending on the model of board that you have). Other options are available, but this document only covers the author's personal set up. If you would like to contribute to the expansion of use cases, please send the author a diff. 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 -Prlvv \ ftp.arm.slackware.com::slackwarearm/slackwarearm-15.0 . 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 board, we'll boot the Linux Kernel and Initial RAM disk via TFTP. Copy the Kernel and Initial RAM disk images into the tftpboot directory: # mkdir -vpm755 /tftpboot/slackwarearm-15.0 # cd /export/slackwarearm/slackwarearm-15.0/ Copy the Slackware ARM installer: # cp -fav isolinux/initrd-armv7.img /tftpboot/slackwarearm-15.0/ The Slackware installer U-Boot scripts: # cp -fav isolinux/u-boot_tftp /tftpboot/slackwarearm-15.0/ The Linux Kernel & the DTB files (Device Tree Blob): # cp -fav kernels/armv7/{zImage*,dtb} /tftpboot/slackwarearm-15.0/ The Initial RAM disk, used for booting the OS after installation (This shouldn't be needed, but it's useful as a fall back in case your system cannot load the OS initrd from the local media for some reason): # cp -fav kernels/armv7/initrd* /tftpboot/slackwarearm-15.0/ 2.5 Writing the U-Boot boot loader to the SD card --------------------------------------------- On your Slackware x86 host, you will need to write the U-Boot image to the SD card from which your board will boot. Out of the box, most of these Hardware Models have a version of U-Boot that will be loaded if there is no U-Boot on the SD card. This is ideal because it means that you can easily test out versions of U-Boot without "bricking" the device (i.e. installing a version of U-Boot that fails to boot, leaving you without access to the device, or leading you on a journey to try and recover the device). This SD card image provides a known and tested version of U-Boot for these Hardware Models which will be the platform from which the Slackware installer _and_ OS is booted. The author of this document intends for the SD card to remain within your device permanently. If you find the permanent occupuation of your SD card slot a problem, you'll need to find a solution. There may be other methods of installing U-Boot (especially once you've used a known-good version), but these are outside of the scope of this document and the interest of this author. ********************************************************************************** ** The following are _examples_ only. You must determine what the correct ** ** device name is for your SD card, otherwise you will most likely destroy data ** ** on your hard disk, or of another SD card !! ** ********************************************************************************** Download the U-Boot image: # cd /tmp For the Orange Pi Plus H3 v1.1 `````````````````````````````` # wget http://ftp.arm.slackware.com/slackwarearm/platform/arm/bootware/bin/orangepi_plus.sdcard_latest.img.xz For the Orange Pi Plus 2E H3 v1.1 ````````````````````````````````` # wget http://ftp.arm.slackware.com/slackwarearm/platform/arm/bootware/bin/orangepi_plus2e.sdcard_latest.img.xz For the Orange Pi PC v1.2 ````````````````````````` # wget http://ftp.arm.slackware.com/slackwarearm/platform/arm/bootware/bin/orangepi_pc.sdcard_latest.img.xz Applicable to all Hardware Models: ````````````````````````````````` 1. As root on your Slackware x86 machine, write U-Boot loader to an SD card directly:- ================== # xzcat *sdcard_latest.img.xz > /dev/mmcblkXXX ## Replace XXX with the correct value (usually '0' or '1') e.g. xzcat *sdcard_latest.img.xz > /dev/mmcblk9 ## Replace XXX with the correct value (usually '0' or '1') Write U-Boot loader to the SD card that is in a USB SD card reader/writer:- =========================== # xzcat *sdcard_latest.img.xz > /dev/sdXXX ## Replace XXX with the correct value (often 'b', 'c' or 'd') e.g. xzcat *sdcard_latest.img.xz > /dev/sdz 2. Insert the Micro SD card in to the slot on the ARM board. 3.0 Connecting to the board via the Serial Port -------------------------------------------- You must have connected the PL2303 USB to serial converter cable to the UART interface of the Orange Pi at this point. The UART is situated just above the power socket and is clearly marked TX, RX, GND. 1. 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/ttyS0 115200,-crtscts 2. Connect the PL2303 USB serial cable from the board to your PC. 4. Power on the board. 5. Open the connection to the board serial port Example (check the output of 'dmesg' to see what ttyUSB value it should be) # screen -T screen-256color /dev/ttyUSB0 115200,-crtscts 8. You should see the output from the board 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 '=> ' prompt. 3.1 Configuring the board ---------------------- 1. Reset U-Boot configuration to factory defaults: ``````````````````````````````````````````````` => env default -a 2. Set or request an IP address for the board: ``````````````````````````````````````````` The board's 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. To set an IP statically: => setenv ipaddr 192.168.1.20 To request an IP via DHCP: (In the author's experience, the first dhcp will timeout but the 2nd will succeed). => dhcp;dhcp;dhcp 3. Set the IP address of the TFTP server: `````````````````````````````````````` This is the IP address of your Slackware x86 host on which the TFTP daemon runs. => setenv serverip 192.168.1.1 4. Set generic boot configurations: ```````````````````````````````` The following settings apply to both the Slackware Installer and the installed Slackware OS, with the exception of the Linux console setting. You won't need to change these again. The long line must be pasted in correctly and as a single line, otherwise the configuration will be incorrect. You may need to paste in the long lines by pasting in one piece at a time, since some U-Boot versions does not seem to cater for the pasting of long lines. => setenv fdt_addr 0x43000000 => setenv kernel_addr_r 0x47000000 => setenv ramdisk_addr_r 0x48000000 => setenv bootcmd_generic 'debug earlyprintk hdmi.audio=EDID:0' => setenv slkconsole "console=ttyS0,115200n8 console=tty0 disp.screen0_output_mode=EDID:1280x720p50" Note: If you have a serial cable and HDMI configured, the U-Boot console will appear on both, and as long as you have a USB keyboard connected to the device, you'll be able to configure U-Boot using the keyboard and HDMI output. However, the Slackware Installer will be controlled by the serial console. 5. Set device specific configurations: ``````````````````````````````````` For the Orange Pi Plus H3 v1.1 .............................. => setenv DTB sun8i-h3-orangepi-plus.dtb For the Orange Pi Plus 2E H3 v1.1 .................................. => setenv DTB sun8i-h3-orangepi-plus2e.dtb For the Orange Pi PC v1.2 ......................... => setenv DTB sun8i-h3-orangepi-pc.dtb 6. Save the settings and reboot the device: => saveenv ; reset The device will reboot. Press ENTER to stop the automatic boot process. 4.0 Slackware ARM installation -------------------------- Power cycle/reset (as you will have in the previous step) the board and interrupt the boot process again by pressing the ENTER Key. 4.1 Booting the installer --------------------- ** Note that the variable names used below should be pasted in verbatim - U-Boot will expand them automatically to what was configured in step 3 of section 3.1 above. ** Automated method ```````````````` The commands in the manual method (documented below) have been compiled in to a single bootable U-Boot script. Unless you prefer to modify any of the installer settings, this is the fastest and easiest method to boot the Slackware installer: => dhcp;dhcp;dhcp For the Orange Pi Plus H3 v1.1: ............................... => tftp 0x52000000 slackwarearm-15.0/u-boot_tftp/orangepi-h3-plus For the Orange Pi Plus 2E H3 v1.1: ................................... => tftp 0x52000000 slackwarearm-15.0/u-boot_tftp/orangepi-h3-plus2e For the Orange Pi PC v1.2: .......................... => tftp 0x52000000 slackwarearm-15.0/u-boot_tftp/orangepi-pc Applicable to all Hardware Models: .................................. => source 0x52000000 Now skip to section 4.3 ('Begin the setup'). Manual method `````````````` If you'd rather adjust some of the settings, you can paste in the following U-Boot commands in order to boot the Slackware installer. => tftp ${fdt_addr} slackwarearm-15.0/dtb/${DTB} => fdt addr ${fdt_addr} 0x40000 => tftp ${kernel_addr_r} slackwarearm-15.0/zImage-armv7 => tftp ${ramdisk_addr_r} slackwarearm-15.0/initrd-armv7.img Set the initial boot environment, and boot the installer: This document is written with controlling the installer from the serial console, although if you have HDMI working it ought to work fine there too. However, it's easier to paste the U-Boot configuration in via the serial connection than type it manually using the keyboard. => setenv bootargs "console=ttyS0,115200n8 ${bootcmd_generic} TERM=screen-256color nodhcp root=/dev/ram rw" => bootz ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr} 4.1.2 Starting the network automatically (most likely preferred option if you are using DHCP) --------------------------------------------------------------------------------------- To save manual effort, you may wish to have the Slackware installer boot and automatically: - have the IP address assigned by DHCP (requires a DHCP server on your network); - start the SSH server This way you can SSH directly to the board without any further work via the serial console. However, the serial console support works perfectly in the installer so SSH is just an option if you prefer to use it. To do this, adjust the "bootargs" above (in step 4.1) to be: => setenv bootargs "${bootcmd_generic} console=ttyS0,115200n8 TERM=screen-256color nic=auto:eth0:dhcp root=/dev/ram rw" => bootz ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr} ; reset 4.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 can complete the installation via SSH if you wish, or conduct it all via the serial connection that you have open. 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.3 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.3.1 Partitioning your hard disk --------------------------- You should find your eSATA or USB drive identified as /dev/sda. If you're using an MMC device you will find it identified as /dev/mmcblk1 and the partitions as /dev/mmcblk1pN (where N is the partition number). ** Notes: There will be /dev/mmcblk0p1 present also (note "0" rather than "1"). ** This is the Micro SD card upon which you've written U-Boot to in ** step 2.5 ('Writing the U-Boot boot loader to the SD card') ** 1) Ensure that you use /dev/mmcblk1 as the installation target ** if you're going to be using MMC. The Orange Pi PC v1.2 has no on board ** MMC so don't expect to find anyting apart from /dev/mmcblk0! ** ** The MMC on the 'Orange Pi Plus H3 v1.1' is only 8GB which is not ** large enough for a full Slackware installation. You will need to ** 2) de-select KDE and perhaps X or make a custom installation to keep the ** size down. In the examples below, for MMC substitute the device names as follows: /dev/sda1 = /dev/mmcblk1p1 /dev/sda2 = /dev/mmcblk1p2 /dev/sda3 = /dev/mmcblk1p3 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. Use the following partitioning scheme: /dev/sda1 - 400MB Linux Swap /dev/sda2 - The remainder of the disk which will be used as the root file system ('/'). 'Format' this as ext4. You can create the partition table using fdisk or cfdisk. 4.3.2 Start the installer menu ------------------------ Either using the SSH or the serial console session to the board, 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 progress automatically on to the next steps. 4.3.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/sda2, and format it as ext4. The next step to "Select other Linux partitions for /etc/fstab" may appear if the system finds existing 'Linux' partition types on the on-board MMC such as that on the Orange Pi H3 Plus. Unless you want to wipe these, thus removing the factory-supplied OS please skip these and move on. The author chooses to leave the factory-supplied OS intact should there be any future need to use it (invariably there is not, but just in case!). 4.3.4 Source media selection ---------------------- Depending upon your choice in section 2.2, you must now choose the corresponding installation source - NFS or HTTP. 4.3.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-15.0/slackware 4.3.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.3.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.3.5.1 Choosing an X Window Manager ---------------------------- Whilst works 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. 4.3.6 SSH configuration ----------------- By default OpenSSH does not allow root to login with a password. This is a security concern, so you should think about this carefully if your device is connected directly to an untrusted network (such as the Internet!). You'd be better off making a user account, sshing into the machine as that user and escalating your privileges locally with "su" or "sudo". However, if you are happy to allow root logins to your device from the network, follow these steps: [a] Opt to drop in to a 'shell' when you exit from the installer [b] At the shell, enter: # sed -i 's?^#PermitRootLogin.*?PermitRootLogin yes?g' /mnt/etc/ssh/sshd_config # reboot 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 board will now reboot back into the U-Boot loader. Press ENTER several times in order to access the U-Boot console. ** Note: If you find that your system does not reboot, you will need to press the 'reset' button your board or power cycle it ** 5.1 Configuring U-Boot ------------------ Once again, interrupt the U-Boot boot process, and you'll be dropped into the familiar '=>' U-Boot console. We now need to tell the board how to boot the Operating System. In section 4.3.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 some of the values contained in the U-Boot configuration below: The first line: root=LABEL=SLKroot 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. Paste these lines (all text after the '=> ' prompt) into your board's U-Boot console, adjusting any necessary settings, as described above: IMPORTANT NOTE - Changing Linux Kernel boot parameters |||||||||||||||||||||||||||||||||||||||||||||||||||||| If you'd like to change the console output in the future (or any Linux Kernel command line value), you'd need to update the variable you're interested in (e.g. the 'slkconsole' U-Boot variable), _and_ re-enter the ''setenv bootargs "${slkconsole}....'' commands (see later post installation section further down this document), followed by 'saveenv'. This is due to the way U-Boot evaluates the variables. With the Slackware OS on eSATA ............................... Includes models: Orange Pi Plus v1.1 If you installed the OS on to an eSATA drive, paste in these commands: => setenv bootcmd_dtb 'ext4load usb 0:2 ${fdt_addr} /boot/dtb/${DTB} ; fdt addr ${fdt_addr} 0x40000' => setenv bootcmd_slk 'usb reset ; run bootcmd_dtb ; ext4load usb 0:2 ${kernel_addr_r} /boot/zImage-armv7 ; ext4load usb 0:2 ${ramdisk_addr_r} /boot/initrd-armv7' => setenv bootargs "${slkconsole} ${bootcmd_generic} root=LABEL=SLKroot waitforroot=5 rootfstype=ext4" ** Note: The "usb" here is intentional, despite installing on to a SATA drive (which would normally ** ** be "scsi". This is because the SATA interface on the Orange Pi uses a USB->SATA bridge ** With the Slackware OS on a USB drive ..................................... Includes models: Orange Pi PC, Orange Pi Plus 2E H3 If you installed the OS on to a USB drive, paste in these commands. Note that this assumes that the board does _not_ have on board eSATA. eSATA on the Orange Pi uses a USB bridge and as such if you wanted to install on to a USB drive on such a system, the USB bus number may not be '0' - you would need to check within U-Boot as to which bus number it'd assigned to which device. The commands below assume that the Orange Pi has no onboard eSATA and as such the only USB storage device is on bus 0. => setenv bootcmd_dtb 'ext4load usb 0:2 ${fdt_addr} /boot/dtb/${DTB} ; fdt addr ${fdt_addr} 0x40000' => setenv bootcmd_slk 'usb reset ; run bootcmd_dtb ; ext4load usb 0:2 ${kernel_addr_r} /boot/zImage-armv7 ; ext4load usb 0:2 ${ramdisk_addr_r} /boot/initrd-armv7' => setenv bootargs "${slkconsole} ${bootcmd_generic} root=LABEL=SLKroot waitforroot=5 rootfstype=ext4" With the Slackware OS on MMC ............................... If you installed the OS on to the internal MMC, paste in these commands: => setenv bootcmd_dtb 'ext4load mmc 1:2 ${fdt_addr} /boot/dtb/${DTB} ; fdt addr ${fdt_addr} 0x40000' => setenv bootcmd_slk 'run bootcmd_dtb ; ext4load mmc 1:2 ${kernel_addr_r} /boot/zImage-armv7 ; ext4load mmc 1:2 ${ramdisk_addr_r} /boot/initrd-armv7' => setenv bootargs "${slkconsole} ${bootcmd_generic} root=/dev/mmcblk1p2 waitforroot=5 rootfstype=ext4" Applicable to all ................. => setenv bootcmd 'run bootcmd_slk ; bootz ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr} ; reset' Finally, save the settings and reboot the device: => saveenv ; reset The board will reboot and should begin running the Linux Kernel, and booting into your new Slackware ARM installation. 6.0 Post installation configuration -------------------------------- To use the X11 graphical interface, you'll need to configure it. By default, the easiest way to do this is to copy the sample configuration file from one of the driver packages: Within your newly installed OS, as root: $ cp -fa /usr/doc/xf86-video-fbturbo-*/xorg.conf-fbturbo-sample /etc/X11/xorg.conf You should now be able to run 'startx' to get a graphical display. There are other drivers around, so you might want to search for one that is more performant for your device though but this should get you going. 7.0 Help support the Slackware ARM project -------------------------------------- Maintenance 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 maintenance 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