[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
slackwarearm:inst_sa64_rk3399_rockpro64 [2022/06/24 10:10 (UTC)] – [Post Installation Configuration] mozes | slackwarearm:inst_sa64_rk3399_rockpro64 [2024/03/19 09:34 (UTC)] (current) – mozes | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | [[https:// | ||
====== Installing Slackware on the RockPro64 ====== | ====== Installing Slackware on the RockPro64 ====== | ||
Line 6: | Line 7: | ||
| Platform | AArch64/ | | Platform | AArch64/ | ||
| Hardware Model |Rock Pro64 | | | Hardware Model |Rock Pro64 | | ||
- | | Document Version | 1.00, Dec 2021 | | + | | Document Version | 1.04, Mar 2024 | |
| Author | Stuart Winter < | | Author | Stuart Winter < | ||
| Contributors | Brenton Earl < | | Contributors | Brenton Earl < | ||
- | |||
Line 16: | Line 16: | ||
This tutorial is also available in [[https:// | This tutorial is also available in [[https:// | ||
+ | < | ||
Pine64 also provide unboxing and setup [[https:// | Pine64 also provide unboxing and setup [[https:// | ||
Line 29: | Line 30: | ||
- Acquiring all required hardware | - Acquiring all required hardware | ||
- | - Setting up local environment to support the installation over the network | ||
- Downloading and verifying the Slackware assets | - Downloading and verifying the Slackware assets | ||
- Writing the Initialisation Bootware to the Micro SD card | - Writing the Initialisation Bootware to the Micro SD card | ||
Line 47: | Line 47: | ||
^ Item ^ Specification ^ Notes ^ | ^ Item ^ Specification ^ Notes ^ | ||
- | | [[https:// | + | | [[https:// |
| [[https:// | | [[https:// | ||
- | | [[https:// | + | | [[https:// |
| [[https:// | | [[https:// | ||
| [[https:// | | [[https:// | ||
| Jumper or Dupont cable | See images below | This is to bridge the pins required for initial firmware deployment and/or Hardware Model recovery| | | Jumper or Dupont cable | See images below | This is to bridge the pins required for initial firmware deployment and/or Hardware Model recovery| | ||
- | | [[https:// | ||
- | | [[https:// | ||
- | | [[https:// | ||
- | | [[https:// | ||
| [[https:// | | [[https:// | ||
| [[https:// | | [[https:// | ||
Line 62: | Line 58: | ||
| [[https:// | | [[https:// | ||
+ | |||
+ | == Hardware: Storage == | ||
+ | |||
+ | This table provides a list of options that have been tested with Slackware AArch64 on the RockPro64 - you only need one storage controller. | ||
+ | |||
+ | ^ Item ^ Specification ^ Notes ^ | ||
+ | | [[https:// | ||
+ | | [[https:// | ||
+ | | [[https:// | ||
+ | | [[https:// | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | <note important> | ||
=== Notes on storage setup === | === Notes on storage setup === | ||
Line 80: | Line 90: | ||
^ Item ^ Specification ^ Notes ^ | ^ Item ^ Specification ^ Notes ^ | ||
- | | Host Computer: an Internet-connected computer running an existing Linux distribution | Preferably a full installation of Slackware x86/64, but any distribution that can provide the required Python environment and HTTP server module. | + | | Host Computer: an Internet-connected computer running an existing Linux distribution | The Host Computer needs approximately **5GB free storage** to download the required software assets. |
- | | Network DHCP server | Provide an IP address and routing information for the RockPro64 | + | |
- | <note tip>Most home routers equipped with Ethernet ports provide a DHCP server which should suffice for this setup</ | ||
===== Hardware Setup ===== | ===== Hardware Setup ===== | ||
Line 108: | Line 116: | ||
* Connect the CPU fan or heat sink | * Connect the CPU fan or heat sink | ||
+ | |||
+ | |||
+ | <note tip>If you prefer hardware rather than software control for the fan over software, check out [[https:// | ||
+ | |||
+ | |||
* Connect the Wifi & Bluetooth module (optional) | * Connect the Wifi & Bluetooth module (optional) | ||
* Connect the storage (the image shows the USB-to-SATA adapter, but you may use the PCI card). If using the USB adapter, connect it to the **blue USB3.0 port**. | * Connect the storage (the image shows the USB-to-SATA adapter, but you may use the PCI card). If using the USB adapter, connect it to the **blue USB3.0 port**. | ||
Line 166: | Line 179: | ||
</ | </ | ||
- | == Set the distribution server == | + | == Set the Hardware Model == |
+ | |||
+ | < | ||
+ | |||
+ | === Set the Internet media distribution server | ||
If you are using a mirror server rather than the master Slackware ARM server, set it here. | If you are using a mirror server rather than the master Slackware ARM server, set it here. | ||
Line 181: | Line 198: | ||
The U-Boot Boot Loader that will be installed onto the SPI flash: | The U-Boot Boot Loader that will be installed onto the SPI flash: | ||
< | < | ||
- | rsync -PavL $SLKSRV/ | + | $ rsync -PavL $SLKSRV/ |
- | rsync -PavL $SLKSRV/ | + | $ rsync -PavL $SLKSRV/ |
</ | </ | ||
//The Bootware (recovery/ | //The Bootware (recovery/ | ||
- | == Download the Slackware Linux installer for the RK3399 AArch64 platform | + | === Download the Slackware Linux Installer === |
- | < | + | |
- | rsync -PavL $SLKSRV/ | + | |
- | rsync -PavL $SLKSRV/ | + | |
- | </ | + | |
- | + | ||
- | //The Slackware Installer images are approximately 300MBytes in size.// | + | |
- | == Download the Slackware tree verification tool == | ||
< | < | ||
- | rsync -PavL $SLKSRV/ | + | $ rsync -PavL $SLKSRV/ |
+ | $ rsync -PavL $SLKSRV/ | ||
</ | </ | ||
- | == Download the Slackware | + | //The Slackware |
- | You will now download | + | === Verify |
- | < | + | < |
- | rsync \ | + | |
- | | + | |
- | | + | |
- | $SLKSRV/ | + | |
- | </ | + | |
- | + | ||
- | //The Slackware distribution is approximately 4.5GBytes in size.// | + | |
- | + | ||
- | + | ||
- | == Verify the assets == | + | |
- | + | ||
- | Verify the digital signature of the verification tool: | + | |
- | < | + | |
- | gpg --verify-files | + | |
- | </ | + | |
- | + | ||
- | The output will be similar to this. You are looking for 'Good signature from Slackware ARM...' | + | |
+ | The output should be similar to this: | ||
< | < | ||
- | gpg: assuming signed data in ' | + | gpg: assuming signed data in `flash-spi-rockpro64.img.xz' |
- | gpg: Signature made Wed 24 Nov 2021 06:07:44 PM BST | + | gpg: Signature made Fri 27 Jan 2023 08:53:24 AM -00 using RSA key ID 1623FC33 |
- | gpg: using RSA key F7ABB8691623FC33 | + | gpg: Good signature from " |
- | gpg: Good signature from " | + | gpg: WARNING: This key is not certified with a trusted signature! |
+ | gpg: There is no indication that the signature belongs to the owner. | ||
+ | Primary key fingerprint: | ||
+ | gpg: assuming signed data in `slkaio.img.xz' | ||
+ | gpg: Signature made Thu 19 Jan 2023 08:34:27 PM -00 using RSA key ID 1623FC33 | ||
+ | gpg: Good signature from " | ||
gpg: WARNING: This key is not certified with a trusted signature! | gpg: WARNING: This key is not certified with a trusted signature! | ||
gpg: There is no indication that the signature belongs to the owner. | gpg: There is no indication that the signature belongs to the owner. | ||
Primary key fingerprint: | Primary key fingerprint: | ||
- | </ | ||
- | |||
- | |||
- | Verify the Bootware and Slackware tree: | ||
- | |||
- | < | ||
- | chmod 755 scripts/ | ||
- | ./ | ||
</ | </ | ||
Line 306: | Line 298: | ||
< | < | ||
- | # dd if=/ | + | # dd if=/ |
- | # xzcat flash-spi-rockpro64.img.xz > /dev/sdc ## Replace /dev/sdc with the correct block device (presented above by the lsblk tool) on your Host Computer | + | # xzcat flash-spi-rockpro64.img.xz > /dev/XXX ## Replace /dev/XXX with the correct block device (presented above by the lsblk tool) on your Host Computer |
# sync | # sync | ||
</ | </ | ||
- | Logout of the root user: | ||
- | < | + | == Remove the Micro SD card from the Host Computer == |
- | # logout | + | |
- | </code> | + | Now that we've written the Bootware Initialisation Image to the Micro SD card, you need to remove it from the Host Computer. |
+ | |||
+ | |||
+ | <note tip>Keep the root shell open as we'll be using it again in the subsequent steps.</note> | ||
- | The Bootware Initialisation image is now ready to boot on the RockPro64. | ||
===== Installing the Boot Loader to SPI flash ===== | ===== Installing the Boot Loader to SPI flash ===== | ||
Line 357: | Line 350: | ||
* Remove the MicroSD card from the RockPro64 | * Remove the MicroSD card from the RockPro64 | ||
* Insert the MicroSD card back into the Host Computer (as in the earlier section) | * Insert the MicroSD card back into the Host Computer (as in the earlier section) | ||
- | |||
- | == Elevate yourself to root == | ||
- | |||
- | On your Host Computer, obtain root: | ||
- | |||
- | <note tip>The # prefix indicates that you're using the **root** user</ | ||
- | |||
- | < | ||
- | $ su - ## Note the hyphen - it's required | ||
- | </ | ||
== Write the Slackware Installer to the Micro SD card == | == Write the Slackware Installer to the Micro SD card == | ||
Line 379: | Line 362: | ||
< | < | ||
# cd / | # cd / | ||
- | # xzcat rk3399_generic.sdimg_latest.img.xz | + | # xzcat slkaio.img.xz |
# sync | # sync | ||
# exit | # exit | ||
Line 388: | Line 371: | ||
You may now disconnect the USB adapter from the Host Computer and remove the MicroSD card. | You may now disconnect the USB adapter from the Host Computer and remove the MicroSD card. | ||
- | ===== Start the installation media server ===== | + | Run lsblk again to confirm |
- | + | ||
- | We will direct the Slackware Installer | + | |
- | + | ||
- | == Determine | + | |
- | + | ||
- | For most basic installations, | + | |
< | < | ||
- | $ hostname | + | # lsblk -d |
- | 192.168.1.1 | + | NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS |
+ | sda 8:0 0 465.8G 0 disk | ||
</ | </ | ||
- | In this example, the IP address of the Linux Host Computer is **192.168.1.1** | ||
- | + | == Logout from the root user == | |
- | == Start the HTTP server on the Linux Host Computer | + | |
- | + | ||
- | As your normal (not root) user on your Linux Host Computer, we'll enter the Slackware AArch64 directory and start the HTTP web server: | + | |
< | < | ||
- | $ cd ~/ | + | # logout |
- | $ python3 -m http.server | + | |
</ | </ | ||
- | <note important> | + | You no longer require |
=== Installing Slackware === | === Installing Slackware === | ||
Line 422: | Line 395: | ||
* Connected the HDMI monitor | * Connected the HDMI monitor | ||
* Connected the keyboard (and optionally, mouse) | * Connected the keyboard (and optionally, mouse) | ||
- | * Connected the Ethernet cable, and have a DHCP server serving the network from which the RockPro64 can obtain an IP address | ||
* Inserted the Micro SD card containing the Slackware Installer | * Inserted the Micro SD card containing the Slackware Installer | ||
Line 458: | Line 430: | ||
{{: | {{: | ||
+ | |||
+ | == Font size == | ||
+ | |||
+ | If you're using a smaller monitor, such as one with a screen size less than 20 inches, it may be necessary to adjust the console font size to ensure that menus and other interface elements fit correctly on the screen. | ||
+ | |||
+ | < | ||
+ | |||
== Set the date/time == | == Set the date/time == | ||
Line 563: | Line 542: | ||
{{: | {{: | ||
- | |||
- | == Resize /boot partition to full extent == | ||
- | |||
- | The Micro SD card that contains the /boot partition presently occupies approximately 1GB. | ||
- | Most MicroSD cards are several GBs in size. This option will resize the partition to its full capacity to avoid wasting storage. | ||
- | If you plan on manually adding partions to this later, you will want to choose ' | ||
- | |||
- | <note important> | ||
- | |||
- | {{: | ||
- | |||
- | {{: | ||
- | |||
- | {{: | ||
== Boot Loader Configuration == | == Boot Loader Configuration == | ||
Line 599: | Line 564: | ||
== Select Source Media == | == Select Source Media == | ||
- | {{: | ||
- | <note tip>The IP address here is the one you determine earlier within these instructions. The port should always be 8000</ | + | {{: |
- | Pick option //'5 - Install from FTP/HTTP server'// | + | Press ENTER to say 'Yes'. |
- | < | + | |
- | URL: http://192.168.1.1: | + | |
- | Directory: / | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | {{: | + | |
- | + | ||
- | {{: | + | |
- | {{: | + | If you would like to install from an alternate media source, pick ' |
- | {{: | + | Ordinarily you should always say ' |
- | {{: | ||
== Package Series Selection == | == Package Series Selection == | ||
Line 646: | Line 600: | ||
{{: | {{: | ||
- | == Install the Boot Loader to SPI flash == | ||
- | |||
- | If this is the first time you have installed Slackware, you must flash the Boot Loader. | ||
- | The initial Boot Loader flash performed earlier in these instructions typically contains an older version of the Boot Loader, where as the version packaged within the Installer contains the latest tested version. | ||
- | |||
- | {{: | ||
- | |||
- | {{: | ||
- | |||
- | {{: | ||
- | |||
- | {{: | ||
== Remove the Slackware Installer from the SD card == | == Remove the Slackware Installer from the SD card == | ||
Line 670: | Line 612: | ||
<note tip>You may be tempted to retain the Slackware Installer, but note that the Installer contains Linux Kernel modules for the Kernel that the Installer was originally shipped with. This means that as soon as you upgrade the Slackware Kernel package, the Installer will fail to boot. The option to retain the Installer is present purely because on a number of occasions, this author only realised that the installation was incorrectly performed upon completion, and needed to reinstall. | <note tip>You may be tempted to retain the Slackware Installer, but note that the Installer contains Linux Kernel modules for the Kernel that the Installer was originally shipped with. This means that as soon as you upgrade the Slackware Kernel package, the Installer will fail to boot. The option to retain the Installer is present purely because on a number of occasions, this author only realised that the installation was incorrectly performed upon completion, and needed to reinstall. | ||
+ | |||
+ | == Install the Boot Loader to SPI flash == | ||
+ | |||
+ | The initial Boot Loader flash performed earlier in these instructions typically contains an older version of the Boot Loader, where as the version packaged within the Installer contains the most recent version. | ||
+ | |||
+ | When an upgrade is required, in most cases you'll see a screen like this which provides information about the currently installed Boot Loader and the newer version available: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | If the installed Boot Loader matches the currently available version, you will be advised that flashing is unnecessary. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | If you proceed with flashing, the work flow looks like this and takes approximately two minutes to complete. | ||
+ | <note important> | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
== Post Installation Configuration == | == Post Installation Configuration == | ||
The Slackware Installer will walk you through the standard Slackware setup. | The Slackware Installer will walk you through the standard Slackware setup. | ||
+ | |||
{{: | {{: | ||
Line 743: | Line 709: | ||
== Booting the Slackware OS == | == Booting the Slackware OS == | ||
+ | |||
+ | The Slackware Installer will reboot into the Slackware OS. | ||
{{: | {{: | ||
Line 751: | Line 719: | ||
You may now login as ' | You may now login as ' | ||
- | |||
- | == Quit the HTTP media server == | ||
- | |||
- | On your Linux Host Computer, you can return to the HTTP server that we started earlier on. | ||
- | In the terminal window in which you started it, you will see the access logs from the Slackware Installer downloading the packages. | ||
- | |||
- | Press // | ||
- | |||
- | You may now delete the slackwareaarch64 tree, or perhaps keep it around to subsequently update it. | ||
Line 776: | Line 735: | ||
The CPU fan speed is controlled statically during boot. | The CPU fan speed is controlled statically during boot. | ||
+ | |||
By default it'll set the speed to ' | By default it'll set the speed to ' | ||
Line 783: | Line 743: | ||
</ | </ | ||
- | Within that configuration you'll find examples. | + | Within that configuration you'll find examples. |
+ | If you do not have a fan (typically you'll have a heatsink instead) you can also disable the fan. Within the config file uncomment the variable '' | ||
== NTP (Network Time Protocol) setup == | == NTP (Network Time Protocol) setup == | ||
Line 790: | Line 751: | ||
If your RockPro64 does not have an RTC battery backup, you may wish to configure it to [[https:// | If your RockPro64 does not have an RTC battery backup, you may wish to configure it to [[https:// | ||
- | == Keeping the Slackware OS up to date == | + | ====== Managing Slackware on the RockPro64 ====== |
+ | |||
+ | ===== Keeping the Slackware OS up to date ===== | ||
One of the preferred tools to keep your system up to date is [[slackware: | One of the preferred tools to keep your system up to date is [[slackware: | ||
Line 796: | Line 759: | ||
<note tip> | <note tip> | ||
- | == Use a graphical login manager == | + | |
+ | ===== Loading Additional Linux Kernel Modules within the OS Proper ===== | ||
+ | |||
+ | Often Kernel modules for discovered hardware will be automatically loaded, but occasionally you will need to manually configure the loading of some modules. | ||
+ | |||
+ | < | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | This file is a shell script that is run as one of the last steps before the OS has fully booted. | ||
+ | |||
+ | Configuration files within the directory ''/ | ||
+ | |||
+ | ===== Loading Additional Linux Kernel Modules early in the boot sequence ===== | ||
+ | |||
+ | There are a number of peripherals that may require Kernel modules loading early on in the boot sequence. | ||
+ | An example of this would be RTCs (Real Time Clocks) or storage controllers that are required to access the file systems on which the OS lives. | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | To load Kernel modules during the early boot sequence, read: | ||
+ | < | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | As root, the easiest way to begin is by renaming the example script: | ||
+ | |||
+ | < | ||
+ | mv / | ||
+ | </ | ||
+ | |||
+ | Then add the appropriate module loading commands to: ''/ | ||
+ | You can also add shell code here to initialise a peripheral - writing something to the peripheral' | ||
+ | |||
+ | |||
+ | ===== Use a graphical login manager | ||
If you prefer to use a graphical login manager, you can configure the default runlevel as 4: | If you prefer to use a graphical login manager, you can configure the default runlevel as 4: | ||
Line 806: | Line 804: | ||
</ | </ | ||
- | === Reducing Boot Time === | + | ===== Slackware repository partition ===== |
+ | |||
+ | The Slackware Installer image contains a type '' | ||
+ | |||
+ | < | ||
+ | root@slackware: | ||
+ | root@slackware: | ||
+ | This file system contains the Slackware repository that is used during the | ||
+ | installation of Slackware. | ||
+ | |||
+ | Once you've booted into your OS you can delete or change this partition if you | ||
+ | wish, or perhaps you might like to retain it for future reference. | ||
+ | |||
+ | root@slackware: | ||
+ | </ | ||
+ | |||
+ | <note tip>Most users simply leave the partition alone, as it causes no issues.</ | ||
+ | |||
+ | ===== Customising the Slackware Linux Kernel ===== | ||
+ | |||
+ | If you'd like to customise the Linux Kernel, the easiest way is to follow the [[slackwarearm: | ||
+ | |||
+ | |||
+ | ===== Reducing Boot Time ===== | ||
Slackware ARM ships with a generic OS InitRD (Operating System Initial RAM Disk - the environment that prepares the machine to boot the Operating System Proper), so as to support a wide range of Hardware Models. | Slackware ARM ships with a generic OS InitRD (Operating System Initial RAM Disk - the environment that prepares the machine to boot the Operating System Proper), so as to support a wide range of Hardware Models. | ||
Line 835: | Line 856: | ||
+ | ===== Installing extra Software ===== | ||
- | ===== Supporting the Slackware | + | Slackware |
- | 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, | + | The best way to add new software is to [[slackwarearm: |
- | Once you find yourself enjoying using the ARM port of Slackware, please take a few moments to [[https:// | ||
- | ===== Contributing to the Slackware ARM project | + | ===== Managing |
- | There are a plethora | + | During the Slackware installation process, you are offered the opportunity to flash the Boot Loader to the SPI flash. |
- | If you'd like to help Slackware | + | Occasionally, |
+ | |||
+ | Slackware provides | ||
+ | |||
+ | === Upgrading the Boot Loader firmware === | ||
+ | |||
+ | - Upgrade to the latest available version | ||
+ | - As root, run the '' | ||
+ | |||
+ | In this example we'll run the Boot Loader management tool as the '' | ||
+ | < | ||
+ | $ su -c ' | ||
+ | </ | ||
+ | |||
+ | When an upgrade is required, in most cases you'll see a screen like this which provides information about the currently installed Boot Loader | ||
+ | |||
+ | {{: | ||
+ | |||
+ | If you've wiped the Boot Loader from SPI flash or have installed a non-Slackware | ||
+ | |||
+ | |||
+ | {{: | ||
+ | |||
+ | If the installed Boot Loader matches the currently available version, you will be advised that flashing is unnecessary. | ||
+ | |||
+ | {{:slackwarearm:slackarm-flashing-not-required.jpg? | ||
+ | |||
+ | If you proceed with flashing, | ||
+ | <note important> | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
Line 855: | Line 910: | ||
If you'd like to use one, there are two that have been tested. | If you'd like to use one, there are two that have been tested. | ||
- | |||
Line 876: | Line 930: | ||
Once wired up, connect the USB end of the adapter into your Linux Host Computer, and use the following command. | Once wired up, connect the USB end of the adapter into your Linux Host Computer, and use the following command. | ||
- | <note tip>This assumes that there are no other similar adapters occupying / | + | <note tip>This assumes that there are no other similar adapters occupying |
< | < | ||
Line 884: | Line 938: | ||
===== Known bugs and limitations ===== | ===== Known bugs and limitations ===== | ||
+ | |||
+ | None presently. | ||
+ | |||
+ | |||
+ | ===== Supporting 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, | ||
+ | |||
+ | Once you find yourself enjoying using the ARM port of Slackware, please take a few moments to [[https:// | ||
+ | |||
+ | ===== Contributing to the Slackware ARM project ===== | ||
+ | |||
+ | There are a plethora of ARM devices on the market which requires initial R&D and continuous testing. | ||
+ | If you'd like to help Slackware support more ARM boards, please check out [[https:// | ||
+ | |||
+ | |||