[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.

Welcome to the Slackware Documentation Project

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
slackwarearm:inst_sa64_rk3399_pinebookpro [2023/08/03 11:26 (UTC)] mozesslackwarearm:inst_sa64_rk3399_pinebookpro [2024/03/11 16:19 (UTC)] (current) – Removed KDE suspend action mozes
Line 5: Line 5:
 ^          ^       ^ ^          ^       ^
 | 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://www.pine64.org/pinebook-pro/|Pinebook Pro]] | +| Document purpose | Document the installmaation of Slackware Linux onto the Hardware Model: [[https://www.pine64.org/pinebook-pro/|Pinebook Pro]] | 
-| Version          | 1.01Jan 2023 |+| Version          | 1.04Mar 2024 |
 | Author           | Stuart Winter <mozes@slackware> | | Author           | Stuart Winter <mozes@slackware> |
 | Collaborators    | Brenton Earl <el0226@slackware>  (R&D for the initial integration work) | | Collaborators    | Brenton Earl <el0226@slackware>  (R&D for the initial integration work) |
Line 98: Line 98:
 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. 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. 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. == == Move the eMMC control switch into the **down** position. ==
Line 105: Line 106:
 To remove it, gently lift it up and out with your fingers. To remove it, gently lift it up and out with your fingers.
 </note> </note>
 +
 +
 +<note important>Newer versions of the Pinebook Pro do not permit disabling the eMMC via the switch, as depicted in the image below.  You must remove the eMMC module this case.</note>
 +
 +{{:slackwarearm:pbpro-emmc-inaccess.png?400|}}
  
 === Ensure Sound is enabled === === Ensure Sound is enabled ===
Line 370: Line 376:
 === Any issues with installing to SPI flash === === Any issues with installing to SPI flash ===
  
-Even if there's an existing distribution that has installed a Boot Loader to the SPI flash, the Slackware Micro SD card Recovery/Initialisation image should boot and work as described above. +The Slackware Micro SD card Recovery/Initialization image typically boots and operates as described, even if a distribution has already installed a Boot Loader onto the SPI flash. However, its success hinges on the configuration of the current SPI flash-embedded Boot Loader. If this Boot Loader isn't set up to boot from the SD cardyou might need to circumvent the SPI flash to initiate the SD card boot.
-However, it depends how the boot loader that's currently occupying the SPI flash is configured it may not boot the SD card. In which case you'll need to bypass the SPI flash.+
  
 +<note>The Pinebook Pro has an immutable first stage Boot Loader which, when the SPI flash doesn't contain an executable Boot Loader, will attempt to boot from the SD card.</note>
  
 == Bypass SPI flash - method 1 == == Bypass SPI flash - method 1 ==
Line 389: Line 395:
  
 [[https://www.linuxquestions.org/questions/slackware-arm-108/pinebook-pro-conundrum-4175717946/page2.html#post6388004|This thread]] on the Slackware ARM LinuxQuestions forum contains instructions to bypass the SPI flash to enable booting the SD Card.     [[https://www.linuxquestions.org/questions/slackware-arm-108/pinebook-pro-conundrum-4175717946/page2.html#post6388004|This thread]] on the Slackware ARM LinuxQuestions forum contains instructions to bypass the SPI flash to enable booting the SD Card.    
 +
 +This is also described in one of the [[https://youtu.be/knOqICIOwdM?t=2727|Slackware ARM Vlog episodes.]]
 +
 +== Bypass SPI flash - method 3 ==
 +
 +If you encounter difficulties launching the Slackware Boot Loader flashing tool and find that the pre-installed Linux distribution keeps booting, an option is to clear the SPI flash using that Linux distribution.
 +
 +Obtain 'root' on the Linux distribution:
 +
 +<code>
 +$ dd if=/dev/zero of=/dev/mtd0 bs=1M count=3
 +</code>
 +
 +Now insert the Slackware Boot Loader flashing SD card and reboot.
  
 == Bypass SPI flash - more information == == Bypass SPI flash - more information ==
Line 659: Line 679:
 <note tip>This setting can be adjusted later by editing ''/boot/extlinux/extlinux.conf'' and removing the ''console='' Kernel cmdline parameter</note> <note tip>This setting can be adjusted later by editing ''/boot/extlinux/extlinux.conf'' and removing the ''console='' Kernel cmdline parameter</note>
  
-== 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. 
- 
-{{:slackwarearm:36-installingbootloader-spiflash-pinebookpro.jpg?400|}} 
- 
-{{:slackwarearm:37-InstallingBootLoader-SPIFlash-readytogo.jpg?400|}} 
- 
-{{:slackwarearm:38-installingbootloader-spiflash-inprogress-pinebookpro.jpg?400|}} 
- 
-{{:slackwarearm:39-InstallingBootLoader-SPIFlash-complete.jpg?400|}} 
  
 == Remove the Slackware Installer from the SD card == == Remove the Slackware Installer from the SD card ==
Line 684: Line 692:
  
 <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.  Retaining the Installer avoids the requirement to re-deploy the image to the SD card.</note> <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.  Retaining the Installer avoids the requirement to re-deploy the image to the SD card.</note>
 +
 +== 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 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:
 +
 +{{:slackwarearm:slackarm-flashing-required-pbpro.png?400|}}
 +
 +
 +If the installed Boot Loader matches the currently available version, you will be advised that flashing is unnecessary.  However, you can re-flash it if you wish.
 +
 +{{:slackwarearm:slackarm-flashing-not-required-pbpro.png?400|}}
 +
 +If you proceed with flashing, the work flow looks like this and takes approximately two minutes to complete.
 +<note important>You must ensure the system has sufficient power/is plugged in.  If the machine powers off before flashing completes, you would need to re-flash using the bootable SD card as described earlier within this guide.</note> 
 +
 +{{:slackwarearm:37-InstallingBootLoader-SPIFlash-readytogo.jpg?400|}}
 +
 +{{:slackwarearm:38-installingbootloader-spiflash-inprogress-pinebookpro.jpg?400|}}
 +
 +{{:slackwarearm:39-InstallingBootLoader-SPIFlash-complete.jpg?400|}}
  
  
Line 747: Line 778:
 {{:slackwarearm:60-Setupmenu-EXITselected.jpg?400|}} {{:slackwarearm:60-Setupmenu-EXITselected.jpg?400|}}
  
 +
 +<note warning>Some Pinebook Pro models encounter an issue where the MMC (SD card) interface fails to come online after a reboot. To resolve this, it's advisable to **power off** the machine rather than relying solely on a reboot.</note>
  
 {{:slackwarearm:61-Setupcomplete-Rebooting.jpg?400|}} {{:slackwarearm:61-Setupcomplete-Rebooting.jpg?400|}}
Line 827: Line 860:
  
  
-== Disable KDE Suspend action ==+====== Managing Slackware on the Pinebook Pro ======
  
-If you are using KDE, you should disable 'Suspend' within KDE's System Settings: +===== Keeping the Slackware OS up to date =====
- +
-{{:slackwarearm:slackarm-kdesystemsettings.png?400|}} +
- +
-{{:slackwarearm:slackarm-kde-powersettings.png?400|}} +
- +
-Then Apply the settings. +
- +
-===== Managing Slackware on the Pinebook Pro ===== +
- +
-=== Keeping the Slackware OS up to date ===+
  
 One of the preferred tools to keep your system up to date is [[slackware:slackpkg|slackpkg]]. One of the preferred tools to keep your system up to date is [[slackware:slackpkg|slackpkg]].
Line 846: Line 869:
  
  
-== Upgrading the Boot Loader firmware == +===== Loading Additional Linux Kernel Modules within the OS Proper =====
- +
-  - Upgrade to the latest available version of the package ''hwm-bw-rk3399'' (using ''slackpkg'' as described within this document). +
-  - As root, run the ''bootloader-flash-rk3399'' tool. +
- +
-In this example we'll run the Boot Loader management tool as the ''root'' user using the ''su'' tool: +
-<code> +
-$ su -c 'bootloader-flash-rk3399' -  # You must include the trailing '-' character +
-</code> +
- +
-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: +
- +
- +
-{{:slackwarearm:slackarm-flashing-required-pbpro.png?400|}} +
- +
-If you've wiped the Boot Loader from SPI flash or have installed a non-Slackware firmware build, you will see a screen like this where the existing installed Boot Loader is unrecognised: +
- +
- +
-{{:slackwarearm:slackarm-flashing-reqd-unknown-pbpro.png?400|}} +
- +
-If the installed Boot Loader matches the currently available version, you will be advised that flashing is unnecessary.  However, you can re-flash it if you wish. +
- +
-{{:slackwarearm:slackarm-flashing-not-required-pbpro.png?400|}} +
- +
-If you proceed with flashing, the work flow looks like this and takes approximately two minutes to complete. +
-<note important>You must ensure the system has sufficient power/is plugged in.  If the machine powers off before flashing completes, you would need to re-flash using the bootable SD card as described in the initial installation instructions.</note>  +
- +
-{{:slackwarearm:37-InstallingBootLoader-SPIFlash-readytogo.jpg?400|}} +
- +
-{{:slackwarearm:38-installingbootloader-spiflash-inprogress-pinebookpro.jpg?400|}} +
- +
-{{:slackwarearm:39-InstallingBootLoader-SPIFlash-complete.jpg?400|}} +
- +
- +
- +
-=== 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. Often Kernel modules for discovered hardware will be automatically loaded, but occasionally you will need to manually configure the loading of some modules.
Line 894: Line 882:
  
  
-=== Loading Additional Linux Kernel Modules early in the boot sequence ===+===== 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. There are a number of peripherals that may require Kernel modules loading early on in the boot sequence.
Line 915: Line 903:
 You can also add shell code here to initialise a peripheral - writing something to the peripheral's Kernel interface, for example. You can also add shell code here to initialise a peripheral - writing something to the peripheral's Kernel interface, for example.
  
-=== Slackware repository partition ===+===== Slackware repository partition =====
  
 The Slackware Installer image contains a type ''ext4'' partition labeled ''SLKins_aio-pkgs'' from which the packages are installed.   The Slackware Installer image contains a type ''ext4'' partition labeled ''SLKins_aio-pkgs'' from which the packages are installed.  
Line 933: Line 921:
 <note tip>Most users simply leave the partition alone, as it causes no issues.</note> <note tip>Most users simply leave the partition alone, as it causes no issues.</note>
  
-=== Customising the Slackware Linux Kernel ===+===== Customising the Slackware Linux Kernel =====
  
 If you'd like to customise the Linux Kernel, the easiest way is to follow the [[slackwarearm:cstmz_kernel|HOWTO]] guide and use the Slackware ARM Kernel build script to create new packages. If you'd like to customise the Linux Kernel, the easiest way is to follow the [[slackwarearm:cstmz_kernel|HOWTO]] guide and use the Slackware ARM Kernel build script to create new packages.
  
  
-=== Reducing Boot Time ===+===== 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 968: Line 956:
  
  
-=== Suspend to RAM ===+===== Suspend to RAM =====
  
 To suspend, in a console its fast to test by running "loginctl suspend". To suspend, in a console its fast to test by running "loginctl suspend".
Line 981: Line 969:
  
 The best way to add new software is to [[slackwarearm:sft-repos|use the build scripts from SlackBuilds.org]]. The best way to add new software is to [[slackwarearm:sft-repos|use the build scripts from SlackBuilds.org]].
 +
 +
 +===== Managing the Boot Loader firmware =====
 +
 +During the Slackware installation process, you are offered the opportunity to flash the Boot Loader to the SPI flash. Occasionally, updates will be made available to the Boot Loader to address bug fixes and provide improvements.
 +
 +Slackware provides a package ''hwm-bw-rk3399'' within the ''a'' series that contains the latest Boot Loader firmware and contains the ''bootloader-flash-rk3399'' tool to manage the upgrade life cycle.
 +
 +
 +=== Upgrading the Boot Loader firmware ===
 +
 +  - Upgrade to the latest available version of the package ''hwm-bw-rk3399'' (using ''slackpkg'' as described within this document).
 +  - As root, run the ''bootloader-flash-rk3399'' tool.
 +
 +In this example we'll run the Boot Loader management tool as the ''root'' user using the ''su'' tool:
 +<code>
 +$ su -c 'bootloader-flash-rk3399' -  # You must include the trailing '-' character
 +</code>
 +
 +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:
 +
 +
 +{{:slackwarearm:slackarm-flashing-required-pbpro.png?400|}}
 +
 +If you've wiped the Boot Loader from SPI flash or have installed a non-Slackware firmware build, you will see a screen like this where the existing installed Boot Loader is unrecognised:
 +
 +
 +{{:slackwarearm:slackarm-flashing-reqd-unknown-pbpro.png?400|}}
 +
 +If the installed Boot Loader matches the currently available version, you will be advised that flashing is unnecessary.  However, you can re-flash it if you wish.
 +
 +{{:slackwarearm:slackarm-flashing-not-required-pbpro.png?400|}}
 +
 +If you proceed with flashing, the work flow looks like this and takes approximately two minutes to complete.
 +<note important>You must ensure the system has sufficient power/is plugged in.  If the machine powers off before flashing completes, you would need to re-flash using the bootable SD card as described in the initial installation instructions.</note> 
 +
 +{{:slackwarearm:37-InstallingBootLoader-SPIFlash-readytogo.jpg?400|}}
 +
 +{{:slackwarearm:38-installingbootloader-spiflash-inprogress-pinebookpro.jpg?400|}}
 +
 +{{:slackwarearm:39-InstallingBootLoader-SPIFlash-complete.jpg?400|}}
  
  
Line 998: Line 1027:
 <note tip>This assumes that there are no other similar adapters occupying ''/dev/ttyUSB0'' If so, you will need to adjust the device name accordingly (e.g. perhaps ''/dev/ttyUSB1'').</note> <note tip>This assumes that there are no other similar adapters occupying ''/dev/ttyUSB0'' If so, you will need to adjust the device name accordingly (e.g. perhaps ''/dev/ttyUSB1'').</note>
  
 +
 +=== Boot from NVME rather than from uSD card ===
 +
 +The Slackware AArch64 installation is set to boot from the Micro SD card due to its high portability across various hardware models. Nevertheless, if your preference is to exclusively utilize the NVME, please refer to [[https://www.linuxquestions.org/questions/slackware-arm-108/pinebook-pro-boot-from-nvme-drop-requirement-for-booting-from-usd-card-4175732356/|this post]] for guidance.
 +
 +<note important>While booting from NVME offers the advantage of freeing up the SD Card slot, it's essential to note that encountering boot issues could pose recovery challenges. Unlike SD cards, which allow easy diagnosis and fixing by inserting them into another machine, troubleshooting NVME boot problems can be more complex.</note>
  
 ===== Known Limitations / Bugs ===== ===== Known Limitations / Bugs =====
Line 1011: Line 1046:
  
  
-=== Exploring ===+===== Exploring =====
  
-== Hibernate ==+=== Hibernate ===
  
 The ARM Trusted Firmware firmware does not support the deep sleep / hibernate functions yet. The ARM Trusted Firmware firmware does not support the deep sleep / hibernate functions yet.
Line 1037: Line 1072:
  
 https://forum.manjaro.org/t/hibernate-on-pinebook-pro/18045 https://forum.manjaro.org/t/hibernate-on-pinebook-pro/18045
- 
-== Boot from NVME - drop requirement for booting from uSD card == 
- 
-The Slackware AArch64 installation boots from the Micro SD card because it's the most portable method (across Hardware Models). 
-However, it'd be ideal if the Pinebook Pro could boot from a partition on the NVME. 
- 
-This requires //mainline// U-Boot to support it (no patches!), and some work on the installer to support it. 
-Notes: 
-* Need to consider how the installer handles 'SLKboot' (SD card). Do we need to rename it to SLKinst and handle renaming it again to SLKboot on the PbPro and all other HWMs? Possibly not. Needs more thought 
- 
  
  
 slackwarearm:inst_sa64_rk3399_pinebookpro ()