Enjoy Slackware 15.0!
Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
slackwarearm:inst_sa64_cur_rk3399_pinebookpro [2021/10/26 15:24 (UTC)] mozes |
slackwarearm:inst_sa64_cur_rk3399_pinebookpro [2021/12/13 11:09 (UTC)] mozes removed |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | <note warning>October | + | <note warning>December |
+ | <note warning> | ||
+ | <note warning> | ||
====== Installing Slackware on the Pinebook Pro ====== | ====== Installing Slackware on the Pinebook Pro ====== | ||
Line 8: | Line 10: | ||
| Document name | inst_sa64_cur_rk3399_pinebookpro | | | Document name | inst_sa64_cur_rk3399_pinebookpro | | ||
| Document purpose | Document the installation of Slackware Linux onto the Hardware Model: [[https:// | | Document purpose | Document the installation of Slackware Linux onto the Hardware Model: [[https:// | ||
+ | | Version | ||
| Author | | Author | ||
- | | Date | 25-Oct-2021 | + | | Contributors |
- | | Version | + | |
- | ==== Video Tutorial ==== | ||
- | This tutorial is also available in video form. | ||
==== Installation Lifecycle ==== | ==== Installation Lifecycle ==== | ||
- | The Installation consists of nine distinct | + | The Installation consists of a number of stages: |
- Acquiring all required hardware | - Acquiring all required hardware | ||
Line 44: | Line 45: | ||
| [[https:// | | [[https:// | ||
| [[https:// | | [[https:// | ||
+ | |||
+ | == Note about the eMMC == | ||
+ | |||
+ | From the factory, your PinebookPro contains an eMMC storage module. During the development of Slackware AArch64, it was found that the life span of these storage modules is short which makes them inappropriate for housing an Operating System. Whilst it's possible to use eMMC with Slackware, this documented installation process does not provide a supported path and the eMMC should be removed. | ||
+ | |||
=== Computing / Network Environment === | === Computing / Network Environment === | ||
Line 50: | Line 56: | ||
^ 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. The Host Computer needs approximately **5GB free storage** to download the required software assets. | | 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. 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 PinebookPro to be able to contact the Linux Host Computer (to download the Slackware tree) and the Internet (to set date via NTP) | This document expects the PinebookPro to be able to obtain an IP address via DHCP over the LAN. However, you can also manually configure an IP address once the Slackware Installer has booted (note that a lack of DHCP server will stall the Installer by several seconds). | ||
+ | <note tip>Most home routers equipped with Ethernet ports provide a DHCP server which should suffice for this setup</ | ||
===== Hardware Setup ===== | ===== Hardware Setup ===== | ||
Line 121: | Line 129: | ||
{{: | {{: | ||
+ | |||
+ | == Disconnect the battery bypass cable == | ||
+ | |||
+ | The battery bypass cable must be disconnected whilst the battery is attached. | ||
+ | |||
+ | {{: | ||
The hardware set up is now complete and should look like this: | The hardware set up is now complete and should look like this: | ||
- | {{: | + | {{: |
- | Note that in this image you can see the eMMC module is // | ||
Finally, screw the Pinebook Pro's case back together. | Finally, screw the Pinebook Pro's case back together. | ||
The hardware setup is complete. | The hardware setup is complete. | ||
+ | |||
===== Software and Network Environment Setup ===== | ===== Software and Network Environment Setup ===== | ||
Line 196: | Line 210: | ||
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/ | ||
</ | </ | ||
//The Bootware (recovery/ | //The Bootware (recovery/ | ||
- | The Slackware Linux installer for the RK3399 AArch64 platform: | + | == Download the Slackware Linux installer for the RK3399 AArch64 platform |
< | < | ||
- | rsync -PavL $SLKSRV/ | + | rsync -PavL $SLKSRV/ |
+ | rsync -PavL $SLKSRV/ | ||
</ | </ | ||
//The Slackware Installer images are approximately 300MBytes in size.// | //The Slackware Installer images are approximately 300MBytes in size.// | ||
+ | == Download the Slackware tree verficiation tool == | ||
+ | < | ||
+ | rsync -PavL $SLKSRV/ | ||
+ | </ | ||
- | == Verify | + | == Download |
+ | |||
+ | You will now download the Slackware distribution. This contains all of the software included within Slackware. | ||
- | Verify the digital signature of the Slackware Installer: | ||
< | < | ||
- | $ gpg2 --verify rk3399_generic-sdimg_*.img.xz.asc | + | rsync \ |
+ | --exclude '*/ | ||
+ | | ||
+ | | ||
</ | </ | ||
+ | //The Slackware distribution is approximately 4.5GBytes in size.// | ||
+ | |||
+ | |||
+ | == Verify the assets == | ||
- | Verify the digital signature of the Boot Loader: | + | Verify the digital signature of the verification tool: |
< | < | ||
- | $ gpg2 --verify | + | gpg --verify-files scripts/ |
</ | </ | ||
Line 225: | Line 253: | ||
< | < | ||
- | gpg: assuming signed data in 'rk3399_generic-sdimg_5.14.14_1.img.xz' | + | gpg: assuming signed data in 'scripts/ |
- | gpg: Signature made Mon 25 Oct 2021 06:07:44 PM BST | + | gpg: Signature made Wed 24 Nov 2021 06:07:44 PM BST |
gpg: using RSA key F7ABB8691623FC33 | gpg: using RSA key F7ABB8691623FC33 | ||
gpg: Good signature from " | gpg: Good signature from " | ||
Line 234: | Line 262: | ||
</ | </ | ||
- | == Download the Slackware AArch64 tree == | ||
- | You will now download | + | Verify |
< | < | ||
- | rsync \ | + | chmod 755 scripts/ |
- | --exclude '*/source/ | + | ./scripts/slacksigchk.sh |
- | | + | |
- | | + | |
</ | </ | ||
- | //The Slackware distribution is approximately 4.5GBytes in size.// | + | <note warning> |
=== Write the Initialisation Bootware to the SD Card === | === Write the Initialisation Bootware to the SD Card === | ||
- | Slackware stores the U-Boot Boot Loader firmware within the SPI flash of the Hardware Models that use the RK3399 SoC (including the Pinebook Pro, RockPro64 et al). | + | Slackware stores the U-Boot Boot Loader firmware within the SPI flash of the Hardware Models that use the RK3399 SoC (including the Pinebook Pro, RockPro64 et al). |
In this step, we'll write the Boot Loader firmware to the same Micro SD card that will later be used to contain the Slackware Installer, and subsequently the Slackware OS' /boot partition. | In this step, we'll write the Boot Loader firmware to the same Micro SD card that will later be used to contain the Slackware Installer, and subsequently the Slackware OS' /boot partition. | ||
Line 257: | Line 282: | ||
== Elevate yourself to root == | == Elevate yourself to root == | ||
- | On your Host computer, obtain root: | + | On your Host Computer, obtain root: |
- | <note tip>The # prefix indicates that you're using the **root** user</ | + | <note tip>The # prefix indicates that you're using the **root** user - it's not to be typed in!</ |
< | < | ||
Line 300: | Line 325: | ||
<note tip> | <note tip> | ||
- | == Write the Bootware Initialisation Image to the Micro SD Card == | + | === Write the Bootware Initialisation Image to the Micro SD Card === |
Still as the **root** user, we'll switch to the directory to which the the Slackware assets have been downloaded (see earlier steps): | Still as the **root** user, we'll switch to the directory to which the the Slackware assets have been downloaded (see earlier steps): | ||
Line 314: | Line 339: | ||
< | < | ||
+ | # dd if=/ | ||
# xzcat flash-spi-pinebookpro.img.xz > / | # xzcat flash-spi-pinebookpro.img.xz > / | ||
# sync | # sync | ||
# exit | # exit | ||
</ | </ | ||
- | |||
- | The Bootware Initialisation image is now ready to boot on the Pinebook Pro. | ||
- | You are ready to move into the Hardware Initialisation setup. | ||
Line 339: | Line 362: | ||
In most cases you can simply wait until the process begins. | In most cases you can simply wait until the process begins. | ||
- | Once the process completes, | + | Once the process completes, //hold the power button for approximately **8 seconds**// |
=== Any issues with installing to SPI flash === | === Any issues with installing to SPI flash === | ||
Line 356: | Line 380: | ||
If this doesn' | If this doesn' | ||
| | ||
- | ===== Installation Method: Installing Slackware ===== | ||
- | | ||
- | Write the Slackware Installer to the Micro SD card. | ||
- | Start the HTTP server on the Linux Host Computer | ||
- | Power on the Pinebook Pro | ||
- | Ensure power is connected throughout the installation process. | ||
- | Connect | + | ===== Write the Slackware Installer image onto the MicroSD card ===== |
- | Setting screen font for PineBook Pro in post installation screens | + | Now that the Boot Loader has been installed to the PinebookPro' |
- | *** COLD BOOT - hold down for about 8 seconds after installer | + | |
+ | | ||
- | <note warning> Disconnect any USB devices that aren't required for the OS installation</ | + | == Elevate yourself to root == |
+ | On your Host Computer, obtain root: | ||
- | Start the HTTP server on the Linux Host Computer | + | <note tip>The # prefix indicates that you're using the **root** user</ |
- | As your normal (not root) user on your Linux Host Computer, within | + | < |
+ | $ su - ## Note the hyphen - it's required | ||
+ | </ | ||
- | == Determine | + | == Write the Slackware Installer to the Micro SD card == |
- | We will direct the Slackware Installer to download the packages from your Linux Host Computer, thus require its IP address. | + | Follow the instructions in the previous section to determine which block device name it occupies. |
+ | |||
+ | <note tip> | ||
+ | |||
+ | <note tip>The # prefix indicates that you're using the **root** user - it's not to be typed in!</ | ||
+ | |||
+ | Enter the directory into which the Slackware assets were downloaded previously: | ||
+ | < | ||
+ | # cd / | ||
+ | # xzcat rk3399_generic.sdimg_latest.img.xz > /dev/sdc ## Replace /dev/sdc with the correct block device | ||
+ | # sync | ||
+ | # exit | ||
+ | </ | ||
+ | |||
+ | == Remove the MicroSD card from the Host Computer == | ||
+ | |||
+ | You may now disconnect the USB adapter from the Host Computer and remove the MicroSD card. | ||
+ | |||
+ | ===== Start the installation media server ===== | ||
+ | |||
+ | We will direct the Slackware Installer to download the packages from a web server that we'll run temporarily on your Linux Host Computer. | ||
+ | |||
+ | == Determine the Linux Host Computer' | ||
For most basic installations, | For most basic installations, | ||
Line 384: | Line 428: | ||
< | < | ||
$ hostname -I | $ hostname -I | ||
- | 192.168.1.15 | + | 192.168.1.1 |
</ | </ | ||
- | In this example, the IP address of the Linux Host Computer is 192.168.1.15 | + | In this example, the IP address of the Linux Host Computer is **192.168.1.1** |
- | == Start the HTTP server == | + | == Start the HTTP server |
- | On the Linux Host Computer, enter the Slackware | + | As your normal (not root) user on your Linux Host Computer, |
< | < | ||
- | $ cd slackwareaarch64-*/ | + | $ cd ~/ |
$ python3 -m http.server | $ python3 -m http.server | ||
</ | </ | ||
Line 403: | Line 447: | ||
=== Installing Slackware === | === Installing Slackware === | ||
- | The date on your system | + | To proceed, you must have: |
+ | |||
+ | * Assembled the PinebookPro as documented above | ||
+ | * Connected the Docking station | ||
+ | * Connected the Ethernet cable, and have a DHCP server serving the network from which the PinebookPro can obtain an IP address | ||
+ | * Inserted the Micro SD card containing the Slackware Installer into the PinebookPro' | ||
+ | |||
+ | == Begin installation == | ||
+ | |||
+ | <note warning> Disconnect any USB storage devices that aren't required for the OS installation</ | ||
+ | |||
+ | == Power on the PinebookPro == | ||
+ | |||
+ | Press the Power Button for aproximately two seconds | ||
+ | |||
+ | After a few seconds, the you will see the following on screen: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | It takes several seconds to load and boot the installer, and it may take several seconds more for any further output to appear on the screen. | ||
+ | The process of obtaining an IP address via DHCP can also delay the ability to interact with the Installer. | ||
+ | |||
+ | Once an IP address has been obtained, you will be presented with a prompt. | ||
+ | Press **ENTER** | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | == Set the keymap == | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | == Set the date/time == | ||
+ | |||
+ | Sync the date from a highly-available NTP server: | ||
< | < | ||
Line 409: | Line 491: | ||
hwclock -w | hwclock -w | ||
</ | </ | ||
+ | |||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | == Setup disk partitions == | ||
+ | |||
+ | For this installation a basic partitioning scheme will be created. | ||
+ | |||
+ | Partition | ||
+ | |||
+ | ^ Partition number ^ Device name ^ Size ^ Purpose ^ | ||
+ | | 1 | / | ||
+ | | 2 | / | ||
+ | |||
+ | <note tip>/ | ||
+ | |||
+ | Open fdisk against the / | ||
+ | |||
+ | < | ||
+ | fdisk / | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | Create the Swap partition: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Type ' | ||
+ | |||
+ | Type ' | ||
+ | |||
+ | Press ENTER for the 'First sector' | ||
+ | |||
+ | Type ' | ||
+ | |||
+ | |||
+ | Change the partition type to ' | ||
+ | Type ' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Create the partition for the root filesystem ('/' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Type ' | ||
+ | Press ENTER to accept the defaults - this will create partition 2 as the maximum size available. | ||
+ | |||
+ | |||
+ | Type ' | ||
+ | Type ' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Type ' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Type ' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | fdisk will now exit. | ||
+ | |||
+ | == Load the Setup menu == | ||
+ | |||
+ | {{: | ||
+ | |||
+ | == Setup Swap partition == | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | == Select and format the partition for the OS' root file system == | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | == 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 parttions to this later, you will want to choose ' | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | == Boot Loader Configuration == | ||
+ | |||
+ | The Installer will configure the Boot Loader and the OS' /etc/fstab automatically: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Note: the screenshot shows /dev/sda2. This is from the RockPro64 and needs replacing - it will be the NVME block device name. | ||
+ | |||
+ | |||
+ | == Select Source Media == | ||
+ | |||
+ | {{: | ||
+ | |||
+ | <note tip>The IP address here is the one you determine earlier within these instructions. | ||
Pick option //'5 - Install from FTP/HTTP server'// | Pick option //'5 - Install from FTP/HTTP server'// | ||
< | < | ||
- | URL: http:// | + | URL: http:// |
Directory: / | Directory: / | ||
</ | </ | ||
- | == Pre first boot tweaks == | ||
- | Updating the Operating System Initial RAM Disk. [[https://www.youtube.com/ | + | {{:slackwarearm: |
- | USing os-initrd-mgr tool. | + | |
- | chroot | + | |
+ | {{: | ||
- | == Post installation tweaks == | + | {{: |
- | LCD brightness | + | {{: |
- | For Rock Pro - fAN | + | {{: |
- | === Using the Serial adapter === | + | == Package Series Selection |
+ | You can now choose the package sets to install. | ||
+ | A full Slackware installation will occupy approximately 15GB. | ||
+ | |||
+ | <note tip>If you do not plan to use the graphical window manager such as KDE, you should de-select it.</ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Pick the ' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | The packages will begin installing: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | == Configure the Console Settings == | ||
+ | |||
+ | If you plan on using the UART/' | ||
+ | If you plan on exclusively using an HDMI monitor, you should pick ' | ||
+ | |||
+ | <note tip>This setting can be reset to the default by editing / | ||
+ | |||
+ | {{: | ||
+ | |||
+ | == 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 == | ||
+ | |||
+ | The Micro SD card is transformed from being the Slackware Installer into the Slackware OS's /boot partition. | ||
+ | At this stage, if the installation has worked for you (at certain points in the Slackware installer you are past the point of no return) you can delete the Installer. | ||
+ | However, if something has gone wrong you can reset the PinebookPro and reboot the installer without having to re-deploy the Slackware Installer image from your Linux Host Computer. | ||
+ | |||
+ | Generally you should say ' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | == Post Installation Configuration == | ||
+ | |||
+ | The Slackware Installer will walk you through the standard Slackware setup. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | == Select a Console Font == | ||
+ | |||
+ | It's recommended for the RockPro64 and Pinebook Pro that a larger console font is configured. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | {{: | ||
+ | |||
+ | The recommended font is ' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | == Continue Post Installation Configuration == | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | == Configure GUI Window Manager == | ||
+ | |||
+ | This author recommends using XFCE as it's light weight versus KDE. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | == Continue Post Installation Configuration == | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | == Slackware Setup Complete == | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Generally you'll want to reboot into the OS. | ||
+ | |||
+ | However, if you are planning on setting up RAID or need to customise the Operating System Initial RAM Disk, you should select ' | ||
+ | |||
+ | The Slackware OS will be found within '/ | ||
+ | You can use the ' | ||
+ | |||
+ | |||
+ | == Booting the Slackware OS == | ||
+ | |||
+ | {{: | ||
+ | |||
+ | == Login to the Slackware OS == | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 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. | ||
+ | |||
+ | Simple press CONTROL+c to quit it. | ||
+ | |||
+ | You may now delete the slackwareaarch64 tree, or perhaps keep it around to subsequently update it. | ||
+ | |||
+ | |||
+ | ===== Post Installation Configuration ===== | ||
+ | |||
+ | There are a few post-installation configuration tasks to complete. | ||
+ | |||
+ | |||
+ | === Add a plebeian user === | ||
+ | |||
+ | You should add a plebeian (non-root) user using the ' | ||
+ | |||
+ | This is documented [[https:// | ||
+ | |||
+ | === LCD brightness === | ||
+ | |||
+ | The Slackware Installer automatically configures the maximum brightness, but this doesn' | ||
+ | |||
+ | You may want to add this to / | ||
+ | < | ||
+ | echo 4000 > / | ||
+ | </ | ||
+ | |||
+ | This may be included within the OS as standard at some point. | ||
+ | |||
+ | |||
+ | ===== Known bugs ===== | ||
+ | |||
+ | ===== Using the Serial/UART adapter ===== | ||
+ | |||
+ | This documentation discusses using the RockPro64 without the UART/Serial console. | ||
+ | |||
+ | If you'd like to use one, you'll need to adjust the switch that toggles Sound vs UART, and connect the adapter (details in the Hardware requirements section above). | ||
+ | |||
+ | You can then connect the USB end of the adapter into your Linux Host Computer, and use the following command. | ||
+ | This assumes that there are no other similar adapters occupying / | ||
+ | |||
+ | < | ||
+ | screen -T screen-256color / | ||
+ | </ | ||
- | | ||
- | | ||
- | ==== =====References ==== | ||
- | https:// |