Everything posted by RSS Bot
-
[Armbian build PR] - `Automatic` board configs status synchronise
Update maintainers and board status synced status from the database rename to .csc where we don't have anyone If you want to become a board maintainer, adjust data here. Ref: Board Maintainers Procedures and Guidelines Contribute View the full article
-
[Armbian build PR] - sunxi: bootscript load address calculation a.o.
Description Attempt to work towards one U-Boot bootscript for (at least) mvebu, sunxi and rockchip64. This adds: (Aligned) load address calculations This will remove the need to update any kernel_load_addr_r or ramdisk_addr_r in case kernel image increases. Calculation is based on either Flat kernel image image_size + text_offset as specified in the vmlinux(/Image) header info Compressed kernel image filesize (vmlinuz/zImage) Clear warnings to user in case files are not found, not able to load or application failed. Merge of armbianEnv.txt kernel options was attempted for sunxi, mvebu and rockchip64. DT folder determination based on sunxi approach. DT file determination based on sunxi approach. Compat with /boot/dtb/fdtfile.dtb and /boot/dtb/vendor/fdtfile.dtb. Simplified some constructs by assuming U-Boot has successfully sourced us with a set of pre-set variables, like ${prefix} ${devtype} etc. Actively set the ${kernel_comp_*} parameters based on calculations of load addresses. Ability to select different kernel/initrd by setting kver in armbianEnv.txt Also: Any warning or error includes a 10 second delay to make sure the user is able to see and read them. Any "informative" message added by the bootscript can be silenced by setting verbosity to 0 Attempted to make the bootscript 'reentrant' in away: all variables required for proper (re)execution are set, which should allow for the entire bootscript to be re-run on a next boot_target. All variables used in for-loops are actively cleared from the environment to ensure for loops work as expected. Any pre-set variable that might be used in next boot_target will be reset whenever necessary. Documentation summary for feature / change [ ] short description (copy / paste of PR title) [x] summary (description relevant for end users) Load address calculation can be disabled by adding load_addr_calc=off to armbianEnv.txt Load address calculation OBOE avoidance can be disabled by adding align_overlap_oboe_avoidance=off to armbianEnv.txt User can set custom fdtdir and fdtfile in armbianEnv.txt, but make sure to only specify DT filename in fdtfile. fdtdir will be used to both load DT, DT overlays and fixup scripts [ ] example of usage (how to see this in function) How Has This Been Tested? [x] Orangepi Zero (first gen):[12:39:52] U-Boot SPL 2024.01-armbian-2024.01-S866c-P6b16-Ha5c2-V367a-Bb703-R448a (Apr 29 2025 - 02:50:09 +0000) [12:39:52] DRAM: 512 MiB [12:39:52] Trying to boot from MMC1 [12:39:53] ns16550_serial serial@1c28000: pinctrl_select_state_full: uclass_get_device_by_phandle_id: err=-19 [12:39:53] U-Boot 2024.01-armbian-2024.01-S866c-P6b16-Ha5c2-V367a-Bb703-R448a (Apr 29 2025 - 02:50:09 +0000) Allwinner Technology [12:39:53] CPU: Allwinner H3 (SUN8I 1680) [12:39:53] Model: Xunlong Orange Pi Zero [12:39:53] DRAM: 512 MiB [12:39:53] Core: 70 devices, 19 uclasses, devicetree: separate [12:39:53] WDT: Not starting watchdog@1c20ca0 [12:39:53] MMC: mmc@1c0f000: 0, mmc@1c10000: 1 [12:39:53] Loading Environment from FAT... Unable to use mmc 0:1... [12:39:53] In: serial,usbkbd [12:39:53] Out: serial [12:39:53] Err: serial [12:39:53] Starting SCP... [12:39:53] Net: SCP/INF: Crust v0.6.10000 [12:39:53] eth0: ethernet@1c30000 [12:39:53] starting USB... [12:39:53] Bus usb@1c1a000: sun4i_usb_phy phy@1c19400: External vbus detected, not enabling our own vbus [12:39:53] USB EHCI 1.00 [12:39:53] Bus usb@1c1a400: USB OHCI 1.0 [12:39:53] Bus usb@1c1b000: USB EHCI 1.00 [12:39:53] Bus usb@1c1b400: USB OHCI 1.0 [12:39:53] Bus usb@1c1c000: USB EHCI 1.00 [12:39:53] Bus usb@1c1c400: USB OHCI 1.0 [12:39:53] scanning bus usb@1c1a000 for devices... 1 USB Device(s) found [12:39:54] scanning bus usb@1c1a400 for devices... 1 USB Device(s) found [12:39:55] scanning bus usb@1c1b000 for devices... 1 USB Device(s) found [12:39:56] scanning bus usb@1c1b400 for devices... 1 USB Device(s) found [12:39:57] scanning bus usb@1c1c000 for devices... 1 USB Device(s) found [12:39:59] scanning bus usb@1c1c400 for devices... 1 USB Device(s) found [12:40:00] scanning usb for storage devices... 0 Storage Device(s) found [12:40:00] Autoboot in 1 seconds, press <Space> to stop [12:40:01] switch to partitions #0, OK [12:40:01] mmc0 is current device [12:40:01] Scanning mmc 0:1... [12:40:01] Found U-Boot script /boot/boot.scr [12:40:01] 18117 bytes read in 4 ms (4.3 MiB/s) [12:40:01] ## Executing script at 43100000 [12:40:01] Boot script loaded from mmc 0:1. [12:40:01] 687 bytes read in 3 ms (223.6 KiB/s) [12:40:01] Loaded/imported environment /boot/armbianEnv.txt to/from 0x45000000. [12:40:01] Found mainline kernel configuration. [12:40:01] 35473 bytes read in 11 ms (3.1 MiB/s) [12:40:01] Loaded DT /boot/dtb/sun8i-h2-plus-orangepi-zero.dtb to 0x43000000. [12:40:01] Working FDT set to 43000000 [12:40:01] Loading kernel provided DT overlay(s) from /boot/dtb/overlay to 0x45000000 .. [12:40:01] 504 bytes read in 10 ms (48.8 KiB/s) [12:40:01] Applied DT overlay usbhost2 (/boot/dtb/overlay/sun8i-h3-usbhost2.dtbo). [12:40:01] 504 bytes read in 10 ms (48.8 KiB/s) [12:40:01] Applied DT overlay usbhost3 (/boot/dtb/overlay/sun8i-h3-usbhost3.dtbo). [12:40:01] 617 bytes read in 10 ms (59.6 KiB/s) [12:40:01] Applied DT overlay tve (/boot/dtb/overlay/sun8i-h3-tve.dtbo). [12:40:01] 374 bytes read in 9 ms (40 KiB/s) [12:40:01] Applied DT overlay i2c0 (/boot/dtb/overlay/sun8i-h3-i2c0.dtbo). [12:40:01] Loading user provided DT overlay(s) from /boot/overlay-user to 0x45000000 .. [12:40:01] 835 bytes read in 3 ms (271.5 KiB/s) [12:40:01] Applied user DT overlay rtc0-i2c-ds3231-rtc1-soc (/boot/overlay-user/rtc0-i2c-ds3231-rtc1-soc.dtbo). [12:40:01] 4185 bytes read in 10 ms (408.2 KiB/s) [12:40:01] ## Executing script at 45000000 [12:40:01] Loaded/sourced fixup script /boot/dtb/overlay/sun8i-h3-fixup.scr to/at 0x45000000. [12:40:02] 10554192 bytes read in 441 ms (22.8 MiB/s) [12:40:02] Loaded compressed kernel image /boot/zImage to 4300a000. [12:40:02] Using compressed kernel image filesize 0xa10b50 bytes to calculate initial ramdisk load address. [12:40:02] 11621101 bytes read in 484 ms (22.9 MiB/s) [12:40:02] Loaded initial ramdisk /boot/uInitrd to 43a1b000. [12:40:02] Unknown command 'kaslrseed' - try 'help' [12:40:02] Not able to prepare for KASLR. [12:40:02] Kernel commandline arguments: [12:40:02] root=/dev/nfs [12:40:02] rootfstype=nfs [12:40:02] rootwait [12:40:02] splash=verbose [12:40:02] earlycon [12:40:02] console=ttyS0,115200 [12:40:02] consoleblank=0 [12:40:02] loglevel=8 [12:40:02] ubootpart=81f6566a-01 [12:40:02] usb-storage.quirks=0x2537:0x1066:u,0x2537:0x1068:u,0x174c:0x55aa:u [12:40:02] dwc_otg.fiq_enable=0 [12:40:02] net.ifnames=0 [12:40:02] ipv6.disable=1 [12:40:02] rw [12:40:02] nfsroot=192.168.2.34:/export/rootfs/blippi [12:40:02] ip=dhcp [12:40:02] nfsrootdebug [12:40:02] nfs.enable_ino64=0 [12:40:02] cgroup_enable=cpuset [12:40:02] cgroup_memory=1 [12:40:02] cgroup_enable=memory [12:40:02] Kernel image @ 0x4300a000 [ 0x000000 - 0xa10b50 ] [12:40:02] ## Loading init Ramdisk from Legacy Image at 43a1b000 ... [12:40:02] Image Name: uInitrd [12:40:02] Image Type: ARM Linux RAMDisk Image (gzip compressed) [12:40:02] Data Size: 11621037 Bytes = 11.1 MiB [12:40:02] Load Address: 00000000 [12:40:02] Entry Point: 00000000 [12:40:02] Verifying Checksum ... OK [12:40:02] ## Flattened Device Tree blob at 43000000 [12:40:02] Booting using the fdt blob at 0x43000000 [12:40:02] Working FDT set to 43000000 [12:40:02] Loading Ramdisk to 494ea000, end 49fff2ad ... OK [12:40:02] Loading Device Tree to 494de000, end 494e9fff ... OK [12:40:02] Working FDT set to 494de000 [12:40:02] Starting kernel ... [12:40:03] [ 0.000000] Booting Linux on physical CPU 0x0 [x] Orangepi zero (first gen): OKU-Boot SPL 2024.01-armbian (Feb 23 2024 - 10:47:39 +0000) DRAM: 256 MiB Trying to boot from MMC1 ns16550_serial serial@1c28000: pinctrl_select_state_full: uclass_get_device_by_phandle_id: err=-19 U-Boot 2024.01-armbian (Feb 23 2024 - 10:47:39 +0000) Allwinner Technology CPU: Allwinner H3 (SUN8I 1680) Model: Xunlong Orange Pi Zero DRAM: 256 MiB Core: 70 devices, 19 uclasses, devicetree: separate WDT: Not starting watchdog@1c20ca0 MMC: mmc@1c0f000: 0, mmc@1c10000: 1 Loading Environment from FAT... Unable to use mmc 0:1... In: serial,usbkbd Out: serial Err: serial Starting SCP... Net: SCP/INF: Crust v0.6.10000 eth0: ethernet@1c30000 starting USB... Bus usb@1c1a000: sun4i_usb_phy phy@1c19400: External vbus detected, not enabling our own vbus USB EHCI 1.00 Bus usb@1c1a400: USB OHCI 1.0 Bus usb@1c1b000: USB EHCI 1.00 Bus usb@1c1b400: USB OHCI 1.0 Bus usb@1c1c000: USB EHCI 1.00 Bus usb@1c1c400: USB OHCI 1.0 scanning bus usb@1c1a000 for devices... 1 USB Device(s) found scanning bus usb@1c1a400 for devices... 1 USB Device(s) found scanning bus usb@1c1b000 for devices... 1 USB Device(s) found scanning bus usb@1c1b400 for devices... 1 USB Device(s) found scanning bus usb@1c1c000 for devices... 1 USB Device(s) found scanning bus usb@1c1c400 for devices... 1 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found Autoboot in 1 seconds, press <Space> to stop switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... Found U-Boot script /boot/boot.scr 18202 bytes read in 5 ms (3.5 MiB/s) ## Executing script at 43100000 Boot script loaded from mmc 0:1. 265 bytes read in 4 ms (64.5 KiB/s) Loaded/imported environment /boot/armbianEnv.txt to/from 0x45000000. Found mainline kernel configuration. 35473 bytes read in 9 ms (3.8 MiB/s) Loaded DT /boot/dtb/sun8i-h2-plus-orangepi-zero.dtb to 0x43000000. Working FDT set to 43000000 Loading kernel provided DT overlay(s) from /boot/dtb/overlay to 0x45000000 .. 504 bytes read in 11 ms (43.9 KiB/s) Applied DT overlay usbhost2 (/boot/dtb/overlay/sun8i-h3-usbhost2.dtbo). 504 bytes read in 12 ms (41 KiB/s) Applied DT overlay usbhost3 (/boot/dtb/overlay/sun8i-h3-usbhost3.dtbo). 4185 bytes read in 11 ms (371.1 KiB/s) ## Executing script at 45000000 Loaded/sourced fixup script /boot/dtb/overlay/sun8i-h3-fixup.scr to/at 0x45000000. 10554192 bytes read in 442 ms (22.8 MiB/s) Loaded compressed kernel image /boot/zImage to 4300a000. Using compressed kernel image filesize 0xa10b50 bytes to calculate initial ramdisk load address. 11867098 bytes read in 497 ms (22.8 MiB/s) Loaded initial ramdisk /boot/uInitrd to 43a1b000. Unknown command 'kaslrseed' - try 'help' Not able to prepare for KASLR. Kernel commandline arguments: root=PARTUUID=1c01f668-02 rootfstype=f2fs rootwait splash=verbose console=ttyS0,115200 consoleblank=0 loglevel=8 ubootpart=1c01f668-01 usb-storage.quirks=0x2537:0x1066:u,0x2537:0x1068:u,0x174c:0x55aa:u net.ifnames=0 ipv6.disable=1 cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory Kernel image @ 0x4300a000 [ 0x000000 - 0xa10b50 ] ## Loading init Ramdisk from Legacy Image at 43a1b000 ... Image Name: uInitrd Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 11867034 Bytes = 11.3 MiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Flattened Device Tree blob at 43000000 Booting using the fdt blob at 0x43000000 Working FDT set to 43000000 Loading Ramdisk to 494ae000, end 49fff39a ... OK Loading Device Tree to 494a2000, end 494adfff ... OK Working FDT set to 494a2000 Starting kernel ... Checklist: [ ] My code follows the style guidelines of this project [x] I have performed a self-review of my own code [x] I have commented my code, particularly in hard-to-understand areas [ ] My changes generate no new warnings New warnings introduced: Environment load failed Environment import failed DT load/application failed DT (user) overlay load/application failed Initial ramdisk load failed Kernel image load failed Boot failed [x] Any dependent changes have been merged and published in downstream modules Prequisite U-Boot setexpr command already merged via https://github.com/armbian/build/pull/8260. View the full article
-
[Collabora] - Constructor acquires, destructor releases
In this final article of a three-part series, I look at locking with C++ and Matt Godbolt's notion of CADR. View the full article
-
[Armbian build PR] - Fix PocketBeagle 2 images
Description Currently, PocketBeagle 2 edge images cannot build (without patch 1) and fails to boot (without patch 3). The patch one just defines the missing variable for OPTEE. Patch 3 specifies root using path instead of UUID. For some reason, UUID does not work with PocketBeagle 2 U-boot. How Has This Been Tested? Tested on PocketBeagle 2 rev A0 Checklist: Please delete options that are not relevant. [x] My code follows the style guidelines of this project [x] I have performed a self-review of my own code [x] I have commented my code, particularly in hard-to-understand areas [x] My changes generate no new warnings [x] Any dependent changes have been merged and published in downstream modules View the full article
-
[Armbian build PR] - Preparation for http proxy caching
Description The idea is to introduce the possibility to cache downloads from GH runners to lower downstream bandwidth used and increase overall speed. Especially on machines with lots of runner this could save quite some bandwidth while sacrificing disk space. http caching has been tested and seem to work nicely. https caching is a lot more tricky and may be introduced later. This PR has two parts: set apt repository to http instead of https where possible. Packages are signed anyways. Pass various proxy environment variables to docker so it respects those. Doesn't make sense not to pass them since when using PREFER_DOCKER=no and any of these variables are set beforehand they just work. So this more or less just harmonizes overall behavior. There is still an issue on line 4838 caused by https://github.com/armbian/build/blob/c0da65087aad628ba0714f23d8d29800f152d97c/lib/functions/rootfs/apt-install.sh#L67 due to absence of apt proxy setting there. Not sure why this is not added here? How Has This Been Tested? Please describe the tests that you ran to verify your changes. Please also note any relevant details for your test configuration. [x] build random image: https://paste.armbian.de/xopitiguyo , look for 10.100.0.87 to see where it is used [x] built the same random image but having all proxy env variables unset beforehand: builds just fine as well: https://paste.armbian.de/ozidivugor Checklist: [x] My code follows the style guidelines of this project [x] I have performed a self-review of my own code [x] I have commented my code, particularly in hard-to-understand areas [x] My changes generate no new warnings [ ] Any dependent changes have been merged and published in downstream modules View the full article
-
[Armbian build PR] - ti: config: kernel: Add `current` RT config file
Description Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change. This PR adds the RT kernel config file for TI devices. If RT_KERNEL=yes is passed as an argument to ./compile.sh, a PREEMPT_RT image is built. How Has This Been Tested? Please describe the tests that you ran to verify your changes. Please also note any relevant details for your test configuration. Tested this on SK-AM62B. Test 1: boot test: the board successfully booted Test 2: uname -a test: PREEMPT_RT string was present in the output, thus suggesting that its indeed an RT image Test 3: zcat /proc/config.gz | grep -i RT: Further confirmed that the PREEMPT_RT config is enabled in the running image Checklist: Please delete options that are not relevant. [ ] My code follows the style guidelines of this project [ ] I have performed a self-review of my own code [ ] My changes generate no new warnings cc: @glneo @Grippy98 @nmenon @sadik-smd View the full article
-
[Armbian build PR] - Update odroidxu4-current to 6.6.93
Description Update odroidxu4-current kernel to 6.6.93. How Has This Been Tested? [x] Reboot of my Odroid HC1 Checklist: [x] My code follows the style guidelines of this project [x] I have performed a self-review of my own code [x] I have commented my code, particularly in hard-to-understand areas [ ] I have made corresponding changes to the documentation [x] My changes generate no new warnings [ ] Any dependent changes have been merged and published in downstream modules View the full article
-
[Armbian build PR] - compilation: armbian-kernel: Do not make built-in drivers modules
Description The current script can overwrite drivers which are set as built-in in the board-specific config. This is not desirable. Add a check to ensure we do not convert built-in stuff into modules. First encountered it when pocketbeagle 2 kernels was enabling EXT4 as module instead of being built-in, which makes the current rootfs (using ext4) fail to run. How Has This Been Tested? Tested on PocketBeagle 2 Checklist: Please delete options that are not relevant. [x] My code follows the style guidelines of this project [x] I have performed a self-review of my own code [x] My changes generate no new warnings View the full article
-
[Armbian build PR] - coolpi-genbook: Add Support for vendor branch
Description The dts for vendor kernel has been merged . Add vendor branch support for Cool Pi Genbook And use mainline u-boot for vendor branch。 How Has This Been Tested? Compiled with command: ./compile.sh build BOARD=coolpi-genbook BRANCH=vendor BUILD_DESKTOP=yes BUILD_MINIMAL=no DESKTOP_APPGROUPS_SELECTED='browsers chat desktop_tools editors email internet multimedia office programming remote_desktop' DESKTOP_ENVIRONMENT=gnome DESKTOP_ENVIRONMENT_CONFIG_NAME=config_base DOWNLOAD_MIRROR=bfsu EXPERT=yes EXTRAWIFI=no KERNEL_CONFIGURE=no RELEASE=noble flash the img to sdcard, insert the sdcard to a usb disk, insert usb disk to genbook,the Armbian system can boot from usb disk。 Checklist: [✅ ] My code follows the style guidelines of this project [✅] I have performed a self-review of my own code [✅] I have commented my code, particularly in hard-to-understand areas [✅] My changes generate no new warnings [✅] Any dependent changes have been merged and published in downstream modules View the full article
-
[Armbian build PR] - build sсript: The error of applying Wi-Fi driver patches has been fixed.
Description config-prepare: Initialize an empty KERNEL_DRIVERS_SKIP array unless it exists If the array exists in this location, initializing an empty array will destroy all the data that was stored in it. Do not initialize an empty KERNEL_DRIVERS_SKIP array if it exists. This allows us to create an array anywhere in the script, including the user configuration, in a secure way. patch: misc: uwe5622: fix timer api changes for 6.15 (only sunxi) How Has This Been Tested? The sequence of patch application is defined here: lib/functions/compilation/patch/drivers-harness.sh I have created an array in the user configuration file. declare -g -a KERNEL_DRIVERS_SKIP=( # driver_generic_bring_back_ipx # driver_mt7921u_add_pids # driver_rtl8152_rtl8153 # driver_rtl8189ES # driver_rtl8189FS # driver_rtl8192EU # driver_rtl8811_rtl8812_rtl8814_rtl8821 # driver_xradio_xr819 # driver_rtl8811CU_rtl8821C # driver_rtl8188EU_rtl8188ETV # driver_rtl88x2bu # driver_rtw88 # driver_rtl8852bs # driver_rtl88x2cs # driver_rtl8822cs_bt # driver_rtl8723DS # driver_rtl8723DU driver_uwe5622 driver_rtl8723cs ) This allowed the build system to apply only those patches that go up to driver_uwe5622 and therefore allows me to make fixes by applying patches for driver_uwe5622 manually. As ./compile.sh test kernel-patch Here, the test is the name of my custom configuration. [x] Test build kernel for sunxi64 this pull request must be combined before doing this 8270. View the full article
-
[Armbian build PR] - mvebu: bootscript load address calculation a.o.
Description Attempt to work towards one U-Boot bootscript for (at least) mvebu, sunxi and rockchip64. This adds: (Aligned) load address calculations This will remove the need to update any kernel_load_addr_r or ramdisk_addr_r in case kernel image increases. Calculation is based on either Flat kernel image image_size + text_offset as specified in the vmlinux(/Image) header info Compressed kernel image filesize (vmlinuz/zImage) Clear warnings to user in case files are not found, not able to load or application failed. Merge of armbianEnv.txt kernel options was attempted for sunxi, mvebu and rockchip64. DT folder determination based on sunxi approach. DT file determination based on sunxi approach. Compat with /boot/dtb/fdtfile.dtb and /boot/dtb/vendor/fdtfile.dtb. Simplified some constructs by assuming U-Boot has successfully sourced us with a set of pre-set variables, like ${prefix} ${devtype} etc. Actively set the ${kernel_comp_*} parameters based on calculations of load addresses. Ability to select different kernel/initrd by setting kver in armbianEnv.txt Also: Any warning or error includes a 10 second delay to make sure the user is able to see and read them. Any "informative" message added by the bootscript can be silenced by setting verbosity to 0 Attempted to make the bootscript 'reentrant' in away: all variables required for proper (re)execution are set, which should allow for the entire bootscript to be re-run on a next boot_target. All variables used in for-loops are actively cleared from the environment to ensure for loops work as expected. Any pre-set variable that might be used in next boot_target will be reset whenever necessary. Documentation summary for feature / change [ ] short description (copy / paste of PR title) [x] summary (description relevant for end users) Load address calculation can be disabled by adding load_addr_calc=off to armbianEnv.txt Load address calculation OBOE avoidance can be disabled by adding align_overlap_oboe_avoidance=off to armbianEnv.txt User can set custom fdtdir and fdtfile in armbianEnv.txt, but make sure to only specify DT filename in fdtfile. fdtdir will be used to both load DT, DT overlays and fixup scripts [ ] example of usage (how to see this in function) How Has This Been Tested? [x] Helios4: OK[16:10:38] U-Boot SPL 2019.04-armbian-2019.04-S3c99-Pcd6a-H9530-V0854-Bb703-R448a (May 10 2025 - 09:39:24 +0000) [16:10:38] High speed PHY - Version: 2.0 [16:10:38] Detected Device ID 6828 [16:10:38] board SerDes lanes topology details: [16:10:38] | Lane # | Speed | Type | [16:10:38] -------------------------------- [16:10:38] | 0 | 6 | SATA0 | [16:10:38] | 1 | 5 | USB3 HOST0 | [16:10:38] | 2 | 6 | SATA1 | [16:10:38] | 3 | 6 | SATA3 | [16:10:38] | 4 | 6 | SATA2 | [16:10:38] | 5 | 5 | USB3 HOST1 | [16:10:38] -------------------------------- [16:10:39] High speed PHY - Ended Successfully [16:10:39] mv_ddr: mv_ddr-armada-18.09.2 [16:10:39] DDR3 Training Sequence - Switching XBAR Window to FastPath Window [16:10:39] DDR Training Sequence - Start scrubbing [16:10:40] DDR3 Training Sequence - End scrubbing [16:10:40] mv_ddr: completed successfully [16:10:40] Trying to boot from MMC1 [16:10:40] U-Boot 2019.04-armbian-2019.04-S3c99-Pcd6a-H9530-V0854-Bb703-R448a (May 10 2025 - 09:39:24 +0000) [16:10:40] SoC: MV88F6828-A0 at 1600 MHz [16:10:40] DRAM: 2 GiB (800 MHz, 32-bit, ECC enabled) [16:10:40] MMC: mv_sdh: 0 [16:10:41] Loading Environment from EXT4... ** File not found /boot/boot.env ** [16:10:41] ** Unable to read "/boot/boot.env" from mmc0:1 ** [16:10:41] Model: Helios4 [16:10:41] Board: Helios4 [16:10:41] SCSI: MVEBU SATA INIT [16:10:41] Target spinup took 0 ms. [16:10:41] Target spinup took 0 ms. [16:10:41] AHCI 0001.0000 32 slots 2 ports 6 Gbps 0x3 impl SATA mode [16:10:41] flags: 64bit ncq led only pmp fbss pio slum part sxs [16:10:41] Net: [16:10:41] Warning: ethernet@70000 (eth1) using random MAC address - 42:21:01:47:98:72 [16:10:41] eth1: ethernet@70000 [16:10:41] Hit any key to stop autoboot: 0 [16:10:44] switch to partitions #0, OK [16:10:44] mmc0 is current device [16:10:44] Scanning mmc 0:1... [16:10:45] Found U-Boot script /boot/boot.scr [16:10:46] 18398 bytes read in 359 ms (49.8 KiB/s) [16:10:46] ## Executing script at 03000000 [16:10:46] Boot script loaded from mmc 0:1. [16:10:46] 241 bytes read in 371 ms (0 Bytes/s) [16:10:46] Loaded/imported environment /boot/armbianEnv.txt to/from 0x00300000. [16:10:46] armada-388-helios4.dtb: No match [16:10:48] 28834 bytes read in 704 ms (39.1 KiB/s) [16:10:48] Loaded DT /boot/dtb/armada-388-helios4.dtb to 0x02040000. [16:10:48] Loading kernel provided DT overlay(s) from /boot/dtb/overlay to 0x00300000 .. [16:10:49] ** WARNING: Could NOT find DT overlay notfound! [16:10:49] Loading user provided DT overlay(s) from /boot/overlay-user to 0x00300000 .. [16:10:50] ** WARNING: Could NOT find user DT overlay notfoud (/boot/overlay-user/notfoud.dtbo)! [16:10:53] 8856168 bytes read in 1903 ms (4.4 MiB/s) [16:10:53] Loaded compressed kernel image /boot/zImage to 2049000. [16:10:53] Using compressed kernel image filesize 0x872268 bytes to calculate initial ramdisk load address. [16:10:55] 10998232 bytes read in 2295 ms (4.6 MiB/s) [16:10:55] Loaded initial ramdisk /boot/uInitrd to 28bc000. [16:10:55] Unknown command 'kaslrseed' - try 'help' [16:10:55] Not able to prepare for KASLR. [16:10:55] Kernel commandline arguments: [16:10:55] root=UUID=a36c9a2d-e1ed-469d-b1bb-2a1bc453df43 [16:10:55] rootfstype=ext4 [16:10:55] rootwait [16:10:55] splash=verbose [16:10:55] console=ttyS0,115200 [16:10:55] console=tty1 [16:10:55] consoleblank=0 [16:10:55] loglevel=8 [16:10:55] ubootpart=cb16300f-01 [16:10:55] usb-storage.quirks= [16:10:55] rw [16:10:55] net.ifnames=0 [16:10:55] ipv6.disable=1 [16:10:55] cgroup_enable=cpuset [16:10:55] cgroup_memory=1 [16:10:55] cgroup_enable=memory [16:10:55] ## Loading init Ramdisk from Legacy Image at 028bc000 ... [16:10:55] Image Name: uInitrd [16:10:55] Created: 2025-05-29 3:04:11 UTC [16:10:55] Image Type: ARM Linux RAMDisk Image (gzip compressed) [16:10:55] Data Size: 10998168 Bytes = 10.5 MiB [16:10:55] Load Address: 00000000 [16:10:55] Entry Point: 00000000 [16:10:55] Verifying Checksum ... OK [16:10:55] ## Flattened Device Tree blob at 02040000 [16:10:55] Booting using the fdt blob at 0x2040000 [16:10:55] Loading Ramdisk to 0f582000, end 0ffff198 ... OK [16:10:55] Loading Device Tree to 0f577000, end 0f581fff ... OK [16:10:55] Starting kernel ... [16:10:57] [ 0.000000] Booting Linux on physical CPU 0x0 Note: Added a non-existent DT and non-existant user DT overlay to test the warnings. Checklist: [ ] My code follows the style guidelines of this project [x] I have performed a self-review of my own code [x] I have commented my code, particularly in hard-to-understand areas [ ] My changes generate no new warnings New warnings introduced: Environment load failed Environment import failed DT load/application failed DT (user) overlay load/application failed Initial ramdisk load failed Kernel image load failed Boot failed [x] Any dependent changes have been merged and published in downstream modules Prequisite U-Boot setexpr command already merged via https://github.com/armbian/build/pull/8260. View the full article
-
[Armbian build PR] - rockchip64-6.15: Fix DP alt mode on some rk3399 boards
Description Fix Type-C DP altmode on some rk3399 boards. Currently only on rockchip64-6.15. The old implementation is tricky, and only works in normal orientation. If the plug is flipped, there will be only USB2.0 connectivity. With the proposed changes, the type-c ports on related rk3399 boards should work in both orientations. A few patches from Megous are picked(some of them already present in sunxi64 kernel patches). The tricky part is how to notify rk3399 cdn-dp driver about DP HPD(hot plug detection), and a workaround is written. A caveat is that the c port has to be OTG mode, otherwise it will behave very similar to the old implementation if DP is enabled. I'm not sure if orange pi 4 / 4 LTS support this, so there's no change to their dts yet. Apart from the work above, the missing fan node is added to tinkerboard 2's dts. list of changes fix type-c dp altmode Megous' glue driver and related improvements are imported this involves enabling the driver in defconfig CONFIG_TYPEC_EXTCON=m a workaround for notifying DP HPD to cdn-dp is written(not merged anywhere) related device tree files/patches are updated accordingly(what about orangepi 4?) add missing fan node in tinkerboard 2's dts along with some minor tweaks How Has This Been Tested? [x] build tinkerboard-2 with edge kernel [x] test on tinkerboard 2s with a hub [x] hub alone works in both orientations [x] hub with display connected works in both orientations [x] when hub is connected, display hot plug/unplug works [x] USB 3.0 type-c drive works in both orientations [ ] test with a DP-only dongle [ ] test on pinebook pro [ ] test on nanopc-t4 [ ] maybe test on orangepi 4 (need dts change) [ ] maybe test on orangepi 4 LTS (need dts change) Checklist: [x] My code follows the style guidelines of this project [x] I have performed a self-review of my own code [x] I have commented my code, particularly in hard-to-understand areas [x] My changes generate no new warnings [ ] Any dependent changes have been merged and published in downstream modules View the full article
-
[Armbian build PR] - sunxi-6.15: switching EDGE to v6.15
Description Add all the patches and switch the edge to version 6.15 Make it possible to manage the KERNEL_DRIVERS_SKIP array in the user configuration file. How Has This Been Tested? [x] Test build image GNOME for bananapim4berry [x] Test on board View the full article
-
[Armbian build PR] - add imb3588 board support
Description Add support for IMB3588 board. This board based RK3588 SoC, with 4G/8G/16G/32GB LPDDR4 & 16G~128G emmc, 2x 1Gbps Ethernet, 1x HDMI 2.1 output, 1x eDP, 1x mipi display, 1x LVDS, AP6275P wifi 6 & buletooth 5.1 module. IMB3588 board info: https://www.sunshine-tek.com/productinfo/1989232.html Documentation summary for feature / change Only support vendor 6.1 kernel, build with mesa-vpu extensions will get mali GPU worked. ./compile.sh BOARD=imb3588 BRANCH=vendor BUILD_DESKTOP=yes BUILD_MINIMAL=no DESKTOP_APPGROUPS_SELECTED= DESKTOP_ENVIRONMENT=gnome DESKTOP_ENVIRONMENT_CONFIG_NAME=config_base ENABLE_EXTENSIONS=mesa-vpu EXPERT=yes KERNEL_CONFIGURE=no RELEASE=noble IMB3588 debug uart, uart2 3.3V ttl ( must remove sp3485 chip to let uart2 RX work ) How Has This Been Tested? I have built an image for my board, it boots and worked fine except bluetooth. Checklist: [x] My code follows the style guidelines of this project [x] I have performed a self-review of my own code [x] I have commented my code, particularly in hard-to-understand areas [x] My changes generate no new warnings [x] Any dependent changes have been merged and published in downstream modules View the full article
-
[Collabora] - Industry week in focus: ISC, AWE & InfoComm take the stage
Next week Collabora will be covering a lot of ground, attending 3 separate events in 3 different time zones: ISC High Performance, Augmented World Expo, and InfoComm! Catch up with us at one of these events. View the full article
-
[Armbian build PR] - patching: integrate `b4`-based lore link processing
give the yaml lore link and prefix in 000.patching.config.yaml if prefix not found in any file in main patch dir, will grab full patch using b4 write it out with the prefix to main patch dir force a rewrite if file with prefix found, it will skip just delete the file to re-do prefixes should not ever change, and the full b4-provided slug will be appended; respect the "standard" of the patching dir by using the correct prefix View the full article
-
[Collabora] - Breaking language barriers 2.0: Moving closer towards fully reliable, production-ready Hindi ASR
After cleaning up and expanding Whisper-Hindi to 3,000 hours, we now have explicit timestamp prediction, faster I/O, and fine-tuned models across all sizes, bringing us even closer to fully reliable, production-ready Hindi ASR. View the full article
-
[Armbian build PR] - rootfs-create: drop hacks in `/etc/default/console-setup` and `setupcon` call
I believe this is what causes the red systemd error on console-setup during boot View the full article
-
[Armbian build PR] - bcm2711: don't skip deploying firmware if on Debian
bcm2711: don't skip deploying firmware if on Debian bcm2711: don't skip deploying firmware if on Debian partial revert of ca1f302ec6dd1e8d80815cdf7b9e69a52517ed2c bcm2711: bump raspfw version to a6827c1b30eabf41d53b3fa5e87d6ff8c0f28ae6 View the full article
-
[Collabora] - Kernel 6.15: Divide and conquer
The latest Linux kernel brings expanded hardware support for MediaTek and Rockchip, enhanced graphics drivers, and more. Collabora played a key role in this release, with no less than 20 authored contributors! View the full article
-
[Collabora] - PanVK reaches Vulkan 1.2 conformance on Mali-G610
Just about 6 weeks after we announced Vulkan 1.1 conformance for PanVK on G610 GPUs, Vulkan 1.2 is now also checked off the list! View the full article
-
[Collabora] - Monado v25.0.0: Driving the future of cross-platform Open Source XR
Monado's first stable of release of 2025 is here. From enhanced Android support and driver updates to improved runtime stability and tooling, Collabora's XR team delivered a wide array of improvements for the cross-platform, open source OpenXR runtime. View the full article
-
[Collabora] - What if C++ had decades to learn?
In this second article of a three-part series, I look at how Matt Godbolt uses modern C++ features to try to protect against misusing an API that deals with destructive state transition based on a talk he gave on making code easy to use and hard to misuse. View the full article
-
[Armbian build PR] - extension: add ksrc packaging
Description A (very poorly made) attempt to address https://github.com/armbian/build/issues/8161 It spits out some sort of kernel source package, but I think {version} is still missing since I couldn't get it to work and probably needs more fixes until production-ready. I probably won't go further here due to lacking expertise in framework and bash foo. Maybe someone want to pick it up from here. Also to do: Re-enable BUILD_KSRC switch to enable the extension. How Has This Been Tested? [x] enable extension [x] see some sort of kernel package being created [ ] ??? [ ] Profit! Checklist: [ ] My code follows the style guidelines of this project - Well...kind of? [ ] I have performed a self-review of my own code [ ] I have commented my code, particularly in hard-to-understand areas [x] My changes generate no new warnings [ ] Any dependent changes have been merged and published in downstream modules View the full article
-
[Armbian build PR] - add CAINIAO CNIoT-CORE initial support
How Has This Been Tested? build the armbian.img, flash to eMMC/USB drive,then boot and use it Checklist: [x] My code follows the style guidelines of this project [x] I have performed a self-review of my own code [x] I have commented my code, particularly in hard-to-understand areas [x] My changes generate no new warnings Hardware Cainiao Logistics Terminal A311D Edition, detachable into two parts: the main unit and the base. Main Unit Amlogic A311D SoC, 2 GB DDR, 16 GB eMMC No SD card slot, so the A311D can only load FIP from eMMC. Gigabit Ethernet port and RTL8822CS WiFi/BT. One USB Type-C port for power and data transfer in USB download mode. When the main unit is used with the base, it is unclear if this Type-C can function as a Host under Linux, as it is obstructed by the base, making it difficult to plug in devices for testing. Base The base comes in different models, but the software should be universal. Equipped with a USB HUB, display (HDMI or VGA), and power supply (USB Type-C or DC). Debug Points Debug UART eMMC Shorting Point Armbian Peripheral Status Component Status GBE Working WiFi Working BT Working PWM Fan Working eMMC Working USB Working HDMI Display Working HDMI Audio Working Internal Speaker Not Working Power Button Working ADC Key Working Side Lights? Not Working Four Dots on Side Not Working (USB? SPI?) Installing Armbian The Amlogic USB Burning Tool uses a proprietary firmware format. Although the firmware extension is .img, it is not a disk image file. There are tools available for unpacking/repacking it: Amlogic binary only executable hzyitc/AmlImg 7Ji/ampack Repacking all system image .img files into USB flashing packages is not cost-effective. You can pack an FIP with mainline U-Boot into a USB flashing package to restore the device to a state with mainline U-Boot. Mainline U-Boot includes drivers for Ethernet, USB, and eMMC, which is sufficient for many tasks. An FIP with mainline U-Boot is available here. Flashing Mainline U-Boot Using dd Command If the device has a working system like Android or Linux with root access, you can simply write fip-with-mainline-uboot.bin to the eMMC: dd if=path-to-fip-with-mainline-uboot.bin of=/dev/mmcblk1 bs=512 seek=1 It is also recommended to flash the FIP to the eMMC boot area, as the A311D will try to load the FIP from the eMMC boot area if it cannot find it in the user area. On Linux, you can: # Check if write access to boot area is available blockdev --getro /dev/mmcblk1boot0 blockdev --getro /dev/mmcblk1boot1 # Unlock write access to boot area echo 0 | sudo tee /sys/block/mmcblk1boot0/force_ro echo 0 | sudo tee /sys/block/mmcblk1boot1/force_ro dd if=path-to-fip-with-mainline-uboot.bin of=/dev/mmcblk1boot0 bs=512 seek=1 dd if=path-to-fip-with-mainline-uboot.bin of=/dev/mmcblk1boot1 bs=512 seek=1 Using USB Download Mode If you cannot gain root access to the existing system on the device, you can use the Amlogic USB Burning Tool with the prepared USB flashing package fip-with-mainline-uboot.burn.img to directly flash mainline U-Boot to the eMMC. See Flashing eMMC in USB Download Mode for the USB download process. The Amlogic USB Burning Tool will write the FIP to the eMMC boot area. Flashing Armbian Image Flashing Armbian Image to USB Drive If you frequently test different systems, considering the lifespan of eMMC and convenience, you may prefer booting from a USB drive. Simply flash the .img file to a USB drive, insert it into the device, and power on. The mainline U-Boot on the eMMC will automatically scan devices like eMMC, USB, and Ethernet in sequence to find a suitable boot environment, such as a U-Boot script, extlinux, or TFTP. If the A311D still boots from eMMC, it means there is a bootable system on the eMMC. To force booting from USB, you need to destroy the system on the eMMC, such as by deleting the MBR partition table. Alternatively, in the U-Boot command line, enter setenv boot_targets usb0 && boot if you have a UART cable connected. Flashing Armbian Image to eMMC Method 1 This method requires a USB drive and network access for the device. First, flash the Armbian system image to a USB drive and boot the device from it. Then, transfer the system image to be installed to the USB drive via the network, and use the dd command to flash it to the eMMC: dd if=path-to-your-os-img of=/dev/mmcblk1 status=progress Alternatively, use a trick to avoid transferring the system image to the USB drive. On the Armbian system booted from the USB drive, install Netcat and run: nc -l -p 1234 > /dev/mmcblk1 On a Linux PC, install Netcat and run: nc -w 3 your-cainiao-cniot-core-ip 1234 < path-to-your-os-img Netcat has two variants: GNU and OpenBSD. If you have GNU Netcat installed on the PC, the command should be: nc -w 3 -c your-cainiao-cniot-core-ip 1234 < path-to-your-os-img To install OpenBSD Netcat: # ArchLinux sudo pacman -S openbsd-netcat # Ubuntu/Debian apt install netcat-openbsd To install GNU Netcat: # ArchLinux sudo pacman -S gnu-netcat # Ubuntu/Debian sudo apt install netcat-traditional Method 2 This method requires connecting the device's UART to a PC and ensuring both the device and PC are on the same LAN via Ethernet. First, place the system image to be installed on the Linux PC and rename it, e.g., armbian.img. Split the image on the Linux PC, as the device's memory cannot hold the entire image at once: split -b 512M armbian.img armbian.img. # Assume armbian.img is split into armbian.img.aa, armbian.img.ab, armbian.img.ac; note the filenames. Set up a TFTP server on the PC. Windows users can use Tftpd64. On Linux, use a similar tool like puhitaku/tftp-now. Download the binary from Releases, install it to PATH, and run sudo tftp-now serve -root dir-to-armbian.img.aX. When powering on the device, press the spacebar in the UART session to enter the U-Boot command line. Configure the device's network: setenv ipaddr 172.24.0.241 setenv netmask 255.255.252.0 setenv gatewayip 172.24.0.1 setenv serverip 172.24.0.248 The IP 172.24.0.248 is the PC's IP. Set the RAM address for temporarily storing the image: setenv loadaddr 0x20000000 Start downloading the image from the PC's TFTP server and write it to the eMMC: setenv mmcscript 'setenv files "armbian.img.aa armbian.img.ab armbian.img.ac"; setenv offset 0x0; for file in ${files}; do tftpboot ${loadaddr} ${file}; setexpr nblk ${filesize} / 0x200; mmc write ${loadaddr} ${offset} ${nblk}; setexpr offset ${offset} + ${nblk}; done' mmc dev 1 && run mmcscript Finally, reboot the device. Flashing eMMC in USB Download Mode The USB Type-C port on the main unit is the USB download port. Shorting the eMMC shorting point and powering on will put the device into USB download mode. Alternatively, while the device is running, you can erase the header of the eMMC user/boot area and reboot to enter USB download mode. Example commands: # Under Linux sudo dd if=/dev/zero of=/dev/mmcblk1 bs=1MiB count=4 status=progress echo 0 | sudo tee /sys/block/mmcblk1boot0/force_ro echo 0 | sudo tee /sys/block/mmcblk1boot1/force_ro sudo dd if=/dev/zero of=/dev/mmcblk1boot0 bs=1MiB count=4 status=progress sudo dd if=/dev/zero of=/dev/mmcblk1boot1 bs=1MiB count=4 status=progress # Under U-Boot command line mmc dev 1 mmc erase 0 8192 mmc partconf 1 1 1 1 mmc erase 0 8192 mmc partconf 1 1 2 2 mmc erase 0 8192 Finally, use Amlogic USB Burning Tool v2.x.x to flash the image. View the full article