Enjoy the Holiday season!

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 revision Previous revision
Next revision
Previous revision
slackwarearm:development_di_rk3399 [2021/05/07 05:01 (UTC)]
mozes
slackwarearm:development_di_rk3399 [2022/01/19 12:32 (UTC)] (current)
mozes
Line 1: Line 1:
 <note warning>May 2021 - work in progress</note> <note warning>May 2021 - work in progress</note>
  
-======  Exposition: RockPro64 - Direct Integration into Slackware AArch64  ====== +======  Exposition: Direct Integration into Slackware AArch64  ====== 
  
 This exposition also covers Slackware ARM (32bit ARMv7), although at present (May 2021) AArch64 is wider ranging with regard to the //plugin// development model.  Coverage of Hardware Model Direct Integration ARM will be arranged at a later date. This exposition also covers Slackware ARM (32bit ARMv7), although at present (May 2021) AArch64 is wider ranging with regard to the //plugin// development model.  Coverage of Hardware Model Direct Integration ARM will be arranged at a later date.
Line 7: Line 7:
 <note>In general, the new or changed assets (scripts, config files, etc.) have extensive documentation that provides purpose and context, and the code is annotated where appropriate.  As such, this exposition document acts more as an index.</note> <note>In general, the new or changed assets (scripts, config files, etc.) have extensive documentation that provides purpose and context, and the code is annotated where appropriate.  As such, this exposition document acts more as an index.</note>
  
-====== Hardware Model Details ======+======  Bootware ======
  
-^ ^ Details ^ +The boot loader employed on the RockPro64 and PineBook Pro is [[https://www.denx.de/wiki/U-Boot|U-Boot]]. 
-| Vendor | PINE 64 + 
-| SoC (System on Chip| RK3399 | +====== Trusted Firmware-A (ARM Trusted Firmware====== 
-Hardware Models supported by this Direct Integration | RockPro64 v2.(4GB RAM version), Pinebook Pro | + 
-Slackware AArch64 Integration Date May 2021 +The ARM Trusted Firmware is embedded within the supplied U-Boot loader, and aren't used by the end-user directly. 
-Slackware AArch64 Integration Developer(s) | Stuart Winter <mozes@slackware>, Brent Earl | +However, some platforms require the Trusted Firmware to boot a Kernel. 
-Status Developed and Maintained |+ 
 +The single build script is used to produce the trusted firmware assets for all supported Hardware Models.  
 + 
 +^ Asset(s^ Description ^ 
 +[[http://ftp.arm.slackware.com/slackwarearm/platform/aarch64/bootware/bin/rk3399/|ATF binaries]]|ATF for RK3399 |  
 +[[http://ftp.arm.slackware.com/slackwarearm/platform/aarch64/bootware/src/atf.build|Build script]] Builds the Trusted Firmware for supported Hardware Models  
 + 
 +====== U-Boot Boot Loader ====== 
 + 
 +======= Recovery / Initialisation SD Card image ======= 
 + 
 +* Needs script work to create one 
 + 
 +======= U-Boot configured to boot from SPI Flash ======= 
 + 
 +======= U-Boot configured to boot from SD Card ======= 
 + 
 +Built and available but not used for either the Operating System Installation nor Operating System Proper. 
 +The image can be written to an SD Card as a header and booted, but U-Boot would fail to boot sometimes after changes to the /boot filesystem, so it was unsuitable as a solution. 
 + 
 +==== Boot Media ==== 
 + 
 +* OS and Installer Bootware for SD cards
  
-======  Boot Loader ====== 
-  
-* sd card images 
  
 ====== Slackware Operating System ====== ====== Slackware Operating System ======
Line 36: Line 55:
 ^Change Management Process^ ^Change Management Process^
 | Email the new Kernel configuration to the Slackware ARM devel mailing list with a summary of what the changes were for. | | Email the new Kernel configuration to the Slackware ARM devel mailing list with a summary of what the changes were for. |
 +
 +==== Kernel Package Build Helpers ====
 +
 +The Pinebook Pro (RK3399 SoC) requires a firmware blob to be installed within the OS InitRD (see further down) in order to light up one of the display ports.
 +To facilitate this, a helper script is executed from the kernel.SlackBuild script when the OS InitRD is constructed.  This helper extracts the relevant firmware blob from the Slackware a/kernel-firmware package.
 +
 +^ Package Series ^ Package ^ Asset  ^ Src ^
 +| k | kernel-source | platform/aarch64/rk3399 | [[http://ftp.arm.slackware.com/slackwarearm/slackwarearm-current/source/k/platform/aarch64/rk3399|rk3399 Kernel Package Build Helper]] |
  
 ==== Kernel Patches ==== ==== Kernel Patches ====
Line 48: Line 75:
 http://ftp.arm.slackware.com/slackwarearm/slackwarearm-current/source/a/mkinitrd/README.initrd.arm  http://ftp.arm.slackware.com/slackwarearm/slackwarearm-current/source/a/mkinitrd/README.initrd.arm 
 needed? needed?
 +
 +== Firmware within the OS InitRD ==
 +
 +The RockPro64 requires a small blob of firmware for one of the display drivers.
 +This is included within /lib/firmware/rockchip
 +
 +<note important>Only firmware that is 100% required at Kernel module load time is added to the OS InitRD in order to keep the size down and to reduce overlap between the Slackware a/kernel-firmware package.  Firmware for a display driver is a must.  Firmware for Bluetooth et al is not.</note>
  
 ====  Kernel Module Loader ==== ====  Kernel Module Loader ====
Line 60: Line 94:
  
 ^ Asset ^ Description ^ ^ Asset ^ Description ^
-| [[http://ftp.arm.slackware.com/slackwarearm/slackwarearm-current/source/SlkOS-initrd-overlay/load_kernel_modules.scr/platform/aarch64/rk3399|k/SlkOS-initrd-overlay/load_kernel_modules.scr/platform/aarch64/rk3399]]|Kernel Module Configuration script for RK3399 Hardware Models (including RockPro64, PineBook Pro) |+| [[http://ftp.arm.slackware.com/slackwarearm/slackwarearm-current/source/k/SlkOS-initrd-overlay/load_kernel_modules.scr/platform/aarch64/rk3399|k/SlkOS-initrd-overlay/load_kernel_modules.scr/platform/aarch64/rk3399]]|Kernel Module Configuration script for RK3399 Hardware Models (including RockPro64, PineBook Pro) |
  
 <note>For the settings, view the script directly (see the table above)</note> <note>For the settings, view the script directly (see the table above)</note>
Line 80: Line 114:
  
 ====== Serial Console System Login ====== ====== Serial Console System Login ======
 +
 +<note important>This is a hard requirement</note>
  
 To enable a TTY that presents a OS login prompt, which enables system access via the Serial adapter. To enable a TTY that presents a OS login prompt, which enables system access via the Serial adapter.
-**All Hardware Models must support this.**+All Hardware Models must support this.
  
-^ Package Series ^ Package ^ Asset changed ^ Src ^ Notes +^ Package Series ^ Package ^ Asset changed ^ Src ^ 
-| a | sysvinit-scripts | /install/doinst.sh | [[http://ftp.arm.slackware.com/slackwarearm/slackwarearm-current/source/a/sysvinit-scripts/sources/doinst.sh-set-serial-port|Install script additions (appended to the standard script)]] | | +| a | sysvinit-scripts | /install/doinst.sh | [[http://ftp.arm.slackware.com/slackwarearm/slackwarearm-current/source/a/sysvinit-scripts/sources/doinst.sh-set-serial-port|Install script additions]] |
-| a | etc | /install/doinst.sh | [[http://ftp.arm.slackware.com/slackwarearm/slackwarearm-current/source/a/etc/sources/doinst.sh.serialconsole-allowroot|Install script additions (prepended to the standard script)]] | This script doesn't perform install-time Hardware Model discovery as it's deemed unnecessary. A static list is sufficient. |+
  
 The additions script has inline documentation. The additions script has inline documentation.
Line 93: Line 128:
 | This is a simple script and should not be made more complex, because this code typically never changes, thus modularising it serves no utility. Please email a diff to the Slackware ARM devel mailing list and it will be applied | | This is a simple script and should not be made more complex, because this code typically never changes, thus modularising it serves no utility. Please email a diff to the Slackware ARM devel mailing list and it will be applied |
  
-====== Local Console (HDMI video, USB Keyboard / Mouse ) ======+====== Linux Virtual Console (Local Console (HDMI video, USB Keyboard / Mouse )) ======
  
 ==== Console Video Display ==== ==== Console Video Display ====
Line 102: Line 137:
 ==== X11/Xorg Window System ==== ==== X11/Xorg Window System ====
  
-Uses existing fbturbo driver package. +Package: x/x11-skel 
-No changes required.+Asset: doinst.sh
  
 +The x11-skel package's post-installation script detects the RockPro64 and Pinebook Pro at install time, and deletes /etc/X11/xorg.conf enabling
 +Xorg to automatically configure the video display.
  
-====== Slackware Installer ======+Other Hardware Models contain configuration within this doinst.sh script.
  
-<note>Presently, the installer modifications are not available directly within the Slackware ARM source tree+====== Slackware Operating System Post Boot Configuration ====== 
-Merging some of these changes back upstream is on the to do list </note>+ 
 +Package: a/sysvinit-scripts 
 +Assets: /etc/rc.d/rc.platform - load helper scripts from /etc/rc.d/rc.platform.d/<arch> 
 +These scripts perform such things as setting the LCD panel brightness, setting fan speeds, etc
 + 
 +Used on the RockPro64, Pinebook Pro. 
 + 
 +====== Slackware Installer ======
  
 ==== Automatic Handling of the OS /boot Partition ==== ==== Automatic Handling of the OS /boot Partition ====
Line 117: Line 161:
 ==== Installing the Boot Loader onto SPI Flash ==== ==== Installing the Boot Loader onto SPI Flash ====
  
-/usr/lib/setup/armedslack-spi-flash +/usr/lib/setup/armedslack-bootloader-flash 
 + 
 +==== Hardware Model Installer Runtime Configuration Adjustments ==== 
 + 
 +/etc/rc.d/rc.installerconfig 
 + 
 +Pinebook Pro and RockPro64 - select larger font size. 
 + 
 +==== Set the clock ==== 
 + 
 +/usr/lib/setup/armedslack-clock-set 
 + 
 +This is called from /etc/rc.d/rc.S 
 + 
 +==== Configure console settings: RockPro64 and Pinebook Pro ==== 
 + 
 +/usr/lib/setup/armedslack-setconsole 
 + 
 +==== Firmware ==== 
 + 
 +RockPro64/Pinebook Pro: 
 +/lib/firmware/rockchip 
 + 
  
 ==== Disabling Filesystem Checks ==== ==== Disabling Filesystem Checks ====
Line 128: Line 195:
 Should the Hardware Model not have an RTC, there is a change to make within the Slackware Installer. Should the Hardware Model not have an RTC, there is a change to make within the Slackware Installer.
 /usr/lib/setup/armedslack-nofscheck /usr/lib/setup/armedslack-nofscheck
 +
 +====== Hardware Management ======
 +
 +==== Monitoring ====
 +
 +Not yet implemented
 +
 +[[https://www.linuxquestions.org/questions/slackware-arm-108/modified-argon-one-case-fan-script-for-raspberry-pi-4-without-systemd-4175689926|Fan control]]
  
  

In Other Languages
QR Code
QR Code slackwarearm:development_di_rk3399 (generated for current page)