################################################################################# # Document: slackwareaarch64-/installer/tftp/HOW_TO_USE.txt # Purpose : Describe how to boot the Slackware Installer to: # 1. Use as a rescue environment # 2. Perform non-destructive testing of a new Kernel release # Author..: Stuart Winter # Date....: 08-Nov-2022 ################################################################################# Note: This is entirely unsupported, but if you have questions please ask on the Slackware ARM forum: https://www.linuxquestions.org/questions/slackware-arm-108/ Caveats -------- 1) Slackware Installation CANNOT be performed: The Slackware Installer for supported Hardware Models expects that the the /boot partition contains default boot loader configurations, Kernel, OS InitRD (Operating System Initial RAM Disk) and other parts to be the a 'factory defaults'. There is no provision for handling a /boot partition from a working OS. Whilst it's technically possible to fix all of this manually from within the Installer in order to perform the Installation, it's far beyond the scope of this document. If you wish to reinstall the machine and it appears that the Kernel is in good order, you should write the Slackware Installer SD card image to your SD card and boot the Installer as per the installation guide. 2) The U-Boot scripts (presently) have the '-current' hard coded into the U-Boot scripts. This could be changed easily within the shell script. 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 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 Populating the assets on the TFTP server ---------------------------------------- Let's say your Slackware AArch64 assets can be located on your TFTP server here: /tftpboot/slackwareaarch64-current Enter your Slackware AArch64 directory tree. This contains the full Slackware tree. e.g. http://ftp.arm.slackware.com/slackwarearm/slackwareaarch64-current/ $ cd slackwareaarch64-current # Copy the Kernel, DTBs, Slackware Installer and U-Boot scripts: $ cp -fav kernels/armv*/{*Image-*,dtb} installer/{*.img,tftp} /tftpboot/slackwareaarch64-current/ Boot the Slackware Installer ---------------------------- Boot your Hardware Model. Press ENTER a few times to interrupt the boot sequence. In your U-Boot console, paste in the boot command you want. For the regular boot process, take the first line. If you want to start the pre-boot shell for deeper investigation and testing, paste the 2nd line. Note: 1) '=>' within the examples below indicates the U-Boot console prompt. Don't type/paste this into the U-Boot console. 1) The pre-boot shell can only be used over the serial console. This is due to there being no drivers (e.g. USB for keyboard) loaded at the first stage. 2) In these examples we use DHCP (the 'dh' U-Boot command) to obtain an IP address. In the Slackware ARM build environment, the DHCP server also sets the 'next-server' to the IP address of the TFTP server. If yours does not, you need to configure U-Boot directly: Substitute '192.168.1.1' with the IP of your TFTP server. => setenv serverip 192.168.1.1 # RockPro64: => dh;tftp 0x1000000 slackwareaarch64-current/tftp/rk3399-rockpro64-v2 ; source 0x1000000 # RockPro64 (invoking pre-boot shell): => dh;tftp 0x1000000 slackwareaarch64-current/tftp/rk3399-rockpro64-v2_pbs ; source 0x1000000 # For the Raspberry Pi 4: => dh;tftp 0x1000000 slackwareaarch64-current/tftp/bcm2711-rpi-4-b ; source 0x1000000 # For the Raspberry Pi 4 (invoking pre-boot shell): => dh;tftp 0x1000000 slackwareaarch64-current/tftp/bcm2711-rpi-4-b_pbs ; source 0x1000000 # For the Raspberry Pi 400: => dh;tftp 0x1000000 slackwareaarch64-current/tftp/bcm2711-rpi-400 ; source 0x1000000 # For the Raspberry Pi 400 (invoking pre-boot shell): => dh;tftp 0x1000000 slackwareaarch64-current/tftp/bcm2711-rpi-400_pbs ; source 0x1000000 Watch the Slackware Installer boot. Be merry and joyful, particularly if it all works. -- Stuart Winter Platform Architect & Developer, Slackware ARM. 08-Nov-2022