Compare commits

..

46 Commits

Author SHA1 Message Date
Igor Pecovnik
35ea751ab6 Merge branch 'lanmarc77-main' 2024-06-09 22:42:33 +02:00
33335
1781a89b5b Fix board firefly-itx-3588j bluetooth 2024-06-09 22:42:03 +02:00
Igor Pecovnik
4705791b85 Adjust several desktop targets in order to be able to assemble them
Images were tested for compiling with newly added Action script that generates x86 QEMU images upon (manual for now) execution

https://github.com/armbian/os/actions/workflows/full-distro-build-and-test.yml
2024-06-09 22:42:03 +02:00
ColorfulRhino
52e29b6250 rockchip64: Move some leftovers from 6.8 to 6.9 patch folder
- Convert patches that add a completely new board to dts file, automatically applied in the dt folder
2024-06-09 22:42:03 +02:00
amazingfate
d4f3f7dd36 extensions: image-output-abl: use losetup instead of silly dd 2024-06-09 22:42:02 +02:00
amazingfate
b3f4c449bf sm8250: enable ppa for noble to fix qbootctl 2024-06-09 22:42:02 +02:00
ColorfulRhino
764d99282c actions: Rename PR-specific workflows with "pr-" prefix 2024-06-09 22:42:01 +02:00
ColorfulRhino
ba3a545ee2 actions: Combine PR labeling jobs into a single workflow 2024-06-09 22:42:01 +02:00
ColorfulRhino
39ce1a480f actions: Don't run shellcheck if PR message or title was updated
Also fix typos.
2024-06-09 22:42:00 +02:00
ColorfulRhino
0fe5be9077 actions: Don't start build workflow on PR 'reviewer_requested' trigger
The PR build workflow does not need to be started every time a single
reviwer is added, since requesting a review does not change the build.
If the 'Build' label was already added earlier, the build workflow will
have been started already.
2024-06-09 22:42:00 +02:00
ColorfulRhino
3e839e728b actions: Move concurrency canceling to 2nd job for PR build
On every PR, a workflow is started to check if artifacts should be
built. This happens not only once, but many times, e.g. for every
selected reviewer. Since the workflow has `cancel-in-progress`
enabled, workflows are started and immediately cancelled by the
next one, resulting in many notifications.
Move the `cancel-in-progress` concurrency policy to the second job
which starts only after a check is done if the 'Build' label is even
active on the PR. This should greatly reduce "Workflow cancelled"
notifications via GitHub and email (if enabled by the user).

Also make wording more clear.
2024-06-09 22:42:00 +02:00
Ricardo Pardini
e72db62f01 odroidhc4: bump to u-boot v2024.04; drop most defconfig patches in favor of hooks
- add `pre_config_uboot_target` hook for switching BOOTCONFIG across the two targets
  - adapt `UBOOT_TARGET_MAP` to not call the defconfig Makefile targets directly, instead, just do a variable assignment (ignored by Make)
  - otherwise, when using the defconfig directly in the `UBOOT_TARGET_MAP`, the `post_config_uboot_target` .config changes are overwritten when Make is called
- only patch left is boot usb-nvme-scsi/sata first (still done in meson64.h)
- remove FIP handling from family file `meson-sm1.conf` into board file hook where it belongs
- u-boot: enable more compression methods, EFI debugging, i2c, leds, tcp networking
- use flashcp for mtd writing

- Unchanged:
  - confirmed as of v2024.04: using the C4 (not HC4) defconfig is still needed to be able to write to mtd when booted from SD
  - also confirmed: one still needs to erase Petitboot using Petitboot, then boot from SD, to be able to flash mainline u-boot to mtd
2024-06-09 22:41:59 +02:00
Alban Browaeys
c73d7cef62 Sync helios64 to its updated 6.9 dts
Also move most node in the same order as upstream to lower the work
required to sync.
2024-06-09 22:41:59 +02:00
Alessandro Lannocca
bf63467353 double quote variable for consistency 2024-06-09 22:41:58 +02:00
Alessandro Lannocca
c7458b03af build xapian-index for synaptic only for stable releases 2024-06-09 22:41:58 +02:00
Alex
b16e67e637 Enhance build times disabling command-not-found during rootfs creation (#6616) 2024-06-09 22:41:57 +02:00
Ricardo Pardini
3538608fda nanopct6: Kwiboo 24.07 u-boot for edge; bump blobs for all branches
- exclusive for edge / Kwiboo:
  - enable UMS / RockUSB and other gadget stuff
  - enable TCP networking features, wget etc
  - enable EFI debugging stuff
  - store environment in SPI
  - uses preboot to flash led briefly
  - this code pattern is becoming copypasta fast and needs refactor before it spreads too much
- also for all branches (legacy/vendor/edge):
  - nanopct6: updated blobs to DDR v1.16 and BL31 v1.45
2024-06-09 22:41:57 +02:00
ColorfulRhino
56f2f598db patch: u-boot: Fix patch dirs for CM3588 NAS and Orange Pi 5 2024-06-09 22:41:57 +02:00
Ricardo Pardini
ca3b5c6f07 patching: rewrite: fully stabilize patch index stanzas as well as From lines
- `git format-patch --zero-commit` doesn't affect `index xxx...yyy` lines, only `From: `
  - so use the _classy_ "use a regex with a callback" solution as git format-patch doesn't offer one
- this will make _all_ patches change when rewritten, but hopefully _for the last time_ !
- we need to preserve `index 000000000000..xxx` as zeros, which indicate new file creation, thus:
  - new file creations are rewritten as `index 000000000000..111111111111`
  - non-creations are rewritten as `index 111111111111..222222222222`
- this is the final version of #6455
2024-06-09 22:41:56 +02:00
Igor Pecovnik
611ff391c8 Inovato-quadra: changing board support status 2024-06-09 22:41:56 +02:00
Igor Pecovnik
96efc544c8 Add 6.9 compatibility fix for UWE and rewrite rockchip64 kernel config 2024-06-09 22:41:55 +02:00
Igor Pecovnik
4f02ebb65c Wireless drivers: port 8723cs to be compatible with kernel 6.9 2024-06-09 22:41:55 +02:00
kernelzru
77faadadc1 move ugoos x3 dt to 6.9 folder 2024-06-09 22:41:54 +02:00
kernelzru
6310f60617 update meson patches for 6.9 kernel 2024-06-09 22:41:54 +02:00
Igor
bda1f6c385 Bump meson and meson64 EDGE kernel to 6.9.y (#6669)
* Bump meson and meson64 EDGE kernel to 6.9.y
* Rename patch folders
* Adjust broken patches, one remaining
* Add overlay support
* meson64: rename overlays to dtso, update makefile
* Update meson-gx-socinfo-sm driver patchset for meson64-6.9:
* add SoC ID patches for S905L, A113X
* fix memory double free in driver
* update dt bindings
---------
Signed-off-by: Patrick Yavitz <pyavitz@armbian.com>
Signed-off-by: Patrick Yavitz <pyavitz@xxxxx.com>
Signed-off-by: Viacheslav Bocharov <adeep@lexina.in>
Co-authored-by: Patrick Yavitz <pyavitz@xxxxx.com>
Co-authored-by: Paolo Sabatino <paolo.sabatino@gmail.com>
Co-authored-by: Viacheslav Bocharov <adeep@lexina.in>
2024-06-09 22:41:54 +02:00
Paolo Sabatino
2629f32bdb rockchip: generalize dtb installation makefile 2024-06-09 22:41:53 +02:00
Paolo Sabatino
bec1184dae fix dtb overlay compilation and installation
* rename .dts sources in overlay directory as *.dtso
 * change "target +=" line in "dts-y +=" in overlay Makefile
 * remove "always +=" line in overlay Makefile
 * add .scr compilation support in kernel scripts/Makefile.lib
 * patch kernel scripts/Makefile.dtbinst to avoid flattening overlay
   directory

for the last two points, see
general-add-overlay-compilation-support.patch
2024-06-09 22:41:53 +02:00
Paolo Sabatino
bd77b58a80 bump rockchip family edge kernel to 6.9 2024-06-09 22:41:52 +02:00
Paolo Sabatino
ebb6336b01 rockchip64: generalize dtb installation makefile 2024-06-09 22:41:52 +02:00
Paolo Sabatino
53cfb87046 rockchip64: bump edge kernel to 6.9 2024-06-09 22:41:49 +02:00
Daniel Gonçalves
b1f58146a9 fix: cloudshell2 dtbo overlay path in boot.ini
Currently, dtbo path in boot.ini is wrong. So we cannot load device tree blob overlays for cloudshell2. This commit fix this path in boot.ini
2024-06-09 22:40:44 +02:00
Ricardo Pardini
a8d0cba727 u-boot-radxa-rk3588/legacy: nanopc_t6_defconfig: disable OPTEE (for OOB working boot with from-factory blobs in eMMC)
- makes it compatible with vendor out-of-box blobs (which include TEE) in the from-factory eMMC
- Armbian itself doesn't ship TEE blobs
- when combining from-factory eMMC blobs with an Armbian SD card, TEE blobs are in practice found by u-boot
- but then proceeds to fail with `optee api revision is too low`
- disable OPTEE in defconfig fixes it, TEE isn't used in any way by Armbian
2024-06-09 22:40:44 +02:00
Ricardo Pardini
c16816de22 u-boot-radxa-rk3588/legacy: nanopc_cm3588_defconfig: disable OPTEE (for OOB working boot with from-factory blobs in eMMC)
- makes it compatible with vendor out-of-box blobs (which include TEE) in the from-factory eMMC
- Armbian itself doesn't ship TEE blobs
- when combining from-factory eMMC blobs with an Armbian SD card, TEE blobs are in practice found by u-boot
- but then proceeds to fail with `optee api revision is too low`
- disable OPTEE in defconfig fixes it, TEE isn't used in any way by Armbian
2024-06-09 22:40:43 +02:00
Ricardo Pardini
bf65778c25 u-boot-radxa-rk3588/legacy: rewrite nanopc_cm3588_defconfig -- no changes
- `CONFIG_REGULATOR_RK806=y` seems a leftover that's not really used?
2024-06-09 22:40:43 +02:00
Ricardo Pardini
bcb907e4f1 u-boot-radxa-rk3588/legacy: rewrite nanopc_t6_defconfig -- no changes
- `CONFIG_REGULATOR_RK806=y` seems a leftover that's not really used?
2024-06-09 22:40:43 +02:00
Ricardo Pardini
719b9c0376 u-boot-radxa-rk3588/legacy: add 0000.patching_config.yaml and move all null-patches into dt and defconfig dirs as bare files
- DTs and defconfigs should be identical to their null-patch equivalents
2024-06-09 22:40:42 +02:00
Ricardo Pardini
0d3bc8fd97 u-boot-radxa-rk3588/legacy: rewrite u-boot patches, no changes 2024-06-09 22:40:42 +02:00
Alex
ac917fd6a4 RFC: fix #6686: Debian: enable ssh.service and make it work reliably on armbian-firstrun (#6687)
* Revert commits 911c756083 and 30c47f6f6c

* tweak armbian-firstrun.service to run after ssh.service (for host keys generation purposes)
2024-06-09 22:40:41 +02:00
stephengraf
c22f487916 Sound Allwinner H616 H618 SOCs (#6694)
* Add files via upload

* Update series.armbian

* Update series.conf

* Add files via upload

* Update series.armbian

* Update series.conf

* Update linux-sunxi64-edge.config

* Update linux-sunxi64-current.config
2024-06-09 22:40:41 +02:00
Patrick Yavitz
30e33f5561 RTL88X2CS: linux 6.9.y support
Signed-off-by: Patrick Yavitz <pyavitz@armbian.com>
2024-06-09 22:40:41 +02:00
Lemon1151
cc73e018c1 Adding support for the fine3399 board 2024-06-09 22:40:40 +02:00
Thomas McKahan
fe0712d65c Sweet potato: update config
Fix the typo in dtb
2024-06-09 22:40:40 +02:00
mr-toolcraft
00bfafe3a6 fix typo 2024-06-09 22:40:39 +02:00
LanMarc77
3dd0a8b338 removed the fixup script changes
made dts enabled by default
2024-06-06 20:55:39 +02:00
LanMarc77
eee9baaa86 adjusted Makefile for compilation for Nano Pi Neo3 spi-spidev 2024-06-02 17:48:07 +02:00
LanMarc77
436d544712 added spi device support for Nano Pi Neo3 with different address 2024-06-02 17:45:53 +02:00
7721 changed files with 4517354 additions and 1395833 deletions

326
.github/CODEOWNERS vendored
View File

@@ -16,305 +16,177 @@ packages/bsp/jethub/ @armbian/build-scripts @adeepn
tools/ @iav @neheb @hzyitc @mhoffrog
# The following contents are generated by board configs
config/boards/aml-a311d-cc.conf @Tonymac32
config/boards/aml-c400-plus.conf @jomadeto
config/boards/aml-s905d3-cc.wip @Tonymac32
config/boards/aml-s9xx-box.tvb @SteeManMI
config/boards/armsom-sige1.csc @amazingfate
config/boards/armsom-sige3.csc @amazingfate
config/boards/avaota-a1.csc @chainsx
config/boards/ayn-odin2.csc @FantasyGmm
config/boards/bananapi.conf @DylanHP @janprunk
config/boards/armsom-sige7.csc @Z-Keven
config/boards/ayn-odin2.conf @FantasyGmm
config/boards/bananapi.csc @DylanHP
config/boards/bananapicm4io.conf @pyavitz
config/boards/bananapif3.conf @pyavitz
config/boards/bananapim2plus.conf @leggewie
config/boards/bananapim2pro.conf @igorpecovnik
config/boards/bananapim2pro.conf @bretmlw
config/boards/bananapim2s.conf @jeanrhum @pyavitz
config/boards/bananapim2zero.csc @mhawkins-consultant
config/boards/bananapim3.csc @AaronNGray
config/boards/bananapim4berry.conf @The-going
config/boards/bananapim4zero.conf @pyavitz
config/boards/bananapim5.conf @igorpecovnik
config/boards/bananapim5.conf @bretmlw
config/boards/bananapim64.csc @devdotnetorg
config/boards/bananapim7.conf @amazingfate
config/boards/beaglebone-ai64.conf @Grippy98
config/boards/beagleplay.conf @Grippy98
config/boards/beagley-ai.csc @Grippy98
config/boards/bigtreetech-cb1.conf @JohnTheCoolingFan
config/boards/bigtreetech-cb2.conf @JohnTheCoolingFan
config/boards/cherryba-m1.csc @IsMrX
config/boards/clearfogpro.csc @Heisath
config/boards/cm3588-nas.csc @ColorfulRhino
config/boards/coolpi-cm5.csc @andyshrk
config/boards/coolpi-genbook.csc @andyshrk
config/boards/firefly-itx-3588j.csc @SeeleVolleri
config/boards/bigtreetech-cb1.conf @bigtreetech
config/boards/espressobin.csc @ManoftheSea
config/boards/firefly-rk3399.csc @150balbes
config/boards/fxblox-rk1.csc @mahdichi
config/boards/gateway-gz80x.conf @pyavitz
config/boards/h96-tvbox-3566.tvb @hqnicolas
config/boards/helios4.conf @Heisath
config/boards/helios64.conf @prahal
config/boards/hinlink-h28k.csc @sputnik2019
config/boards/hinlink-ht2.csc @hoochiwetech
config/boards/imb3588.conf @JackHuang021
config/boards/indiedroid-nova.csc @lanefu
config/boards/inovato-quadra.conf @igorpecovnik
config/boards/jethubj100.conf @adeepn
config/boards/jethubj200.conf @adeepn
config/boards/jethubj80.conf @adeepn
config/boards/jetson-nano.csc @150balbes
config/boards/jp-tvbox-3566.tvb @tdleiyao
config/boards/khadas-edge2.conf @efectn
config/boards/khadas-edge2.conf @igorpecovnik
config/boards/khadas-vim1.conf @igorpecovnik
config/boards/khadas-vim1s.conf @rpardini @viraniac
config/boards/khadas-vim2.conf @igorpecovnik
config/boards/khadas-vim3.conf @NicoD-SBC @rpardini
config/boards/khadas-vim3l.conf @rpardini
config/boards/khadas-vim4.conf @adeepn @rpardini @viraniac
config/boards/kickpik2b.csc @pyavitz
config/boards/khadas-vim4.conf @echatzip @rpardini @viraniac
config/boards/lafrite.conf @Tonymac32
config/boards/leez-p710.csc @andyshrk
config/boards/lepotato.conf @Tonymac32
config/boards/licheepi-4a.eos @chainsx
config/boards/longanpi-4b.csc @chainsx
config/boards/lubancat2.csc @andyshrk
config/boards/licheepi-4a.csc @chainsx
config/boards/mangopi-m28k.csc @sputnik2019
config/boards/mba8mpxl-ras314.conf @schmiedelm
config/boards/mba8mpxl.conf @schmiedelm
config/boards/mekotronics-r58-minipc.csc @monkaBlyat
config/boards/mekotronics-r58x-4g.csc @monkaBlyat
config/boards/mekotronics-r58x.csc @monkaBlyat
config/boards/mixtile-blade3.csc @rpardini
config/boards/mksklipad50.conf @torte71
config/boards/mkspi.csc @redrathnure
config/boards/nanopct6-lts.conf @SuperKali @Tonymac32
config/boards/nanopct6.conf @SuperKali @Tonymac32
config/boards/nanopi-m6.conf @efectn
config/boards/nanopi-r3s-lts.conf @pyavitz
config/boards/nanopct6.csc @Tonymac32
config/boards/nanopi-r4s.conf @Manouchehri
config/boards/nanopi-r5s.csc @utlark
config/boards/nanopi-r6c.csc @ColorfulRhino
config/boards/nanopi-r6s.conf @efectn
config/boards/nanopi-r6s.csc @efectn
config/boards/nanopiair.csc @1ubuntuuser
config/boards/nanopiduo.csc @sgjava
config/boards/nanopim4v2.conf @igorpecovnik
config/boards/nanopineo.csc @spendist
config/boards/nanopineo2.csc @spendist
config/boards/nanopineocore2.csc @AGM1968
config/boards/nanopiduo.conf @sgjava
config/boards/nanopiduo2.conf @viraniac
config/boards/nanopineoplus2.csc @teknoid
config/boards/odroidc1.conf @juanlufont
config/boards/odroidc2.conf @teknoid
config/boards/odroidc4.conf @igorpecovnik
config/boards/odroidhc4.conf @igorpecovnik
config/boards/odroidm1.conf @rpardini
config/boards/odroidm2.csc @mlegenovic
config/boards/odroidn2.conf @NicoD-SBC
config/boards/odroidxu4.conf @joekhoobyar
config/boards/olimex-teres-a64.csc @Kreyren
config/boards/onecloud.csc @hzyitc
config/boards/oneplus-kebab.conf @amazingfate
config/boards/olimex-teres-a64.conf @Kreyren
config/boards/onecloud.conf @hzyitc
config/boards/orangepi-r1.csc @schwar3kat
config/boards/orangepi-r1plus-lts.csc @schwar3kat
config/boards/orangepi3-lts.csc @viraniac
config/boards/orangepi3.csc @viraniac
config/boards/orangepi4-lts.conf @paolosabatino
config/boards/orangepi4.csc @paolosabatino
config/boards/orangepi5-plus.conf @alexl83
config/boards/orangepi5-plus.conf @efectn
config/boards/orangepi5.conf @efectn
config/boards/orangepione.conf @StephenGraf
config/boards/orangepipc.csc @lbmendes
config/boards/orangepipcplus.csc @Janmcha
config/boards/orangepizero2.csc @AGM1968 @krachlatte
config/boards/orangepizero2w.csc @chraac
config/boards/orangepizero3.csc @alexl83 @chraac
config/boards/orangepizeroplus.csc @schwar3kat
config/boards/phytiumpi.conf @chainsx
config/boards/orangepiprime.conf @viraniac
config/boards/orangepizero.conf @viraniac
config/boards/orangepizero2.conf @AGM1968 @krachlatte
config/boards/orangepizeroplus.conf @schwar3kat
config/boards/phytiumpi.csc @chainsx
config/boards/pine64.conf @PanderMusubi
config/boards/pinebook-a64.csc @Qvy-png
config/boards/pinebook-pro.csc @TRSx80 @ahoneybun
config/boards/pocketbeagle2.conf @Grippy98
config/boards/pocketchip-sd.csc @TheSnowfield
config/boards/qcom-robotics-rb5.conf @FantasyGmm
config/boards/pine64so.csc @joshaspinall
config/boards/pinebook-pro.conf @TRSx80 @ahoneybun
config/boards/qemu-uboot-arm64.csc @rpardini
config/boards/qemu-uboot-x86.csc @rpardini
config/boards/qemu-uefi-x86.conf @davidandreoletti
config/boards/radxa-e20c.csc @mattx433
config/boards/radxa-e25.csc @krachlatte
config/boards/radxa-e52c.conf @amazingfate
config/boards/radxa-nio-12l.conf @HeyMeco
config/boards/radxa-zero.conf @clee @engineer-80
config/boards/radxa-zero2.csc @monkaBlyat
config/boards/recore.csc @eliasbakken
config/boards/renegade.conf @Tonymac32
config/boards/retro-lite-cm5.csc @ginkage
config/boards/rk3318-box.tvb @paolosabatino
config/boards/rk3328-heltec.csc @sicXnull
config/boards/rock-2a.csc @CodeChenL
config/boards/rock-2f.csc @CodeChenL
config/boards/rock-3a.conf @ZazaBR @amazingfate @catalinii @vamzii
config/boards/rock-5-itx.conf @amazingfate @prahal
config/boards/rock-5a.conf @amazingfate
config/boards/rock-5b-plus.conf @HeyMeco @fridtjof
config/boards/rock-5b.conf @amazingfate @linhz0hz
config/boards/rock-5c.conf @schwar3kat
config/boards/rock-5t.conf @HeyMeco
config/boards/rock-3a.csc @ZazaBR @amazingfate @catalinii @vamzii
config/boards/rock-5a.csc @amazingfate
config/boards/rock-5b.csc @amazingfate @linhz0hz
config/boards/rock-s0.conf @brentr
config/boards/rock64.conf @clee
config/boards/rock64.csc @clee
config/boards/rockpi-4a.csc @clee
config/boards/rockpi-e.conf @paolosabatino
config/boards/rockpi-e.conf @krachlatte
config/boards/rockpi-s.conf @brentr
config/boards/rockpro64.csc @joekhoobyar
config/boards/rpi4b.conf @PanderMusubi @teknoid
config/boards/sakurapi-rk3308b.csc @TheSnowfield
config/boards/rockpro64.conf @joekhoobyar
config/boards/rpi4b.conf @PanderMusubi @teknoid @viraniac
config/boards/rpi5b.conf @viraniac
config/boards/sk-am62b.conf @glneo
config/boards/sk-am64b.conf @glneo
config/boards/sk-am68.conf @glneo
config/boards/sk-am69.conf @glneo
config/boards/sk-tda4vm.conf @glneo
config/boards/station-m1.csc @150balbes
config/boards/station-m2.csc @150balbes
config/boards/station-m3.csc @chainsx
config/boards/sweet-potato.conf @Tonymac32
config/boards/thinkpad-x13s.conf @PeterChrz @rpardini
config/boards/station-p2.csc @150balbes
config/boards/thinkpad-x13s.wip @PeterChrz @rpardini
config/boards/tinkerboard.conf @paolosabatino
config/boards/tritium-h3.conf @Tonymac32
config/boards/tritium-h5.conf @Tonymac32
config/boards/uefi-arm64.conf @rpardini
config/boards/uefi-x86.conf @rpardini
config/boards/visionfive2.csc @libiunc
config/boards/wsl2-arm64.csc @rpardini
config/boards/wsl2-x86.csc @rpardini
config/boards/x96-mate.tvb @Ressetkk
config/boards/x96q.tvb @sicXnull
config/boards/xiaomi-elish.conf @amazingfate
config/boards/youyeetoo-r1-v3.csc @SuperKali
config/boards/yy3568.csc @hqnicolas
config/kernel/linux-arm64-*.config @PeterChrz @rpardini
config/kernel/linux-bcm2711-*.config @PanderMusubi @teknoid
config/kernel/linux-genio-*.config @HeyMeco
config/kernel/linux-k3-*.config @Grippy98 @glneo
config/kernel/linux-k3-beagle-*.config @Grippy98
config/kernel/linux-meson-*.config @hzyitc @juanlufont
config/kernel/linux-meson-s4t7-*.config @adeepn @rpardini @viraniac
config/kernel/linux-meson64-*.config @NicoD-SBC @SteeManMI @Tonymac32 @adeepn @clee @engineer-80 @igorpecovnik @jeanrhum @jomadeto @pyavitz @rpardini @teknoid
config/boards/xiaomi-umi.wip @FantasyGmm
config/kernel/linux-arm64-*.config @FantasyGmm @amazingfate
config/kernel/linux-bcm2711-*.config @PanderMusubi @teknoid @viraniac
config/kernel/linux-k3-*.config @glneo
config/kernel/linux-media-*.config @150balbes
config/kernel/linux-meson-*.config @hzyitc
config/kernel/linux-meson-s4t7-*.config @echatzip @rpardini @viraniac
config/kernel/linux-meson64-*.config @NicoD-SBC @SteeManMI @Tonymac32 @adeepn @bretmlw @clee @engineer-80 @igorpecovnik @jeanrhum @monkaBlyat @pyavitz @rpardini @teknoid
config/kernel/linux-mvebu-*.config @Heisath
config/kernel/linux-mvebu64-*.config @ManoftheSea
config/kernel/linux-odroidxu4-*.config @joekhoobyar
config/kernel/linux-phytium-embedded-*.config @chainsx
config/kernel/linux-rk35xx-*.config @CodeChenL @ColorfulRhino @HeyMeco @JackHuang021 @SeeleVolleri @SuperKali @Tonymac32 @ZazaBR @alexl83 @amazingfate @andyshrk @catalinii @chainsx @efectn @fridtjof @ginkage @hoochiwetech @hqnicolas @krachlatte @lanefu @linhz0hz @mahdichi @mattx433 @prahal @rpardini @schwar3kat @sputnik2019 @vamzii
config/kernel/linux-rk35xx-*.config @Tonymac32 @Z-Keven @ZazaBR @amazingfate @catalinii @chainsx @efectn @hoochiwetech @igorpecovnik @krachlatte @lanefu @linhz0hz @mahdichi @monkaBlyat @rpardini @sputnik2019 @vamzii
config/kernel/linux-rockchip-*.config @paolosabatino
config/kernel/linux-rockchip64-*.config @150balbes @ColorfulRhino @HeyMeco @JohnTheCoolingFan @SuperKali @TRSx80 @TheSnowfield @Tonymac32 @ZazaBR @ahoneybun @alexl83 @amazingfate @andyshrk @brentr @catalinii @chainsx @clee @efectn @fridtjof @hqnicolas @igorpecovnik @joekhoobyar @krachlatte @lanefu @linhz0hz @mlegenovic @paolosabatino @prahal @pyavitz @redrathnure @rpardini @schwar3kat @sicXnull @tdleiyao @torte71 @utlark @vamzii
config/kernel/linux-sm8250-*.config @FantasyGmm @amazingfate
config/kernel/linux-sm8550-*.config @FantasyGmm
config/kernel/linux-spacemit-*.config @pyavitz
config/kernel/linux-starfive2-*.config @libiunc
config/kernel/linux-sun55iw3-syterkit-*.config @chainsx
config/kernel/linux-sunxi-*.config @1ubuntuuser @AaronNGray @DylanHP @Janmcha @StephenGraf @TheSnowfield @Tonymac32 @janprunk @lbmendes @leggewie @mhawkins-consultant @sgjava @spendist
config/kernel/linux-sunxi64-*.config @AGM1968 @IsMrX @JohnTheCoolingFan @Kreyren @PanderMusubi @Qvy-png @Ressetkk @The-going @Tonymac32 @alexl83 @chraac @devdotnetorg @eliasbakken @igorpecovnik @krachlatte @pyavitz @schwar3kat @sicXnull @spendist @teknoid
config/kernel/linux-rockchip-rk3588-*.config @Tonymac32 @amazingfate @efectn @igorpecovnik @lanefu @linhz0hz @rpardini
config/kernel/linux-rockchip64-*.config @Manouchehri @TRSx80 @Tonymac32 @ZazaBR @ahoneybun @amazingfate @brentr @catalinii @clee @joekhoobyar @krachlatte @paolosabatino @rpardini @schwar3kat @tdleiyao @utlark @vamzii
config/kernel/linux-sun50iw9-*.config @AGM1968 @krachlatte
config/kernel/linux-sun50iw9-btt-*.config @bigtreetech
config/kernel/linux-sunxi-*.config @1ubuntuuser @AaronNGray @DylanHP @StephenGraf @Tonymac32 @lbmendes @schwar3kat @sgjava @viraniac
config/kernel/linux-sunxi64-*.config @AGM1968 @Kreyren @PanderMusubi @Tonymac32 @bigtreetech @devdotnetorg @eliasbakken @joshaspinall @krachlatte @pyavitz @schwar3kat @teknoid @viraniac
config/kernel/linux-thead-*.config @chainsx
config/kernel/linux-tqma-*.config @schmiedelm
config/kernel/linux-uefi-arm64-*.config @rpardini
config/kernel/linux-uefi-arm64-*.config @150balbes @PeterChrz @rpardini
config/kernel/linux-uefi-x86-*.config @davidandreoletti @rpardini
config/kernel/linux-wsl2-arm64-*.config @rpardini
config/kernel/linux-wsl2-x86-*.config @rpardini
patch/atf/atf-arm64/ @PeterChrz @rpardini
patch/atf/atf-bcm2711/ @PanderMusubi @teknoid
patch/atf/atf-genio/ @HeyMeco
patch/atf/atf-imx8/ @schmiedelm
patch/atf/atf-k3-beagle/ @Grippy98
patch/atf/atf-k3/ @Grippy98 @glneo
patch/atf/atf-phytium-embedded/ @chainsx
patch/atf/atf-rockchip64/ @ColorfulRhino @SuperKali @TRSx80 @Tonymac32 @ahoneybun @andyshrk @clee @joekhoobyar @paolosabatino @prahal
patch/atf/atf-sm8250/ @FantasyGmm @amazingfate
patch/atf/atf-sm8550/ @FantasyGmm
patch/atf/atf-spacemit/ @pyavitz
patch/atf/atf-sun55iw3-syterkit/ @chainsx
patch/atf/atf-sunxi64/ @AGM1968 @IsMrX @JohnTheCoolingFan @Kreyren @PanderMusubi @Qvy-png @Ressetkk @The-going @Tonymac32 @alexl83 @chraac @devdotnetorg @eliasbakken @igorpecovnik @krachlatte @pyavitz @schwar3kat @sicXnull @spendist @teknoid
patch/atf/atf-wsl2-arm64/ @rpardini
patch/kernel/archive/bcm2711-*/ @PanderMusubi @teknoid
patch/kernel/archive/imx8m-*/ @schmiedelm
patch/kernel/archive/k3-*/ @Grippy98 @glneo
patch/kernel/archive/k3-beagle-*/ @Grippy98
patch/kernel/archive/meson-*/ @hzyitc @juanlufont
patch/kernel/archive/meson-s4t7-*/ @adeepn @rpardini @viraniac
patch/kernel/archive/meson64-*/ @NicoD-SBC @SteeManMI @Tonymac32 @adeepn @clee @engineer-80 @igorpecovnik @jeanrhum @jomadeto @pyavitz @rpardini @teknoid
patch/kernel/archive/mvebu-*/ @Heisath
patch/kernel/archive/odroidxu4-*/ @joekhoobyar
patch/kernel/archive/rockchip-*/ @paolosabatino
patch/kernel/archive/rockchip64-*/ @150balbes @ColorfulRhino @HeyMeco @JohnTheCoolingFan @SuperKali @TRSx80 @TheSnowfield @Tonymac32 @ZazaBR @ahoneybun @alexl83 @amazingfate @andyshrk @brentr @catalinii @chainsx @clee @efectn @fridtjof @hqnicolas @igorpecovnik @joekhoobyar @krachlatte @lanefu @linhz0hz @mlegenovic @paolosabatino @prahal @pyavitz @redrathnure @rpardini @schwar3kat @sicXnull @tdleiyao @torte71 @utlark @vamzii
patch/kernel/archive/meson-s4t7-*/ @echatzip @rpardini @viraniac
patch/kernel/archive/sm8250-*/ @FantasyGmm @amazingfate
patch/kernel/archive/sm8550-*/ @FantasyGmm
patch/kernel/archive/spacemit-*/ @pyavitz
patch/kernel/archive/sunxi-*/ @1ubuntuuser @AGM1968 @AaronNGray @DylanHP @IsMrX @Janmcha @JohnTheCoolingFan @Kreyren @PanderMusubi @Qvy-png @Ressetkk @StephenGraf @The-going @TheSnowfield @Tonymac32 @alexl83 @chraac @devdotnetorg @eliasbakken @igorpecovnik @janprunk @krachlatte @lbmendes @leggewie @mhawkins-consultant @pyavitz @schwar3kat @sgjava @sicXnull @spendist @teknoid
patch/kernel/archive/uefi-arm64-*/ @PeterChrz @rpardini
patch/kernel/archive/sun50iw9-*/ @AGM1968 @krachlatte
patch/kernel/archive/sun50iw9-btt-*/ @bigtreetech
patch/kernel/archive/sunxi-*/ @1ubuntuuser @AGM1968 @AaronNGray @DylanHP @Kreyren @PanderMusubi @StephenGraf @Tonymac32 @bigtreetech @devdotnetorg @eliasbakken @joshaspinall @krachlatte @lbmendes @pyavitz @schwar3kat @sgjava @teknoid @viraniac
patch/kernel/archive/uefi-arm64-*/ @150balbes @PeterChrz @rpardini
patch/kernel/archive/uefi-x86-*/ @davidandreoletti @rpardini
patch/kernel/archive/wsl2-arm64-*/ @rpardini
patch/kernel/archive/wsl2-x86-*/ @rpardini
patch/kernel/genio-1200-*/ @HeyMeco
patch/kernel/arm64-*/ @FantasyGmm @amazingfate
patch/kernel/bcm2711-*/ @PanderMusubi @teknoid @viraniac
patch/kernel/k3-*/ @glneo
patch/kernel/media-*/ @150balbes
patch/kernel/meson-*/ @hzyitc
patch/kernel/meson64-*/ @NicoD-SBC @SteeManMI @Tonymac32 @adeepn @bretmlw @clee @engineer-80 @igorpecovnik @jeanrhum @monkaBlyat @pyavitz @rpardini @teknoid
patch/kernel/mvebu-*/ @Heisath
patch/kernel/mvebu64-*/ @ManoftheSea
patch/kernel/odroidxu4-*/ @joekhoobyar
patch/kernel/phytium-embedded-*/ @chainsx
patch/kernel/rk35xx-vendor-*/ @CodeChenL @ColorfulRhino @HeyMeco @JackHuang021 @SeeleVolleri @SuperKali @Tonymac32 @ZazaBR @alexl83 @amazingfate @andyshrk @catalinii @chainsx @efectn @fridtjof @ginkage @hoochiwetech @hqnicolas @krachlatte @lanefu @linhz0hz @mahdichi @mattx433 @prahal @rpardini @schwar3kat @sputnik2019 @vamzii
patch/kernel/starfive2-*/ @libiunc
patch/kernel/sun55iw3-syterkit-*/ @chainsx
patch/kernel/rk35xx-*/ @Tonymac32 @Z-Keven @ZazaBR @amazingfate @catalinii @chainsx @efectn @hoochiwetech @igorpecovnik @krachlatte @lanefu @linhz0hz @mahdichi @monkaBlyat @rpardini @sputnik2019 @vamzii
patch/kernel/rk35xx-vendor-*/ @Tonymac32 @Z-Keven @ZazaBR @amazingfate @catalinii @chainsx @efectn @hoochiwetech @krachlatte @lanefu @linhz0hz @mahdichi @monkaBlyat @rpardini @sputnik2019 @vamzii
patch/kernel/rockchip-*/ @paolosabatino
patch/kernel/rockchip-rk3588-*/ @Tonymac32 @amazingfate @efectn @igorpecovnik @lanefu @linhz0hz @rpardini
patch/kernel/rockchip64-*/ @Manouchehri @TRSx80 @Tonymac32 @ZazaBR @ahoneybun @amazingfate @brentr @catalinii @clee @joekhoobyar @krachlatte @paolosabatino @rpardini @schwar3kat @tdleiyao @utlark @vamzii
patch/kernel/sun50iw9-*/ @AGM1968 @krachlatte
patch/kernel/thead-*/ @chainsx
patch/kernel/wsl2-arm64-*/ @rpardini
patch/u-boot/legacy/ @chainsx @joekhoobyar @juanlufont @lanefu
patch/u-boot/legacy/u-boot-clearfog/ @Heisath
patch/u-boot/legacy/u-boot-helios4/ @Heisath
patch/u-boot/legacy/u-boot-khadas-edge2-rk3588/ @efectn
patch/u-boot/legacy/u-boot-radxa-rk35xx/ @CodeChenL @HeyMeco @JackHuang021 @SeeleVolleri @SuperKali @Tonymac32 @ZazaBR @alexl83 @amazingfate @catalinii @chainsx @efectn @fridtjof @ginkage @hoochiwetech @hqnicolas @krachlatte @linhz0hz @mahdichi @mattx433 @prahal @rpardini @schwar3kat @sputnik2019 @tdleiyao @vamzii
patch/u-boot/legacy/u-boot-spacemit-k1/ @pyavitz
patch/u-boot/u-boot-beagle/ @Grippy98
patch/u-boot/u-boot-k3-beagle/ @Grippy98
patch/u-boot/u-boot-k3/ @Grippy98 @glneo
patch/u-boot/u-boot-meson-s4t7/ @adeepn @rpardini @viraniac
patch/u-boot/u-boot-qemu-arm64/ @rpardini
patch/u-boot/u-boot-qemu-x86/ @rpardini
patch/u-boot/u-boot-rockchip64-v2022.04/ @TRSx80 @ahoneybun @paolosabatino
patch/u-boot/u-boot-rockchip64/ @Tonymac32 @andyshrk @clee @igorpecovnik @prahal @redrathnure @sicXnull
patch/u-boot/u-boot-sunxi-crust/ @AGM1968 @Kreyren @PanderMusubi @Qvy-png @Tonymac32 @devdotnetorg @igorpecovnik @schwar3kat @spendist @teknoid
patch/u-boot/u-boot-sunxi/ @1ubuntuuser @AGM1968 @DylanHP @Janmcha @JohnTheCoolingFan @Kreyren @PanderMusubi @Qvy-png @Ressetkk @StephenGraf @TheSnowfield @Tonymac32 @devdotnetorg @eliasbakken @igorpecovnik @janprunk @krachlatte @lbmendes @leggewie @mhawkins-consultant @schwar3kat @sgjava @sicXnull @spendist @teknoid
patch/u-boot/u-boot-sunxi/board_bananapim3/ @AaronNGray
patch/u-boot/u-boot-tqma/ @schmiedelm
patch/u-boot/v2022.01/ @teknoid
patch/u-boot/v2022.07/ @Tonymac32 @igorpecovnik
patch/u-boot/v2022.10/ @NicoD-SBC
patch/u-boot/v2023.07.02/ @clee @engineer-80
patch/u-boot/v2023.10/ @adeepn
patch/u-boot/v2024.01/ @Tonymac32 @rpardini
patch/u-boot/v2024.01/board_orangepi5/ @efectn
patch/u-boot/v2024.04-rock5b-radxa/ @amazingfate @linhz0hz
patch/u-boot/v2024.04/ @Tonymac32 @utlark
patch/u-boot/v2024.07-coolpi-cm5/ @andyshrk
patch/u-boot/v2024.07/ @adeepn @igorpecovnik
patch/u-boot/v2024.07/board_station-m1/ @150balbes
patch/u-boot/v2024.10/ @alexl83 @brentr @pyavitz
patch/u-boot/v2024.10/board_bigtreetech-cb2/ @JohnTheCoolingFan
patch/u-boot/v2025-sunxi/ @The-going @alexl83 @chraac
patch/u-boot/v2025.01-rc3-coolpi-cm5/ @andyshrk
patch/u-boot/v2025.01/ @ColorfulRhino @efectn @jeanrhum @joekhoobyar @paolosabatino @pyavitz @rpardini @torte71
patch/u-boot/v2025.01/board_h96-tvbox-3566/ @hqnicolas
patch/u-boot/v2025.04/ @HeyMeco @IsMrX @NicoD-SBC @SuperKali @TheSnowfield @Tonymac32 @ZazaBR @amazingfate @andyshrk @catalinii @fridtjof @igorpecovnik @mlegenovic @pyavitz @rpardini @vamzii
patch/u-boot/v2025.07/ @pyavitz
sources/families/bcm2711.conf @PanderMusubi @teknoid
sources/families/genio.conf @HeyMeco
sources/families/imx8m.conf @schmiedelm
sources/families/jethub.conf @adeepn
sources/families/k3.conf @Grippy98 @glneo
sources/families/meson-axg.conf @pyavitz
sources/families/meson-g12a.conf @clee @engineer-80
sources/families/meson-g12b.conf @NicoD-SBC @Tonymac32 @jeanrhum @pyavitz @rpardini
sources/families/meson-gxbb.conf @teknoid
sources/families/meson-gxl.conf @SteeManMI @Tonymac32 @igorpecovnik @jomadeto
sources/families/meson-s4t7.conf @adeepn @rpardini @viraniac
sources/families/meson-sm1.conf @Tonymac32 @igorpecovnik @rpardini
sources/families/meson8b.conf @hzyitc @juanlufont
sources/families/arm64.conf @150balbes @FantasyGmm @PeterChrz @amazingfate @rpardini
sources/families/bcm2711.conf @PanderMusubi @teknoid @viraniac
sources/families/k3.conf @glneo
sources/families/media.conf @150balbes
sources/families/meson-s4t7.conf @echatzip @rpardini @viraniac
sources/families/meson.conf @hzyitc
sources/families/meson64.conf @NicoD-SBC @SteeManMI @Tonymac32 @adeepn @bretmlw @clee @engineer-80 @igorpecovnik @jeanrhum @monkaBlyat @pyavitz @rpardini @teknoid
sources/families/mvebu.conf @Heisath
sources/families/mvebu64.conf @ManoftheSea
sources/families/odroidxu4.conf @joekhoobyar
sources/families/phytium-embedded.conf @chainsx
sources/families/rk35xx.conf @CodeChenL @ZazaBR @amazingfate @andyshrk @catalinii @hoochiwetech @hqnicolas @krachlatte @mattx433 @pyavitz @sputnik2019 @tdleiyao @vamzii
sources/families/rockchip-rk3588.conf @ColorfulRhino @HeyMeco @JackHuang021 @SeeleVolleri @SuperKali @Tonymac32 @alexl83 @amazingfate @andyshrk @chainsx @efectn @fridtjof @ginkage @lanefu @linhz0hz @mahdichi @prahal @rpardini @schwar3kat
sources/families/rk35xx.conf @Tonymac32 @Z-Keven @ZazaBR @amazingfate @catalinii @chainsx @efectn @hoochiwetech @igorpecovnik @krachlatte @lanefu @linhz0hz @mahdichi @monkaBlyat @rpardini @sputnik2019 @vamzii
sources/families/rockchip-rk3588.conf @Tonymac32 @amazingfate @efectn @igorpecovnik @lanefu @linhz0hz @rpardini
sources/families/rockchip.conf @paolosabatino
sources/families/rockchip64.conf @150balbes @JohnTheCoolingFan @TRSx80 @TheSnowfield @Tonymac32 @ahoneybun @andyshrk @brentr @clee @hqnicolas @igorpecovnik @joekhoobyar @mlegenovic @paolosabatino @prahal @redrathnure @rpardini @sicXnull @torte71 @utlark
sources/families/sm8250.conf @FantasyGmm @amazingfate
sources/families/sm8550.conf @FantasyGmm
sources/families/spacemit.conf @pyavitz
sources/families/starfive2.conf @libiunc
sources/families/sun50iw1.conf @Kreyren @PanderMusubi @Qvy-png @devdotnetorg @eliasbakken
sources/families/sun50iw2.conf @AGM1968 @Tonymac32 @schwar3kat @spendist @teknoid
sources/families/sun50iw6.conf @igorpecovnik
sources/families/sun50iw9-bpi.conf @The-going @pyavitz
sources/families/sun50iw9.conf @AGM1968 @IsMrX @JohnTheCoolingFan @Ressetkk @alexl83 @chraac @krachlatte @sicXnull
sources/families/sun55iw3-syterkit.conf @chainsx
sources/families/sun5i.conf @TheSnowfield
sources/families/sun7i.conf @DylanHP @janprunk
sources/families/sun8i.conf @1ubuntuuser @AaronNGray @Janmcha @StephenGraf @Tonymac32 @lbmendes @leggewie @mhawkins-consultant @sgjava @spendist
sources/families/rockchip64.conf @Manouchehri @TRSx80 @Tonymac32 @ZazaBR @ahoneybun @amazingfate @brentr @catalinii @clee @joekhoobyar @krachlatte @paolosabatino @rpardini @schwar3kat @tdleiyao @utlark @vamzii
sources/families/sun50iw9-btt.conf @bigtreetech
sources/families/sun50iw9.conf @AGM1968 @krachlatte
sources/families/sunxi.conf @1ubuntuuser @AaronNGray @DylanHP @StephenGraf @Tonymac32 @lbmendes @schwar3kat @sgjava @viraniac
sources/families/sunxi64.conf @AGM1968 @Kreyren @PanderMusubi @Tonymac32 @bigtreetech @devdotnetorg @eliasbakken @joshaspinall @krachlatte @pyavitz @schwar3kat @teknoid @viraniac
sources/families/thead.conf @chainsx
sources/families/uefi-arm64.conf @PeterChrz @rpardini
sources/families/uefi-x86.conf @davidandreoletti @rpardini
sources/families/x86.conf @davidandreoletti @rpardini

View File

@@ -1,80 +0,0 @@
name: Bug Report for the Armbian Linux Build Framework
description: Create a bug report if there is something wrong with the Armbian build framework.
title: "[Bug]: "
labels: ["Bug"]
assignees: "armbian/build-scripts"
body:
- type: markdown
attributes:
value: |
Thank you for helping us make Armbian better!
- type: textarea
id: what-happened
attributes:
label: What happened?
description: |
Please tell us what you expected to happen and what actually happened.
placeholder: An error x ocurred when I did y! But I expected z to happen.
validations:
required: true
- type: textarea
id: reproduce
attributes:
label: How to reproduce?
description: |
Provide the command you ran or explain the steps you did.
placeholder: Tell us step by step how to reproduce the issue! E.g. the command you gave to the framework.
validations:
required: true
- type: dropdown
id: version
attributes:
label: Branch
description: |
Which branch are you using?
options:
- main (main development branch)
- other (only relevant in corner cases)
validations:
required: true
- type: dropdown
id: host
attributes:
label: On which host OS are you running the build script and observing this problem?
multiple: false
options:
- Ubuntu 24.04 Noble
- Ubuntu 22.04 Jammy
- Debian 13 Trixie
- Debian 12 Bookworm
- Other
validations:
required: true
- type: checkboxes
id: host-is-wsl
attributes:
label: Are you building on Windows WSL2?
options:
- label: Yes, my Ubuntu/Debian/OtherOS is running on WSL2
required: false
- type: input
id: logs
attributes:
label: Relevant log URL
description: |
Run with `SHARE_LOG=yes`, at the end of log you will get something like this
```[🌿] Log uploaded, share URL: [ https://paste.armbian.com/xxx ]```
Paste the URL here:
placeholder: https://paste.armbian.com/xxx
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/armbian/build/blob/master/.github/CODE_OF_CONDUCT.md)
options:
- label: I agree to follow this project's Code of Conduct
required: true

View File

@@ -1,27 +0,0 @@
name: Feature Request for the Armbian Linux Build Framework
description: Suggest a feature that you want to see implemented.
title: "[Feature Request]: "
labels: ["Feature Request"]
assignees: "igorpecovnik"
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out a feature reqest. A request does not guarantee consideration.
- type: textarea
id: what
attributes:
label: Which feature would you like to have?
placeholder: What is missing in your opinion?
validations:
required: true
- type: checkboxes
id: financing
attributes:
label: Funding
description: |
You are welcome to submit your feature request, but keep in mind we can only afford to cover minor tasks. If we decide to.<br>"
options:
- label: "[I am willing to cover expenses](https://www.armbian.com/contact/)"
required: false

View File

@@ -1,27 +0,0 @@
name: Task/To-Do for project tracking
description: Discuss and track progress for a task you're working on.
title: "[Task]: "
labels: ["Task/To-Do"]
body:
- type: markdown
attributes:
value: |
Please use checkboxes for subtasks and link relevant PRs or issues for reference.
You can use title tags like _Task_, _Story_ or _Epic_ similar to Jira [like described in the docs](https://docs.armbian.com/Process_Managing_Workflow/).
A _Story_ or _Epic_ may reference other _Tasks_ (GitHub issues). This task will automatically be mirrored to [Jira](https://armbian.atlassian.net/browse/AR).
Make sure to update your progress in case anyone wants to help with a task so noone is doing duplicate work.
Add the label "_Discussion_" to get feedback on your task and "_Help needed_" if you would prefer to not work on this this alone.
- type: textarea
id: task-list
attributes:
label: Task description
description: |
Enter your task goals here. You can make use of the subtask checkboxes (add more or remove if necessary). Actively ask for feedback if you want it.
value: |
- [ ]
- [ ]
- [ ]
- [ ]

80
.github/ISSUE_TEMPLATE/bugreport.yml vendored Normal file
View File

@@ -0,0 +1,80 @@
name: Armbian Linux Build Framework Bug Report
description: Create a bug report if there is something wrong with the Armbian build framework.
title: "Problem found ... "
labels: ["bug"]
assignees: "armbian/build-scripts"
body:
- type: markdown
attributes:
value: |
Thank you for helping us make Armbian better!
- type: textarea
id: what-happened
attributes:
label: What happened?
description: |
Also tell us, what did you expect to happen?
placeholder: An error x ocurred when I did y!
validations:
required: true
- type: textarea
id: reproduce
attributes:
label: How to reproduce?
description: |
Provide the command you ran or explain the steps you did.
placeholder: Tell us how you did it! E.g. the command you gave to the framework.
validations:
required: true
- type: dropdown
id: version
attributes:
label: Branch
description: |
Which branch are you using?
options:
- main (main development branch)
- other
validations:
required: true
- type: dropdown
id: host
attributes:
label: On which host OS are you running the build script and observing this problem?
multiple: false
options:
- Ubuntu 24.04 Noble
- Ubuntu 22.04 Jammy
- Debian 13 Trixie
- Debian 12 Bookworm
- Other
validations:
required: true
- type: checkboxes
id: host-is-wsl
attributes:
label: Are you building on Windows WSL2?
options:
- label: Yes, my Ubuntu/Debian/OtherOS is running on WSL2
required: false
- type: input
id: logs
attributes:
label: Relevant log URL
description: |
Run with `SHARE_LOG=yes`, at the end of log you will get something like this
```[🌿] Log uploaded, share URL: [ https://paste.armbian.com/xxx ]```
Paste the URL here:
placeholder: https://paste.armbian.com/xxx
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/armbian/build/blob/master/.github/CODE_OF_CONDUCT.md)
options:
- label: I agree to follow this project's Code of Conduct
required: true

View File

@@ -16,7 +16,7 @@ contact_links:
url: https://bugzilla.kernel.org/
about: If you are using upstream Linux kernel
- name: Issue with armbian-config
url: https://github.com/armbian/configng/issues/new
url: https://github.com/armbian/config/issues/new
about: Utility for configuring your board, adjusting services and installing applications.
- name: Issue with infrastructure
url: https://github.com/armbian/mirror/issues/new

28
.github/ISSUE_TEMPLATE/feature.yml vendored Normal file
View File

@@ -0,0 +1,28 @@
name: Armbian Linux Build Framework Feature request
description: Suggest a feature that you want to see implemented
title: "I would like to ..."
labels: ["feature"]
assignees: "igorpecovnik"
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out a feature reqest. A request does not guarantee consideration.
- type: textarea
id: what
attributes:
label: Which feature would you like to have?
description: "<br>What do you miss?<br>"
placeholder: Tell us what is missing!
value: "I think ..."
validations:
required: true
- type: checkboxes
id: financing
attributes:
label: Funding
description: "
You are welcome to submit your feature request, but keep in mind we can only afford to cover minor tasks. If we decide to.<br>"
options:
- label: "[I am willing to cover expenses](https://www.armbian.com/contact/)"
required: false

View File

@@ -2,7 +2,6 @@
_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._
[GitHub issue](https://github.com/armbian/build/labels/Task%2FTo-Do) reference:
[Jira](https://armbian.atlassian.net/jira) reference number [AR-9999]
# Documentation summary for feature / change

View File

@@ -4,8 +4,3 @@ updates:
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"

View File

@@ -3,24 +3,18 @@
SRC="$(realpath "${BASH_SOURCE%/*}/../")"
# Dummy function for successful source
function display_alert() { :; }
function enable_extension() { :; }
function add_packages_to_image() { :; }
function run_hook() {
local hook_point="$1"
while read -r hook_point_function; do
"${hook_point_function}"
done < <(compgen -A function | grep "^${hook_point}__" | LC_ALL=C.UTF-8 sort)
function display_alert() {
:
}
function enable_extension() {
:
}
# $1: board config
function generate_for_board() {
local board_config="$1"
(
BOARD="${board_config%.*}"
source "${SRC}/config/boards/${board_config}"
LINUXFAMILY="${BOARDFAMILY}"
[[ -n "${BOARD_MAINTAINER}" ]] || return
@@ -32,18 +26,13 @@ function generate_for_board() {
source "${SRC}/config/sources/common.conf"
source "${SRC}/config/sources/${ARCH}.conf"
run_hook "post_family_config"
run_hook "post_family_config_branch_${BRANCH,,}"
[[ -z $LINUXCONFIG ]] && LINUXCONFIG="linux-${LINUXFAMILY}-${BRANCH}"
[[ -z $KERNELPATCHDIR ]] && KERNELPATCHDIR="archive/${LINUXFAMILY}-${KERNEL_MAJOR_MINOR}"
[[ -z $BOOTPATCHDIR ]] && BOOTPATCHDIR="u-boot-${LINUXFAMILY}"
[[ -z $ATFPATCHDIR ]] && ATFPATCHDIR="atf-${LINUXFAMILY}"
[[ -z $KERNELPATCHDIR ]] && KERNELPATCHDIR="$LINUXFAMILY-$BRANCH"
cat <<-EOF
config/boards/${board_config} ${maintainers}
config/kernel/${LINUXCONFIG%-*}-*.config ${maintainers}
sources/families/${BOARDFAMILY}.conf ${maintainers}
sources/families/${LINUXFAMILY}.conf ${maintainers}
patch/kernel/${KERNELPATCHDIR%-*}-*/ ${maintainers}
EOF
@@ -52,16 +41,6 @@ function generate_for_board() {
patch_archive="${patch_archive%/}"
echo "patch/kernel/${patch_archive%-*}-*/ ${maintainers}"
fi
if [[ -n "${BOOTCONFIG}" && "${BOOTCONFIG}" != "none" ]]; then
while read -r d; do
echo "patch/u-boot/${d}/ ${maintainers}"
done < <(echo "${BOOTPATCHDIR}" | xargs -n1)
fi
if [[ -n "${ATFSOURCE}" && "${ATFSOURCE}" != "none" ]]; then
echo "patch/atf/${ATFPATCHDIR}/ ${maintainers}"
fi
)
done < <(echo "${KERNEL_TARGET}" | tr ',' '\n')
)
@@ -89,9 +68,9 @@ function merge() {
local file
while read -r file; do
declare -a maintainers
readarray -t maintainers < <(echo "${codeowners["$file"]}" | xargs -n1 | LC_ALL=C.UTF-8 sort -u)
readarray -t maintainers < <(echo "${codeowners["$file"]}" | xargs -n1 | sort -u)
echo "${file} ${maintainers[*]}"
done < <(printf "%s\n" "${!codeowners[@]}" | LC_ALL=C.UTF-8 sort)
done < <(printf "%s\n" "${!codeowners[@]}" | sort)
}
cat <<-EOF >"${SRC}/.github/CODEOWNERS"

40
.github/labeler.yml vendored
View File

@@ -10,48 +10,20 @@
#
# Please keep the labels sorted and deduplicated.
"Needs review":
- changed-files:
- any-glob-to-any-file: '**'
"Hardware":
- all:
- changed-files:
- any-glob-to-any-file: ['patch/**/*','config/**/*']
- all-globs-to-all-files: ['!config/cli/**/*','!config/desktop/**/*','!config/distributions/**/*']
- all-globs-to-all-files: ['!config/cli/*','!config/desktop/*','!config/distributions/*']
"Framework":
- all:
- changed-files:
- any-glob-to-any-file: ['lib/**/*','tools/**/*','config/cli/**/*','extensions/**/*']
"BSP":
- any-glob-to-any-file: ['lib/*','tools/*','config/cli*','packages/*','extensions/*']
"Action scripts":
- all:
- changed-files:
- any-glob-to-any-file: ['packages/**/*']
"GitHub Actions":
- all:
- changed-files:
- any-glob-to-any-file: ['.github/workflows/**/*']
"GitHub":
- all:
- changed-files:
- any-glob-to-any-file: ['.github/**/*']
- all-globs-to-any-file: ['!.github/workflows/**/*']
- any-glob-to-any-file: ['.github/workflows/*']
"Desktop":
- all:
- all:
- changed-files:
- any-glob-to-any-file: ['config/desktop/**/*']
"Patches":
- all:
- changed-files:
- any-glob-to-any-file: ['patch/**/*']
# Add 'Documentation' label to any change to .md files within the entire repository
"Documentation":
- changed-files:
- any-glob-to-any-file: '**/*.md'
- any-glob-to-any-file: ['config/desktop/*']

54
.github/labels.yml vendored
View File

@@ -18,31 +18,19 @@
description: "Can potentially break core functionality"
- name: "Bug"
color: "F92C01"
description: "Something isn't working as it should"
description: "Something isn't working well"
- name: "Bugfix"
color: "F92C01"
description: "Pull request is fixing a bug"
- name: "Dependencies"
color: "0366d6"
description: "Pull requests that update a dependency"
- name: "Discussion"
color: "EDFFE3"
description: "Being discussed - Voice your opinions :)"
color: "33B478"
description: "Issue is being discussed. Undetermined."
- name: "Duplicate"
color: "f4bd13"
description: "Issue is already present"
- name: "Feature Request"
color: "1aac63"
description: "Feature suggestion"
- name: "Good first issue"
color: "ffb3ff"
description: "Feel free to contribute :) "
- name: "Not framework bug"
color: "CD456C"
description: "Bug in 3rd party component"
- name: "Python"
color: "2b67c6"
description: "Pull requests that update Python code "
- name: "User error"
color: "CD456C"
description: "A mistake that is made by the user"
@@ -55,33 +43,18 @@
- name: "size/large"
color: "ededed"
description: "PR with 250 lines or more"
- name: "Task/To-Do"
color: "2f95f1"
description: "Project management: To-Do or task(s) someone is working on"
- name: "Desktop"
color: "bfd4f2"
description: "Graphical user interface"
- name: "Hardware"
color: "bfd4f2"
description: "Hardware related like kernel, U-Boot, ..."
description: "Hardware related - kernel, u-boot, patches"
- name: "Framework"
color: "bfd4f2"
description: "Framework components"
- name: "BSP"
- name: "Action scripts"
color: "bfd4f2"
description: "Board Support Packages"
- name: "GitHub Actions"
color: "bfd4f2"
description: "GitHub Actions code"
- name: "GitHub"
color: "bfd4f2"
description: "GitHub-related changes like labels, templates, ..."
- name: "Patches"
color: "bfd4f2"
description: "Patches related to kernel, U-Boot, ..."
- name: "Documentation"
color: "bfd4f2"
description: "Documentation changes or additions"
description: "GitHub Action scripts"
- name: "Work in progress"
color: "29E414"
description: "Unfinished / work in progress"
@@ -95,17 +68,14 @@
color: "AEE054"
description: "Seeking for review"
- name: "Can be closed?"
color: "9b75fc"
description: "Ping developers on stalled issue / PR"
color: "5319e7"
description: "Ping developers on stalled issues / PR"
- name: "Build"
color: "5ee3d0"
description: "Executing build train (permission needed)"
color: "1d76db"
description: "Executing build train"
- name: "Needs Documentation"
color: "4FD1EF"
color: "#4FD1EF"
description: "New feature needs documentation entry"
- name: "Documentation finished"
color: "0052CC"
description: "New feature was properly added to docs"
- name: "Improper usage"
color: "CD456C"
color: "#CD456C"
description: "Provided input is not in the expected data format or structure"

BIN
.github/logo.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

View File

@@ -1,121 +0,0 @@
name: "Sync maintainers status"
# Script connects to the contacts database once per hour and updates BOARD_MAINTAINER property in the board config files.
# If there are any changes, it opens a Pull Request
#
# spdx-id: GPL-2.0-or-later
# copyright-owner: @igorpecovnik
on:
schedule:
- cron: "0 * * * *"
workflow_dispatch:
jobs:
Build:
name: "Maintainers sync"
runs-on: ubuntu-latest
if: ${{ github.repository_owner == 'armbian' }}
steps:
- name: "Checkout build repo"
uses: actions/checkout@v5
with:
repository: armbian/build
ref: main
fetch-depth: 0
clean: false
- name: "Install SSH key for storage"
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.KEY_UPLOAD }}
known_hosts: ${{ secrets.KNOWN_HOSTS_ARMBIAN_UPLOAD }}
if_key_exists: replace
- name: "Download JSON file"
run: |
# download json that is prepared in https://github.com/armbian/armbian.github.io
curl -o /tmp/armbian_maintainers.json https://github.armbian.com/maintainers.json
- name: "Update maintainers"
run: |
# reset all maintainers so we generate from scratch
sed -i "s/BOARD_MAINTAINER.*/BOARD_MAINTAINER=\"\"/" config/boards/*.{conf,wip,eos,tvb}
# extract values fron JSON
declare -A MAINTAINERS
{
# By default, bash run the pipe command in subshells
# which make variable can't be assigned to.
# And yes, lastpipe can solve it
# But this is better.
while read -r i; do
NAME="$(echo "$i" | jq --raw-output '.First_Name')"
BOARD="$(echo "$i" | jq --raw-output '.Maintaining')"
MAINTAINER_GITHUB="$(echo "$i" | jq --raw-output '.Github' | cut -d"/" -f4)"
if [[ "$BOARD" != null && "$MAINTAINER_GITHUB" != null ]]; then
echo "- [$NAME](https://github.com/${MAINTAINER_GITHUB})"
while read -r i; do
echo -e " - $i"
MAINTAINERS["$i"]+="$MAINTAINER_GITHUB "
done < <( echo "$BOARD" | sed "s/,/\n/g" | sort -u )
fi
done < <(jq -c '.[]' /tmp/armbian_maintainers.json)
for cfg in config/boards/*.{conf,wip,csc,eos,tvb}; do
board_name="$(echo "${cfg##*/}" | sed -E 's/\..*//')"
declare -a maintainers
readarray -t maintainers < <(echo "${MAINTAINERS[${board_name}]}" | xargs -n1 | sort -u)
sed -i "s/BOARD_MAINTAINER=.*/BOARD_MAINTAINER=\"${maintainers[*]}\"/" "${cfg}"
done
} >> "$GITHUB_STEP_SUMMARY"
- name: "Mark csc for no maintainer"
run: |
grep BOARD_MAINTAINER=\"\" config/boards/*.{wip,conf} | cut -d":" -f1 |
while read -r line; do
if [[ "${line}" != "${line/.conf/.csc}" ]]; then
mv -v "$line" "${line/.conf/.csc}"
fi
if [[ "${line}" != "${line/.wip/.csc}" ]]; then
mv -v "$line" "${line/.wip/.csc}"
fi
done
- name: "Re-generate CODEOWNERS"
run: |
./.github/generate_CODEOWNERS.sh
- name: Create Pull Request
id: cpr
uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: '`Automatic` board configs status synchronise'
signoff: false
branch: update-maintainers
delete-branch: true
title: '`Automatic` board configs status synchronise'
body: |
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](https://www.armbian.com/update-data/).
Ref:
- [Board Maintainers Procedures and Guidelines](https://docs.armbian.com/Board_Maintainers_Procedures_and_Guidelines/)
- [Contribute](https://docs.armbian.com/Process_Contribute/)
labels: |
Needs review
#assignees: igorpecovnik
#reviewers: Must be org collaborator
draft: false

20
.github/workflows/build-board-list.yml vendored Normal file
View File

@@ -0,0 +1,20 @@
name: Rebuild board list in GHA menu
on:
push:
paths:
- 'config/boards/*.*'
branches: [ main ]
jobs:
Run:
name: "Execute workflow"
if: ${{ github.repository_owner == 'Armbian' }}
runs-on: ubuntu-latest
steps:
- name: Repository Dispatch
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.ACCESS_TOKEN }}
repository: armbian/os
event-type: "Refresh board list"

21
.github/workflows/build-train.yml vendored Normal file
View File

@@ -0,0 +1,21 @@
name: Run build train on config changes
on:
push:
branches:
- 'main'
paths:
- 'config/*.config'
jobs:
Run:
name: "Execute workflow"
if: ${{ github.repository_owner == 'Armbian' }}
runs-on: ubuntu-latest
steps:
- name: Repository Dispatch
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.ACCESS_TOKEN }}
repository: armbian/os
event-type: "Repository update"

View File

@@ -1,27 +0,0 @@
name: Clean Workflow Logs
on:
schedule:
- cron: "0 0 * * 1" # Runs "At 00:00 on Monday." (see https://crontab.guru)
workflow_dispatch:
inputs:
runs_older_than:
description: "The amount of days old to delete"
default: "21"
required: false
env:
SCHEDULED_RUNS_OLDER_THAN: "21"
SCHEDULED_RUNS_TO_KEEP: "0"
jobs:
clean-logs:
runs-on: ubuntu-latest
permissions:
actions: write
steps:
- uses: igorjs/gh-actions-clean-workflow@v6
with:
runs_older_than: ${{ github.event.inputs.runs_older_than || env.SCHEDULED_RUNS_OLDER_THAN }}
runs_to_keep: ${{ github.event.inputs.runs_to_keep || env.SCHEDULED_RUNS_TO_KEEP }}

View File

@@ -1,5 +1,4 @@
name: Forked Helper
run-name: Forked Helper dispatch on ${{ github.event_name }}
on:
push:
@@ -9,18 +8,28 @@ on:
workflow_dispatch:
jobs:
dispatch-on-forked-repo:
name: 📢 Run repository dispatch on fork
env:
DISPATCH_SECRET: ${{ secrets.ARMBIAN_SELF_DISPATCH_TOKEN }}
if: ${{ github.repository_owner != 'armbian' }} # Run only on forks
fork-repository-dispatch:
name: 📢 Run repository dispatch to default fork branch
if: ${{ github.repository_owner != 'armbian' }}
runs-on: ubuntu-latest
steps:
- name: Dispatch event on forked repository
if: ${{ env.DISPATCH_SECRET != '' }} # Check that the secret has been set, if not, exit
- name: Assign secret
id: get_dispatch_secret
run: echo 'name=dispatch_secret::${{ secrets.ARMBIAN_SELF_DISPATCH_TOKEN }}' >> $GITHUB_OUTPUT
- name: Get event details
id: get_event_details
# Process JSON according https://github.com/orgs/community/discussions/26288
run: |
JSON=$(cat ${{ github.event_path }})
JSON="${JSON//'%'/'%25'}"
JSON="${JSON//$'\n'/'%0A'}"
JSON="${JSON//$'\r'/'%0D'}"
echo "name=event_details::${JSON}" >> $GITHUB_OUTPUT
- name: Dispatch event on forked repostitory
if: steps.get_dispatch_secret.outputs.dispatch_secret
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ env.DISPATCH_SECRET }}
token: ${{ steps.get_dispatch_secret.outputs.dispatch_secret }}
repository: ${{ github.repository }}
event-type: armbian
client-payload: >
@@ -29,5 +38,5 @@ jobs:
"ref": "${{ github.ref }}",
"base_ref": "${{ github.base_ref }}",
"sha": "${{ github.sha }}",
"event_details": ${{ toJSON(github.event) }}
"event_details": ${{ steps.get_event_details.outputs.event_details }}
}

View File

@@ -1,27 +0,0 @@
name: "Welcome first-time issue contributor"
on:
issues:
types: opened
jobs:
welcome-first-time-contributor:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: plbstl/first-contribution@v3
with:
labels: "Good first issue"
issue-opened-msg: |
### Hey @{fc-author}! 👋
Thanks for opening your first issue with the Armbian project — were glad to have you here! 🧡
Your input doesnt just help us improve the project — it benefits everyone who uses Armbian.
If you'd like to stay informed about project updates or collaborate more closely with the team,
you can optionally share some personal contact preferences at [armbian.com/update-data](https://www.armbian.com/update-data/).
This helps us keep in touch without relying solely on GitHub notifications.
Also, dont forget to ⭐ star the repo to support the work — and welcome aboard! 🚀

View File

@@ -1,32 +1,30 @@
name: Sync Labels from YAML
run-name: Sync Labels from YML on ${{ github.event_name }}
name: Set PR and issues labels from yaml
on:
workflow_dispatch:
push:
branches:
- "main"
- 'main'
paths:
- ".github/labels.yml"
- '.github/labels.yml'
pull_request:
paths:
- ".github/labels.yml"
- '.github/labels.yml'
jobs:
labeler:
permissions:
contents: read # for actions/labeler to determine modified files
pull-requests: write # for actions/labeler to add labels to PRs
contents: read # for actions/labeler to determine modified files
pull-requests: write # for actions/labeler to add labels to PRs
issues: write # for actions/labeler to add labels to issues
if: ${{ github.repository_owner == 'Armbian' }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Run Labeler
-
name: Checkout
uses: actions/checkout@v4
-
name: Run Labeler
uses: crazy-max/ghaction-github-labeler@v5
with:
github-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,20 +0,0 @@
name: "Announce PR merge to Discord"
on:
push:
branches: [ main ]
jobs:
announcepush:
runs-on: ubuntu-latest
steps:
- name: Get repo
uses: actions/checkout@v5
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Send push to Discord
run: |
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X POST --data \
"{\"username\": \"Github\", \"avatar_url\": \"${{ secrets.AVATARURL }}\", \"content\": \"\
:white_check_mark: **Merged** into [$GITHUB_REPOSITORY](<$GITHUB_SERVER_URL/$GITHUB_REPOSITORY>) by [$GITHUB_ACTOR](<$GITHUB_SERVER_URL/$GITHUB_ACTOR>) - \
[Link](<$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/commit/$GITHUB_SHA>): *$(git show -s --format=%s)*\"}" ${{ secrets.WEBHOOKURL }}

View File

@@ -1,6 +1,4 @@
name: Jira Sync
run-name: 'Sync Jira - Issue #${{ github.event.issue.number }} ("${{ github.event.issue.title }}")'
on:
issues:
types: [opened]
@@ -8,7 +6,6 @@ jobs:
sync:
name: Sync Items
runs-on: ubuntu-latest
steps:
- name: Sync
uses: igorpecovnik/github-action-issue-to-jira@master

View File

@@ -1,25 +0,0 @@
name: "Announce PR on Discord for review"
run-name: 'Announce PR #${{ github.event.pull_request.number }} on Discord for review'
on:
pull_request:
types: [ labeled ]
jobs:
Announce:
permissions:
pull-requests: read
runs-on: ubuntu-latest
if: ${{ github.repository == 'armbian/build' && github.event.label.id == '6210849975' }}
steps:
- name: Get repo
uses: actions/checkout@v5
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Discord webhook
run: |
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X POST --data \
"{\"username\": \"Github\", \"avatar_url\": \"${{ secrets.AVATARURL }}\", \"content\": \"\
:arrow_heading_up: **Pull request** to [$GITHUB_REPOSITORY](<$GITHUB_SERVER_URL/$GITHUB_REPOSITORY>) by [$GITHUB_ACTOR](<$GITHUB_SERVER_URL/$GITHUB_ACTOR>) - **Please review!** \
:point_right: [Link](<$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/pull/${{github.event.pull_request.number}}>): *$(git show -s --format=%s)*\"}" ${{ secrets.WEBHOOKURL }}

View File

@@ -1,69 +1,32 @@
name: Automatic Pull Request Labeling
name: "Automatic Pull Request Labeling"
#
# Set labels for pull requests automatically based on size (modified via job 'label-size') and file categories (modified via .github/labeler)
#
# Sets labels automatically based on:
# - PR size (job: label-size)
# - File categories using .github/labeler config (job: label-category)
# - PR creation date for quarterly tracking (job: label-by-date)
# - Removes "Ready to merge" label on PR update (job: label-remove)
run-name: 'Set labels - PR #${{ github.event.pull_request.number }} ("${{ github.event.pull_request.title }}")'
on: pull_request_target
# Grant required permissions globally
permissions:
contents: read # Required for checking changed files
pull-requests: write # Required for labeling PRs
issues: write # Required for adding/removing labels
on:
- pull_request_target
jobs:
label-remove:
name: "Remove Ready to merge"
if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' }}
runs-on: ubuntu-latest
steps:
- name: Checkout the pull request
uses: actions/checkout@v5
- name: Check for label using GH CLI
id: check
run: |
gh pr view ${{ github.event.pull_request.number }} --json labels -q '.labels[].name' | grep -q 'Ready to merge' && echo "has_label=true" >> $GITHUB_OUTPUT || echo "has_label=false" >> $GITHUB_OUTPUT
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Remove "Ready to merge" label
if: steps.check.outputs.has_label == 'true'
uses: PauMAVA/add-remove-label-action@v1.0.3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
add: ""
remove: "Ready to merge"
label-category:
name: "Category Labels"
permissions:
contents: read # for actions/labeler to determine modified files
pull-requests: write # for actions/labeler to add labels to PRs
runs-on: ubuntu-latest
if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' }}
steps:
# Checks out the repository to read files for matching with labeler config
- uses: actions/checkout@v5
# Applies labels based on the .github/labeler.yml config
- uses: actions/labeler@v5
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
- uses: actions/checkout@v4
- uses: actions/labeler@v5
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
label-size:
name: "Size Label"
permissions:
contents: read # for pascalgn/size-label-action to determine modified files
pull-requests: write # for pascalgn/size-label-action to add labels to PRs
runs-on: ubuntu-latest
if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' }}
steps:
# Automatically adds size labels based on total changed lines
- name: Label by size
uses: pascalgn/size-label-action@v0.5.5
- name: size-label
uses: "pascalgn/size-label-action@v0.5.2"
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
with:
@@ -73,41 +36,3 @@ jobs:
"50": "medium",
"250": "large"
}
label-by-date:
name: "Date label (Quarters)"
runs-on: ubuntu-latest
if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' }}
steps:
# Determines the label (02, 05, 08, 11) based on PR creation month
- name: Determine quarter label
env:
PR_CREATED_AT: ${{ github.event.pull_request.created_at }}
run: |
echo "PR created at: $PR_CREATED_AT"
# Extract the numeric month (e.g., 04 for April)
MONTH=$(date -d "$PR_CREATED_AT" +%m | sed 's/^0*//')
echo "Month extracted: $MONTH"
# Determine quarter-end label based on month
if [ "$MONTH" -le 2 ] || [ "$MONTH" -eq 12 ]; then
LABEL="02"
elif [ "$MONTH" -le 5 ]; then
LABEL="05"
elif [ "$MONTH" -le 8 ]; then
LABEL="08"
else
LABEL="11"
fi
# Set as environment variable for next step
echo "LABEL=${LABEL}" >> $GITHUB_ENV
# Adds the quarter label to the PR
- name: Add quarter label
uses: PauMAVA/add-remove-label-action@v1.0.3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
add: "${{ env.LABEL }}"

View File

@@ -1,34 +1,37 @@
name: Generate Artifacts on PR if 'Build' label exists
run-name: "Generate artifacts - PR #${{ github.event.pull_request.number }} - by @${{ github.actor }}"
name: Generate artifacts on PR if 'Build' label exists
#
# If PR is labeled with "Build" and you are a member of "Release manager" team it will start a build train (additional security feature).
# In the run name, ${{ github.actor }} shows who's privileges are used for this run.
# If PR is labeled with "Build" and you are a member of "Release manager" team it will start a build train (additional security feature)
#
on: pull_request_target
on:
pull_request:
types: [opened, reopened, synchronize, labeled]
jobs:
Check:
permissions:
pull-requests: read
name: Check label and authorization
name: "Check if 'Build' label is active and user is authorized"
if: contains(github.event.pull_request.labels.*.name, 'Build')
runs-on: Linux
outputs:
member: ${{ steps.checkUserMember.outputs.isTeamMember }}
steps:
- uses: tspascoal/get-user-teams-membership@v3
if: contains(github.event.pull_request.labels.*.name, 'Build')
id: checkUserMember
with:
username: ${{ github.actor }}
organization: armbian
team: "Release manager"
GITHUB_TOKEN: ${{ secrets.ORG_MEMBERS }}
- uses: tspascoal/get-user-teams-membership@v3
id: checkUserMember
with:
username: ${{ github.actor }}
organization: armbian
team: "Release manager"
GITHUB_TOKEN: ${{ secrets.ORG_MEMBERS }}
Compile:
needs: Check
name: Generate artifacts
name: "Update artifacts"
concurrency:
group: pipeline-pr-${{github.event.pull_request.number}}
cancel-in-progress: true

View File

@@ -1,11 +1,10 @@
name: Kernel Hardening Analysis
run-name: 'Check kernel security options - PR #${{ github.event.pull_request.number }} ("${{ github.event.pull_request.title }}")'
name: Kernel hardening analysis
#
# Check the Linux kernel options against security hardening
#
# Attention! Changing security parameters may also affect system performance and functionality of userspace software!
# More info:
# https://github.com/a13xp0p0v/kernel-hardening-checker
# https://github.com/a13xp0p0v/kconfig-hardened-check/blob/master/README.md
on:
workflow_dispatch:
@@ -21,34 +20,36 @@ concurrency:
cancel-in-progress: true
jobs:
Analysis:
name: Check kernel security options
runs-on: ubuntu-latest
if: ${{ github.repository_owner == 'Armbian' }}
steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@2036da178f85576f1940fedb74bb93a36cd89ab7 # v46.0.3
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Checkout repository
uses: actions/checkout@v5
with:
repository: a13xp0p0v/kconfig-hardened-check
path: kconfig-hardened-check
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v44
- name: Check kernel config for security issues
# Run kernel-hardening-checker for each kernel config file excluding RISC-V configs, since they are not supported yet.
# See https://github.com/a13xp0p0v/kernel-hardening-checker/issues/56
# sed explanation: 1) Put spaces in front of every line 2) replace colored output with emojis since GitHub Actions job summaries don't support colored output
run: |
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
if [[ "${file}" = config/kernel/*.config && ! $(head -n 10 "${file}" | grep -q "riscv") ]]; then
kconfig-hardened-check/bin/kernel-hardening-checker -m show_fail -c $file | sed 's/^/ /; s/\x1b\[32m/✅ /; s/\x1b\[31m/❌ /; s/\x1b\[0m//' >> $GITHUB_STEP_SUMMARY
fi
done
- name: Checkout repository
uses: actions/checkout@v4
with:
repository: a13xp0p0v/kconfig-hardened-check
path: kconfig-hardened-check
- name: Check kernel config for security issues
# Run kernel-hardening-checker for each kernel config file excluding RISC-V configs, since they are not supported yet.
# See https://github.com/a13xp0p0v/kernel-hardening-checker/issues/56
# sed explanation: 1) Put spaces in front of every line 2) replace colored output with emojis since GitHub Actions job summaries don't support colored output
run: |
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
if [[ "${file}" = config/kernel/*.config && ! $(head -n 10 "${file}" | grep -q "riscv") ]]; then
kconfig-hardened-check/bin/kernel-hardening-checker -m show_fail -c $file | sed 's/^/ /; s/\x1b\[32m/✅ /; s/\x1b\[31m/❌ /; s/\x1b\[0m//' >> $GITHUB_STEP_SUMMARY
fi
done

View File

@@ -1,21 +0,0 @@
on: pull_request_review
name: Label approved pull requests
permissions:
contents: read # Required for checking changed files
pull-requests: write # Required for labeling PRs
issues: write # Required for adding/removing labels
jobs:
labelWhenApproved:
if: ${{ github.repository_owner == 'armbian' }}
name: Label when approved
runs-on: ubuntu-latest
steps:
- name: Label when approved
uses: pullreminders/label-when-approved-action@master
env:
APPROVALS: "1"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ADD_LABEL: "Ready to merge"
REMOVE_LABEL: "Needs%20review"

View File

@@ -1,5 +1,4 @@
name: Lint on Scripts
run-name: 'Shellcheck - PR #${{ github.event.pull_request.number }} ("${{ github.event.pull_request.title }}")'
#
# Run ShellCheck on all scripts and generate report as build artifact
#
@@ -17,43 +16,45 @@ concurrency:
cancel-in-progress: true
jobs:
Shellcheck:
name: Shell script analysis
runs-on: ubuntu-latest
if: ${{ github.repository_owner == 'Armbian' }}
steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
fetch-depth: 2
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@2036da178f85576f1940fedb74bb93a36cd89ab7 # v46.0.3
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: List all changed files
run: |
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v44
# Use framework internal mechanism for checking `lib` and `extensions` code only one file is passed,
# and source's are followed, thus the whole project is "understood" by shellcheck.
# For example, when checking individual files, one variable might be thought "unused" because it
# is only used in another file, which does not happen when done properly.
- name: List all changed files
run: |
bash lib/tools/shellcheck.sh
# Use framework internal mechanism for checking `lib` and `extensions` code only one file is passed,
# and source's are followed, thus the whole project is "understood" by shellcheck.
# For example, when checking individual files, one variable might be thought "unused" because it
# is only used in another file, which does not happen when done properly.
ret=0
bash lib/tools/shellcheck.sh
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
ret=0
if [[ ! "${file}" =~ lib/|extensions/|.py|.service|.rules|.network|.netdev ]]; then
if grep -qE "^#\!/.*bash" $file; then
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
shellcheck --severity=error $file || ret=$?
if [[ ! "${file}" =~ lib/|extensions/|.py|.service|.rules|.network|.netdev ]]; then
if grep -qE "^#\!/.*bash" $file; then
fi
fi
shellcheck --severity=error $file || ret=$?
done
fi
fi
exit $ret
done
exit $ret

View File

@@ -1,26 +0,0 @@
name: "Welcome first-time PR contributor"
on:
pull_request_target:
types: opened
jobs:
welcome-first-time-contributor:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: plbstl/first-contribution@v3
with:
pr-opened-msg: |
### Hey @{fc-author}! 👋
Thanks for submitting your first pull request to the Armbian project — we're excited to have you contributing! 🧡
Your effort doesnt just improve Armbian — it benefits the entire community of users and developers.
If you'd like to stay informed about project updates or collaborate more closely with the team,
you can optionally share some personal contact preferences at [armbian.com/update-data](https://www.armbian.com/update-data/).
This helps us keep in touch without relying solely on GitHub notifications.
Also, dont forget to ⭐ star the repo if you havent already — and welcome aboard! 🚀

29
.github/workflows/rebase.yml vendored Normal file
View File

@@ -0,0 +1,29 @@
name: Automatic Rebase
#
# If you comment "/rebase" to the PR this action rebase the PR
#
on:
issue_comment:
types: [created]
jobs:
rebase:
permissions:
contents: write # for cirrus-actions/rebase to push code to rebase
pull-requests: read # for cirrus-actions/rebase to get info about PR
name: Rebase
if: github.event.issue.pull_request != '' && contains(github.event.comment.body, '/rebase')
runs-on: ubuntu-latest
steps:
- name: Checkout the latest code
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
fetch-depth: 0 # otherwise, you will fail to push refs to dest repo
- name: Automatic Rebase
uses: cirrus-actions/rebase@1.8
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,14 +1,12 @@
name: Scorecards Security Scan
run-name: Scan scorecards security on ${{ github.event_name }}
on:
# Only the default branch is supported.
branch_protection_rule:
schedule:
# Weekly on Saturdays.
- cron: "30 1 * * 6"
- cron: '30 1 * * 6'
push:
branches: [main]
branches: [ main ]
# Declare default permissions as read only.
permissions: read-all
@@ -28,12 +26,12 @@ jobs:
steps:
- name: "Checkout code"
uses: actions/checkout@v5
uses: actions/checkout@v4
with:
persist-credentials: false
- name: "Run analysis"
uses: ossf/scorecard-action@v2.4.2
uses: ossf/scorecard-action@v2.3.3
with:
results_file: results.sarif
results_format: sarif
@@ -44,15 +42,15 @@ jobs:
repo_token: ${{ secrets.SCORECARD_READ_TOKEN }}
# Publish the results for public repositories to enable scorecard badges. For more details, see
# https://github.com/ossf/scorecard-action#publishing-results.
# For private repositories, `publish_results` will automatically be set to `false`, regardless
# https://github.com/ossf/scorecard-action#publishing-results.
# For private repositories, `publish_results` will automatically be set to `false`, regardless
# of the value entered here.
publish_results: true
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
# format to the repository Actions tab.
- name: "Upload artifact"
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: SARIF file
path: results.sarif

View File

@@ -1,21 +0,0 @@
name: Update Board Lists
run-name: Update board list at armbian/os
on:
push:
paths:
- "config/boards/*.*"
branches: [main]
jobs:
update-board-list-dispatch:
name: Send dispatch
if: ${{ github.repository_owner == 'Armbian' }}
runs-on: ubuntu-latest
steps:
- name: Repository Dispatch
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.ACCESS_TOKEN }}
repository: armbian/os
event-type: "Refresh board list"

View File

@@ -1,104 +0,0 @@
name: Update Tools in Scripts
run-name: Update Tools in Scripts by @${{ github.actor }}
#
# Some of our scripts download tools from a repo. These can't be bumped by dependabot, so this workflow is a self-created dependabot to bump versions of those tools to stay up-to-date.
# This workflow only creates a PR if the version was actually updated.
# To add a new tool, it just needs to be added to the matrix below by filling out all the variables.
#
permissions:
contents: write
pull-requests: write
on:
workflow_dispatch:
schedule:
- cron: "42 3 16 * *" # Run monthly on the 16th day of the month at 03:42 AM (random value as to not overload GitHub)
jobs:
update-tool-version:
name: Update ${{ matrix.tool.REPO_NAME }} version
runs-on: ubuntu-latest
# Add new tools here, no need to add anything anywhere else.
# Only works for tools hosted on GitHub for now.
strategy:
matrix:
tool:
# Shellcheck
- USER_NAME: "koalaman" # GitHub user name
REPO_NAME: "shellcheck" # GitHub repo name
PROJECT_NAME: "koalaman/shellcheck" # This is always USER_NAME/REPO_NAME (like in the GitHub URL)
VAR_FILE: "lib/tools/shellcheck.sh" # Where the version variable of the tool is saved
VERSION_VAR: "SHELLCHECK_VERSION" # Version variable how it appears in the script
# Shellcheck #2
- USER_NAME: "koalaman"
REPO_NAME: "shellcheck"
PROJECT_NAME: "koalaman/shellcheck"
VAR_FILE: "lib/functions/general/shellcheck.sh"
VERSION_VAR: "SHELLCHECK_VERSION"
# Shellfmt
- USER_NAME: "mvdan"
REPO_NAME: "sh"
PROJECT_NAME: "mvdan/sh"
VAR_FILE: "lib/tools/shellfmt.sh"
VERSION_VAR: "SHELLFMT_VERSION"
# ORAS
- USER_NAME: "oras-project"
REPO_NAME: "oras"
PROJECT_NAME: "oras-project/oras"
VAR_FILE: "lib/functions/general/oci-oras.sh"
VERSION_VAR: "ORAS_VERSION"
# Bat
- USER_NAME: "sharkdp"
REPO_NAME: "bat"
PROJECT_NAME: "sharkdp/bat"
VAR_FILE: "lib/functions/general/bat-cat.sh"
VERSION_VAR: "BATCAT_VERSION"
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Get current ${{ matrix.tool.PROJECT_NAME }} version
id: get-version-current
run: |
version_current=$(grep -Po '(?<=${{ matrix.tool.VERSION_VAR}}=\${${{ matrix.tool.VERSION_VAR}}:-)[0-9.]+(?=})' ${{ matrix.tool.VAR_FILE }})
echo "version_current=$version_current" >> $GITHUB_OUTPUT
- name: Get latest ${{ matrix.tool.PROJECT_NAME }} version
id: get-version-latest
# Multi-line string for CHANGE_LOG env, see https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
# Further exmplanation for the CHANGE_LOG env:
# The first 'sed' expression replaces "#123" with "username/repo#123" to link to the correct repo (would otherwise auto-link to own repo)
# The second 'sed' expression replaces GitHub URLs with "redirect.github.com" to prevent "This was referenced" in the external repo's PRs/issues
run: |
version_latest=$(curl --silent "https://api.github.com/repos/${{ matrix.tool.PROJECT_NAME }}/releases/latest" | jq -r .tag_name)
version_latest=${version_latest#v} # Removing the 'v' prefix since the script uses only plain numbers
echo "version_latest=$version_latest" >> $GITHUB_OUTPUT
- name: Update ${{ matrix.tool.VERSION_VAR}} in script
# @TODO Make sure that the version is actually higher, not lower (the 'latest' tag does not neccessarily mean that the version is higher!)
run: |
version_latest=${{ steps.get-version-latest.outputs.version_latest }}
sed -i "s/${{ matrix.tool.VERSION_VAR}}=\${${{ matrix.tool.VERSION_VAR}}:-[0-9.]*}/${{ matrix.tool.VERSION_VAR}}=\${${{ matrix.tool.VERSION_VAR}}:-$version_latest}/g" ${{ matrix.tool.VAR_FILE }}
- name: Create Pull Request to update ${{ matrix.tool.VERSION_VAR}} for ${{ matrix.tool.PROJECT_NAME }}
uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: "tools: Bump `${{ matrix.tool.VERSION_VAR}}` from ${{ steps.get-version-current.outputs.version_current }} to ${{ steps.get-version-latest.outputs.version_latest }}"
branch: update-version-${{ matrix.tool.VAR_FILE }}-${{ matrix.tool.PROJECT_NAME }}-${{ steps.get-version-latest.outputs.version_latest }}
delete-branch: true
title: "Bump ${{ matrix.tool.PROJECT_NAME}} from ${{ steps.get-version-current.outputs.version_current }} to ${{ steps.get-version-latest.outputs.version_latest }} in `${{ matrix.tool.VAR_FILE}}`"
body: |
Bump [${{ matrix.tool.PROJECT_NAME}}](https://github.com/${{ matrix.tool.PROJECT_NAME }}) from ${{ steps.get-version-current.outputs.version_current }} to ${{ steps.get-version-latest.outputs.version_latest }} by bumping `${{ matrix.tool.VERSION_VAR}}` in `${{ matrix.tool.VAR_FILE}}`.
Check <a href="https://github.com/${{ matrix.tool.PROJECT_NAME }}/releases/latest">the upstream release notes</a>.
<p><em>Please note that the above link only shows the release notes for the latest release.</em></p>
labels: Dependencies, Bash

273
README.md
View File

@@ -1,78 +1,231 @@
<h2 align="center">
<img src="https://raw.githubusercontent.com/armbian/.github/master/profile/logo.png" alt="Armbian logo" width="25%">
<br><br>
</h2>
<p align="center">
<a href="#build-framework">
<img src=".github/armbian-logo.png" alt="Armbian logo" width="144">
</a><br>
<strong>Armbian Linux Build Framework</strong><br>
<br>
<a href=https://github.com/armbian/build/graphs/contributors><img alt="GitHub contributors" src="https://img.shields.io/github/contributors-anon/armbian/build?logo=stackexchange&label=Contributors&style=for-the-badge&branch=main&logoColor=white"></a>
<a href=https://github.com/armbian/os><img alt="Artifacts generation" src="https://img.shields.io/github/actions/workflow/status/armbian/os/complete-artifact-matrix-all.yml?logo=dependabot&label=CI%20Build&style=for-the-badge&branch=main&logoColor=white"></a>
<a href=https://github.com/armbian/build/commits/main><img alt="GitHub last commit (branch)" src="https://img.shields.io/github/last-commit/armbian/build/main?logo=github&label=Last%20commit&style=for-the-badge&branch=main&logoColor=white"></a>
</p>
### Purpose of This Repository
## What does this project do?
The **Armbian Linux Build Framework** creates minimal, efficient, and fully [customizable operating system images](https://docs.armbian.com/#key-features) based on **Debian** or **Ubuntu**. It is designed specifically for **low-resource single board computers (SBCs)** and other embedded devices.
- Builds custom **kernel**, **image** or a **distribution** optimized for low-resource hardware,
- Include filesystem generation, low-level control software, kernel image and **bootloader** compilation,
- Provides a **consistent user experience** by keeping system standards across different platforms.
This toolchain compiles a custom **Linux kernel**, **bootloader**, and **root filesystem**, providing fine-grained control over:
## Getting started
- Kernel versions and configuration
- Bootloader selection and customization
- Filesystem layout and compression
- Additional firmware, overlays, and device trees
- System optimizations for performance and size
### Requirements for self hosted
The framework supports **native**, **cross**, and **containerized** builds for multiple architectures (`x86_64`, `aarch64`, `armhf`, `riscv64`), and is suitable for development, testing, production deployment, or automation pipelines.
- x86_64 / aarch64 machine
- at least 2GB of memory and ~35GB of disk space for VM, container or bare metal installation
- [Armbian / Ubuntu Jammy 22.04.x](https://github.com/armbian/sdk) for native building or any Docker capable Linux for containerised
- Windows 10/11 with WSL2 subsystem running Ubuntu Jammy 22.04.x
- Superuser rights (configured sudo or root access).
- Make sure your system is up-to-date! Outdated Docker binaries, for example, can cause trouble.
It ensures **consistency across devices** while remaining modular and extensible through a variety of configuration files, templates, and user patches.
### Quick Start
For stable branch use `--branch=v24.05`
```bash
git clone https://github.com/armbian/build
apt-get -y install git
git clone --depth=1 --branch=main https://github.com/armbian/build
cd build
./compile.sh
```
### Resources
[Documentation](https://docs.armbian.com/Developer-Guide_Overview/) • [Website](https://www.armbian.com) • [Blog](https://blog.armbian.com) • [Community Forums](https://forum.armbian.com)
<a href="#how-to-build-an-image-or-a-kernel"><img src=".github/README.gif" alt="Armbian logo" width="100%"></a>
### Build Host Requirements
- Interactive graphical interface.
- Prepares the workspace by installing the necessary dependencies and sources.
- It guides the entire process and creates a kernel package or a ready-to-use SD card image.
- **Supported Architectures:** `x86_64`, `aarch64`, `riscv64`
- **System:** VM, container, or bare-metal with:
- **≥ 8GB RAM** (less with `KERNEL_BTF=no`)
- **~50GB disk space**
- **Operating System:**
- Armbian / Ubuntu 24.04 (Noble) for native builds
- Any Docker-capable Linux for containerized setup
- **Windows:** Windows 10/11 with WSL2 running Armbian / Ubuntu 24.04
- **Access:** Superuser rights (`sudo` or `root`)
- **Important:** Keep your system up-to-date — outdated tools (e.g., Docker) can cause issues.
### Build parameter examples
### Download
Show work-in-progress areas in interactive mode:
Prebuilt Armbian OS Images: <https://www.armbian.com/download>
```bash
./compile.sh EXPERT="yes"
```
### Contribute
Build minimal CLI Armbian Jammy for Bananapi M5 with LTS kernel:
Learn how to report issues, suggest improvements, or submit code: [CONTRIBUTING.md](CONTRIBUTING.md)
```bash
./compile.sh \
BOARD=bananapim5 \
BRANCH=current \
RELEASE=jammy \
BUILD_MINIMAL=yes \
BUILD_DESKTOP=no \
KERNEL_CONFIGURE=no
```
### Support
Build with GitHub actions: ([advanced version](https://github.com/armbian/os/blob/main/.github/workflows/complete-artifact-one-by-one.yml))
Armbian offers multiple support channels, depending on your needs:
```
name: "Build Armbian"
on:
workflow_dispatch:
jobs:
build-armbian:
runs-on: ubuntu-latest
steps:
- uses: armbian/build@main
with:
armbian_token: "${{ secrets.GITHUB_TOKEN }}" # GitHub token
armbian_release: "jammy" # userspace
armbian_target: "build" # build=image, kernel=kernel
armbian_board: "bananapim5" # build target
```
Generated image will be uploaded to your repository release. Note: GitHub upload file limit is 2Gb.
- **Community Forums**
Get help from fellow users and contributors on a wide range of topics — from troubleshooting to development.
👉 [forum.armbian.com](https://forum.armbian.com)
## More information:
- **Discord / IRC/ Matrix Chat**
Join real-time discussions with developers and community members for faster feedback and collaboration.
👉 [Community Chat](https://docs.armbian.com/Community_IRC/)
- [Building Armbian](https://docs.armbian.com/Developer-Guide_Build-Preparation/) (how to start, how to automate)
- [Build options](https://docs.armbian.com/Developer-Guide_Build-Options/) (all build options)
- [User configuration](https://docs.armbian.com/Developer-Guide_User-Configurations/) (how to add packages, patches, and override sources config)
- **Paid Consultation**
For advanced needs, commercial projects, or guaranteed response times, paid support is available directly from Armbian maintainers.
👉 [Contact us](https://www.armbian.com/contact) to discuss consulting options.
## Download prebuilt images releases
### Contributors
### Point
- [manually released **standard supported** builds](https://www.armbian.com/download/?device_support=Standard%20support) (quarterly)
### Rolling
- [automatically released **staging and standard supported** builds](https://github.com/armbian/os/releases/latest) (daily)
- [automatically released **community maintained** builds](https://github.com/armbian/community/releases/latest) (weekly)
## Compared with industry standards
<details><summary>Expand</summary>
Check similarities, advantages and disadvantages compared with leading industry standard build software.
Function | Armbian | Yocto | Buildroot |
|:--|:--|:--|:--|
| Target | general purpose | embedded | embedded / IOT |
| U-boot and kernel | compiled from sources | compiled from sources | compiled from sources |
| Board support maintenance &nbsp; | complete | outside | outside |
| Root file system | Debian or Ubuntu based| custom | custom |
| Package manager | APT | any | none |
| Configurability | limited | large | large |
| Initramfs support | yes | yes | yes |
| Getting started | quick | very slow | slow |
| Cross compilation | yes | yes | yes |
</details>
## Project structure
<details><summary>Expand</summary>
```text
├── cache Work / cache directory
│   ├── aptcache Packages
│   ├── ccache C/C++ compiler
│   ├── docker Docker last pull
│   ├── git-bare Minimal Git
│   ├── git-bundles Full Git
│   ├── initrd Ram disk
│   ├── memoize Git status
│   ├── patch Kernel drivers patch
│   ├── pip Python
│   ├── rootfs Compressed userspaces
│   ├── sources Kernel, u-boot and other sources
│   ├── tools Additional tools like ORAS
│   └── utility
├── config Packages repository configurations
│   ├── targets.conf Board build target configuration
│   ├── boards Board configurations
│   ├── bootenv Initial boot loaders environments per family
│   ├── bootscripts Initial Boot loaders scripts per family
│   ├── cli CLI packages configurations per distribution
│   ├── desktop Desktop packages configurations per distribution
│   ├── distributions Distributions settings
│   ├── kernel Kernel build configurations per family
│   ├── sources Kernel and u-boot sources locations and scripts
│   ├── templates User configuration templates which populate userpatches
│   └── torrents External compiler and rootfs cache torrents
├── extensions Extend build system with specific functionality
├── lib Main build framework libraries
│   ├── functions
│   │   ├── artifacts
│   │   ├── bsp
│   │   ├── cli
│   │   ├── compilation
│   │   ├── configuration
│   │   ├── general
│   │   ├── host
│   │   ├── image
│   │   ├── logging
│   │   ├── main
│   │   └── rootfs
│   └── tools
├── output Build artifact
│   └── deb Deb packages
│   └── images Bootable images - RAW or compressed
│   └── debug Patch and build logs
│   └── config Kernel configuration export location
│   └── patch Created patches location
├── packages Support scripts, binary blobs, packages
│   ├── blobs Wallpapers, various configs, closed source bootloaders
│   ├── bsp-cli Automatically added to armbian-bsp-cli package
│   ├── bsp-desktop Automatically added to armbian-bsp-desktopo package
│   ├── bsp Scripts and configs overlay for rootfs
│   └── extras-buildpkgs Optional compilation and packaging engine
├── patch Collection of patches
│   ├── atf ARM trusted firmware
│   ├── kernel Linux kernel patches
| |   └── family-branch Per kernel family and branch
│   ├── misc Linux kernel packaging patches
│   └── u-boot Universal boot loader patches
| ├── u-boot-board For specific board
|    └── u-boot-family For entire kernel family
├── tools Tools for dealing with kernel patches and configs
└── userpatches User: configuration patching area
├── lib.config User: framework common config/override file
├── config-default.conf User: default user config file
├── customize-image.sh User: script will execute just before closing the image
   ├── atf User: ARM trusted firmware
   ├── kernel User: Linux kernel per kernel family
   ├── misc User: various
   └── u-boot User: universal boot loader patches
```
</details>
## Contribution
### Want to help?
We always need those volunteering positions:
- [Code reviewer](https://forum.armbian.com/staffapplications/application/23-code-reviewer/)
- [Build framework maintainer](https://forum.armbian.com/staffapplications/application/9-build-framework-maintainer/)
- [Test Automation Engineer](https://forum.armbian.com/staffapplications/application/19-test-automation-engineer/)
Just apply and follow!
## Support
For commercial or prioritized assistance:
- Book an hour of [professional consultation](https://calendly.com/armbian/consultation)
- Consider becoming a [project partner](https://forum.armbian.com/subscriptions/)
- [Contact us](https://armbian.com/contact)!
Free support:
Find free support via [general project search engine](https://www.armbian.com/search), [documentation](https://docs.armbian.com), [community forums](https://forum.armbian.com/) or [IRC/Discord](https://docs.armbian.com/Community_IRC/). Remember that our awesome community members mainly provide this in a **best-effort** manner, so there are no guaranteed solutions.
## Contact
- [Forums](https://forum.armbian.com) for Participate in Armbian
- IRC: `#armbian` on Libera.chat / oftc.net
- Discord: [https://discord.gg/armbian](https://discord.gg/armbian)
- Follow [@armbian](https://twitter.com/armbian) on 𝕏 (formerly known as Twitter), <a rel="me" href="https://fosstodon.org/@armbian">Mastodon</a> or [LinkedIn](https://www.linkedin.com/company/armbian).
- Bugs: [issues](https://github.com/armbian/build/issues) / [JIRA](https://armbian.atlassian.net/jira/dashboards/10000)
- Office hours: [Wednesday, 12 midday, 18 afternoon, CET](https://calendly.com/armbian/office-hours)
## Contributors
Thank you to all the people who already contributed to Armbian!
@@ -80,6 +233,24 @@ Thank you to all the people who already contributed to Armbian!
<img src="https://contrib.rocks/image?repo=armbian/build" />
</a>
### Also
- [Current and past contributors](https://github.com/armbian/build/graphs/contributors), our families and friends.
- [Support staff](https://forum.armbian.com/members/2-moderators/) that keeps forums usable.
- [Friends and individuals](https://armbian.com/authors) who support us with resources and their time.
- [The Armbian Community](https://forum.armbian.com/) helps with their ideas, reports and [donations](https://www.armbian.com/donate).
## Armbian Partners
Armbian's [partnership program](https://forum.armbian.com/subscriptions) helps to support Armbian and the Armbian community! Please take a moment to familiarize yourself with [our Partners](https://armbian.com/partners).
Armbian's partnership program helps to support Armbian and the Armbian community! Please take a moment to familiarize yourself with our Partners:
- [Click here to visit our Partners page!](https://armbian.com/partners)
- [How can I become a Partner?](https://forum.armbian.com/subscriptions)
## Star History
[![Star History Chart](https://api.star-history.com/svg?repos=armbian/build&type=Date)](https://star-history.com/#armbian/build&Date)
## License
This software is published under the GPL-2.0 License license.

View File

@@ -1 +1 @@
25.11.0-trunk
24.8.0-trunk

View File

@@ -87,10 +87,6 @@ inputs:
required: false
default: "Build with [Armbian tools](https://github.com/armbian/build)"
armbian_release_tag:
description: "Armbian release tag"
required: false
runs:
using: "composite"
@@ -115,7 +111,7 @@ runs:
passphrase: ${{ inputs.armbian_pgp_password }}
- name: "Checkout Armbian os"
uses: actions/checkout@v5
uses: actions/checkout@v4
with:
repository: armbian/os
fetch-depth: 0
@@ -123,15 +119,15 @@ runs:
path: os
- name: "Checkout Armbian build framework"
uses: actions/checkout@v5
uses: actions/checkout@v4
with:
repository: armbian/build
ref: ${{ inputs.armbian_branch }}
fetch-depth: 0
clean: false
path: build
- name: "Checkout customisations"
uses: actions/checkout@v5
uses: actions/checkout@v4
with:
fetch-depth: 0
clean: false
@@ -147,9 +143,7 @@ runs:
# copy os userpatches and custom
mkdir -pv build/userpatches
rsync -av os/userpatches/. build/userpatches/
if [[ -d custom/userpatches ]]; then
rsync -av custom/userpatches/. build/userpatches/
fi
[[ -d custom/userpatches ]] && rsync -av custom/userpatches/. build/userpatches/
- shell: bash
run: |
@@ -169,12 +163,9 @@ runs:
DESKTOP_ENVIRONMENT_CONFIG_NAME="config_base"
fi
# go to build folder
# go to build folder and checkout
cd build
# default build command below doesn't prepare host dependencies
sudo ./compile.sh requirements
sudo chown -R $USER:$USER .
git checkout ${{ inputs.armbian_branch }}
# execute build command
./compile.sh "${{ inputs.armbian_target }}" \
@@ -203,7 +194,7 @@ runs:
- uses: ncipollo/release-action@v1
with:
tag: ${{ inputs.armbian_release_tag != '' && inputs.armbian_release_tag || env.ARMBIAN_VERSION }}
tag: "${{ env.ARMBIAN_VERSION }}"
name: "${{ inputs.armbian_release_tittle }}"
artifacts: "${{ inputs.armbian_artifacts }}*"
allowUpdates: true

View File

@@ -1,52 +1,52 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1
mQINBGhX5xgBEADO7xrNcDzUMpV+c5kxZQwIZxfyZXF2RaMi4VFuwLye0z4F40dS
Do6uzSEuWNcE/O8T4fyAj5YAnUEDRwaotwLHaTiJnsFVCAdmpMLj3HFIbRXNbiad
xoK1wc7sPx/YVIXV22CZH/vBjTNK/A89diDB+TFb48bENQkeBhRcgT9+bEYIeAqd
vTHYUXFuItQHBXqFzm/slUw5y69Wk6VotsHnWjueH/ZVLVYU3CkEUdAiqZjvlKC+
ILAwQ1YGGNamXOQQ/eVQTkaG5Q8m8noJsFdG8sX/Be4BQZaqMkygdFMYCBfzDdKw
jT0E9F5WlGd8a6yvWF6NM0fpXO57tVdQRA9eb3Dgavy6deZxB+gYrdeMZevP0ZF3
rYiOur4tY2y8Wwd4IDigjZvRGwA6LoQt56FHzzyQRzw0234NVl9kmO8z8pXk+bhk
oYa02UmrsSBCaVQZQ1X6aWc9kAaoF3Kauf3crExl16c8KpfEpQoJPejemQPCxIDC
aSjAa2L4/1OUqhlreBR3CVYX4cymfe4EuSWANI853Z3YwBDbIyWe9mes+xfWy1YS
F267Z+L4Zmn88vuVrwS35MvQjc0cycVVFEUUKDYYfWvAUJfmhlEmAJWIvbgoLQnK
kWWR8bPwftwIKiutyd+zrW/ub8ModC6AYPPABG6XwrkfSE4T9HpNflYpiwARAQAB
tEJBcm1iaWFuIFJlcG9zaXRvcnkgU2lnbmluZyBLZXkgKFJlcG9zaXRvcnkgS2V5
KSA8aW5mb0Bhcm1iaWFuLmNvbT6JAlMEEwEKAD0WIQSM+oPRPrIYHu9YQ+Qesw+v
I2CZ/gUCaFfnGAIbAwUJEswDAAULCQgHAwQVCgkIBRYCAwEAAh4FAheAAAoJEB6z
D68jYJn+L14QAKvYBJUYMQyPZjH+vKISiE7Y0gMRr8npuSPyanwrL/FFBRYP0k8G
uSp8PF0Br35rtWUv3rWEzPTauL2B0y69B16gP+Ey8E16AISBuT/baD9JGXMQedWW
gOEM9Xn9/4hRfaTm04E9YPFdspqfhWIT1hocAzQdcuKZzUpDrxMpsBfodpLYe4fG
HmoQc7ZU+jetnJgZwWqhdMioMMHCVOQKZ5zEB5+zRLthsqBRAelr8Heayb6JvIPB
RJw36xajw2UXTS/VfeksrNhzzFL1E3Tz5/Oy50VzAGnr9NmcUTlZUU6knWvMONrU
2trcuULZs5LZGFHGVJky02UMjURuIuhG/2UC7cdRIuLcpqYfKe38vexUlKEa9RTH
qigYYDyUyan2kSTKbu4g3D6wZKtuDnRL+D2057yJsdI/8lNPj39xkmN9/oKGqVrG
0wxT40deUU10OydxWRHMtOlWhhZOMBK0t+vc60keE3oReAHCdN/aVWXj1bof3pVC
JHB43FTE53W1EYaPvyVljvtFiVhobvuB1VSr7+Q8sMFivRJUm3lc272uATpqmk9D
tiZ6k6r9DAnVjdQBYQHFkkqvBfGEmRPHJQUu5a2+XBhW9k4YAtlSS+vzASWmAGGw
xgw8sAUEI3Of+kzPZKUtB3XZ4lSq8D+LpN7fp6E4YWxkO1Df+iyzvSgjuQINBGhX
5xgBEADAPE9/L3VF6IBQmK+MJoQHGxXQn/bYOV3CbkFmev49rug1vqTIqhuFSddD
qnFI1ElG8ylZMFlQtACJ6xn1Jzcs+oPWCjfR3lYcA2ITVFKy7HnlEEZcBPO2VLkA
8LwGlp0iFQSZ/LQym5GAHofkB77mUq/xWnlul+5gEqpX3zLxZ8i6sdNOeFCYemOr
Elgfnyo09bmE9pxby9jNKpnaUbPzjGbDhiSy4DpnCbBQ6ANxgBDssSldBFOXzjgM
gkqoSgW48O8JMtG5yPkj8oCnf4tgbVU4+kK4fU+PlRmv6NY2FZ5p/R70tO68kRV7
eZ5WxLBzf96qD09DFfNCSs/gdiN5ldsRL3FWO7vM0NdjoRxpiwMGxJfBJ/zVVOjq
v1bR2EkmYaeorGpwwl1F6hpCGa3ls8olEZXfLN31SLPm8DNFGiDcT5TsU3igp1CM
LF9oFYrIsBTb9PcJMsFMD8Z953FH9FjHCaXRx6pyuSW0ue89e2UiGYElSWWyozB8
VoiUdvhYmue4Z/7OqorP8+rSXcEWkY9pgBCI0MlqnJ/fk4/PFOTACunbYq+eI8UD
fB01UNRwKX2NDsJ39+Ve9i09lK+NKAqjHSCGkEJPNrOCImFCwBdga7UPIys8q/Og
fkDXW/SxYly6yEcROdXbApsRZBI2xuvgDCy3akv1BvAUfqDB2QARAQABiQI8BBgB
CgAmFiEEjPqD0T6yGB7vWEPkHrMPryNgmf4FAmhX5xgCGwwFCRLMAwAACgkQHrMP
ryNgmf790A//Qm3UXMMhOBdN1T2gjkvWuQBlovsuCLHpmDrH2DOlHJVYbZQr5wl3
ug1AOVOLLPyaOzhHUpu99S0fhlOWkejI06TCp9sAtnOg/ukgsX5B6lnC9weHVsrY
1priVn9+aAUBOx8El0Wq6Ddy3HvrHz9nM5WzcV/rqR+tRWvHK2Ns1i8cCxQp40w7
s2GsDmWA7ForInDbUFmsQMvLlGgXYYchjOVlbY5DbIKLbWFjbyKTk5ojo0vkCvS0
qvuy2U/VlMhLE1MMyLYp89tPMa6qvkI6qolsTiksm5Aef8k146a3qntWH6n8wC/k
3hnQajlCJwgRVfs5IYc8EErGD4Oh0nTUlBlnPzypQPXT1ZGYYkVwMLCuG2sbSl8o
txbqrOIypBHzCyv717+0h2ZRqNT6HAe2UR/VJtWLra2J3Dnso1UEQOZgkFVAnNzE
T3Flsrrrnu/VidtEfkB6WCKD5FITzx5nBy0yljhSSunVpBP4BxB+Jj3s9dNz0V0a
EXnaN01l2s56TOhZHaqNdULC0jFjbKPszAsClPFMHk3QMP7+X5sD7usM363ETXvj
KCAuXDKvlFXUlhFEIxs+1pM3ffAofVmDs689QaSTuYkIeFBC1zlKXJYYBloD7jiJ
Yz76o/X/S3BlVpU2vTldkzwa/S4KIxS5/XU1o+tfKRzfWwOl4YDh2TE=
=nzf6
mQINBFUG8p4BEADGlseGFmdjjfmoXtHpZxqgYHGweCnGZ05LiGgEVgbv5SrTsJsy
O8H8RyBPxgbpKEY+JCV1IlYQPaE3Til1+kqmR4XNKbufjEuqAV4VJW3267tYRuJ3
08E70q7kpQSsEAWLVY+xV/l5stAupp4/wF5BPdAjW7gLuicPnqoKK0jcfrjuvd45
WFhpjL1Sdd0PnILehz0to6R2H9MsW+VYYPFztdjBM/78UD8grMcCm/7Mz8ENRKCn
TKrgj4bpWA0kPEHNBfaoQQUk5fCJYNMLvLMIGZcWeGOPo+yFnl4C6qTEgs0g7/0E
56ycaQDJ+gBCH9YNa8j3eH/t1vMN0ERXiOQf6WXgRihOD1fcnZFmczQFT3GGhv3y
+/cUpsUlmhhJ6tetiuXNuTfrl3M+99qUq5/8iiq292MCmn5s0BEOiyfQ2l2uZmjy
DUO+4lL9o3MX0W5Xp1puE2p42b+w458aDKuuFvBzVMiU51Js6DZnahxu2s+NDztD
gut7p+P60UBCbltXEB0ZIyWTAkKCwIlapZ9yDiHqXiNluTdBiFWGyU3xlb4fuQzw
lwvmS3yz4Ak5GCdDpiLmJoHOKV6q85VaI4T3gixx4JwEfdincOGfepSWFmbEsDuV
x5vbDV5Dwb3oAg80zp3W/uNyX7G41uIGDNzZL82p2XtgGzkjhEbKAnNavwARAQAB
tD1JZ29yIFBlY292bmlrIChManVibGphbmEsIFNsb3ZlbmlhKSA8aWdvci5wZWNv
dm5pa0BnbWFpbC5jb20+iQI4BBMBAgAiBQJVBvKeAhsDBgsJCAcDAgYVCAIJCgsE
FgIDAQIeAQIXgAAKCRCT1oifnw541T6WD/0X+LD9Gm1NVgZhrH35oQ3zstENrTjD
6LF+kT+zhe6QR9bAdOmeb7Je423y/UY3nSaJlS/OWsJs89tXUyE2jbxtLApN6OMT
ZsIxjgyg3fjbHV/lw/xGp+cqHjX+Ay5QZudJVxGJN7WJaRGxymjop7EX4CHiidGZ
PZoDT23WArLia7E8MLB/oK3wW6k9Qlc2SrhldzpuSmOwHQX9pxmy9dgfZa2a9w1c
EvktDnrizPmfxwYaC38FKRqz1I8CnPMESVJ+6mLEYxWJvJANuVvrhqOtjkY6yI0u
SOFHsmgci+3X2c7WWhloKub/Pf7TtM6tl6RCHfKvnsrTZPvxP1/CgzQiAITWppBl
olnSRHXp3notCF1rVbgInwVuCZCuWPJvHC6R3t9/UgESao0tEwr4mw7jNwtszWou
4rYzjEAME/O/kBBWPbDURm/4R8l0XSnG0zhePKv5iCzeQbIzUeAD1Dcvk7falgnl
9FX9/LZCY1kEwFMf2DG03lwG7c4ICSVAz0pNEPZdqpyCl82VKkDne8PA0Rb/uPIO
QY3aDu8bgcPQuokmRRL4rwdnRCVr0AFDZhVQnUjcdy8AvEPeye2fNdLhte+KUWiy
FNWp2vW2LbJ9GxPstaFihXZBcCEpGWsNHebDd1KmNGyPKcqzaIfzHPLP8+ee2deK
A95PVzV3iTL+ObkCDQRVBvKeARAAvGaKCHDGl0eC7fFok5sPq1WattpqQ9QL0BgZ
95VQLn+7/1nXmKsDfCwCvnBGqLXzPQyvWhCbCTN9oYkqokBX2Ch1zOIABynw+UCM
+KyZcmciYZIF21OstWMM0nQ06jno5Hq1vSHlgTkaaYWZYoqXocMCS9llvI2NVG34
bcak1hAh9EkfmThVttDeGZP+osqt2mefpCAVITP1eQWU3RUBpOKNpthpLxMhy+l7
m8tmkLH3FuqwZvVjY241w1o4AWVpJD/JdOuAfHtf7/UDPchSZLe9Ea8Y+bnkiZxg
SROtFrRzbVwP1Id4RKT44BwKMrXu8GiZAPvQq5CvINqZDMqiqq4+jFJPMVortuxX
skRh1dVYOioH1muzeHf560/BLW+mBuEd+xE0gd6SXRgPiflROylpJCb9Qxi8Ofq6
FEHBfJ8mHz49d60qyXZNdNlxLhA3dfOvaahFBgXwNSwjak0zf6RpufAkh8Si5jc3
Qh7lpuwsBelyNu7tBbL2y8WnUez/+aeX9sBSqs78mfpDdLAGnIlT9YcjkHl5W385
jjhBAhpAgiLIsdSRKcc2CI34Vf775cLLIYrcBrjVMLYBwEiZHOPO90Lnizgx1l5t
1wG2Aa5OarTTUPIgMiTUtKPQ8BmcjGMZiavdJwqGUziDD+hMKcxPUMjyYiu+ngkH
1ROuCxMAEQEAAYkCHwQYAQIACQUCVQbyngIbDAAKCRCT1oifnw541Wm7D/sG0ouM
71c5mT+egff+QxfExy+JB4/vL1pLSHbMR8AtAJLN+Yh6EzeGmW2tga0Bk9AxEekQ
raXrMFhZSpT98qJnnDpdozfeIAyTwziw9K9opB0dU/+M3sVidkJ5mv4LW6CJaaY3
rsom0TIjaxBvXqSeadJF4WGUHzg3ew+8ah0ZG8SDZu19ketN2cnTMAtgO+53Epjq
pk3uMF5hNaEHt9wVj2tq/anLEsl4T5U/ekQndxcTEsV2KIVSoye35ye4aam1gWhW
9JIFtShhEtXD/5Ovtj706YLTP84U8yHStzM6LLGpqM8bb1QsBUWRUhIKidltmO9K
jX6rJZuhwkcVJJYRdbetEXbiSIyeNZy7bBe4En+fVcN0ekBD36LhMcVL8F1Mntr1
L5xf0cFEpFpEodQUvcayNgpI2y7EIPjKmKhVwW5dx36Q0CsCnwcC+Kg6BNzliI9I
s+oA2AVIanFPvjvSwfG9pH+2/u+KB4HT2Ux1FBbBi5GAwo+cu1d4XAc5bZHdPnAV
tnIN9dKRusZ8IGHWEd8Pw0kRepuNhSmSNALQkS6B+ppQZtmoGsBCqJeMPxQxj+yI
/bL3dmA2UXxnGJ3vs2ybFyHG3aoovKJfWVytxOJfG7qj1ACrOYOXekWlcw5lEiYF
cckukNqqFv/CXh+BZFlQT4DDvJlY0/KQFFKogQ==
=I/P8
-----END PGP PUBLIC KEY BLOCK-----

View File

@@ -74,8 +74,7 @@ If you are unsure about the documentation then invoke `$ grep -r -A5 -B5 "BUILD_
- edge: Use edge kernel
- [branch]: Use specified [branch] kernel
- [none]: Exits with error
- **KERNEL_TEST_TARGET** ( comma-separated list of kernel releases or branches ): if test targets are different for testings. Also applies to build list generation. (internal switch)
- **KERNEL_UPGRADE_FREEZE** ( comma-separated list of kernels with versions obove which they stop updating, example: KERNEL_UPGRADE_FREEZE="vendor-rk35xx@24.8.1,current-rockchip-rk3588@24.8.2" )
- **KERNEL_TEST_TARGET** ( comma-separated list of kernel releases or branches ): if test targets are different for testings (internal switch)
- **FULL_DESKTOP** ( boolean ): defines whether to install desktop stack of applications such as office, thunderbird, etc..
- Values:
- yes: install desktop stack

View File

@@ -1,13 +0,0 @@
# Amlogic A311D 2/4GB RAM eMMC GBE USB3
BOARD_NAME="Libre Computer Alta"
BOARDFAMILY="meson-g12b"
BOARD_MAINTAINER="Tonymac32"
KERNEL_TARGET="current,edge"
KERNEL_TEST_TARGET="edge"
MODULES_BLACKLIST="simpledrm" # SimpleDRM conflicts with Panfrost
FULL_DESKTOP="yes"
SERIALCON="ttyAML0"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="amlogic/meson-g12b-a311d-libretech-cc.dtb"
enable_extension "grub-with-dtb"

View File

@@ -1,50 +0,0 @@
# Amlogic S912 octa core 3Gb RAM SoC eMMC
BOARD_NAME="Magicsee C400 Plus"
BOARDFAMILY="meson-gxl"
BOARD_MAINTAINER="jomadeto"
BOOTSIZE="512"
BOOTFS_TYPE="fat"
KERNEL_TARGET="current,edge"
KERNEL_TEST_TARGET="current"
SERIALCON="ttyAML0"
FULL_DESKTOP="yes"
ASOUND_STATE="asound.state.mesongx"
BOOT_FDT_FILE="amlogic/meson-gxm-c400-plus.dtb"
BOOT_LOGO="desktop"
SRC_EXTLINUX="no"
SRC_CMDLINE='rootflags=data=writeback console=ttyAML0,115200n8 console=tty0'
function post_family_config__uboot_aml-c400-plus() {
# This board type relies on the vendor installed u-boot on emmc to boot
display_alert "$BOARD" "Configuring ($BOARD) non-u-boot" "info"
unset BOOTSOURCE
declare -g BOOTCONFIG='none'
}
function post_family_tweaks_bsp__config_aml-c400-plus_bsp() {
: "${destination:?destination is not set}"
# Important: this board has board-specific bsp-cli files in config/optional/boards/aml-c400-plus/_packages/bsp-cli
# that path is hashed by the bsp-cli hashing function automatically
display_alert "${BOARD}" "Adjusting perms of bsp-cli files for ${BOARD} in /root" "info"
run_host_command_logged chmod -v 744 "${destination}"/root/install-aml.sh
run_host_command_logged chmod -v 644 "${destination}"/root/fstab.template
display_alert "${BOARD}" "Removing armbian-install" "info"
run_host_command_logged rm -v "${destination}"/usr/bin/armbian-install
display_alert "${BOARD}" "Adding bsp-cli preinst logic" "info"
# Inline function! So this function is automatically hashed when this hook is hashed.
function aml-c400-plus-bsp-cli-preinst() {
#update of the board bsp-cli package fails because the filesystem type is
#fat and dpkg tries to create a hard link for the existing files as backup
#so rm the files instead in a preinst step
[ -f /boot/armbianEnv.txt ] && rm /boot/armbianEnv.txt
[ -f /boot/aml_autoscript ] && rm /boot/aml_autoscript
[ -f /boot/emmc_autoscript ] && rm /boot/emmc_autoscript
return 0 # short-circuits above, avoid errors
}
preinst_functions+=('aml-c400-plus-bsp-cli-preinst')
if false; then aml-c400-plus-bsp-cli-preinst; fi # so shellcheck stops complaining the function is unused. sorry
}

View File

@@ -1,14 +0,0 @@
# MXQ TV box based on Amlogic S805 quad core 1GB RAM SoC GBE
BOARD_NAME="MXQ"
BOARDFAMILY="meson8b"
BOARD_MAINTAINER=""
KERNEL_TARGET="current"
KERNEL_TEST_TARGET="current"
BOOTCONFIG="none"
BOOTSCRIPT="boot-aml-s805-mxq.cmd:boot.cmd"
# The preinstalled U-BOOT looks for this script
BOOTSCRIPT_OUTPUT="s805_autoscript"
BOOTENV_FILE="aml-s805-mxq.txt"
BOOTSIZE="200"
BOOTFS_TYPE="fat"

View File

@@ -1,12 +0,0 @@
# Amlogic s905d3 2/4GB RAM eMMC GBE USB3
BOARD_NAME="Libre Computer Solitude"
BOARDFAMILY="meson-sm1"
BOARD_MAINTAINER="Tonymac32"
KERNEL_TARGET="current,edge"
MODULES_BLACKLIST="simpledrm" # SimpleDRM conflicts with Panfrost
FULL_DESKTOP="yes"
SERIALCON="ttyAML0"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="amlogic/meson-sm1-s905d3-libretech-cc.dtb"
enable_extension "grub-with-dtb"

View File

@@ -1,60 +1,50 @@
# Amlogic S9xx based TVBox
# Amlogic S9xx based TVBox
BOARD_NAME="aml-s9xx-box"
BOARDFAMILY="meson-gxl"
BOARD_MAINTAINER="SteeManMI"
BOOTCONFIG="libretech-cc_defconfig"
BOOTSIZE="512"
BOOTFS_TYPE="fat"
KERNEL_TARGET="current,edge"
KERNEL_TEST_TARGET="current"
SERIALCON="ttyAML0"
FULL_DESKTOP="yes"
ASOUND_STATE="asound.state.mesongx"
BOOT_FDT_FILE="amlogic/meson-gxl-s905x-p212.dtb"
BOOT_LOGO="desktop"
SRC_EXTLINUX="yes"
SRC_CMDLINE='rootflags=data=writeback console=ttyAML0,115200n8 console=tty0'
function post_family_config__uboot_aml-s9xx-box() {
# This board type relies on the vendor installed u-boot on emmc to boot
display_alert "$BOARD" "Configuring ($BOARD) non-u-boot" "info"
unset BOOTSOURCE
declare -g BOOTCONFIG='none'
function aml-s9xx-box-bsp-cli-preinst() {
#update of the board bsp-cli package fails because the filesystem type is
#fat and dpkg tries to create a hard link for the existing files as backup
#so rm the files instead in a preinst step
[ -f /boot/aml_autoscript ] && rm /boot/aml_autoscript
[ -f /boot/emmc_autoscript ] && rm /boot/emmc_autoscript
[ -f /boot/s905_autoscript ] && rm /boot/s905_autoscript
[ -f /boot/u-boot-s905 ] && rm /boot/u-boot-s905
[ -f /boot/u-boot-s905x-s912 ] && rm /boot/u-boot-s905x-s912
[ -f /boot/u-boot-s905x2-s922 ] && rm /boot/u-boot-s905x2-s922
[ -f /boot/u-boot-s905x3 ] && rm /boot/u-boot-s905x3
[ -f /boot/extlinux/extlinux.conf.template ] && rm /boot/extlinux/extlinux.conf.template
[ -f /boot/build-u-boot/readme.txt ] && rm /boot/build-u-boot/readme.txt
[ -f /boot/build-u-boot/u-boot-s905x-s912.patch ] && rm /boot/build-u-boot/u-boot-s905x-s912.patch
[ -f /boot/build-u-boot/u-boot-s905x2-s922.patch ] && rm /boot/build-u-boot/u-boot-s905x2-s922.patch
[ -f /boot/build-u-boot/u-boot-s905x3.patch ] && rm /boot/build-u-boot/u-boot-s905x3.patch
}
function post_family_tweaks_bsp__config_aml-s9xx-box_bsp() {
: "${destination:?destination is not set}"
# Important: this board has board-specific bsp-cli files in config/optional/boards/aml-s9xx-box/_packages/bsp-cli
# that path is hashed by the bsp-cli hashing function automatically
display_alert "${BOARD}" "Adjusting perms of bsp-cli files for ${BOARD} in /root" "info"
run_host_command_logged chmod -v 744 "${destination}"/root/install-aml.sh
run_host_command_logged chmod -v 644 "${destination}"/root/fstab.template
display_alert "$BOARD" "Installing bsp files" "info"
display_alert "${BOARD}" "Removing armbian-install" "info"
run_host_command_logged rm -v "${destination}"/usr/bin/armbian-install
cp -r "${SRC}"/packages/bsp/aml-s9xx-box/boot "${destination}"
install -D -m 744 "${SRC}"/packages/bsp/aml-s9xx-box/root/install-aml.sh "${destination}"/root/install-aml.sh
install -m 644 "${SRC}"/packages/bsp/aml-s9xx-box/root/fstab.template "${destination}"/root/fstab.template
display_alert "${BOARD}" "Adding bsp-cli preinst logic" "info"
# Inline function! So this function is automatically hashed when this hook is hashed.
function aml-s9xx-box-bsp-cli-preinst() {
#update of the board bsp-cli package fails because the filesystem type is
#fat and dpkg tries to create a hard link for the existing files as backup
#so rm the files instead in a preinst step
[ -f /boot/aml_autoscript ] && rm /boot/aml_autoscript
[ -f /boot/emmc_autoscript ] && rm /boot/emmc_autoscript
[ -f /boot/s905_autoscript ] && rm /boot/s905_autoscript
[ -f /boot/u-boot-s905 ] && rm /boot/u-boot-s905
[ -f /boot/u-boot-s905x-s912 ] && rm /boot/u-boot-s905x-s912
[ -f /boot/u-boot-s905x2-s922 ] && rm /boot/u-boot-s905x2-s922
[ -f /boot/u-boot-s905x3 ] && rm /boot/u-boot-s905x3
[ -f /boot/u-boot-s905x3-ugoosx3 ] && rm /boot/u-boot-s905x3-ugoosx3
[ -f /boot/extlinux/extlinux.conf.template ] && rm /boot/extlinux/extlinux.conf.template
[ -f /boot/build-u-boot/readme.txt ] && rm /boot/build-u-boot/readme.txt
[ -f /boot/build-u-boot/u-boot-s905x-s912.patch ] && rm /boot/build-u-boot/u-boot-s905x-s912.patch
[ -f /boot/build-u-boot/u-boot-s905x2-s922.patch ] && rm /boot/build-u-boot/u-boot-s905x2-s922.patch
[ -f /boot/build-u-boot/u-boot-s905x3.patch ] && rm /boot/build-u-boot/u-boot-s905x3.patch
[ -f /boot/build-u-boot/u-boot-s905x3-ugoos-x3.patch ] && rm /boot/build-u-boot/u-boot-s905x3-ugoos-x3.patch
return 0 # short-circuits above, avoid errors
}
preinst_functions+=('aml-s9xx-box-bsp-cli-preinst')
if false; then aml-s9xx-box-bsp-cli-preinst; fi # so shellcheck stops complaining the function is unused. sorry
display_alert "${BOARD}" "Removing armbian-install" "info"
rm "${destination}"/usr/sbin/armbian-install
display_alert "${BOARD}" "Adding bsp-cli preinst logic" "info"
preinst_functions+=('aml-s9xx-box-bsp-cli-preinst')
}

View File

@@ -3,9 +3,7 @@ BOARD_NAME="T95Z Plus" # (a q201 Chinese clone with in
BOOT_FDT_FILE="amlogic/meson-gxm-t95z-plus.dtb" # From chewitt's patches
BOARDFAMILY="meson-gxl" # s912's are actually meson-gxm, no harm done.
BOOTCONFIG="meson-gxm-t95z-plus_defconfig" # patched-in
BOARD_MAINTAINER=""
KERNEL_TARGET="edge"
KERNEL_TEST_TARGET="edge"
FULL_DESKTOP="yes"
BOOT_LOGO="desktop"

View File

@@ -1,21 +0,0 @@
# Rockchip RK3588 SoC octa core 8-32GB SoC 2.5GBe eMMC USB3 NvME
BOARD_NAME="ArmSoM AIM7 IO"
BOARDFAMILY="rockchip-rk3588"
BOARD_MAINTAINER=""
BOOTCONFIG="armsom-aim7-io-rk3588_defconfig"
KERNEL_TARGET="vendor"
FULL_DESKTOP="yes"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="rockchip/rk3588-armsom-aim7-io.dtb"
BOOT_SCENARIO="spl-blobs"
IMAGE_PARTITION_TABLE="gpt"
function post_family_tweaks__armsom-aim7-io_naming_audios() {
display_alert "$BOARD" "Renaming audios" "info"
mkdir -p $SDCARD/etc/udev/rules.d/
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi0-sound", ENV{SOUND_DESCRIPTION}="HDMI0 Audio"' > $SDCARD/etc/udev/rules.d/90-naming-audios.rules
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-dp0-sound", ENV{SOUND_DESCRIPTION}="DP0 Audio"' >> $SDCARD/etc/udev/rules.d/90-naming-audios.rules
return 0
}

View File

@@ -1,21 +0,0 @@
# Rockchip RK3576 SoC octa core 8-64GB SoC GBe eMMC USB3 NvME WIFI
BOARD_NAME="ArmSoM CM5 IO"
BOARDFAMILY="rk35xx"
BOOTCONFIG="armsom-cm5-io-rk3576_defconfig"
KERNEL_TARGET="vendor"
FULL_DESKTOP="yes"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="rockchip/rk3576-armsom-cm5-io.dtb"
BOOT_SCENARIO="spl-blobs"
IMAGE_PARTITION_TABLE="gpt"
BOARD_MAINTAINER=""
function post_family_tweaks__armsom-cm5-io_naming_audios() {
display_alert "$BOARD" "Renaming armsom-cm5 audios" "info"
mkdir -p $SDCARD/etc/udev/rules.d/
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi0-sound", ENV{SOUND_DESCRIPTION}="HDMI0 Audio"' > $SDCARD/etc/udev/rules.d/90-naming-audios.rules
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-es8316-sound", ENV{SOUND_DESCRIPTION}="ES8316 Audio"' >> $SDCARD/etc/udev/rules.d/90-naming-audios.rules
return 0
}

View File

@@ -1,20 +0,0 @@
# Rockchip RK3576 SoC octa core 8-64GB SoC GBe eMMC USB3 NvME WIFI
BOARD_NAME="ArmSoM CM5 CM4 IO"
BOARDFAMILY="rk35xx"
BOOTCONFIG="armsom-cm5-rpi-cm4-io-rk3576_defconfig"
KERNEL_TARGET="vendor"
FULL_DESKTOP="yes"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="rockchip/rk3576-armsom-cm5-rpi-cm4-io.dtb"
BOOT_SCENARIO="spl-blobs"
IMAGE_PARTITION_TABLE="gpt"
BOARD_MAINTAINER=""
function post_family_tweaks__armsom-cm5-rpi-cm4-io_naming_audios() {
display_alert "$BOARD" "Renaming armsom-cm5-rpi-cm4-io audios" "info"
mkdir -p $SDCARD/etc/udev/rules.d/
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi0-sound", ENV{SOUND_DESCRIPTION}="HDMI0 Audio"' > $SDCARD/etc/udev/rules.d/90-naming-audios.rules
return 0
}

View File

@@ -8,4 +8,12 @@ FULL_DESKTOP="yes"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="rockchip/rk3528-armsom-sige1.dtb"
BOOT_SCENARIO="spl-blobs"
WIREGUARD="no"
IMAGE_PARTITION_TABLE="gpt"
# Override family config for this board; let's avoid conditionals in family config.
function post_family_config__armsom-sige1_use_vendor_uboot() {
BOOTSOURCE='https://github.com/rockchip-linux/u-boot.git'
BOOTBRANCH='commit:32640b0ada9344f91e7a407576568782907161cd'
BOOTPATCHDIR="legacy/board_hinlink-h28k"
}

View File

@@ -1,11 +0,0 @@
# Rockchip RK3568 quad core 1-8GB SoC GBe eMMC USB3
BOARD_NAME="ArmSom Sige3"
BOARDFAMILY="rk35xx"
BOARD_MAINTAINER="amazingfate"
BOOTCONFIG="armsom-sige3-rk3568_defconfig"
KERNEL_TARGET="vendor"
FULL_DESKTOP="yes"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="rockchip/rk3568-armsom-sige3.dtb"
BOOT_SCENARIO="spl-blobs"
IMAGE_PARTITION_TABLE="gpt"

View File

@@ -1,22 +0,0 @@
# Rockchip RK3576 SoC octa core 8-64GB SoC 2*GBe eMMC USB3 NvME WIFI
BOARD_NAME="ArmSoM Sige5"
BOARDFAMILY="rk35xx"
BOOTCONFIG="armsom-sige5-rk3576_defconfig"
KERNEL_TARGET="vendor"
FULL_DESKTOP="yes"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="rockchip/rk3576-armsom-sige5.dtb"
BOOT_SCENARIO="spl-blobs"
IMAGE_PARTITION_TABLE="gpt"
BOARD_MAINTAINER=""
function post_family_tweaks__armsom-sige7_naming_audios() {
display_alert "$BOARD" "Renaming armsom-sige7 audios" "info"
mkdir -p $SDCARD/etc/udev/rules.d/
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi0-sound", ENV{SOUND_DESCRIPTION}="HDMI0 Audio"' > $SDCARD/etc/udev/rules.d/90-naming-audios.rules
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-dp0-sound", ENV{SOUND_DESCRIPTION}="DP0 Audio"' >> $SDCARD/etc/udev/rules.d/90-naming-audios.rules
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-es8316-sound", ENV{SOUND_DESCRIPTION}="ES8316 Audio"' >> $SDCARD/etc/udev/rules.d/90-naming-audios.rules
return 0
}

View File

@@ -1,9 +1,10 @@
# Rockchip RK3588 SoC octa core 8-64GB SoC 2*2.5GBe eMMC USB3 NvME WIFI
BOARD_NAME="ArmSoM Sige7"
BOARDFAMILY="rockchip-rk3588"
BOARD_MAINTAINER=""
BOARD_MAINTAINER="Z-Keven"
BOOTCONFIG="armsom-sige7-rk3588_defconfig"
KERNEL_TARGET="current,edge,vendor"
KERNEL_TARGET="legacy,vendor,edge,collabora"
KERNEL_TEST_TARGET="legacy" # in case different then kernel target
FULL_DESKTOP="yes"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="rockchip/rk3588-armsom-sige7.dtb"
@@ -11,8 +12,6 @@ BOOT_SCENARIO="spl-blobs"
BOOT_SUPPORT_SPI="yes"
BOOT_SPI_RKSPI_LOADER="yes"
IMAGE_PARTITION_TABLE="gpt"
# @TODO: consider removing those, as the defaults in rockchip64_common have been bumped up
DDR_BLOB='rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v1.11.bin'
BL31_BLOB='rk35/rk3588_bl31_v1.38.elf'

View File

@@ -3,7 +3,8 @@ BOARD_NAME="ArmSoM W3"
BOARDFAMILY="rockchip-rk3588"
BOARD_MAINTAINER=""
BOOTCONFIG="armsom-w3-rk3588_defconfig"
KERNEL_TARGET="vendor"
KERNEL_TARGET="legacy,vendor"
KERNEL_TEST_TARGET="legacy" # in case different then kernel target
FULL_DESKTOP="yes"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="rockchip/rk3588-armsom-w3.dtb"
@@ -11,8 +12,6 @@ BOOT_SCENARIO="spl-blobs"
BOOT_SUPPORT_SPI="yes"
BOOT_SPI_RKSPI_LOADER="yes"
IMAGE_PARTITION_TABLE="gpt"
# @TODO: consider removing those, as the defaults in rockchip64_common have been bumped up
DDR_BLOB='rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v1.11.bin'
BL31_BLOB='rk35/rk3588_bl31_v1.38.elf'
@@ -28,12 +27,3 @@ function post_family_tweaks__armsom-w3_naming_audios() {
return 0
}
function post_family_tweaks__armsom-w3_fix_m2_bluetooth() {
display_alert "$BOARD" "Fixing armsom-w3 m.2 usb bluetooth" "info"
mkdir -p $SDCARD/etc/udev/rules.d/
echo 'ACTION=="add", SUBSYSTEM=="usb",ATTR{bConfigurationValue}=="", ATTR{bConfigurationValue}="1"' > $SDCARD/etc/udev/rules.d/91-m2-usb-bluetooth.rules
return 0
}

View File

@@ -0,0 +1,24 @@
# Allwinner Cortex-A55 octa core 2/4GB RAM SoC USB3 USB-C 2x GbE LCD
BOARD_NAME="Avaota A1"
BOARDFAMILY="sun55iw3-syterkit"
BOARD_MAINTAINER=""
KERNEL_TARGET="legacy"
BOOT_FDT_FILE="allwinner/sun55i-t527-avaota-a1.dtb"
SRC_EXTLINUX="yes"
SRC_CMDLINE="earlycon=uart8250,mmio32,0x02500000 clk_ignore_unused initcall_debug=0 console=ttyAS0,115200 loglevel=8 cma=64M init=/sbin/init"
BOOTFS_TYPE="fat"
BOOTSIZE="256"
SERIALCON="ttyAS0"
declare -g SYTERKIT_BOARD_ID="avaota-a1" # This _only_ used for syterkit-allwinner extension
function post_family_tweaks__avaota-a1() {
display_alert "Applying boot blobs"
cp -v "$SRC/packages/blobs/sunxi/sun50iw3/bl31.bin" "$SDCARD/boot/bl31.bin"
cp -v "$SRC/packages/blobs/sunxi/sun50iw3/scp.bin" "$SDCARD/boot/scp.bin"
cp -v "$SRC/packages/blobs/sunxi/sun50iw3/splash.bin" "$SDCARD/boot/splash.bin"
display_alert "Applying wifi firmware"
pushd "$SDCARD/lib/firmware"
ln -s "aic8800/SDIO/aic8800D80" "aic8800d80" # use armbian-firmware
popd
}

View File

@@ -1,24 +0,0 @@
# Allwinner Cortex-A55 octa core 2/4GB RAM SoC USB3 USB-C 2x GbE LCD
BOARD_NAME="Avaota A1"
BOARDFAMILY="sun55iw3-syterkit"
BOARD_MAINTAINER="chainsx"
KERNEL_TARGET="legacy"
BOOT_FDT_FILE="allwinner/sun55i-t527-avaota-a1.dtb"
SRC_EXTLINUX="yes"
SRC_CMDLINE="earlycon=uart8250,mmio32,0x02500000 clk_ignore_unused initcall_debug=0 console=ttyAS0,115200 loglevel=8 cma=64M init=/sbin/init"
BOOTFS_TYPE="fat"
BOOTSIZE="256"
SERIALCON="ttyAS0"
declare -g SYTERKIT_BOARD_ID="avaota-a1" # This _only_ used for syterkit-allwinner extension
function post_family_tweaks__avaota-a1() {
display_alert "Applying boot blobs"
cp -v "$SRC/packages/blobs/sunxi/sun55iw3/bl31.bin" "$SDCARD/boot/bl31.bin"
cp -v "$SRC/packages/blobs/sunxi/sun55iw3/scp.bin" "$SDCARD/boot/scp.bin"
cp -v "$SRC/packages/blobs/sunxi/sun55iw3/splash.bin" "$SDCARD/boot/splash.bin"
display_alert "Applying wifi firmware"
pushd "$SDCARD/lib/firmware"
ln -s "aic8800/SDIO/aic8800D80" "aic8800d80" # use armbian-firmware
popd
}

View File

@@ -0,0 +1,155 @@
# Generate kernel and rootfs image for Qcom ABL Custom booting
declare -g BOARD_NAME="Ayn Odin2"
declare -g BOARD_MAINTAINER="FantasyGmm"
declare -g BOARDFAMILY="qcom-abl"
declare -g KERNEL_TARGET="sm8550"
declare -g KERNELPATCHDIR="sm8550-6.7"
declare -g EXTRAWIFI="no"
declare -g BOOTCONFIG="none"
declare -g BOOTFS_TYPE="fat"
declare -g BOOTSIZE="256"
declare -g BOOTIMG_CMDLINE_EXTRA="clk_ignore_unused pd_ignore_unused panic=30 audit=0 allow_mismatched_32bit_el0 rw mem_sleep_default=s2idle"
declare -g IMAGE_PARTITION_TABLE="gpt"
# Use the full firmware, complete linux-firmware plus Armbian's
declare -g BOARD_FIRMWARE_INSTALL="-full"
declare -g DESKTOP_AUTOLOGIN="yes"
function post_family_config_branch_sm8550__edk2_kernel() {
declare -g KERNELSOURCE='https://github.com/edk2-porting/linux-next'
declare -g KERNEL_MAJOR_MINOR="6.7" # Major and minor versions of this kernel.
declare -g KERNELBRANCH="branch:integration/ayn-odin2"
declare -g LINUXCONFIG="linux-${ARCH}-${BRANCH}" # for this board: linux-arm64-sm8550
display_alert "Setting up kernel ${KERNEL_MAJOR_MINOR} for" "${BOARD}" "info"
}
function ayn-odin2_is_userspace_supported() {
[[ "${RELEASE}" == "trixie" || "${RELEASE}" == "sid" || "${RELEASE}" == "mantic" || "${RELEASE}" == "noble" ]] && return 0
return 1
}
function post_family_tweaks__enable_services() {
if ! ayn-odin2_is_userspace_supported; then
if [[ "${RELEASE}" != "" ]]; then
display_alert "Missing userspace for ${BOARD}" "${RELEASE} does not have the userspace necessary to support the ${BOARD}" "warn"
fi
return 0
fi
if [[ "${RELEASE}" == "noble" ]];then
display_alert "Adding Mesa PPA For Ubuntu " "${BOARD}" "info"
do_with_retries 3 chroot_sdcard add-apt-repository ppa:oibaf/graphics-drivers --yes --no-update
fi
# We need unudhcpd from armbian repo, so enable it
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.list.disabled "${SDCARD}"/etc/apt/sources.list.d/armbian.list
# Add zink env
echo '__GLX_VENDOR_LIBRARY_NAME=mesa' | tee -a "${SDCARD}"/etc/environment
echo 'MESA_LOADER_DRIVER_OVERRIDE=zink' | tee -a "${SDCARD}"/etc/environment
echo 'GALLIUM_DRIVER=zink' | tee -a "${SDCARD}"/etc/environment
# Add Gamepad udev rule
echo 'SUBSYSTEM=="input", ATTRS{name}=="Ayn Odin2 Gamepad", MODE="0666", ENV{ID_INPUT_MOUSE}="0", ENV{ID_INPUT_JOYSTICK}="1"'> "${SDCARD}"/etc/udev/rules.d/99-ignore-gamepad.rules
# No driver support for suspend
chroot_sdcard systemctl mask suspend.target
# Add Bt Mac Fixed service
install -Dm655 $SRC/packages/bsp/ayn-odin2/bt-fixed-mac.sh "${SDCARD}"/usr/local/bin/
install -Dm644 $SRC/packages/bsp/ayn-odin2/bt-fixed-mac.service "${SDCARD}"/usr/lib/systemd/system/
chroot_sdcard systemctl enable bt-fixed-mac
do_with_retries 3 chroot_sdcard_apt_get_update
display_alert "$BOARD" "Installing board tweaks" "info"
do_with_retries 3 chroot_sdcard_apt_get_install alsa-ucm-conf unudhcpd mkbootimg git
# Disable armbian repo back
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.list "${SDCARD}"/etc/apt/sources.list.d/armbian.list.disabled
do_with_retries 3 chroot_sdcard_apt_get_update
do_with_retries 3 chroot_sdcard_apt_get_install mesa-vulkan-drivers qbootctl qrtr-tools protection-domain-mapper tqftpserv
# Kernel postinst script to update abl boot partition
install -Dm655 $SRC/packages/bsp/ayn-odin2/zz-update-abl-kernel "${SDCARD}"/etc/kernel/postinst.d/
cp $SRC/packages/bsp/ayn-odin2/LinuxLoader.cfg "${SDCARD}"/boot/
return 0
}
function post_family_tweaks__preset_configs() {
display_alert "$BOARD" "preset configs for rootfs" "info"
# Set PRESET_NET_CHANGE_DEFAULTS to 1 to apply any network related settings below
echo "PRESET_NET_CHANGE_DEFAULTS=1" > "${SDCARD}"/root/.not_logged_in_yet
# Enable WiFi or Ethernet.
# NB: If both are enabled, WiFi will take priority and Ethernet will be disabled.
echo "PRESET_NET_ETHERNET_ENABLED=0" >> "${SDCARD}"/root/.not_logged_in_yet
echo "PRESET_NET_WIFI_ENABLED=1" >> "${SDCARD}"/root/.not_logged_in_yet
# Preset user default shell, you can choose bash or zsh
echo "PRESET_USER_SHELL=zsh" >> "${SDCARD}"/root/.not_logged_in_yet
# Set PRESET_CONNECT_WIRELESS=y if you want to connect wifi manually at first login
echo "PRESET_CONNECT_WIRELESS=n" >> "${SDCARD}"/root/.not_logged_in_yet
# Set SET_LANG_BASED_ON_LOCATION=n if you want to choose "Set user language based on your location?" with "n" at first login
echo "SET_LANG_BASED_ON_LOCATION=y" >> "${SDCARD}"/root/.not_logged_in_yet
# Preset default locale
echo "PRESET_LOCALE=en_US.UTF-8" >> "${SDCARD}"/root/.not_logged_in_yet
# Preset timezone
echo "PRESET_TIMEZONE=Etc/UTC" >> "${SDCARD}"/root/.not_logged_in_yet
# Preset root password
echo "PRESET_ROOT_PASSWORD=admin" >> "${SDCARD}"/root/.not_logged_in_yet
# Preset username
echo "PRESET_USER_NAME=odin" >> "${SDCARD}"/root/.not_logged_in_yet
# Preset user password
echo "PRESET_USER_PASSWORD=admin" >> "${SDCARD}"/root/.not_logged_in_yet
# Preset user default realname
echo "PRESET_DEFAULT_REALNAME=Odin" >> "${SDCARD}"/root/.not_logged_in_yet
}
function post_family_tweaks_bsp__firmware_in_initrd() {
random_mac=$(openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//')
declare -g BOOTIMG_CMDLINE_EXTRA="${BOOTIMG_CMDLINE_EXTRA} bt_mac=${random_mac}"
display_alert "Generate a random Bluetooth MAC address, Mac:${random_mac}" "info"
display_alert "Adding to bsp-cli" "${BOARD}: firmware in initrd" "info"
declare file_added_to_bsp_destination # Will be filled in by add_file_from_stdin_to_bsp_destination
# Using odin2's firmware for now
add_file_from_stdin_to_bsp_destination "/etc/initramfs-tools/hooks/ayn-odin2-firmware" <<- 'FIRMWARE_HOOK'
#!/bin/bash
[[ "$1" == "prereqs" ]] && exit 0
. /usr/share/initramfs-tools/hook-functions
for f in /lib/firmware/qcom/sm8550/ayn/odin2/* ; do
add_firmware "${f#/lib/firmware/}"
done
add_firmware "qcom/a740_sqe.fw" # Extra one for dpu
add_firmware "qcom/gmu_gen70200.bin" # Extra one for gpu
# Extra one for wifi
for f in /lib/firmware/ath12k/WCN7850/hw2.0/* ; do
add_firmware "${f#/lib/firmware/}"
done
# Extra one for bt
for f in /lib/firmware/qca/* ; do
add_firmware "${f#/lib/firmware/}"
done
FIRMWARE_HOOK
run_host_command_logged chmod -v +x "${file_added_to_bsp_destination}"
}
function pre_umount_final_image__update_ABL_settings() {
if [ -z "$BOOTFS_TYPE" ]; then
return 0
fi
display_alert "Update ABL settings for " "${BOARD}" "info"
uuid_line=$(head -n 1 "${SDCARD}"/etc/fstab)
rootfs_image_uuid=$(echo "${uuid_line}" | awk '{print $1}' | awk -F '=' '{print $2}')
initrd_name=$(find "${SDCARD}/boot/" -type f -name "config-*" | sed 's/.*config-//')
sed -i "s/UUID_PLACEHOLDER/${rootfs_image_uuid}/g" "${MOUNT}"/boot/LinuxLoader.cfg
sed -i "s/INITRD_PLACEHOLDER/${initrd_name}/g" "${MOUNT}"/boot/LinuxLoader.cfg
}

View File

@@ -1,130 +0,0 @@
# Ayn Odin2 Configuration
declare -g BOARD_NAME="Ayn Odin2"
declare -g BOARD_MAINTAINER="FantasyGmm"
declare -g BOARDFAMILY="sm8550"
declare -g KERNEL_TARGET="current,edge"
declare -g KERNEL_TEST_TARGET="edge"
declare -g EXTRAWIFI="no"
declare -g BOOTCONFIG="none"
declare -g BOOTFS_TYPE="fat"
declare -g BOOTSIZE="256"
declare -g IMAGE_PARTITION_TABLE="gpt"
declare -g BOOTIMG_CMDLINE_EXTRA="clk_ignore_unused pd_ignore_unused rw quiet rootwait"
# Use the full firmware, complete linux-firmware plus Armbian's
declare -g BOARD_FIRMWARE_INSTALL="-full"
declare -g DESKTOP_AUTOLOGIN="yes"
function ayn-odin2_is_userspace_supported() {
[[ "${RELEASE}" == "jammy" ]] && return 0
[[ "${RELEASE}" == "trixie" ]] && return 0
[[ "${RELEASE}" == "noble" ]] && return 0
return 1
}
function pre_customize_image__ayn-odin2_alsa_ucm_conf() {
if ! ayn-odin2_is_userspace_supported; then
return 0
fi
display_alert "Add alsa-ucm-conf for ${BOARD}" "${RELEASE}" "warn"
(
cd "${SDCARD}/usr/share/alsa" || exit 6
curl -L -o temp.zip "https://github.com/AYNTechnologies/alsa-ucm-conf/archive/refs/heads/ayn/v1.2.13.zip"
unzip -o temp.zip
unzip_dir=$(unzip -Z1 temp.zip | head -n1 | cut -d/ -f1)
cp -rf "${unzip_dir}/"* .
rm -rf "$unzip_dir" temp.zip
)
}
function post_family_tweaks_bsp__ayn-odin2_firmware() {
display_alert "Install firmwares for ${BOARD}" "${RELEASE}" "warn"
# USB Gadget Network service
mkdir -p $destination/usr/local/bin/
mkdir -p $destination/usr/lib/systemd/system/
mkdir -p $destination/etc/initramfs-tools/scripts/init-bottom/
install -Dm655 $SRC/packages/bsp/usb-gadget-network/setup-usbgadget-network.sh $destination/usr/local/bin/
install -Dm655 $SRC/packages/bsp/usb-gadget-network/remove-usbgadget-network.sh $destination/usr/local/bin/
install -Dm644 $SRC/packages/bsp/usb-gadget-network/usbgadget-rndis.service $destination/usr/lib/systemd/system/
install -Dm655 $SRC/packages/bsp/usb-gadget-network/usb-gadget-initramfs-hook $destination/etc/initramfs-tools/hooks/usb-gadget
install -Dm655 $SRC/packages/bsp/usb-gadget-network/usb-gadget-initramfs-premount $destination/etc/initramfs-tools/scripts/init-premount/usb-gadget
install -Dm655 $SRC/packages/bsp/usb-gadget-network/dropbear $destination/etc/initramfs-tools/scripts/init-premount/
install -Dm655 $SRC/packages/bsp/usb-gadget-network/kill-dropbear $destination/etc/initramfs-tools/scripts/init-bottom/
return 0
}
function post_family_tweaks__ayn-odin2_enable_services() {
if ! ayn-odin2_is_userspace_supported; then
if [[ "${RELEASE}" != "" ]]; then
display_alert "Missing userspace for ${BOARD}" "${RELEASE} does not have the userspace necessary to support the ${BOARD}" "warn"
fi
return 0
fi
if [[ "${RELEASE}" == "jammy" ]] || [[ "${RELEASE}" == "noble" ]]; then
display_alert "Adding Mesa PPA For Ubuntu ${BOARD}" "warn"
do_with_retries 3 chroot_sdcard add-apt-repository ppa:liujianfeng1994/qcom-mainline --yes --no-update
fi
# We need unudhcpd from armbian repo, so enable it
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.sources.disabled "${SDCARD}"/etc/apt/sources.list.d/armbian.sources
do_with_retries 3 chroot_sdcard_apt_get_update
display_alert "Installing ${BOARD} tweaks" "warn"
do_with_retries 3 chroot_sdcard_apt_get_install alsa-ucm-conf qbootctl qrtr-tools unudhcpd mkbootimg
# disable armbian repo back
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.sources "${SDCARD}"/etc/apt/sources.list.d/armbian.sources.disabled
do_with_retries 3 chroot_sdcard_apt_get_update
chroot_sdcard systemctl enable qbootctl.service
# Add Gamepad udev rule
echo 'SUBSYSTEM=="input", ATTRS{name}=="AYN Odin2 Gamepad", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"' > "${SDCARD}"/etc/udev/rules.d/99-ignore-gamepad.rules
# Not Any driver support suspend mode
chroot_sdcard systemctl mask suspend.target
chroot_sdcard systemctl enable usbgadget-rndis.service
cp $SRC/packages/bsp/ayn-odin2/LinuxLoader.cfg "${SDCARD}"/boot/
return 0
}
function post_family_tweaks_bsp__ayn-odin2_bsp_firmware_in_initrd() {
display_alert "Adding to bsp-cli" "${BOARD}: firmware in initrd" "warn"
declare file_added_to_bsp_destination # Will be filled in by add_file_from_stdin_to_bsp_destination
# Using odin2's firmware for now
add_file_from_stdin_to_bsp_destination "/etc/initramfs-tools/hooks/ayn-odin2-firmware" <<- 'FIRMWARE_HOOK'
#!/bin/bash
[[ "$1" == "prereqs" ]] && exit 0
. /usr/share/initramfs-tools/hook-functions
for f in /lib/firmware/qcom/sm8550/ayn/odin2portal/* ; do
add_firmware "${f#/lib/firmware/}"
done
add_firmware "qcom/a740_sqe.fw" # Extra one for dpu
add_firmware "qcom/gmu_gen70200.bin" # Extra one for gpu
add_firmware "qcom/vpu/vpu30_p4.mbn" # Extra one for vpu
# Extra one for wifi
for f in /lib/firmware/ath12k/WCN7850/hw2.0/* ; do
add_firmware "${f#/lib/firmware/}"
done
# Extra one for bt
for f in /lib/firmware/qca/* ; do
add_firmware "${f#/lib/firmware/}"
done
FIRMWARE_HOOK
run_host_command_logged chmod -v +x "${file_added_to_bsp_destination}"
}
function pre_umount_final_image__update_ABL_settings() {
if [ -z "$BOOTFS_TYPE" ]; then
return 0
fi
display_alert "Update ABL settings for " "${BOARD}" "info"
uuid_line=$(head -n 1 "${SDCARD}"/etc/fstab)
rootfs_image_uuid=$(echo "${uuid_line}" | awk '{print $1}' | awk -F '=' '{print $2}')
initrd_name=$(find "${SDCARD}/boot/" -type f -name "config-*" | sed 's/.*config-//')
sed -i "s/UUID_PLACEHOLDER/${rootfs_image_uuid}/g" "${MOUNT}"/boot/LinuxLoader.cfg
sed -i "s/INITRD_PLACEHOLDER/${initrd_name}/g" "${MOUNT}"/boot/LinuxLoader.cfg
}

View File

@@ -1,15 +0,0 @@
# Allwinner A20 dual core 1Gb RAM SoC 1xSATA GBE
BOARD_NAME="Banana Pi"
BOARDFAMILY="sun7i"
BOARD_MAINTAINER="DylanHP janprunk"
BOOTCONFIG="Bananapi_defconfig"
KERNEL_TARGET="current,edge,legacy"
KERNEL_TEST_TARGET="current"
function post_config_uboot_target__extra_configs_for_bananapi() {
display_alert "$BOARD" "set dram clock" "info"
run_host_command_logged scripts/config --set-val CONFIG_DRAM_CLK "384"
display_alert "$BOARD" "disable de2 to improve edid detection" "info"
run_host_command_logged scripts/config --disable CONFIG_VIDEO_DE2
}

View File

@@ -0,0 +1,14 @@
# Allwinner A20 dual core 1Gb RAM SoC 1xSATA GBE
BOARD_NAME="Banana Pi"
BOARDFAMILY="sun7i"
BOARD_MAINTAINER="DylanHP"
BOOTCONFIG="Bananapi_defconfig"
KERNEL_TARGET="legacy,current,edge"
function post_config_uboot_target__extra_configs_for_bananapi() {
display_alert "$BOARD" "set dram clock" "info"
run_host_command_logged scripts/config --set-val CONFIG_DRAM_CLK "384"
display_alert "$BOARD" "disable de2 to improve edid detection" "info"
run_host_command_logged scripts/config --disable CONFIG_VIDEO_DE2
}

View File

@@ -4,19 +4,14 @@ BOARDFAMILY="meson-g12b"
BOARD_MAINTAINER="pyavitz"
BOOTCONFIG="bananapi-cm4-cm4io_defconfig"
KERNEL_TARGET="current,edge"
KERNEL_TEST_TARGET="current"
KERNEL_TEST_TARGET="current,edge"
MODULES_BLACKLIST="simpledrm" # SimpleDRM conflicts with Panfrost
FULL_DESKTOP="yes"
SERIALCON="ttyAML0"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="amlogic/meson-g12b-bananapi-cm4-cm4io.dtb"
BOOTBRANCH_BOARD="tag:v2025.01"
BOOTPATCHDIR="v2025.01"
# CPUFREQ (/etc/default/cpufrequtils)
CPUMIN=1000000
CPUMAX=2400000
GOVERNOR=performance
BOOTBRANCH_BOARD="tag:v2024.01"
BOOTPATCHDIR="v2024.01"
function post_family_tweaks_bsp__bananapi_rtl_bt() {
if [[ -d "$SRC/packages/bsp/bananapi/rtl_bt" ]]; then

View File

@@ -1,29 +0,0 @@
# SpacemiT K1 octa core RISC-V SoC 2GB/4GB RAM 8GB/16GB eMMC 4x USB3 2x GbE
BOARD_NAME="BananaPi BPI-F3"
BOARDFAMILY="spacemit"
BOARD_MAINTAINER="pyavitz"
KERNEL_TARGET="current,edge"
BOOT_FDT_FILE="spacemit/k1-bananapi-f3.dtb"
BOOTDELAY=1
SRC_EXTLINUX="yes"
SRC_CMDLINE="earlycon=sbi console=tty1 console=ttyS0,115200 loglevel=1"
PACKAGE_LIST_BOARD="rfkill bluetooth bluez bluez-tools"
function post_config_uboot_target__extra_configs_for_bananapi_f3() {
display_alert "u-boot for ${BOARD}" "u-boot: enabling extra configs" "info"
run_host_command_logged scripts/config --enable CONFIG_SD_BOOT
run_host_command_logged scripts/config --enable CONFIG_EXT4_WRITE
run_host_command_logged scripts/config --enable CONFIG_FS_BTRFS
run_host_command_logged scripts/config --enable CONFIG_CMD_BTRFS
}
function post_family_tweaks_bsp__bananapi_f3_extras() {
if [[ -d "$SRC/packages/blobs/riscv64/spacemit" ]]; then
run_host_command_logged mkdir -pv "${destination}"/lib/firmware
display_alert "$BOARD" "Installing boot firmware" "info"
run_host_command_logged cp -fv $SRC/packages/blobs/riscv64/spacemit/esos.elf "${destination}"/lib/firmware
fi
display_alert "$BOARD" "Force load wireless" "info"
run_host_command_logged mkdir -pv "${destination}"/etc/modules-load.d
run_host_command_logged echo "8852bs" > "${destination}"/etc/modules-load.d/${BOARD}.conf
}

View File

@@ -3,5 +3,4 @@ BOARD_NAME="Banana Pi M1+"
BOARDFAMILY="sun7i"
BOARD_MAINTAINER=""
BOOTCONFIG="bananapi_m1_plus_defconfig"
KERNEL_TARGET="current,edge,legacy"
KERNEL_TEST_TARGET="current"
KERNEL_TARGET="legacy,current,edge"

View File

@@ -4,5 +4,4 @@ BOARDFAMILY="sun6i"
BOARD_MAINTAINER=""
BOOTCONFIG="Sinovoip_BPI_M2_defconfig"
OVERLAY_PREFIX="sun6i-a31s"
KERNEL_TARGET="current,legacy"
KERNEL_TEST_TARGET="current"
KERNEL_TARGET="legacy,current"

View File

@@ -1,11 +0,0 @@
# Allwinner H3 quad core 1Gb RAM SoC Wifi GBE
BOARD_NAME="Banana Pi M2+"
BOARDFAMILY="sun8i"
BOARD_MAINTAINER="leggewie"
BOOTCONFIG="bananapi_m2_plus_h3_defconfig"
DEFAULT_OVERLAYS="analog-codec"
MODULES_CURRENT="g_serial"
MODULES_LEGACY="g_serial"
SERIALCON="ttyS0,ttyGS0"
KERNEL_TARGET="current,edge,legacy"
KERNEL_TEST_TARGET="current"

View File

@@ -0,0 +1,10 @@
# Allwinner H3 quad core 1Gb RAM SoC Wifi GBE
BOARD_NAME="Banana Pi M2+"
BOARDFAMILY="sun8i"
BOARD_MAINTAINER=""
BOOTCONFIG="bananapi_m2_plus_h3_defconfig"
DEFAULT_OVERLAYS="analog-codec"
MODULES_CURRENT="g_serial"
MODULES_LEGACY="g_serial"
SERIALCON="ttyS0,ttyGS0"
KERNEL_TARGET="legacy,current,edge"

View File

@@ -1,20 +1,19 @@
# Amlogic S905X3 quad core 2-4GB RAM SoC eMMC GBE USB3 SPI Wifi
BOARD_NAME="Banana Pi M2Pro"
BOARDFAMILY="meson-sm1"
BOARD_MAINTAINER="igorpecovnik"
BOARD_MAINTAINER="bretmlw"
BOOTCONFIG="bananapi-m2-pro_defconfig"
BOOT_FDT_FILE="amlogic/meson-sm1-bananapi-m2-pro.dtb"
KERNEL_TARGET="current,edge"
KERNEL_TEST_TARGET="current"
MODULES_BLACKLIST="simpledrm" # SimpleDRM conflicts with Panfrost
FULL_DESKTOP="yes"
SERIALCON="ttyAML0"
BOOT_LOGO="desktop"
BOOTBRANCH_BOARD="tag:v2024.07"
BOOTPATCHDIR="v2024.07"
BOOTBRANCH_BOARD="tag:v2023.07.02"
BOOTPATCHDIR="v2023.07.02"
function fetch_sources_tools__libreelec_amlogic_fip_pre_m2-pro_blob_update() {
fetch_from_repo "https://github.com/Dangku/amlogic-boot-fip" "amlogic-boot-fip" "branch:master"
fetch_from_repo "https://github.com/Dangku/amlogic-boot-fip" "amlogic-boot-fip" "branch:master"
}
function post_uboot_custom_postprocess__bpi-m2-pro() {

View File

@@ -1,22 +1,16 @@
# Amlogic A311D 4GB RAM eMMC 2xGBE USB3
BOARD_NAME="Banana Pi M2S"
BOARDFAMILY="meson-g12b"
BOARD_MAINTAINER="jeanrhum pyavitz"
BOARD_MAINTAINER="pyavitz jeanrhum"
BOOTCONFIG="bananapi-m2s_defconfig"
KERNEL_TARGET="current,edge"
KERNEL_TEST_TARGET="current"
MODULES_BLACKLIST="simpledrm" # SimpleDRM conflicts with Panfrost
FULL_DESKTOP="yes"
SERIALCON="ttyAML0"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="amlogic/meson-g12b-a311d-bananapi-m2s.dtb"
BOOTBRANCH_BOARD="tag:v2025.01"
BOOTPATCHDIR="v2025.01"
# CPUFREQ (/etc/default/cpufrequtils)
CPUMIN=1000000
CPUMAX=2400000
GOVERNOR=performance
BOOTBRANCH_BOARD="tag:v2024.01"
BOOTPATCHDIR="v2024.01"
function post_family_tweaks_bsp__bananapi_rtl_bt() {
if [[ -d "$SRC/packages/bsp/bananapi/rtl_bt" ]]; then

View File

@@ -4,5 +4,5 @@ BOARDFAMILY="sun8i"
BOARD_MAINTAINER=""
BOOTCONFIG="Bananapi_M2_Ultra_defconfig"
OVERLAY_PREFIX="sun8i-r40"
KERNEL_TARGET="current,edge,legacy"
KERNEL_TARGET="legacy,current,edge"
KERNEL_TEST_TARGET="current"

View File

@@ -1,10 +1,9 @@
# Allwinner H2+ quad core 512MB SoC Wi-Fi/BT
BOARD_NAME="Banana Pi M2 Zero"
BOARDFAMILY="sun8i"
BOARD_MAINTAINER="mhawkins-consultant"
BOARD_MAINTAINER=""
BOOTCONFIG="bananapi_m2_zero_defconfig"
MODULES_LEGACY="g_serial"
MODULES_CURRENT="g_serial"
SERIALCON="ttyS0,ttyGS0"
KERNEL_TARGET="current,edge,legacy"
KERNEL_TEST_TARGET="current"
KERNEL_TARGET="legacy,current,edge"

View File

@@ -4,8 +4,4 @@ BOARDFAMILY="sun8i"
BOARD_MAINTAINER="AaronNGray"
BOOTCONFIG="Sinovoip_BPI_M3_defconfig"
OVERLAY_PREFIX="sun8i-a83t"
KERNEL_TARGET="current,edge,legacy"
KERNEL_TEST_TARGET="current"
BOOTBRANCH="tag:v2024.01"
BOOTPATCHDIR="u-boot-sunxi/board_${BOARD}"
KERNEL_TARGET="legacy,current,edge"

View File

@@ -1,26 +0,0 @@
# Allwinner H618 quad core 2/4GB RAM 8GB eMMC SoC WiFi\Bt HDMI SPI USB-C
BOARD_NAME="BananaPi M4 Berry"
BOARDFAMILY="sun50iw9-bpi"
BOARD_MAINTAINER="The-going"
BOOTCONFIG="bananapi_m4_berry_defconfig"
BOOTPATCHDIR="v2025-sunxi"
BOOTBRANCH_BOARD="tag:v2025.04"
OVERLAY_PREFIX="sun50i-h616"
BOOT_FDT_FILE="sun50i-h618-bananapi-m4-berry.dtb"
BOOT_LOGO="desktop"
KERNEL_TARGET="current,edge"
KERNEL_TEST_TARGET="current"
PACKAGE_LIST_BOARD="rfkill bluetooth bluez bluez-tools hostapd"
function post_family_tweaks_bsp__bananapi_module_conf() {
mkdir -p "${destination}"/etc/modprobe.d/
display_alert "$BOARD" "Configuring rtl8821cu wifi module" "info"
cp -f "${SRC}"/packages/bsp/wifi-rtl8821cu/etc/modprobe.d/8821cu.conf \
"${destination}"/etc/modprobe.d/8821cu.conf
}

View File

@@ -1,26 +1,20 @@
# Allwinner H618 quad core 1/2/4GB RAM SoC WiFi SPI USB-C
BOARD_NAME="BananaPi BPI-M4-Zero"
BOARD_NAME="Banana Pi M4Zero"
BOARDFAMILY="sun50iw9-bpi"
BOARD_MAINTAINER="pyavitz"
BOOTCONFIG="bananapi_m4zero_defconfig"
OVERLAY_PREFIX="sun50i-h616"
BOOT_FDT_FILE="sun50i-h618-bananapi-m4-zero.dtb"
DEFAULT_OVERLAYS="bananapi-m4-sdio-wifi-bt"
BOOT_LOGO="desktop"
KERNEL_TARGET="current,edge"
KERNEL_TEST_TARGET="current"
MODULES_BLACKLIST="rtw88_8821c rtw88_8821cu"
FORCE_BOOTSCRIPT_UPDATE="yes"
BOOTBRANCH_BOARD="tag:v2025.07"
BOOTPATCHDIR="v2025.07"
PACKAGE_LIST_BOARD="rfkill bluetooth bluez bluez-tools"
BOOTBRANCH_BOARD="tag:v2024.01"
BOOTPATCHDIR="v2024.01"
function post_family_tweaks_bsp__bananapi_firmware() {
if [[ -d "$SRC/packages/bsp/bananapi/brcm" ]] && [[ -d "$SRC/packages/bsp/bananapi/rtl_bt" ]]; then
mkdir -p "${destination}"/lib/firmware/updates/brcm
function post_family_tweaks_bsp__bananapi_rtl_bt() {
if [[ -d "$SRC/packages/bsp/bananapi/rtl_bt" ]]; then
mkdir -p "${destination}"/lib/firmware/updates/rtl_bt
display_alert "$BOARD" "Installing upstream firmware" "info"
cp -fr $SRC/packages/bsp/bananapi/brcm/* "${destination}"/lib/firmware/updates/brcm/
cp -fr $SRC/packages/bsp/bananapi/rtl_bt/* "${destination}"/lib/firmware/updates/rtl_bt/
fi
}

View File

@@ -1,17 +1,16 @@
# Amlogic S905X3 quad core 2-4GB RAM SoC eMMC GBE USB3 SPI
BOARD_NAME="Banana Pi M5"
BOARDFAMILY="meson-sm1"
BOARD_MAINTAINER="igorpecovnik"
BOARD_MAINTAINER="bretmlw"
BOOTCONFIG="bananapi-m5_defconfig"
BOOT_FDT_FILE="amlogic/meson-sm1-bananapi-m5.dtb"
KERNEL_TARGET="current,edge"
KERNEL_TEST_TARGET="current"
MODULES_BLACKLIST="simpledrm" # SimpleDRM conflicts with Panfrost
FULL_DESKTOP="yes"
SERIALCON="ttyAML0"
BOOT_LOGO="desktop"
BOOTBRANCH_BOARD="tag:v2024.07"
BOOTPATCHDIR="v2024.07"
BOOTBRANCH_BOARD="tag:v2023.07.02"
BOOTPATCHDIR="v2023.07.02"
function fetch_sources_tools__libreelec_amlogic_fip_pre_m5_blob_update() {
fetch_from_repo "https://github.com/Dangku/amlogic-boot-fip" "amlogic-boot-fip" "branch:master"

View File

@@ -4,6 +4,5 @@ BOARDFAMILY="sun50iw1"
BOARD_MAINTAINER="devdotnetorg"
BOOTCONFIG_DEFAULT="sun50iw1p1_config"
BOOTCONFIG="bananapi_m64_defconfig"
KERNEL_TARGET="current,edge,legacy"
KERNEL_TEST_TARGET="current"
KERNEL_TARGET="legacy,current,edge"
CRUSTCONFIG="a64_defconfig"

View File

@@ -1,9 +1,8 @@
# Rockchip RK3588 octa core 8-32GB RAM SoC 2*2.5GBe eMMC USB3 NvME WIFI
source "${SRC}/config/boards/armsom-sige7.csc"
BOARD_NAME="Banana Pi M7"
BOARD_MAINTAINER="amazingfate"
BOOT_FDT_FILE="rockchip/rk3588-bananapi-m7.dtb"
# Those are included in armsom-sige7.csc, but this file is parsed directly by the JSON matrix generator and thus those need to be in here
KERNEL_TARGET="current,edge,vendor"
KERNEL_TEST_TARGET="vendor,current"
BOARD_MAINTAINER="Z-Keven"
KERNEL_TARGET="legacy,vendor,edge,collabora"
BOARDFAMILY="rockchip-rk3588"

View File

@@ -3,8 +3,8 @@ BOARD_NAME="Banana Pi Pro"
BOARDFAMILY="sun7i"
BOARD_MAINTAINER=""
BOOTCONFIG="Bananapro_defconfig"
KERNEL_TARGET="current,edge,legacy"
KERNEL_TEST_TARGET="current"
KERNEL_TARGET="legacy,current,edge"
KERNEL_TEST_TARGET="current,edge"
function post_config_uboot_target__extra_configs_for_bananapipro() {
display_alert "$BOARD" "set dram clock" "info"

View File

@@ -2,8 +2,6 @@
BOARD_NAME="Banana Pi R2"
BOARDFAMILY="mt7623"
BOARD_MAINTAINER=""
KERNEL_TARGET="current"
KERNEL_TEST_TARGET="current"
BOOTCONFIG="mt7623n_bpir2_defconfig"
BOOT_FDT_FILE="mediatek/mt7623n-bananapi-bpi-r2"
HAS_VIDEO_OUTPUT="yes"
HAS_VIDEO_OUTPUT="no"
KERNEL_TARGET="legacy"

View File

@@ -4,7 +4,6 @@ BOARDFAMILY="rockchip64"
BOARD_MAINTAINER=""
BOOTCONFIG="bpi-r2-pro-rk3568_defconfig"
KERNEL_TARGET="current,edge"
KERNEL_TEST_TARGET="current"
FULL_DESKTOP="yes"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="rockchip/rk3568-bpi-r2-pro.dtb"

View File

@@ -1,18 +0,0 @@
# Mediatek MT7988a quad core Cortex-A73 4/8GB RAM 8GB EMMC mPci USB3.0 4xGBE
BOARD_NAME="Banana Pi R4"
BOARDFAMILY="filogic"
BOARD_MAINTAINER=""
KERNEL_TARGET="current"
KERNEL_TEST_TARGET="current"
BOOTCONFIG="mt7988a_bananapi_bpi-r4-sdmmc_defconfig"
BOOT_FDT_FILE="mediatek/mt7988a-bananapi-bpi-r4-sd.dtb"
SRC_EXTLINUX="yes"
SRC_CMDLINE="console=ttyS0,115200n1 earlyprintk loglevel=8 initcall_debug=0 swiotlb=512 cgroup_enable cgroup_memory=1 init=/sbin/init"
function post_family_tweaks__bpi-r4() {
display_alert "Applying eth blobs"
mkdir -p "$SDCARD/lib/firmware/mediatek/mt7988"
cp -v "$SRC/packages/blobs/filogic/firmware/mediatek/mt7988/mt7988_wo_0.bin" "$SDCARD/lib/firmware/mediatek/mt7988/mt7988_wo_0.bin"
cp -v "$SRC/packages/blobs/filogic/firmware/mediatek/mt7988/mt7988_wo_1.bin" "$SDCARD/lib/firmware/mediatek/mt7988/mt7988_wo_1.bin"
}

View File

@@ -1,20 +0,0 @@
# BeagleBone® AI-64 dual core 4GB GBE USB3 OSPI DisplayPort HDMI
BOARD_NAME="BeagleBone AI-64"
BOARDFAMILY="k3"
BOARD_MAINTAINER="Grippy98"
BOOTCONFIG="j721e_beagleboneai64_a72_defconfig"
BOOTFS_TYPE="fat"
BOOT_FDT_FILE="ti/k3-j721e-beagleboneai64.dts"
TIBOOT3_BOOTCONFIG="j721e_beagleboneai64_r5_defconfig"
TIBOOT3_FILE="tiboot3-j721e-gp-evm.bin"
SYSFW_FILE="sysfw-j721e-gp-evm.itb"
TISPL_FILE="tispl.bin_unsigned"
UBOOT_FILE="u-boot.img_unsigned"
DEFAULT_CONSOLE="serial"
KERNEL_TARGET="current,edge"
KERNEL_TEST_TARGET="current"
SERIALCON="ttyS2"
ATF_BOARD="generic"
OPTEE_ARGS=""
OPTEE_PLATFORM="k3-j721e"

View File

@@ -1,19 +0,0 @@
# TI AM62 quad core 2GB DDR4 16GB eMMC 1xGBE 1xSPE HDMI
BOARD_NAME="BeaglePlay"
BOARDFAMILY="k3"
BOARD_MAINTAINER="Grippy98"
BOOTCONFIG="am62x_beagleplay_a53_defconfig"
BOOTFS_TYPE="fat"
BOOT_FDT_FILE="ti/k3-am625-beagleplay.dts"
TIBOOT3_BOOTCONFIG="am62x_beagleplay_r5_defconfig"
TIBOOT3_FILE="tiboot3-am62x-gp-evm.bin"
TISPL_FILE="tispl.bin_unsigned"
UBOOT_FILE="u-boot.img_unsigned"
DEFAULT_CONSOLE="serial"
KERNEL_TARGET="current,edge"
KERNEL_TEST_TARGET="current"
SERIALCON="ttyS2"
ATF_BOARD="lite"
OPTEE_ARGS="CFG_TEE_CORE_LOG_LEVEL=1"
OPTEE_PLATFORM="k3-am62x"

48
config/boards/beaglev.csc Normal file
View File

@@ -0,0 +1,48 @@
# RISC-V StarFive BeagleV
BOARD_NAME="BeagleV"
BOARDFAMILY="starfive"
BOARD_MAINTAINER=""
KERNEL_TARGET="edge"
BOOT_FDT_FILE="starfive/jh7100-beaglev-starlight-a1.dtb"
SRC_EXTLINUX="yes"
SRC_CMDLINE="console=ttyS0,115200n8 console=tty0 earlycon=sbi rootflags=data=writeback stmmaceth=chain_mode:1 rw"
BOOTCONFIG=none
function post_family_tweaks__beaglev_uenv() {
# rpardini: uEnv.txt is needed to re-enable distroboot-like behaviour on the board's SPI u-boot
display_alert "$BOARD" "creating uEnv.txt" "info"
cat <<- UENV_SCRIPT_HEADER > "${SDCARD}/boot/uEnv.txt"
fdt_high=0xffffffffffffffff
initrd_high=0xffffffffffffffff
scriptaddr=0x88100000
script_offset_f=0x1fff000
script_size_f=0x1000
kernel_addr_r=0x84000000
kernel_comp_addr_r=0x90000000
kernel_comp_size=0x10000000
fdt_addr_r=0x88000000
ramdisk_addr_r=0x88300000
distro_bootpart=1
uenvcmd=run mmc_boot
UENV_SCRIPT_HEADER
display_alert "$BOARD" "creating 10-hdmi.conf" "info"
mkdir -p "${SDCARD}/etc/X11/xorg.conf.d"
cat <<- XORG_HDMI_CONF > "${SDCARD}/etc/X11/xorg.conf.d/10-hdmi.conf"
Section "Device"
Identifier "Default Device"
Driver "modesetting"
Option "AccelMethod" "none" ### "glamor" to enable 3D acceleration, "none" to disable.
EndSection
Section "ServerFlags"
Option "AutoAddGPU" "off"
Option "Debug" "dmabuf_capable"
EndSection
XORG_HDMI_CONF
return 0
}

View File

@@ -1,48 +0,0 @@
# RISC-V StarFive BeagleV
BOARD_NAME="BeagleV"
BOARDFAMILY="starfive"
BOARD_MAINTAINER=""
KERNEL_TARGET="edge"
BOOT_FDT_FILE="starfive/jh7100-beaglev-starlight-a1.dtb"
SRC_EXTLINUX="yes"
SRC_CMDLINE="console=ttyS0,115200n8 console=tty0 earlycon=sbi rootflags=data=writeback stmmaceth=chain_mode:1 rw"
BOOTCONFIG=none
function post_family_tweaks__beaglev_uenv() {
# rpardini: uEnv.txt is needed to re-enable distroboot-like behaviour on the board's SPI u-boot
display_alert "$BOARD" "creating uEnv.txt" "info"
cat <<- UENV_SCRIPT_HEADER > "${SDCARD}/boot/uEnv.txt"
fdt_high=0xffffffffffffffff
initrd_high=0xffffffffffffffff
scriptaddr=0x88100000
script_offset_f=0x1fff000
script_size_f=0x1000
kernel_addr_r=0x84000000
kernel_comp_addr_r=0x90000000
kernel_comp_size=0x10000000
fdt_addr_r=0x88000000
ramdisk_addr_r=0x88300000
distro_bootpart=1
uenvcmd=run mmc_boot
UENV_SCRIPT_HEADER
display_alert "$BOARD" "creating 10-hdmi.conf" "info"
mkdir -p "${SDCARD}/etc/X11/xorg.conf.d"
cat <<- XORG_HDMI_CONF > "${SDCARD}/etc/X11/xorg.conf.d/10-hdmi.conf"
Section "Device"
Identifier "Default Device"
Driver "modesetting"
Option "AccelMethod" "none" ### "glamor" to enable 3D acceleration, "none" to disable.
EndSection
Section "ServerFlags"
Option "AutoAddGPU" "off"
Option "Debug" "dmabuf_capable"
EndSection
XORG_HDMI_CONF
return 0
}

View File

@@ -1,32 +0,0 @@
#Texas Instruments AM67A quad core 4GB USB3 DDR4 4TOPS
BOARD_NAME="BeagleY-AI"
BOARDFAMILY="k3"
BOARD_MAINTAINER="Grippy98"
BOOTCONFIG="am67a_beagley_ai_a53_defconfig"
BOOTFS_TYPE="fat"
BOOT_FDT_FILE="k3-am67a-beagley-ai.dts"
TIBOOT3_BOOTCONFIG="am67a_beagley_ai_r5_defconfig"
TIBOOT3_FILE="tiboot3-j722s-hs-fs-evm.bin"
DEFAULT_CONSOLE="serial"
KERNEL_TARGET="current"
KERNEL_TEST_TARGET="current"
SERIALCON="ttyS2"
ATF_BOARD="lite"
OPTEE_ARGS=""
OPTEE_PLATFORM="k3-am62x"
# Use these branches until BeagleY-AI goes upstream
function post_family_config_branch_current__beagley_ai_use_beagle_kernel_uboot() {
display_alert "$BOARD" " Beagleboard U-Boot and kernel overrides for $BOARD / $BRANCH" "info"
declare -g KERNELSOURCE="https://github.com/beagleboard/linux" # BeagleBoard kernel
declare -g KERNEL_MAJOR_MINOR="6.6"
declare -g KERNELBRANCH="branch:v6.6.58-ti-arm64-r21"
declare -g LINUXFAMILY="k3-beagle" # Separate kernel package from the regular `k3` family
declare -g LINUXCONFIG="linux-k3-${BRANCH}"
declare -g BOOTSOURCE="https://github.com/glneo/u-boot" # v2025.04-rc3 + BeagleY-AI support
declare -g BOOTBRANCH="branch:beagley-ai"
declare -g BOOTPATCHDIR="u-boot-beagle"
}

View File

@@ -3,5 +3,4 @@ BOARD_NAME="Beelink X2"
BOARDFAMILY="sun8i"
BOARD_MAINTAINER=""
BOOTCONFIG="beelink_x2_defconfig"
KERNEL_TARGET="current,edge,legacy"
KERNEL_TEST_TARGET="current"
KERNEL_TARGET="legacy,current,edge"

View File

@@ -1,13 +1,14 @@
# Allwinner H616 quad core 512MB/1GB RAM SoC WiFi
BOARD_NAME="BigTreeTech CB1"
BOARDFAMILY="sun50iw9"
BOARD_MAINTAINER="JohnTheCoolingFan"
BOARDFAMILY="sun50iw9-btt"
BOARD_MAINTAINER="bigtreetech"
BOOTCONFIG="bigtreetech_cb1_defconfig"
DEFAULT_CONSOLE="serial"
SERIALCON="ttyS0"
KERNEL_TARGET="current,edge"
KERNEL_TEST_TARGET="current"
KERNEL_TARGET="legacy,current,edge"
KERNEL_TEST_TARGET="legacy"
FORCE_BOOTSCRIPT_UPDATE="yes"
BOOTFS_TYPE="fat"
BOOT_FS_LABEL="BOOT"
OVERLAY_PREFIX="sun50i-h616"
BOOT_FDT_FILE="sun50i-h616-bigtreetech-cb1-sd.dtb"
BOOT_FDT_FILE="allwinner/sun50i-h616-bigtreetech-cb1-sd.dtb"

View File

@@ -1,49 +0,0 @@
# Rockchip RK3566 quad core 2GB-8GB GBE eMMC NVMe USB3 WiFi
BOARD_NAME="BigTreeTech CB2"
BOARDFAMILY="rockchip64"
BOARD_MAINTAINER="JohnTheCoolingFan"
BOOTCONFIG="bigtreetech-cb2-rk3566_defconfig"
BOOT_SOC="rk3566"
KERNEL_TARGET="current,edge"
KERNEL_TEST_TARGET="current"
BOOT_FDT_FILE="rockchip/rk3566-bigtreetech-pi2.dtb"
IMAGE_PARTITION_TABLE="gpt"
BOOT_SCENARIO="spl-blobs"
OVERLAY_PREFIX='rk3566'
FULL_DESKTOP="yes"
BOOT_LOGO="desktop"
# TODO: replace with BOOT_SCENARIO=binman when it gets merged and in good shape
function post_family_config__bigtreetech-cb2_uboot_overrides() {
display_alert "$BOARD" "mainline u-boot overrides" "info"
DDR_BLOB="rk35/rk3566_ddr_1056MHz_v1.21.bin"
BL31_BLOB="rk35/rk3568_bl31_v1.44.elf" # NOT a typo, bl31 is shared across 68 and 66
declare -g BOOTDELAY=1 # Wait for UART interrupt to enter UMS/RockUSB mode etc
declare -g BOOTSOURCE="https://github.com/u-boot/u-boot.git"
declare -g BOOTBRANCH="tag:v2024.10"
declare -g BOOTPATCHDIR="v2024.10/board_bigtreetech-cb2"
#declare -g BOOTDIR="u-boot-${BOARD}"
declare -g UBOOT_TARGET_MAP="BL31=${RKBIN_DIR}/${BL31_BLOB} ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB};;u-boot-rockchip.bin"
unset uboot_custom_postprocess write_uboot_platform write_uboot_platform_mtd # disable stuff from rockchip64_common; we're using binman here which does all the work already
# Just use the binman-provided u-boot-rockchip.bin, which is ready-to-go
function write_uboot_platform() {
dd "if=${1}/u-boot-rockchip.bin" "of=${2}" bs=32k seek=1 conv=notrunc
}
function write_uboot_platform_mtd() {
declare -a extra_opts_flashcp=("--verbose")
if flashcp -h | grep -q -e '--partition'; then
echo "Confirmed flashcp supports --partition -- read and write only changed blocks." >&2
extra_opts_flashcp+=("--partition")
else
echo "flashcp does not support --partition, will write full SPI flash blocks." >&2
fi
flashcp "${extra_opts_flashcp[@]}" "${1}/u-boot-rockchip-spi.bin" /dev/mtd0
}
}
# vim: ft=bash

View File

@@ -1,107 +0,0 @@
# Amlogic A311D 2GB RAM 16GB eMMC GBE USB3 RTL8822CS WiFi/BT
BOARD_NAME="CAINIAO CNIoT-CORE"
BOARDFAMILY="meson-g12b"
BOARD_MAINTAINER=""
BOOTCONFIG="cainiao-cniot-core_defconfig"
KERNEL_TARGET="current,edge"
KERNEL_TEST_TARGET="current"
MODULES_BLACKLIST="simpledrm" # SimpleDRM conflicts with Panfrost on the CAINIAO CNIoT-CORE
FULL_DESKTOP="yes"
SERIALCON="ttyAML0"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="amlogic/meson-g12b-a311d-cainiao-cniot-core.dtb"
PACKAGE_LIST_BOARD="alsa-ucm-conf" # Contain ALSA UCM top-level configuration file
BOOTBRANCH_BOARD="tag:v2025.04"
BOOTPATCHDIR="v2025.04" # This has a patch that adds support for CAINIAO CNIoT-CORE.
function post_family_config__use_repacked_fip() {
declare -g UBOOT_TARGET_MAP="u-boot.bin"
unset write_uboot_platform
function write_uboot_platform() {
dd if="$1/u-boot.bin" of="$2" bs=512 seek=1 conv=fsync 2>&1
}
}
function fetch_sources_tools__get_vendor_fip_and_gxlimg_source() {
fetch_from_repo "https://github.com/retro98boy/cainiao-cniot-core-linux.git" "cainiao-cniot-core-linux" "commit:30273c25aeabf75f609cff2c4fa7264335c295a8"
fetch_from_repo "https://github.com/repk/gxlimg.git" "gxlimg" "commit:0d0e5ba9cf396d1338067e8dc37a8bcd2e6874f1"
}
function build_host_tools__install_gxlimg() {
# Compile and install only if git commit hash changed
cd "${SRC}/cache/sources/gxlimg" || exit
# need to check if /usr/local/bin/gxlimg to detect new Docker containers with old cached sources
if [[ ! -f .commit_id || $(git rev-parse @ 2> /dev/null) != $(< .commit_id) || ! -f /usr/local/bin/gxlimg ]]; then
display_alert "Compiling" "gxlimg" "info"
run_host_command_logged make distclean
run_host_command_logged make
install -Dm0755 gxlimg /usr/local/bin/gxlimg
git rev-parse @ 2> /dev/null > .commit_id
fi
}
function post_uboot_custom_postprocess__repack_vendor_fip_with_mainline_uboot() {
display_alert "${BOARD}" "Repacking vendor FIP with mainline u-boot.bin" "info"
BLOBS_DIR="${SRC}/cache/sources/cainiao-cniot-core-linux"
EXTRACT_DIR="${BLOBS_DIR}/extract"
AML_ENCRYPT="${SRC}/cache/sources/amlogic-boot-fip/khadas-vim3/aml_encrypt_g12b"
if [ ! -f "$AML_ENCRYPT" ]; then
display_alert "${BOARD}" "amlogic-boot-fip/khadas-vim3/aml_encrypt_g12b not exist" "err"
exit 1
fi
mv u-boot.bin raw-u-boot.bin
rm -f "${EXTRACT_DIR}/bl33.enc"
# The current version of gxlimg has a problem with the handling of bl3x,
# which may cause the produced fip to fail to boot.
# see https://github.com/repk/gxlimg/issues/19
# run_host_command_logged gxlimg -t bl3x -s raw-u-boot.bin "${EXTRACT_DIR}/bl33.enc"
run_host_x86_binary_logged "$AML_ENCRYPT" --bl3sig \
--input raw-u-boot.bin \
--output "${EXTRACT_DIR}/bl33.enc" \
--level v3 --type bl33
run_host_command_logged gxlimg \
-t fip \
--bl2 "${EXTRACT_DIR}/bl2.sign" \
--ddrfw "${EXTRACT_DIR}/ddr4_1d.fw" \
--ddrfw "${EXTRACT_DIR}/ddr4_2d.fw" \
--ddrfw "${EXTRACT_DIR}/ddr3_1d.fw" \
--ddrfw "${EXTRACT_DIR}/piei.fw" \
--ddrfw "${EXTRACT_DIR}/lpddr4_1d.fw" \
--ddrfw "${EXTRACT_DIR}/lpddr4_2d.fw" \
--ddrfw "${EXTRACT_DIR}/diag_lpddr4.fw" \
--ddrfw "${EXTRACT_DIR}/aml_ddr.fw" \
--ddrfw "${EXTRACT_DIR}/lpddr3_1d.fw" \
--bl30 "${EXTRACT_DIR}/bl30.enc" \
--bl31 "${EXTRACT_DIR}/bl31.enc" \
--bl33 "${EXTRACT_DIR}/bl33.enc" \
--rev v3 u-boot.bin
if [ ! -s u-boot.bin ]; then
display_alert "${BOARD}" "FIP repack produced empty u-boot.bin" "err"
exit 1
fi
}
function post_family_tweaks_bsp__cainiao-cniot-core() {
display_alert "${BOARD}" "Installing ALSA UCM configuration files" "info"
# Use ALSA UCM via GUI: Install a desktop environment such as GNOME, PipeWire, and WirePlumber.
# Use ALSA UCM via CLI: alsactl init && alsaucm set _verb "HiFi" set _enadev "HDMI" set _enadev "Speaker"
# playback via HDMI: aplay -D plughw:cainiaocniotcor,0 /usr/share/sounds/alsa/Front_Center.wav
# playback via internal speaker: aplay -D plughw:cainiaocniotcor,1 /usr/share/sounds/alsa/Front_Center.wav
install -Dm644 "${SRC}/packages/bsp/cainiao-cniot-core/cainiao-cniot-core-HiFi.conf" "${destination}/usr/share/alsa/ucm2/Amlogic/axg-sound-card/cainiao-cniot-core-HiFi.conf"
install -Dm644 "${SRC}/packages/bsp/cainiao-cniot-core/cainiao-cniot-core.conf" "${destination}/usr/share/alsa/ucm2/Amlogic/axg-sound-card/cainiao-cniot-core.conf"
if [ ! -d "${destination}/usr/share/alsa/ucm2/conf.d/axg-sound-card" ]; then
mkdir -p "${destination}/usr/share/alsa/ucm2/conf.d/axg-sound-card"
fi
ln -sfv /usr/share/alsa/ucm2/Amlogic/axg-sound-card/cainiao-cniot-core.conf \
"${destination}/usr/share/alsa/ucm2/conf.d/axg-sound-card/cainiao-cniot-core.conf"
}

View File

@@ -1,11 +0,0 @@
# Allwinner H618 quad core 1GB 2GB 4GB RAM SoC WiFi USB-C emmc
BOARD_NAME="CherryBa M1"
BOARDFAMILY="sun50iw9"
BOOTCONFIG="cherryba-m1_defconfig"
BOOT_LOGO="desktop"
KERNEL_TARGET="current,edge"
KERNEL_TEST_TARGET="current,edge" # in case different then kernel target
FORCE_BOOTSCRIPT_UPDATE="yes"
BOOTBRANCH_BOARD="tag:v2025.04"
BOOTPATCHDIR="v2025.04"
BOARD_MAINTAINER="IsMrX"

View File

@@ -6,4 +6,3 @@ BOOTCONFIG="clearfog_defconfig"
#BOOTCONFIG_EDGE="clearfogbase_defconfig" # This had to be disabled because the clearfog is not yet ready for mainline uboot
HAS_VIDEO_OUTPUT="no"
KERNEL_TARGET="current,edge"
KERNEL_TEST_TARGET="current"

View File

@@ -1,7 +1,7 @@
# Marvell Armada 38x dual core 1GB/2GB RAM SoC 2xmPCIe M.2 GBE switch SFP
BOARD_NAME="Clearfog Pro"
BOARDFAMILY="mvebu"
BOARD_MAINTAINER="Heisath"
BOARD_MAINTAINER=""
BOOTCONFIG="clearfog_defconfig"
HAS_VIDEO_OUTPUT="no"
KERNEL_TARGET="current,edge"

View File

@@ -4,14 +4,13 @@ BOARDFAMILY="rockchip64"
BOARD_MAINTAINER=""
BOOTCONFIG="clockworkpi-a06-rk3399_defconfig"
KERNEL_TARGET="current,edge"
KERNEL_TEST_TARGET="current"
FULL_DESKTOP="yes"
BOOT_LOGO="no"
BOOTBRANCH_BOARD="tag:v2022.04"
BOOTPATCHDIR="u-boot-rockchip64-v2022.04"
function post_family_tweaks_bsp__clockworkpi-a06() {
display_alert "Installing BSP firmware and fixups"
display_alert "Installing BSP firmware and fixups"
# rotate screen & disable dpms
mkdir -p "$destination"/etc/X11/xorg.conf.d

View File

@@ -1,115 +0,0 @@
# Rockchip RK3588 octa core 16GB RAM SoC eMMC 4x NVMe 2x USB3 USB2 USB-C 2.5GbE
BOARD_NAME="FriendlyElec CM3588 NAS"
BOARDFAMILY="rockchip-rk3588"
BOARD_MAINTAINER="ColorfulRhino"
BOOTCONFIG="cm3588-nas-rk3588_defconfig" # Mainline defconfig, enables booting from NVMe
BOOT_SOC="rk3588"
KERNEL_TARGET="current,edge,vendor"
FULL_DESKTOP="yes"
BOOT_LOGO="desktop"
IMAGE_PARTITION_TABLE="gpt"
BOOT_FDT_FILE="rockchip/rk3588-friendlyelec-cm3588-nas.dtb"
BOOT_SCENARIO="tpl-blob-atf-mainline"
UEFI_EDK2_BOARD_ID="nanopc-cm3588-nas" # This _only_ used for uefi-edk2-rk3588 extension; cm3588-nas was introduced in v0.12 of edk2-porting/edk2-rk3588
function post_family_tweaks__cm3588_nas_udev_naming_audios() {
display_alert "$BOARD" "Renaming CM3588 audio interfaces to human-readable form" "info"
mkdir -p $SDCARD/etc/udev/rules.d/
cat <<- EOF > "${SDCARD}/etc/udev/rules.d/90-naming-audios.rules"
SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi0-sound", ENV{SOUND_DESCRIPTION}="HDMI-0 Audio Out"
SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi1-sound", ENV{SOUND_DESCRIPTION}="HDMI-1 Audio Out"
SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-dp0-sound", ENV{SOUND_DESCRIPTION}="DisplayPort-Over-USB Audio Out"
SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-rt5616-sound", ENV{SOUND_DESCRIPTION}="Headphone Out/Mic In"
SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmiin-sound", ENV{SOUND_DESCRIPTION}="HDMI-IN Audio In"
EOF
}
# Output from CM3588 syslog with edge kernel 6.8: r8169 0004:41:00.0 enP4p65s0: renamed from eth0
# Note: legacy kernel 5.10 uses driver r8125, edge kernel uses r8169 as of 6.8
function post_family_tweaks__cm3588_nas_udev_naming_network_interfaces() {
display_alert "$BOARD" "Renaming CM3588 LAN interface to eth0" "info"
mkdir -p $SDCARD/etc/udev/rules.d/
cat <<- EOF > "${SDCARD}/etc/udev/rules.d/70-persistent-net.rules"
SUBSYSTEM=="net", ACTION=="add", KERNELS=="0004:41:00.0", NAME:="eth0"
EOF
}
# Mainline U-Boot
function post_family_config__cm3588_nas_use_mainline_uboot() {
display_alert "$BOARD" "Using mainline U-Boot for $BOARD / $BRANCH" "info"
declare -g BOOTDELAY=1 # Wait for UART interrupt to enter UMS/RockUSB mode etc
declare -g BOOTSOURCE="https://github.com/u-boot/u-boot.git" # We ❤️ Mainline U-Boot
declare -g BOOTBRANCH="tag:v2025.01"
declare -g BOOTPATCHDIR="v2025.01"
declare -g BOOTDIR="u-boot-${BOARD}" # do not share u-boot directory
declare -g UBOOT_TARGET_MAP="BL31=bl31.elf ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB};;u-boot-rockchip.bin"
unset uboot_custom_postprocess write_uboot_platform write_uboot_platform_mtd # Disable stuff from rockchip64_common; we're using binman here which does all the work
# Just use the binman-provided u-boot-rockchip.bin, which is ready-to-go
function write_uboot_platform() {
dd "if=$1/u-boot-rockchip.bin" "of=$2" bs=32k seek=1 conv=notrunc status=none
}
}
function pre_config_uboot_target__cm3588_patch_uboot_dtsi_for_ums() {
display_alert "u-boot for ${BOARD}" "u-boot: add to u-boot dtsi for UMS" "info" # avoid a patch, just append to the dtsi file
cat <<- UBOOT_BOARD_DTSI_OTG >> arch/arm/dts/rk3588-friendlyelec-cm3588-nas-u-boot.dtsi
&u2phy0 { status = "okay"; };
&u2phy0_otg { status = "okay"; };
&usbdp_phy0 { status = "okay"; };
&usb_host0_xhci { dr_mode = "peripheral"; maximum-speed = "high-speed"; status = "okay"; };
UBOOT_BOARD_DTSI_OTG
}
# "rockchip-common: boot SD card first, then NVMe, then mmc"
# include/configs/rockchip-common.h
# -#define BOOT_TARGETS "mmc1 mmc0 nvme scsi usb pxe dhcp spi"
# +#define BOOT_TARGETS "mmc0 nvme mmc1 scsi usb pxe dhcp spi"
# On cm3588-nas, mmc0 is the eMMC, mmc1 is the SD card slot
function pre_config_uboot_target__cm3588_patch_rockchip_common_boot_order() {
declare -a rockchip_uboot_targets=("mmc1" "nvme" "mmc0" "scsi" "usb" "pxe" "dhcp" "spi") # for future make-this-generic delight
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: adjust boot order to '${rockchip_uboot_targets[*]}'" "info"
sed -i -e "s/#define BOOT_TARGETS.*/#define BOOT_TARGETS \"${rockchip_uboot_targets[*]}\"/" include/configs/rockchip-common.h
regular_git diff -u include/configs/rockchip-common.h || true
}
function post_config_uboot_target__extra_configs_for_cm3588-nas_uboot() {
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: enable preboot & flash user LED in preboot" "info"
run_host_command_logged scripts/config --enable CONFIG_USE_PREBOOT
run_host_command_logged scripts/config --set-str CONFIG_PREBOOT "'led led-1 on; sleep 0.1; led led-1 off'" # double quotes required due to run_host_command_logged's quirks
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: enable EFI debugging commands" "info"
run_host_command_logged scripts/config --enable CMD_EFIDEBUG
run_host_command_logged scripts/config --enable CMD_NVEDIT_EFI
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: enable more compression support" "info"
run_host_command_logged scripts/config --enable CONFIG_LZO
run_host_command_logged scripts/config --enable CONFIG_BZIP2
run_host_command_logged scripts/config --enable CONFIG_ZSTD
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: enable gpio LED support" "info"
run_host_command_logged scripts/config --enable CONFIG_LED
run_host_command_logged scripts/config --enable CONFIG_LED_GPIO
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: enable networking cmds" "info"
run_host_command_logged scripts/config --enable CONFIG_CMD_NFS
run_host_command_logged scripts/config --enable CONFIG_CMD_WGET
run_host_command_logged scripts/config --enable CONFIG_CMD_DNS
run_host_command_logged scripts/config --enable CONFIG_PROT_TCP
run_host_command_logged scripts/config --enable CONFIG_PROT_TCP_SACK
# UMS, RockUSB, gadget stuff
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: enable UMS/RockUSB gadget" "info"
declare -a enable_configs=("CONFIG_CMD_USB_MASS_STORAGE" "CONFIG_USB_GADGET" "USB_GADGET_DOWNLOAD" "CONFIG_USB_FUNCTION_ROCKUSB" "CONFIG_USB_FUNCTION_ACM" "CONFIG_CMD_ROCKUSB" "CONFIG_CMD_USB_MASS_STORAGE")
for config in "${enable_configs[@]}"; do
run_host_command_logged scripts/config --enable "${config}"
done
# Auto-enabled by the above, force off...
run_host_command_logged scripts/config --disable USB_FUNCTION_FASTBOOT
return 0
}

View File

@@ -1,7 +1,7 @@
# Rockchip RK3588 SoC octa core 4-16GB SoC 2.5GBe PoE eMMC USB3 NVME
BOARD_NAME="CoolPi CM5"
BOARDFAMILY="rockchip-rk3588"
BOARD_MAINTAINER="andyshrk"
BOARD_MAINTAINER="Andy Yan"
BOARD_FIRMWARE_INSTALL="-full"
BOOT_SOC="rk3588"
BOOTCONFIG="coolpi-cm5-evb-rk3588_defconfig"
@@ -20,9 +20,9 @@ function post_family_config_branch_edge__coolpi-cm5_use_mainline_uboot() {
declare -g BOOTSOURCE="https://github.com/Kwiboo/u-boot-rockchip.git" # Kwiboo U-Boot
unset BOOTBRANCH
declare -g BOOTPATCHDIR="v2024.07-coolpi-cm5"
declare -g BOOTBRANCH_BOARD="tag:v2024.07"
declare -g BOOTDIR="u-boot-${BOARD}" # do not share u-boot directory
unset BOOTPATCHDIR
declare -g BOOTBRANCH_BOARD="tag:v2024.07-rc2" # commit: 52835266d3e as of v2024.07-rc2
declare -g BOOTDIR="u-boot-${BOARD}" # do not share u-boot directory
declare -g UBOOT_TARGET_MAP="BL31=${RKBIN_DIR}/${BL31_BLOB} ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB};;u-boot-rockchip.bin u-boot-rockchip-spi.bin"
unset uboot_custom_postprocess write_uboot_platform write_uboot_platform_mtd # disable stuff from rockchip64_common; we're using binman here which does all the work already
@@ -35,3 +35,4 @@ function post_family_config_branch_edge__coolpi-cm5_use_mainline_uboot() {
flashcp -v -p "$1/u-boot-rockchip-spi.bin" /dev/mtd0
}
}

View File

@@ -1,36 +0,0 @@
# Rockchip RK3588 SoC octa core 4-16GB SoC eMMC USB3 NVME
BOARD_NAME="CoolPi GenBook"
BOARDFAMILY="rockchip-rk3588"
BOARD_MAINTAINER="andyshrk"
BOARD_FIRMWARE_INSTALL="-full"
BOOT_SOC="rk3588"
BOOTCONFIG="coolpi-cm5-genbook-rk3588_defconfig"
KERNEL_TARGET="edge,vendor"
FULL_DESKTOP="yes"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="rockchip/rk3588-coolpi-cm5-genbook.dtb"
BOOT_SCENARIO="spl-blobs"
BOOT_SUPPORT_SPI="yes"
BOOT_SPI_RKSPI_LOADER="yes"
IMAGE_PARTITION_TABLE="gpt"
# Mainline U-Boot
function post_family_config__coolpi-genbook_use_mainline_uboot() {
display_alert "$BOARD" "mainline (next branch) u-boot overrides for $BOARD / $BRANCH" "info"
declare -g BOOTSOURCE="https://github.com/u-boot/u-boot.git" # Mainline U-Boot
unset BOOTBRANCH
declare -g BOOTPATCHDIR="v2025.01-rc3-coolpi-cm5"
declare -g BOOTBRANCH_BOARD="tag:v2025.04"
declare -g UBOOT_TARGET_MAP="BL31=${RKBIN_DIR}/${BL31_BLOB} ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB};;u-boot-rockchip.bin u-boot-rockchip-spi.bin"
unset uboot_custom_postprocess write_uboot_platform write_uboot_platform_mtd # disable stuff from rockchip64_common; we're using binman here which does all the work already
# Just use the binman-provided u-boot-rockchip.bin, which is ready-to-go
function write_uboot_platform() {
dd "if=$1/u-boot-rockchip.bin" "of=$2" bs=32k seek=1 conv=notrunc status=none
}
function write_uboot_platform_mtd() {
flashcp -v -p "$1/u-boot-rockchip-spi.bin" /dev/mtd0
}
}

View File

@@ -4,8 +4,8 @@ BOARDFAMILY="sun4i"
BOARD_MAINTAINER=""
BOOTCONFIG="Cubieboard_config"
HAS_VIDEO_OUTPUT="no"
KERNEL_TARGET="current,edge,legacy"
KERNEL_TEST_TARGET="current"
KERNEL_TARGET="legacy,current,edge"
KERNEL_TEST_TARGET="edge"
MODULES_BLACKLIST="ir_lirc_codec lirc_dev sunxi-cir"
function post_config_uboot_target__extra_configs_for_cubieboard() {

View File

@@ -3,8 +3,7 @@ BOARD_NAME="Cubieboard 2"
BOARDFAMILY="sun7i"
BOARD_MAINTAINER=""
BOOTCONFIG="Cubieboard2_config"
KERNEL_TARGET="current,edge,legacy"
KERNEL_TEST_TARGET="current"
KERNEL_TARGET="legacy,current,edge"
function post_config_uboot_target__extra_configs_for_cubieboard2() {
display_alert "$BOARD" "set dram clock" "info"

View File

@@ -3,5 +3,4 @@ BOARD_NAME="Cubieboard 4"
BOARDFAMILY="sun9i"
BOARD_MAINTAINER=""
BOOTCONFIG=Cubieboard4_defconfig
KERNEL_TARGET="current,edge,legacy"
KERNEL_TEST_TARGET="current"
KERNEL_TARGET="legacy,current,edge"

View File

@@ -3,5 +3,5 @@ BOARD_NAME="Cubietruck"
BOARDFAMILY="sun7i"
BOARD_MAINTAINER=""
BOOTCONFIG="Cubietruck_config"
KERNEL_TARGET="current,edge,legacy"
KERNEL_TEST_TARGET="current"
KERNEL_TARGET="legacy,current,edge"
KERNEL_TEST_TARGET="current,edge"

View File

@@ -4,4 +4,4 @@ BOARDFAMILY="sun8i"
BOARD_MAINTAINER=""
BOOTCONFIG="Cubietruck_plus_defconfig"
OVERLAY_PREFIX="sun8i-a83t"
KERNEL_TARGET="current,edge,legacy"
KERNEL_TARGET="legacy,current,edge"

View File

@@ -4,7 +4,6 @@ BOARDFAMILY="imx6"
BOARD_MAINTAINER=""
BOOTCONFIG="mx6cuboxi_defconfig"
KERNEL_TARGET="current,edge"
KERNEL_TEST_TARGET="current"
FULL_DESKTOP="yes"
BOOT_LOGO="desktop"
PACKAGE_LIST_BOARD="rfkill bluetooth bluez bluez-tools"

Some files were not shown because too many files have changed in this diff Show More