mirror of
https://github.com/armbian/build
synced 2025-09-24 19:47:06 +07:00
Compare commits
46 Commits
v25.11.0-t
...
spi-dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
35ea751ab6 | ||
|
|
1781a89b5b | ||
|
|
4705791b85 | ||
|
|
52e29b6250 | ||
|
|
d4f3f7dd36 | ||
|
|
b3f4c449bf | ||
|
|
764d99282c | ||
|
|
ba3a545ee2 | ||
|
|
39ce1a480f | ||
|
|
0fe5be9077 | ||
|
|
3e839e728b | ||
|
|
e72db62f01 | ||
|
|
c73d7cef62 | ||
|
|
bf63467353 | ||
|
|
c7458b03af | ||
|
|
b16e67e637 | ||
|
|
3538608fda | ||
|
|
56f2f598db | ||
|
|
ca3b5c6f07 | ||
|
|
611ff391c8 | ||
|
|
96efc544c8 | ||
|
|
4f02ebb65c | ||
|
|
77faadadc1 | ||
|
|
6310f60617 | ||
|
|
bda1f6c385 | ||
|
|
2629f32bdb | ||
|
|
bec1184dae | ||
|
|
bd77b58a80 | ||
|
|
ebb6336b01 | ||
|
|
53cfb87046 | ||
|
|
b1f58146a9 | ||
|
|
a8d0cba727 | ||
|
|
c16816de22 | ||
|
|
bf65778c25 | ||
|
|
bcb907e4f1 | ||
|
|
719b9c0376 | ||
|
|
0d3bc8fd97 | ||
|
|
ac917fd6a4 | ||
|
|
c22f487916 | ||
|
|
30e33f5561 | ||
|
|
cc73e018c1 | ||
|
|
fe0712d65c | ||
|
|
00bfafe3a6 | ||
|
|
3dd0a8b338 | ||
|
|
eee9baaa86 | ||
|
|
436d544712 |
326
.github/CODEOWNERS
vendored
326
.github/CODEOWNERS
vendored
@@ -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
|
||||
|
||||
80
.github/ISSUE_TEMPLATE/1-bugreport.yml
vendored
80
.github/ISSUE_TEMPLATE/1-bugreport.yml
vendored
@@ -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
|
||||
27
.github/ISSUE_TEMPLATE/2-feature.yml
vendored
27
.github/ISSUE_TEMPLATE/2-feature.yml
vendored
@@ -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
|
||||
27
.github/ISSUE_TEMPLATE/3-task.yml
vendored
27
.github/ISSUE_TEMPLATE/3-task.yml
vendored
@@ -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
80
.github/ISSUE_TEMPLATE/bugreport.yml
vendored
Normal 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
|
||||
2
.github/ISSUE_TEMPLATE/config.yml
vendored
2
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -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
28
.github/ISSUE_TEMPLATE/feature.yml
vendored
Normal 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
|
||||
1
.github/PULL_REQUEST_TEMPLATE.md
vendored
1
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -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
|
||||
|
||||
5
.github/dependabot.yml
vendored
5
.github/dependabot.yml
vendored
@@ -4,8 +4,3 @@ updates:
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
|
||||
- package-ecosystem: "pip"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
|
||||
39
.github/generate_CODEOWNERS.sh
vendored
39
.github/generate_CODEOWNERS.sh
vendored
@@ -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
40
.github/labeler.yml
vendored
@@ -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
54
.github/labels.yml
vendored
@@ -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
BIN
.github/logo.png
vendored
Binary file not shown.
|
Before Width: | Height: | Size: 61 KiB |
121
.github/workflows/adjust-maintainers.yml
vendored
121
.github/workflows/adjust-maintainers.yml
vendored
@@ -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
20
.github/workflows/build-board-list.yml
vendored
Normal 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
21
.github/workflows/build-train.yml
vendored
Normal 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"
|
||||
27
.github/workflows/clean-workflow-logs.yml
vendored
27
.github/workflows/clean-workflow-logs.yml
vendored
@@ -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 }}
|
||||
29
.github/workflows/forked-helper.yml
vendored
29
.github/workflows/forked-helper.yml
vendored
@@ -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 }}
|
||||
}
|
||||
|
||||
27
.github/workflows/issue-welcome-first-time.yml
vendored
27
.github/workflows/issue-welcome-first-time.yml
vendored
@@ -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 — we’re glad to have you here! 🧡
|
||||
Your input doesn’t 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, don’t forget to ⭐ star the repo to support the work — and welcome aboard! 🚀
|
||||
24
.github/workflows/labels-from-yml.yml
vendored
24
.github/workflows/labels-from-yml.yml
vendored
@@ -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 }}
|
||||
|
||||
20
.github/workflows/merge-announce.yml
vendored
20
.github/workflows/merge-announce.yml
vendored
@@ -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 }}
|
||||
3
.github/workflows/open-jira-ticket.yml
vendored
3
.github/workflows/open-jira-ticket.yml
vendored
@@ -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
|
||||
|
||||
25
.github/workflows/pr-announce.yml
vendored
25
.github/workflows/pr-announce.yml
vendored
@@ -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 }}
|
||||
113
.github/workflows/pr-auto-labeler.yml
vendored
113
.github/workflows/pr-auto-labeler.yml
vendored
@@ -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 }}"
|
||||
|
||||
33
.github/workflows/pr-build-artifacts.yml
vendored
33
.github/workflows/pr-build-artifacts.yml
vendored
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
21
.github/workflows/pr-label-on-approved.yml
vendored
21
.github/workflows/pr-label-on-approved.yml
vendored
@@ -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"
|
||||
51
.github/workflows/pr-lint-scripts.yml
vendored
51
.github/workflows/pr-lint-scripts.yml
vendored
@@ -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
|
||||
|
||||
26
.github/workflows/pr-welcome-first-time.yml
vendored
26
.github/workflows/pr-welcome-first-time.yml
vendored
@@ -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 doesn’t 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, don’t forget to ⭐ star the repo if you haven’t already — and welcome aboard! 🚀
|
||||
29
.github/workflows/rebase.yml
vendored
Normal file
29
.github/workflows/rebase.yml
vendored
Normal 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 }}
|
||||
16
.github/workflows/scorecard.yml
vendored
16
.github/workflows/scorecard.yml
vendored
@@ -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
|
||||
|
||||
21
.github/workflows/update-board-list.yml
vendored
21
.github/workflows/update-board-list.yml
vendored
@@ -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"
|
||||
104
.github/workflows/update-tools.yml
vendored
104
.github/workflows/update-tools.yml
vendored
@@ -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
273
README.md
@@ -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 | 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
|
||||
|
||||
[](https://star-history.com/#armbian/build&Date)
|
||||
|
||||
## License
|
||||
|
||||
This software is published under the GPL-2.0 License license.
|
||||
|
||||
25
action.yml
25
action.yml
@@ -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
|
||||
|
||||
@@ -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-----
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
@@ -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
|
||||
|
||||
}
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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')
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
@@ -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
|
||||
}
|
||||
@@ -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'
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
24
config/boards/avaota-a1.conf
Normal file
24
config/boards/avaota-a1.conf
Normal 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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
155
config/boards/ayn-odin2.conf
Normal file
155
config/boards/ayn-odin2.conf
Normal 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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
14
config/boards/bananapi.csc
Normal file
14
config/boards/bananapi.csc
Normal 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
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
10
config/boards/bananapim2plus.csc
Normal file
10
config/boards/bananapim2plus.csc
Normal 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"
|
||||
@@ -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() {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
@@ -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
48
config/boards/beaglev.csc
Normal 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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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() {
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user