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 10:16 (UTC)] mozes |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | <note warning> | ||
- | |||
- | |||
- | ====== Installing Slackware on the Pinebook Pro ====== | ||
- | |||
- | ^ ^ ^ | ||
- | | Document name | inst_sa64_cur_rk3399_pinebookpro | | ||
- | | Document purpose | Document the installation of Slackware Linux onto the Hardware Model: [[https:// | ||
- | | Author | ||
- | | Date | 25-Oct-2021 | | ||
- | | Version | ||
- | |||
- | ==== Video Tutorial ==== | ||
- | |||
- | This tutorial is also available in video form. | ||
- | |||
- | ==== Installation Lifecycle ==== | ||
- | |||
- | The Installation consists of nine distinct stages: | ||
- | |||
- | - Acquiring all required hardware | ||
- | - Setting up local environment to support the installation over the network | ||
- | - Downloading the Slackware assets | ||
- | - Writing the Initialisation Bootware to the Micro SD card | ||
- | - Setup of the Pinebook Pro hardware | ||
- | - Initialising the Pinebook Pro with the Bootware | ||
- | - Writing the Slackware Installer to the Micro SD card | ||
- | - Booting the Slackware Installer | ||
- | - Installing Slackware | ||
- | - Completing the installation | ||
- | - Booting the Slackware OS | ||
- | |||
- | ===== Requirements ===== | ||
- | |||
- | === Hardware === | ||
- | |||
- | ^ Item ^ Specification ^ Notes ^ | ||
- | | [[https:// | ||
- | | Micro SD Card | 2GB **minimum**, | ||
- | | [[https:// | ||
- | | [[https:// | ||
- | | [[https:// | ||
- | | [[https:// | ||
- | | [[https:// | ||
- | |||
- | === Computing / Network Environment === | ||
- | |||
- | |||
- | ^ 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. | ||
- | |||
- | |||
- | ===== Hardware Setup ===== | ||
- | |||
- | In this section we'll prepare the physical aspects of the Pinebook Pro to receive Slackware Linux. | ||
- | There are seven distinct parts to this phase: | ||
- | |||
- | - Unscrew the case | ||
- | - Disable eMMC (and remove storage module) | ||
- | - Enable Sound (disabling Serial console) | ||
- | - Securely attach NVME to NVME adapter | ||
- | - Connect NVME adapter to the main board | ||
- | - Securely attach NVME adapter within the Pinebook Pro's case | ||
- | - Screw case back together | ||
- | |||
- | === 1. Remove the base cover from the Pinebook Pro === | ||
- | |||
- | == Turn the Pinebook Pro over, and remove all screws == | ||
- | |||
- | {{: | ||
- | |||
- | == Turn the Pinebook Pro back over to reveal the motherboard and interior == | ||
- | |||
- | {{: | ||
- | |||
- | == Disable booting from eMMC and remove the eMMC storage module == | ||
- | |||
- | {{: | ||
- | |||
- | From the factory, the Pinebook Pro will be provided with an eMMC storage module configured to be enabled. | ||
- | 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 must be disabled. | ||
- | |||
- | Move the eMMC control switch into the **down** position. | ||
- | |||
- | <note important> | ||
- | |||
- | To remove it, gently lift it up and out with your fingers. | ||
- | </ | ||
- | |||
- | == Ensure Sound is enabled == | ||
- | |||
- | {{: | ||
- | |||
- | This control switch dictates the usage of the 3.5" audio jack port. | ||
- | However, if you are debugging or developing, you may wish to use the Serial adapter - in which case, set this switch into the ' | ||
- | |||
- | Since this is a laptop, most people will want to enable sound: ensure that the switch is in the **' | ||
- | |||
- | |||
- | == Assemble the NVME adapter and storage module == | ||
- | |||
- | {{: | ||
- | |||
- | Connect the ribbon cable to the NVME adapter. | ||
- | |||
- | Insert the NVME storage module into the adapter interface: | ||
- | |||
- | {{: | ||
- | |||
- | Secure the NVME storage module to the adapter with a nut and bolt (ensure that the nut and bolt do not exceed the height of the storage module, otherwise the case won't close!) | ||
- | |||
- | {{: | ||
- | |||
- | Secure the NVME adapter within the Pinebook Pro's case using the three screws: | ||
- | |||
- | {{: | ||
- | |||
- | Connect the NVME adapter ribbon to the Pinebook Pro's motherboard: | ||
- | |||
- | {{: | ||
- | |||
- | |||
- | 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. | ||
- | |||
- | The hardware setup is complete. | ||
- | |||
- | ===== Software and Network Environment Setup ===== | ||
- | |||
- | In this section, we'll prepare the Linux Host Computer to receive and download the Slackware assets required for the installation. | ||
- | |||
- | === 1. Downloading the Slackware Linux AArch64 Distribution and Installation Assets | ||
- | |||
- | <note important> | ||
- | |||
- | Open a shell on the Linux Host Computer. | ||
- | |||
- | == Determine where you are within the Host Computer' | ||
- | |||
- | < | ||
- | $ cd | ||
- | $ pwd | ||
- | / | ||
- | </ | ||
- | |||
- | <note important> | ||
- | |||
- | == Prepare a directory to hold and serve the Slackware Distribution == | ||
- | |||
- | We'll download the Slackware Linux distribution into a directory named ' | ||
- | |||
- | <note warning> | ||
- | The contents of this directory will be served via an HTTP server to the LAN (Local Area Network), so only place the Slackware assets here. | ||
- | </ | ||
- | |||
- | < | ||
- | $ mkdir slackware | ||
- | $ cd slackware | ||
- | </ | ||
- | |||
- | == Installing the Slackware ARM GPG key == | ||
- | |||
- | The Slackware ARM GPG key will be used to verify the Bootware and Slackware Installation images. | ||
- | |||
- | < | ||
- | $ curl -sSL https:// | ||
- | </ | ||
- | |||
- | == Set the version of Slackware AArch64 to download == | ||
- | |||
- | At the time of writing, the only version available is ' | ||
- | < | ||
- | $ SLKVER=current | ||
- | </ | ||
- | |||
- | == Set the distribution server == | ||
- | |||
- | If you are using a mirror server rather than the master Slackware ARM server, set it here. | ||
- | The format is: < | ||
- | |||
- | < | ||
- | $ SLKSRV=ftp.arm.slackware.com:: | ||
- | </ | ||
- | |||
- | == Download the Bootware == | ||
- | |||
- | <note important> | ||
- | |||
- | The U-Boot Boot Loader that will be installed onto the SPI flash: | ||
- | < | ||
- | rsync -PavL $SLKSRV/ | ||
- | </ | ||
- | |||
- | //The Bootware (recovery/ | ||
- | |||
- | The Slackware Linux installer for the RK3399 AArch64 platform: | ||
- | < | ||
- | rsync -PavL $SLKSRV/ | ||
- | </ | ||
- | |||
- | //The Slackware Installer images are approximately 300MBytes in size.// | ||
- | |||
- | |||
- | == Verify the assets == | ||
- | |||
- | Verify the digital signature of the Slackware Installer: | ||
- | < | ||
- | $ gpg2 --verify rk3399_generic-sdimg_*.img.xz.asc | ||
- | </ | ||
- | |||
- | |||
- | Verify the digital signature of the Boot Loader: | ||
- | < | ||
- | $ gpg2 --verify flash-spi-pinebookpro.img.xz.asc | ||
- | </ | ||
- | |||
- | The output will be similar to this. You are looking for 'Good signature from Slackware ARM...' | ||
- | |||
- | < | ||
- | gpg: assuming signed data in ' | ||
- | gpg: Signature made Mon 25 Oct 2021 06:07:44 PM BST | ||
- | gpg: using RSA key F7ABB8691623FC33 | ||
- | 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: | ||
- | </ | ||
- | |||
- | == Download the Slackware AArch64 tree == | ||
- | |||
- | You will now download the Slackware distribution. This contains all of the software included within Slackware. | ||
- | |||
- | < | ||
- | rsync \ | ||
- | | ||
- | | ||
- | | ||
- | </ | ||
- | |||
- | //The Slackware distribution is approximately 4.5GBytes in size.// | ||
- | |||
- | === 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). | ||
- | |||
- | 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. | ||
- | If you have multiple Micro SD cards available, you may prefer to use separate SD cards; but this document assumes the availability of a single Micro SD card. | ||
- | |||
- | |||
- | == 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 | ||
- | </ | ||
- | |||
- | == Check what block devices are present == | ||
- | |||
- | Prior to inserting the Micro SD Card into the USB adapter, we need to see what's already present within the OS so that we can easily locate our Micro SD card: | ||
- | |||
- | < | ||
- | # lsblk | ||
- | NAME | ||
- | sda 8:0 0 465.8G | ||
- | ├─sda1 | ||
- | └─sda2 | ||
- | </ | ||
- | |||
- | As you can see, this Host Computer there is a single storage device - //sda//. | ||
- | |||
- | |||
- | Now insert the Micro SD card into your USB Card Reader and connect the adapter to a free USB port on the Host Computer. | ||
- | |||
- | Run lsblk again: | ||
- | |||
- | < | ||
- | # lsblk | ||
- | NAME | ||
- | sda 8:0 0 465.8G | ||
- | ├─sda1 | ||
- | └─sda2 | ||
- | sdc 8:32 | ||
- | sdd 8:48 | ||
- | </ | ||
- | |||
- | As you can see, //sdc// is 58GBytes in size. This is the Micro SD card (in this example, it's labeled as ' | ||
- | |||
- | If your Micro SD card has existing partitions, you will see them surfaced in this list also. | ||
- | |||
- | <note tip> | ||
- | |||
- | == 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): | ||
- | |||
- | < | ||
- | # cd / | ||
- | </ | ||
- | |||
- | Write the Bootware Initialisation Image to the device identified as our Micro SD card. | ||
- | You'll then exit the root shell, returning to your usual standard user environment: | ||
- | |||
- | <note warning> | ||
- | |||
- | < | ||
- | # xzcat flash-spi-pinebookpro.img.xz > / | ||
- | # sync | ||
- | # exit | ||
- | </ | ||
- | |||
- | The Bootware Initialisation image is now ready to boot on the Pinebook Pro. | ||
- | You are ready to move into the Hardware Initialisation setup. | ||
- | |||
- | |||
- | ===== Installing the Boot Loader to SPI flash ===== | ||
- | |||
- | You need to perform this one-time step to flash a Slackware version of the U-Boot Boot Loader to the SPI flash of the Pinebook Pro. | ||
- | |||
- | - Connect the power to the Pinebook Pro | ||
- | - Disconnect any peripherals (including the Pinebook Pro docking station) from the Pinebook Pro. | ||
- | - Insert the Micro SD card into the Pinebook Pro's Micro SD slot (right hand side, below the 3.5" audio jack port) | ||
- | - Open the lid | ||
- | - Power on the Pinebook Pro: hold down the Power button (top right of keyboard) for 3 seconds | ||
- | |||
- | {{: | ||
- | |||
- | After a few seconds, you should see a message appearing on the screen - instructing you that the process will begin in 10 seconds' | ||
- | In most cases you can simply wait until the process begins. | ||
- | |||
- | Once the process completes, **power off** the Pinebook Pro : //hold the power button for approximately **8 seconds**// | ||
- | |||
- | === Any issues with installing to SPI flash === | ||
- | |||
- | Even if there' | ||
- | |||
- | However, if not there is a ' | ||
- | |||
- | The process of masking out the SPI flash is as follows (taken from [[https:// | ||
- | |||
- | - Insert the Slackware Recovery/ | ||
- | - Press and hold ' | ||
- | - Quickly press ' | ||
- | - Release ' | ||
- | |||
- | 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 the Pinebook Pro docking station (or USB Ethernet adapter if not using the docking station) | ||
- | |||
- | *** COLD BOOT - hold down for about 8 seconds after installer | ||
- | |||
- | <note warning> Disconnect any USB devices that aren't required for the OS installation</ | ||
- | |||
- | |||
- | Start the HTTP server on the Linux Host Computer | ||
- | |||
- | As your normal (not root) user on your Linux Host Computer, within the ' | ||
- | |||
- | == Determine the Linux Host Computer' | ||
- | |||
- | We will direct the Slackware Installer to download the packages from your Linux Host Computer, thus require its IP address. | ||
- | |||
- | For most basic installations, | ||
- | |||
- | < | ||
- | $ hostname -I | ||
- | 192.168.1.15 | ||
- | </ | ||
- | |||
- | In this example, the IP address of the Linux Host Computer is 192.168.1.15 | ||
- | |||
- | |||
- | == Start the HTTP server == | ||
- | |||
- | On the Linux Host Computer, enter the Slackware distribution tree and start the HTTP web server. | ||
- | |||
- | < | ||
- | $ cd slackwareaarch64-*/ | ||
- | $ python3 -m http.server | ||
- | </ | ||
- | |||
- | <note important> | ||
- | |||
- | === Installing Slackware === | ||
- | |||
- | The date on your system may be incorrect: | ||
- | |||
- | < | ||
- | ntpdate clock.akamai.com | ||
- | hwclock -w | ||
- | </ | ||
- | |||
- | Pick option //'5 - Install from FTP/HTTP server'// | ||
- | < | ||
- | URL: http:// | ||
- | Directory: / | ||
- | </ | ||
- | |||
- | === Using the Serial adapter === | ||
- | |||
- | |||
- | | ||
- | | ||
- | ==== =====References ==== | ||
- | https:// |