添加构建Allwinner H616四核2GB RAM SoC WiFi(蓝莓)
This commit is contained in:
commit
c97506efcc
43
.editorconfig
Normal file
43
.editorconfig
Normal file
@ -0,0 +1,43 @@
|
||||
# EditorConfig is awesome: http://EditorConfig.org
|
||||
|
||||
# top-most EditorConfig file
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
indent_style = tab
|
||||
indent_size = 8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[*.patch]
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
[*.md]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
insert_final_newline = false
|
||||
|
||||
[*.json]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
# Custom Armbian formatting for bash sources and configuration
|
||||
[*.{sh,inc,conf,eos,wip,tvb,csc}]
|
||||
indent_size = 4
|
||||
shell_variant = bash
|
||||
binary_next_line = false
|
||||
switch_case_indent = true
|
||||
space_redirects = true
|
||||
keep_padding = false
|
||||
function_next_line = false
|
||||
|
||||
[*.{yaml,yml}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
insert_final_newline = false
|
||||
|
||||
[*.py]
|
||||
indent_size = 4
|
||||
max_line_length = 150
|
186
.github/CODEOWNERS
vendored
Normal file
186
.github/CODEOWNERS
vendored
Normal file
@ -0,0 +1,186 @@
|
||||
# PLEASE DON'T EDIT THIS FILE
|
||||
# Auto generated by ".github/generate_CODEOWNERS.sh"
|
||||
|
||||
# Default code owner
|
||||
* @igorpecovnik
|
||||
|
||||
# the last matching pattern takes the most
|
||||
|
||||
*.md @EvilOlaf @littlecxm @TheLinuxBug @TRSx80 @igorpecovnik
|
||||
|
||||
.github/ @igorpecovnik @rpardini @hzyitc
|
||||
|
||||
lib/ @armbian/build-scripts
|
||||
packages/ @armbian/build-scripts
|
||||
packages/bsp/jethub/ @armbian/build-scripts @adeepn
|
||||
tools/ @iav @neheb @hzyitc @mhoffrog
|
||||
|
||||
# The following contents are generated by board configs
|
||||
config/boards/aml-s9xx-box.tvb @SteeManMI
|
||||
config/boards/bananapi.csc @DylanHP
|
||||
config/boards/bananapicm4io.conf @pyavitz
|
||||
config/boards/bananapim2s.conf @jeanrhum @pyavitz
|
||||
config/boards/bananapim3.conf @AaronNGray
|
||||
config/boards/bananapim5.conf @bretmlw
|
||||
config/boards/bananapim64.conf @devdotnetorg
|
||||
config/boards/bananapipro.conf @teknoid
|
||||
config/boards/bigtreetech-cb1.conf @bigtreetech
|
||||
config/boards/clearfogpro.conf @Heisath
|
||||
config/boards/espressobin.conf @ManoftheSea
|
||||
config/boards/firefly-rk3399.conf @150balbes
|
||||
config/boards/fxblox-rk1.wip @mahdichi
|
||||
config/boards/helios4.conf @Heisath
|
||||
config/boards/indiedroid-nova.csc @lanefu
|
||||
config/boards/jethubj100.conf @adeepn
|
||||
config/boards/jethubj80.conf @adeepn
|
||||
config/boards/jetson-nano.conf @150balbes
|
||||
config/boards/khadas-edge2.conf @igorpecovnik
|
||||
config/boards/khadas-vim1.conf @igorpecovnik
|
||||
config/boards/khadas-vim1s.wip @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.wip @rpardini
|
||||
config/boards/lafrite.conf @Tonymac32
|
||||
config/boards/lepotato.conf @Tonymac32
|
||||
config/boards/licheepi-4a.wip @chainsx
|
||||
config/boards/mangopi-mq.wip @Zinput
|
||||
config/boards/mekotronics-r58-minipc.wip @monkaBlyat
|
||||
config/boards/mekotronics-r58x-4g.wip @monkaBlyat
|
||||
config/boards/mekotronics-r58x.wip @monkaBlyat
|
||||
config/boards/mixtile-blade3.wip @rpardini
|
||||
config/boards/nanopct6.wip @Tonymac32
|
||||
config/boards/nanopi-r4s.conf @Manouchehri
|
||||
config/boards/nanopi-r6s.conf @efectn
|
||||
config/boards/nanopiduo.conf @sgjava
|
||||
config/boards/nanopiduo2.conf @viraniac
|
||||
config/boards/nanopineoplus2.conf @teknoid
|
||||
config/boards/odroidc2.conf @teknoid
|
||||
config/boards/odroidm1.wip @rpardini
|
||||
config/boards/odroidxu4.conf @joekhoobyar
|
||||
config/boards/olimex-teres-a64.conf @Kreyren
|
||||
config/boards/onecloud.conf @hzyitc
|
||||
config/boards/orangepi-r1.conf @schwar3kat
|
||||
config/boards/orangepi-r1plus-lts.conf @schwar3kat
|
||||
config/boards/orangepi4-lts.conf @paolosabatino
|
||||
config/boards/orangepi4.conf @paolosabatino
|
||||
config/boards/orangepi5-plus.conf @efectn
|
||||
config/boards/orangepi5.conf @efectn
|
||||
config/boards/orangepione.conf @StephenGraf
|
||||
config/boards/orangepipc.conf @lbmendes
|
||||
config/boards/orangepiprime.conf @viraniac
|
||||
config/boards/orangepizero2.conf @AGM1968 @krachlatte
|
||||
config/boards/orangepizeroplus.conf @schwar3kat
|
||||
config/boards/pine64.conf @PanderMusubi @joshaspinall
|
||||
config/boards/pine64so.conf @joshaspinall
|
||||
config/boards/pinebook-pro.conf @TRSx80 @ahoneybun
|
||||
config/boards/qemu-uboot-arm64.wip @rpardini
|
||||
config/boards/qemu-uboot-x86.wip @rpardini
|
||||
config/boards/radxa-e25.wip @krachlatte
|
||||
config/boards/radxa-zero.conf @clee @engineer-80
|
||||
config/boards/radxa-zero2.wip @monkaBlyat
|
||||
config/boards/recore.csc @eliasbakken
|
||||
config/boards/renegade.conf @Tonymac32
|
||||
config/boards/rock-3a.conf @ZazaBR @amazingfate @catalinii @vamzii
|
||||
config/boards/rock-5a.wip @amazingfate
|
||||
config/boards/rock-5b.conf @amazingfate @linhz0hz
|
||||
config/boards/rock64.conf @clee
|
||||
config/boards/rockpi-4a.conf @clee
|
||||
config/boards/rockpi-e.conf @krachlatte
|
||||
config/boards/rockpi-s.conf @brentr
|
||||
config/boards/rockpro64.conf @joekhoobyar
|
||||
config/boards/rpi4b.conf @PanderMusubi @teknoid
|
||||
config/boards/sk-am62b.conf @glneo
|
||||
config/boards/sk-am64b.conf @glneo
|
||||
config/boards/station-m1.conf @150balbes
|
||||
config/boards/station-m2.conf @150balbes
|
||||
config/boards/station-m3.conf @150balbes
|
||||
config/boards/station-p1.conf @150balbes
|
||||
config/boards/station-p2.conf @150balbes
|
||||
config/boards/thinkpad-x13s.wip @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/kernel/linux-arm64-*.config @rpardini
|
||||
config/kernel/linux-bcm2711-*.config @PanderMusubi @teknoid
|
||||
config/kernel/linux-d1-*.config @Zinput
|
||||
config/kernel/linux-k3-*.config @glneo
|
||||
config/kernel/linux-media-*.config @150balbes
|
||||
config/kernel/linux-meson-*.config @hzyitc
|
||||
config/kernel/linux-meson-s4t7-*.config @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-rk3568-odroid-*.config @rpardini
|
||||
config/kernel/linux-rk35xx-*.config @Tonymac32 @ZazaBR @amazingfate @catalinii @efectn @igorpecovnik @krachlatte @lanefu @linhz0hz @mahdichi @monkaBlyat @rpardini @vamzii
|
||||
config/kernel/linux-rockchip-*.config @paolosabatino
|
||||
config/kernel/linux-rockchip-rk3588-*.config @Tonymac32 @amazingfate @efectn @lanefu @linhz0hz
|
||||
config/kernel/linux-rockchip64-*.config @Manouchehri @TRSx80 @Tonymac32 @ZazaBR @ahoneybun @amazingfate @brentr @catalinii @clee @joekhoobyar @krachlatte @paolosabatino @schwar3kat @vamzii
|
||||
config/kernel/linux-rockpis-*.config @brentr
|
||||
config/kernel/linux-sun50iw9-*.config @AGM1968 @krachlatte
|
||||
config/kernel/linux-sun50iw9-btt-*.config @bigtreetech
|
||||
config/kernel/linux-sunxi-*.config @AaronNGray @DylanHP @StephenGraf @Tonymac32 @lbmendes @schwar3kat @sgjava @teknoid @viraniac
|
||||
config/kernel/linux-sunxi64-*.config @AGM1968 @Kreyren @PanderMusubi @Tonymac32 @bigtreetech @devdotnetorg @eliasbakken @joshaspinall @krachlatte @schwar3kat @teknoid @viraniac
|
||||
config/kernel/linux-thead-*.config @chainsx
|
||||
config/kernel/linux-uefi-arm64-*.config @rpardini
|
||||
config/kernel/linux-uefi-x86-*.config @rpardini
|
||||
patch/kernel/NEED-*/ @bigtreetech
|
||||
patch/kernel/archive/bcm2711-*/ @PanderMusubi @teknoid
|
||||
patch/kernel/archive/meson-*/ @hzyitc
|
||||
patch/kernel/archive/meson-s4t7-*/ @rpardini @viraniac
|
||||
patch/kernel/archive/meson64-*/ @NicoD-SBC @SteeManMI @Tonymac32 @adeepn @bretmlw @clee @engineer-80 @igorpecovnik @jeanrhum @monkaBlyat @pyavitz @rpardini @teknoid
|
||||
patch/kernel/archive/mvebu-*/ @Heisath
|
||||
patch/kernel/archive/odroidxu4-*/ @joekhoobyar
|
||||
patch/kernel/archive/rk3568-odroid-*/ @rpardini
|
||||
patch/kernel/archive/rk35xx-*/ @Tonymac32 @ZazaBR @amazingfate @catalinii @efectn @igorpecovnik @krachlatte @lanefu @linhz0hz @mahdichi @monkaBlyat @rpardini @vamzii
|
||||
patch/kernel/archive/rockchip-*/ @paolosabatino
|
||||
patch/kernel/archive/rockchip64-*/ @Manouchehri @TRSx80 @Tonymac32 @ZazaBR @ahoneybun @amazingfate @brentr @catalinii @clee @joekhoobyar @krachlatte @paolosabatino @schwar3kat @vamzii
|
||||
patch/kernel/archive/rockpis-*/ @brentr
|
||||
patch/kernel/archive/sun50iw9-*/ @AGM1968 @krachlatte
|
||||
patch/kernel/archive/sunxi-*/ @AGM1968 @AaronNGray @DylanHP @Kreyren @PanderMusubi @StephenGraf @Tonymac32 @bigtreetech @devdotnetorg @eliasbakken @joshaspinall @krachlatte @lbmendes @schwar3kat @sgjava @teknoid @viraniac
|
||||
patch/kernel/archive/uefi-arm64-*/ @rpardini
|
||||
patch/kernel/arm64-*/ @rpardini
|
||||
patch/kernel/bcm2711-*/ @PanderMusubi @teknoid
|
||||
patch/kernel/d1-*/ @Zinput
|
||||
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/rk35xx-*/ @Tonymac32 @ZazaBR @amazingfate @catalinii @efectn @igorpecovnik @krachlatte @lanefu @linhz0hz @mahdichi @monkaBlyat @rpardini @vamzii
|
||||
patch/kernel/rockchip-*/ @paolosabatino
|
||||
patch/kernel/rockchip-rk3588-*/ @Tonymac32 @amazingfate @efectn @lanefu @linhz0hz
|
||||
patch/kernel/rockchip64-*/ @Manouchehri @TRSx80 @Tonymac32 @ZazaBR @ahoneybun @amazingfate @brentr @catalinii @clee @joekhoobyar @krachlatte @paolosabatino @schwar3kat @vamzii
|
||||
patch/kernel/rockpis-*/ @brentr
|
||||
patch/kernel/sun50iw9-*/ @AGM1968 @krachlatte
|
||||
patch/kernel/thead-*/ @chainsx
|
||||
patch/kernel/uefi-arm64-*/ @rpardini
|
||||
patch/kernel/uefi-x86-*/ @rpardini
|
||||
sources/families/arm64.conf @rpardini
|
||||
sources/families/bcm2711.conf @PanderMusubi @teknoid
|
||||
sources/families/d1.conf @Zinput
|
||||
sources/families/k3.conf @glneo
|
||||
sources/families/media.conf @150balbes
|
||||
sources/families/meson-s4t7.conf @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/rk3568-odroid.conf @rpardini
|
||||
sources/families/rk35xx.conf @Tonymac32 @ZazaBR @amazingfate @catalinii @efectn @igorpecovnik @krachlatte @lanefu @linhz0hz @mahdichi @monkaBlyat @rpardini @vamzii
|
||||
sources/families/rockchip-rk3588.conf @Tonymac32 @amazingfate @efectn @lanefu @linhz0hz
|
||||
sources/families/rockchip.conf @paolosabatino
|
||||
sources/families/rockchip64.conf @Manouchehri @TRSx80 @Tonymac32 @ZazaBR @ahoneybun @amazingfate @brentr @catalinii @clee @joekhoobyar @krachlatte @paolosabatino @schwar3kat @vamzii
|
||||
sources/families/rockpis.conf @brentr
|
||||
sources/families/sun50iw9-btt.conf @bigtreetech
|
||||
sources/families/sun50iw9.conf @AGM1968 @krachlatte
|
||||
sources/families/sunxi.conf @AaronNGray @DylanHP @StephenGraf @Tonymac32 @lbmendes @schwar3kat @sgjava @teknoid @viraniac
|
||||
sources/families/sunxi64.conf @AGM1968 @Kreyren @PanderMusubi @Tonymac32 @bigtreetech @devdotnetorg @eliasbakken @joshaspinall @krachlatte @schwar3kat @teknoid @viraniac
|
||||
sources/families/thead.conf @chainsx
|
||||
sources/families/x86.conf @rpardini
|
16
.github/CODE_OF_CONDUCT.md
vendored
Normal file
16
.github/CODE_OF_CONDUCT.md
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as
|
||||
contributors and maintainers pledge to making participation in our project and
|
||||
our community a harassment-free experience for everyone, regardless of age, body
|
||||
size, disability, ethnicity, gender identity and expression, level of experience,
|
||||
education, socio-economic status, nationality, personal appearance, race,
|
||||
religion, or sexual identity and orientation.
|
||||
|
||||
## Our Standards
|
||||
|
||||
|
||||
* Don't shit on people's work
|
||||
* Listen (with your eyes since its code)
|
75
.github/ISSUE_TEMPLATE/bugreport.yml
vendored
Normal file
75
.github/ISSUE_TEMPLATE/bugreport.yml
vendored
Normal file
@ -0,0 +1,75 @@
|
||||
name: Armbian Linux Build Framework Bug Report
|
||||
description: Create a bug report if there is something wrong with build framework mechanism.
|
||||
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: "
|
||||
<br>
|
||||
Tell us, what did you expect to happen?
|
||||
"
|
||||
placeholder: Tell us what you see!
|
||||
value: "A bug happened!"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: reproduce
|
||||
attributes:
|
||||
label: How to reproduce?
|
||||
description: "
|
||||
<br>
|
||||
Provide command line or explain steps which you did?
|
||||
"
|
||||
placeholder: Tell us how you did it!
|
||||
value: "Command you gave to the framework!"
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: version
|
||||
attributes:
|
||||
label: Branch
|
||||
description: "
|
||||
<br>
|
||||
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 observing this problem?
|
||||
multiple: false
|
||||
options:
|
||||
- Jammy
|
||||
- Bullseye
|
||||
- Other
|
||||
validations:
|
||||
required: true
|
||||
- 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 on 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
|
20
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
20
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Armbian OS Bug Report
|
||||
url: https://www.armbian.com/bugs/
|
||||
about: Use our bug reporting wizzard to file your bug in the correct place
|
||||
- name: Armbian OS Feature Requests
|
||||
url: https://forum.armbian.com/forum/38-feature-requests/
|
||||
about: Feature requests and enhancement ideas. A request does not guarantee consideration.
|
||||
- name: Armbian Linux kernel related bug report
|
||||
url: https://www.armbian.com/bugs/
|
||||
about: For changes to the kernel code made by Armbian
|
||||
- name: Vanilla Linux kernel related bug report
|
||||
url: https://bugzilla.kernel.org/
|
||||
about: If you are using upstream Linux kernel
|
||||
- name: Issue with armbian-config
|
||||
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
|
||||
about: Broken download links or just slow download
|
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
|
21
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
21
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
# Description
|
||||
|
||||
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
|
||||
|
||||
Jira reference number [AR-9999]
|
||||
|
||||
# How Has This Been Tested?
|
||||
|
||||
Please describe the tests that you ran to verify your changes. Please also note any relevant details for your test configuration.
|
||||
|
||||
- [ ] Test A
|
||||
- [ ] Test B
|
||||
|
||||
# Checklist:
|
||||
|
||||
- [ ] My code follows the style guidelines of this project
|
||||
- [ ] I have performed a self-review of my own code
|
||||
- [ ] I have commented my code, particularly in hard-to-understand areas
|
||||
- [ ] I have made corresponding changes to the documentation
|
||||
- [ ] My changes generate no new warnings
|
||||
- [ ] Any dependent changes have been merged and published in downstream modules
|
BIN
.github/README.gif
vendored
Normal file
BIN
.github/README.gif
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 176 KiB |
8
.github/Releases-wip.md
vendored
Normal file
8
.github/Releases-wip.md
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
<p align='center'>
|
||||
<a href='https://www.armbian.com'>
|
||||
<img src='https://raw.githubusercontent.com/armbian/.github/master/profile/tux-two.png' width='400' height='226' alt='Armbian Linux'></a>
|
||||
<br>
|
||||
<img src=https://raw.githubusercontent.com/armbian/.github/master/profile/progress.gif width=50>
|
||||
<br><br>
|
||||
<a href="https://github.com/armbian/build/actions">Build in progress</a></p>
|
||||
</p>
|
20
.github/Releases.md
vendored
Normal file
20
.github/Releases.md
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
<p align='center'>
|
||||
<a href='https://www.armbian.com'>
|
||||
<img src='https://raw.githubusercontent.com/armbian/.github/master/profile/tux-two.png' width='400' height='226' alt='Armbian Linux'></a>
|
||||
<br>
|
||||
|
||||
- Images below are built on every Linux kernel code, config or patches changes,
|
||||
- We provide here only a small selection of images that are currently interested for developers,
|
||||
- If you want to enable more build targets in this list, edit <a href="https://github.com/armbian/build/blob/master/config/targets-cli-beta.conf">CLI</a> or <a href="https://github.com/armbian/build/blob/master/config/targets-desktop-beta.conf">desktop</a> build config files.</p>
|
||||
|
||||
<br>
|
||||
If you don't find what you are looking for, check those images:
|
||||
<p>
|
||||
|
||||
- <a href=https://www.armbian.com/download/ target=_blanks>officially supported</a> (known support status and suitable for production deployments),
|
||||
- <a href=https://github.com/armbian/community/>community supported</a> (unknown support status),
|
||||
- <a href=https://archive.armbian.com target=_blank>archived</a> (old builds with unknown support status),
|
||||
|
||||
<br>
|
||||
|
||||
</p>
|
BIN
.github/armbian-logo.png
vendored
Normal file
BIN
.github/armbian-logo.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 34 KiB |
6
.github/dependabot.yml
vendored
Normal file
6
.github/dependabot.yml
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
96
.github/generate_CODEOWNERS.sh
vendored
Executable file
96
.github/generate_CODEOWNERS.sh
vendored
Executable file
@ -0,0 +1,96 @@
|
||||
#!/bin/bash
|
||||
|
||||
SRC="$(realpath "${BASH_SOURCE%/*}/../")"
|
||||
|
||||
# Dummy function for successful source
|
||||
function display_alert() {
|
||||
:
|
||||
}
|
||||
function enable_extension() {
|
||||
:
|
||||
}
|
||||
|
||||
# $1: board config
|
||||
function generate_for_board() {
|
||||
local board_config="$1"
|
||||
(
|
||||
source "${SRC}/config/boards/${board_config}"
|
||||
LINUXFAMILY="${BOARDFAMILY}"
|
||||
|
||||
[[ -n "${BOARD_MAINTAINER}" ]] || return
|
||||
maintainers="$(echo "${BOARD_MAINTAINER}" | xargs -n1 | sed -E 's|^.+$|@\0|' | tr '\n' ' ')"
|
||||
|
||||
while read -r BRANCH; do
|
||||
(
|
||||
source "${SRC}/config/sources/families/${LINUXFAMILY}.conf"
|
||||
source "${SRC}/config/sources/common.conf"
|
||||
source "${SRC}/config/sources/${ARCH}.conf"
|
||||
|
||||
[[ -z $LINUXCONFIG ]] && LINUXCONFIG="linux-${LINUXFAMILY}-${BRANCH}"
|
||||
[[ -z $KERNELPATCHDIR ]] && KERNELPATCHDIR="$LINUXFAMILY-$BRANCH"
|
||||
|
||||
cat <<-EOF
|
||||
config/boards/${board_config} ${maintainers}
|
||||
config/kernel/${LINUXCONFIG%-*}-*.config ${maintainers}
|
||||
sources/families/${LINUXFAMILY}.conf ${maintainers}
|
||||
patch/kernel/${KERNELPATCHDIR%-*}-*/ ${maintainers}
|
||||
EOF
|
||||
|
||||
local patch_archive="$(readlink "patch/kernel/${KERNELPATCHDIR}" || true)"
|
||||
if [[ -n "${patch_archive}" ]]; then
|
||||
patch_archive="${patch_archive%/}"
|
||||
echo "patch/kernel/${patch_archive%-*}-*/ ${maintainers}"
|
||||
fi
|
||||
)
|
||||
done < <(echo "${KERNEL_TARGET}" | tr ',' '\n')
|
||||
)
|
||||
}
|
||||
|
||||
function generate_for_all_board() {
|
||||
local board_config
|
||||
while read -r board_config; do
|
||||
local type="${board_config##*.}"
|
||||
[[ "conf wip csc eos tvb" == *"${type}"* ]] || continue
|
||||
|
||||
generate_for_board "${board_config}"
|
||||
done < <(ls "${SRC}/config/boards/")
|
||||
}
|
||||
|
||||
function merge() {
|
||||
local line
|
||||
declare -A codeowners
|
||||
while read -r line; do
|
||||
local file="$(echo "${line}" | tr -s '[:space:]' ' ' | cut -d' ' -f1)"
|
||||
local maintainers="$(echo "${line}" | tr -s '[:space:]' ' ' | cut -d' ' -f2-)"
|
||||
codeowners["$file"]+=" ${maintainers}"
|
||||
done
|
||||
|
||||
local file
|
||||
while read -r file; do
|
||||
declare -a maintainers
|
||||
readarray -t maintainers < <(echo "${codeowners["$file"]}" | xargs -n1 | sort -u)
|
||||
echo "${file} ${maintainers[*]}"
|
||||
done < <(printf "%s\n" "${!codeowners[@]}" | sort)
|
||||
}
|
||||
|
||||
cat <<-EOF >"${SRC}/.github/CODEOWNERS"
|
||||
# PLEASE DON'T EDIT THIS FILE
|
||||
# Auto generated by ".github/generate_CODEOWNERS.sh"
|
||||
|
||||
# Default code owner
|
||||
* @igorpecovnik
|
||||
|
||||
# the last matching pattern takes the most
|
||||
|
||||
*.md @EvilOlaf @littlecxm @TheLinuxBug @TRSx80 @igorpecovnik
|
||||
|
||||
.github/ @igorpecovnik @rpardini @hzyitc
|
||||
|
||||
lib/ @armbian/build-scripts
|
||||
packages/ @armbian/build-scripts
|
||||
packages/bsp/jethub/ @armbian/build-scripts @adeepn
|
||||
tools/ @iav @neheb @hzyitc @mhoffrog
|
||||
|
||||
# The following contents are generated by board configs
|
||||
$(generate_for_all_board | merge)
|
||||
EOF
|
36
.github/labeler.yml
vendored
Normal file
36
.github/labeler.yml
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
# This configures label matching for PR's.
|
||||
#
|
||||
# The keys are labels, and the values are lists of minimatch patterns
|
||||
# to which those labels apply.
|
||||
#
|
||||
# NOTE: This can only add labels, not remove them.
|
||||
# NOTE: Due to YAML syntax limitations, patterns or labels which start
|
||||
# with a character that is part of the standard YAML syntax must be
|
||||
# quoted.
|
||||
#
|
||||
# Please keep the labels sorted and deduplicated.
|
||||
|
||||
"Hardware :gear:":
|
||||
- patch/u-boot/*
|
||||
- patch/u-boot/**/*
|
||||
- patch/atf/*
|
||||
- config/bootenv/*
|
||||
- config/bootscripts/*
|
||||
- patch/kernel/*
|
||||
- patch/kernel/**/*
|
||||
- patch/misc/*
|
||||
- config/kernel/*
|
||||
- config/sources/*
|
||||
- config/sources/**/*
|
||||
- config/boards/*
|
||||
- config/bootscripts/*
|
||||
- config/bootenv/*
|
||||
|
||||
"Software :chains:":
|
||||
- lib/*
|
||||
- tools/*
|
||||
- config/cli/*
|
||||
- .github/workflows/*
|
||||
|
||||
"Desktop :desktop_computer:":
|
||||
- config/desktop/*
|
63
.github/workflows/README.md
vendored
Normal file
63
.github/workflows/README.md
vendored
Normal file
@ -0,0 +1,63 @@
|
||||
# Runners requirements
|
||||
|
||||
- big (6-16 cores, 64Gb SSD, 16Gb memory, 2Gb swap)
|
||||
- small (4 cores, 64Gb SSD, 8Gb memory, 2Gb swap)
|
||||
|
||||
## Preparation
|
||||
|
||||
|
||||
|
||||
Adding x86 runner to your Jammy VM (check [here](https://docs.github.com/en/actions/hosting-your-own-runners/adding-self-hosted-runners) if any changes):
|
||||
|
||||
$ mkdir actions-runner
|
||||
$ cd actions-runner
|
||||
$ curl -o actions-runner-linux-x64-2.294.0.tar.gz -L https://github.com/actions/runner/releases/download/v2.294.0/actions-runner-linux-x64-2.294.0.tar.gz
|
||||
$ tar xzf ./actions-runner-linux-x64-2.294.0.tar.gz
|
||||
|
||||
## Configuration
|
||||
|
||||
Once asked, tag your runner accordingly:
|
||||
|
||||
- small
|
||||
- big
|
||||
- arm64
|
||||
|
||||
Start the configuration experience
|
||||
|
||||
$ ./config.sh --url https://github.com/armbian --token XXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
|
||||
You need to get a valid token from our DevOps team to proceed.
|
||||
|
||||
## Create startup scripts
|
||||
|
||||
sudo ./svc.sh install # install
|
||||
sudo ./svc.sh start # start
|
||||
sudo ./svc.sh status # check
|
||||
|
||||
## Use workflows in forked repositories
|
||||
|
||||
`forked-helper.yml` workflow helper can help to run custom workflows on the forked repositories.
|
||||
|
||||
1. Set `ARMBIAN_SELF_DISPATCH_TOKEN` secret on your repository with `security_events` permissions.
|
||||
2. Helper will dispatch `repository_dispatch` event `armbian` on `push`, `release`, `deployment`,
|
||||
`pull_request` and `workflow_dispatch` events. All needed event details you can find in `client_payload`
|
||||
property of the event.
|
||||
4. Create empty default branch in forked repository
|
||||
5. Create workflow with `repository_dispatch` in default branch.
|
||||
6. Run any need actions in this workflow.
|
||||
|
||||
Workflow example:
|
||||
```yaml
|
||||
name: Test Armbian dispatch
|
||||
|
||||
on:
|
||||
repository_dispatch:
|
||||
types: ["armbian"]
|
||||
|
||||
jobs:
|
||||
show-dispatch:
|
||||
name: Show dispatch event details
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: hmarr/debug-action@v2
|
||||
```
|
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@v2
|
||||
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@v2
|
||||
with:
|
||||
token: ${{ secrets.ACCESS_TOKEN }}
|
||||
repository: armbian/os
|
||||
event-type: "Repository update"
|
42
.github/workflows/forked-helper.yml
vendored
Normal file
42
.github/workflows/forked-helper.yml
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
name: Forked Helper
|
||||
|
||||
on:
|
||||
push:
|
||||
release:
|
||||
deployment:
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
fork-repository-dispatch:
|
||||
name: 📢 Run repository dispatch to default fork branch
|
||||
if: ${{ github.repository_owner != 'armbian' }}
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Assign secret
|
||||
id: get_dispatch_secret
|
||||
run: echo '::set-output name=dispatch_secret::${{ secrets.ARMBIAN_SELF_DISPATCH_TOKEN }}'
|
||||
- name: Get event details
|
||||
id: get_event_details
|
||||
# Process JSON according https://github.community/t5/GitHub-Actions/set-output-Truncates-Multiline-Strings/td-p/37870
|
||||
run: |
|
||||
JSON=$(cat ${{ github.event_path }})
|
||||
JSON="${JSON//'%'/'%25'}"
|
||||
JSON="${JSON//$'\n'/'%0A'}"
|
||||
JSON="${JSON//$'\r'/'%0D'}"
|
||||
echo "::set-output name=event_details::${JSON}"
|
||||
- name: Dispatch event on forked repostitory
|
||||
if: steps.get_dispatch_secret.outputs.dispatch_secret
|
||||
uses: peter-evans/repository-dispatch@v2
|
||||
with:
|
||||
token: ${{ steps.get_dispatch_secret.outputs.dispatch_secret }}
|
||||
repository: ${{ github.repository }}
|
||||
event-type: armbian
|
||||
client-payload: >
|
||||
{
|
||||
"event": "${{ github.event_name }}",
|
||||
"ref": "${{ github.ref }}",
|
||||
"base_ref": "${{ github.base_ref }}",
|
||||
"sha": "${{ github.sha }}",
|
||||
"event_details": ${{ steps.get_event_details.outputs.event_details }}
|
||||
}
|
48
.github/workflows/kernel-security-analysis-pr.yml
vendored
Normal file
48
.github/workflows/kernel-security-analysis-pr.yml
vendored
Normal file
@ -0,0 +1,48 @@
|
||||
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/kconfig-hardened-check/blob/master/README.md
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
pull_request:
|
||||
types: [ready_for_review, opened, reopened, synchronize]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
|
||||
Analysis:
|
||||
|
||||
name: Analyse
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.repository_owner == 'Armbian' }}
|
||||
steps:
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Get changed files
|
||||
id: changed-files
|
||||
uses: tj-actions/changed-files@v39
|
||||
|
||||
- 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: |
|
||||
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
|
||||
if [[ "${file}" = config/kernel/*.config ]]; then
|
||||
kconfig-hardened-check/bin/kconfig-hardened-check -m show_fail -c $file | sed -e 's/^/ /' >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
done
|
17
.github/workflows/labeler.yml
vendored
Normal file
17
.github/workflows/labeler.yml
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
name: "Automatic Labeler"
|
||||
on:
|
||||
- pull_request_target
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
triage:
|
||||
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
|
||||
steps:
|
||||
- uses: actions/labeler@v4
|
||||
with:
|
||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
56
.github/workflows/lint-scripts-pr.yml
vendored
Normal file
56
.github/workflows/lint-scripts-pr.yml
vendored
Normal file
@ -0,0 +1,56 @@
|
||||
name: Lint On Scripts
|
||||
#
|
||||
# Run ShellCheck on all scripts and generates report as build artefact
|
||||
#
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
types: [opened, reopened, edited, synchronize]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
|
||||
Shellcheck:
|
||||
|
||||
name: Shell script analysis
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.repository_owner == 'Armbian' }}
|
||||
steps:
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 2
|
||||
|
||||
- name: Get changed files
|
||||
id: changed-files
|
||||
uses: tj-actions/changed-files@v39
|
||||
|
||||
- name: List all changed files
|
||||
run: |
|
||||
|
||||
# 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.
|
||||
|
||||
bash lib/tools/shellcheck.sh
|
||||
|
||||
ret=0
|
||||
|
||||
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
|
||||
|
||||
if [[ ! "${file}" =~ lib/|extensions/|.py|.service|.rules|.network|.netdev ]]; then
|
||||
if grep -qE "^#\!/.*bash" $file; then
|
||||
|
||||
shellcheck --severity=error $file || ret=$?
|
||||
|
||||
fi
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
exit $ret
|
19
.github/workflows/open-jira-ticket.yml
vendored
Normal file
19
.github/workflows/open-jira-ticket.yml
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
name: Jira Sync
|
||||
on:
|
||||
issues:
|
||||
types: [opened]
|
||||
jobs:
|
||||
sync:
|
||||
name: Sync Items
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Sync
|
||||
uses: igorpecovnik/github-action-issue-to-jira@master
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
jiraHost: armbian.atlassian.net
|
||||
jiraUsername: ${{ secrets.JIRA_USER }}
|
||||
jiraPassword: ${{ secrets.JIRA_PASSWORD }}
|
||||
project: AR
|
||||
assignee: default_assignee
|
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 }}
|
64
.github/workflows/scorecard.yml
vendored
Normal file
64
.github/workflows/scorecard.yml
vendored
Normal file
@ -0,0 +1,64 @@
|
||||
name: Scorecards Security Scan
|
||||
on:
|
||||
# Only the default branch is supported.
|
||||
branch_protection_rule:
|
||||
schedule:
|
||||
# Weekly on Saturdays.
|
||||
- cron: '30 1 * * 6'
|
||||
push:
|
||||
branches: [ main ]
|
||||
|
||||
# Declare default permissions as read only.
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
analysis:
|
||||
if: ${{ github.repository_owner == 'Armbian' }}
|
||||
name: Scorecards analysis
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
# Needed to upload the results to code-scanning dashboard.
|
||||
security-events: write
|
||||
# Used to receive a badge. (Upcoming feature)
|
||||
id-token: write
|
||||
actions: read
|
||||
contents: read
|
||||
|
||||
steps:
|
||||
- name: "Checkout code"
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: "Run analysis"
|
||||
uses: ossf/scorecard-action@v2.2.0
|
||||
with:
|
||||
results_file: results.sarif
|
||||
results_format: sarif
|
||||
# (Optional) Read-only PAT token. Uncomment the `repo_token` line below if:
|
||||
# - you want to enable the Branch-Protection check on a *public* repository, or
|
||||
# - you are installing Scorecards on a *private* repository
|
||||
# To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat.
|
||||
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
|
||||
# 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@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
|
||||
with:
|
||||
name: SARIF file
|
||||
path: results.sarif
|
||||
retention-days: 5
|
||||
|
||||
# Upload the results to GitHub's code scanning dashboard.
|
||||
- name: "Upload to code-scanning"
|
||||
uses: github/codeql-action/upload-sarif@v2
|
||||
#5f532563584d71fdef14ee64d17bafb34f751ce5 # v1.0.26
|
||||
with:
|
||||
sarif_file: results.sarif
|
32
.gitignore
vendored
Normal file
32
.gitignore
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
### Specific to building Armbian ###
|
||||
/.vagrant/
|
||||
ubuntu-*-cloudimg-console.log
|
||||
|
||||
### to ignore changes in a working copy
|
||||
.ignore_changes
|
||||
|
||||
### compile configurations added by users
|
||||
/config-*.conf
|
||||
### but not default (supplied) files
|
||||
!/config-docker.conf
|
||||
!/config-vagrant.conf
|
||||
|
||||
### output directories
|
||||
/.tmp/
|
||||
/output/
|
||||
/cache/
|
||||
/*userpatches*/
|
||||
/userpatches
|
||||
|
||||
### General annoyances ###
|
||||
.DS_Store
|
||||
*~
|
||||
*.swp
|
||||
/__pycache__/*
|
||||
|
||||
# Mainly generated by merge tools like 'meld'
|
||||
*.orig
|
||||
|
||||
# Dockerfile and .dockerignore is generated by docker.sh
|
||||
Dockerfile
|
||||
.dockerignore
|
6
.vscode/extensions.json
vendored
Normal file
6
.vscode/extensions.json
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"recommendations": [
|
||||
"editorconfig.editorconfig",
|
||||
"foxundermoon.shell-format"
|
||||
]
|
||||
}
|
5
.vscode/settings.json
vendored
Normal file
5
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"[*.inc]": {
|
||||
"editor.defaultFormatter": "foxundermoon.shell-format"
|
||||
}
|
||||
}
|
141
CONTRIBUTING.md
Normal file
141
CONTRIBUTING.md
Normal file
@ -0,0 +1,141 @@
|
||||
# Contributing to Armbian Linux build framework
|
||||
|
||||
We would love to have you join the Armbian community! Below summarizes the processes that we follow.
|
||||
|
||||
## Reporting issues
|
||||
|
||||
Before [reporting an issue](https://github.com/armbian/build/issues/new/choose), check our [backlog of open issues](https://github.com/armbian/build/issues) and [pull requests](https://github.com/armbian/build/pulls) to see if someone else has already reported or working on it. If an issues is already open, feel free to add your scenario, or additional information, to the discussion. Or simply "subscribe" to it to be notified when it is updated.
|
||||
|
||||
If you find a new issue with the project please let us hear about it! The most important aspect of a bug report is that it includes enough information for us to reproduce it. So, please include as much detail as possible and try to remove the extra stuff that does not really relate to the issue itself. The easier it is for us to reproduce it, the faster it will be fixed!
|
||||
|
||||
Please do not include any private/sensitive information in your issue! We are not responsible for your privacy, this is open source software.
|
||||
|
||||
## Working on issues
|
||||
|
||||
Once you have decided to contribute to Armbian by working on an issue, check our backlog of open (or [JIRA](https://armbian.atlassian.net/jira/dashboards/10000) issues open by the team) looking for any that do not have an "In Progress" label attached to it. Often issues will be assigned to someone, to be worked on at a later time. If you have the time to work on the issue now add yourself as an assignee, and set the "In Progress" label if you are a member of the “Containers” GitHub organization. If you can not set the label, just add a quick comment in the issue asking that the “In Progress” label be set and a member will do so for you.
|
||||
|
||||
Please be sure to review the [Development Code Review Procedures and Guidelines](https://docs.armbian.com/Development-Code_Review_Procedures_and_Guidelines/) as well before you begin.
|
||||
|
||||
## Contributing
|
||||
|
||||
This section describes how to start contributing to Armbian.
|
||||
|
||||
### Prepare your environment
|
||||
|
||||
* Create an Ubuntu 22.04 VM with VirtualBox or any other suitable hypervisor.
|
||||
* Install [Github CLI tool](https://github.com/cli/cli/blob/trunk/docs/install_linux.md)
|
||||
* Configure git:
|
||||
|
||||
```bash
|
||||
git config --global user.email "your@email.com"
|
||||
git config --global user.name "Your Name"
|
||||
```
|
||||
|
||||
* Generate GPG key
|
||||
|
||||
```bash
|
||||
gpg --generate-key
|
||||
```
|
||||
|
||||
* Generate Github login [token](https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/creating-a-personal-access-token)
|
||||
* Login to Github (you only have to do the steps above once)
|
||||
|
||||
```bash
|
||||
gh auth login --with-token <<< 'your_token'
|
||||
```
|
||||
|
||||
### Fork and clone Armbian
|
||||
|
||||
* Fork armbian/build, clone and add remote
|
||||
|
||||
```bash
|
||||
gh repo fork armbian/build --clone=true --remote=true
|
||||
```
|
||||
|
||||
* Create branch
|
||||
|
||||
```bash
|
||||
cd build
|
||||
git checkout -b your_branch_name # change branch name for your patch
|
||||
```
|
||||
|
||||
### Generate new patch template
|
||||
|
||||
* Compile Armbian (this use case is to change something in the device tree and test the built image)
|
||||
|
||||
```bash
|
||||
./compile.sh CREATE_PATCHES="yes"
|
||||
```
|
||||
|
||||
* Full OS image for flashing
|
||||
* Do not change the kernel configuration
|
||||
* Choose a board
|
||||
* Choose a kernel
|
||||
* Choose a release package base
|
||||
* Choose image type
|
||||
* Configuring apt-cacher-ng
|
||||
* Wait for prompt to make u-boot changes (press Enter after making changes in specified directory)
|
||||
|
||||
```bash
|
||||
[ o.k. ] * [l][c] enable-distro-bootcmd.patch
|
||||
[ warn ] Make your changes in directory: [ /home/yourhome/build/cache/sources/u-boot-odroidxu/odroidxu4-v2017.05 ]
|
||||
[ warn ] Press <Enter> after you are done [ waiting ]
|
||||
```
|
||||
|
||||
### Work on your patch
|
||||
|
||||
* Open another terminal or files window
|
||||
* In this case I want to add gpio-line-names to the Odroid XU4 device tree when prompted to do so
|
||||
|
||||
```bash
|
||||
sudo nano build/cache/sources/linux-odroidxu4/odroid-5.4.y/arch/arm/boot/dts/exynos5420-pinctrl.dtsi
|
||||
```
|
||||
|
||||
* Wait for prompt to make kernel changes (press Enter after making changes in specified directory)
|
||||
|
||||
```bash
|
||||
[ warn ] Make your changes in this directory: [ /home/yourhome/build/cache/sources/linux-odroidxu4/odroid-5.4.y ]
|
||||
[ warn ] Press <Enter> after you are done [ waiting ]
|
||||
```
|
||||
|
||||
* Test the changes you made on your board
|
||||
* Mine was located in `/home/yourhome/build/output/images/Armbian_21.02.0-trunk_Odroidxu4_focal_current_5.4.83.img`
|
||||
* Rename patch to something meaningful and move to proper location
|
||||
|
||||
```bash
|
||||
mv output/patch/kernel-odroidxu4-current.patch patch/kernel/odroidxu4-current/add-gpio-line-names.patch
|
||||
```
|
||||
|
||||
Next, you can prepare to submit your patch to the Armbian project.
|
||||
|
||||
## Submitting pull requests
|
||||
|
||||
No Pull Request (PR) is too small! Typos, additional comments in the code, new test cases, bug fixes, new features, more documentation, ... everything is welcome!
|
||||
|
||||
While bug fixes can first be identified via an "issue", that is not required for things mentioned above. It is fine to just open up a PR with the fix, but make sure you include the same information you would have included in an actual issue - like how to reproduce it.
|
||||
|
||||
PRs for new features should include some background on what use cases the new code is trying to address. When possible and when it makes sense, try to break-up larger PRs into smaller parts - it is easier to [review](https://github.com/armbian/build/pulls?q=is%3Apr+is%3Aopen+review%3Arequired+label%3A%22Ready+%3Aarrow_right%3A%22) smaller code changes. But only if those smaller ones make sense as stand-alone PRs.
|
||||
|
||||
You should squash your commits into logical pieces of work that can be reviewed separate from the rest of the PRs. Squashing down to just one commit is ok as well, since in the end the entire PR will be reviewed anyway. If in doubt, squash.
|
||||
|
||||
### Describe your changes in commit messages
|
||||
|
||||
Describe your problem(s). Whether your patch is a one-line bug fix or 5000 lines including a new feature, there must be an underlying problem that motivated you to do this work. Your description should work to convince the reviewer that there is a problem worth fixing and that it makes sense for them to read past the first paragraph. This means providing comprehensive details about the issue, including, but not limited to:
|
||||
* How the problem presented itself
|
||||
* How to replicate the problem
|
||||
* Provide 'dmesg' and/or 'armbianmonitor -u' output showing board used and any console output surrounding the issue
|
||||
* Why you feel it is important for this issue to be resolved
|
||||
|
||||
## Communications
|
||||
|
||||
For general questions and discussion, please use the IRC `#armbian`, `#armbian-devel` or `#armbian-desktop` on Libera.Chat or [Discord server](http://discord.armbian.com). Most IRC and Discord channels are bridged and recorded.
|
||||
|
||||
For discussions around issues/bugs and features, you can use the [GitHub issues](https://github.com/armbian/build/issues), the [PR tracking system](https://github.com/armbian/build/pulls) or our [Jira ticketing system](https://armbian.atlassian.net/jira/software/c/projects/AR/issues/?filter=allissues).
|
||||
|
||||
## Other ways to contribute
|
||||
|
||||
* [Become a new board maintainer](https://docs.armbian.com/Board_Maintainers_Procedures_and_Guidelines/)
|
||||
* [Apply for one of the position](https://forum.armbian.com/staffapplications/)
|
||||
* [Help us covering costs](https://forum.armbian.com/subscriptions/)
|
||||
* [Help community members in the Forum](https://forum.armbian.com/)
|
||||
* [Check forum announcements section for any requests for help from the community](https://forum.armbian.com/forum/37-announcements/)
|
2
CREDITS.md
Normal file
2
CREDITS.md
Normal file
@ -0,0 +1,2 @@
|
||||
[https://github.com/orgs/armbian/people](https://github.com/orgs/armbian/people)
|
||||
[https://www.armbian.com/authors](https://www.armbian.com/authors)
|
339
LICENSE
Normal file
339
LICENSE
Normal file
@ -0,0 +1,339 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc., <http://fsf.org/>
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
{description}
|
||||
Copyright (C) {year} {fullname}
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
{signature of Ty Coon}, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
256
README.md
Normal file
256
README.md
Normal file
@ -0,0 +1,256 @@
|
||||
<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><h3>
|
||||
$${\color{black}NEXT\space \color{red}gen}$$
|
||||
</h3>
|
||||
|
||||
## Table of contents
|
||||
|
||||
- [What does this project do?](#what-does-this-project-do)
|
||||
- [Getting started](#getting-started)
|
||||
- [Compared with industry standards](#compared-with-industry-standards)
|
||||
- [Download prebuilt images](#download-prebuilt-images)
|
||||
- [Project structure](#project-structure)
|
||||
- [Contribution](#contribution)
|
||||
- [Support](#support)
|
||||
- [Contact](#contact)
|
||||
- [Contributors](#contributors)
|
||||
- [Partners](#armbian-partners)
|
||||
- [License](#license)
|
||||
|
||||
## What does this project do?
|
||||
|
||||
- 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.
|
||||
|
||||
## Getting started
|
||||
|
||||
### Basic requirements
|
||||
|
||||
- x86_64 or aarch64 machine with at least 2GB of memory and ~35GB of disk space for a virtual machine, [WSL2](https://learn.microsoft.com/en-us/windows/wsl/install), container or bare metal installation
|
||||
- Ubuntu Jammy 22.04.x amd64 or aarch64 for native building or any Docker capable amd64 / aarch64 Linux for containerised
|
||||
- Superuser rights (configured sudo or root access).
|
||||
- Make sure all your system components are up-to-date. Outdated Docker binaries, for example, can cause trouble.
|
||||
|
||||
### Start with the build script
|
||||
|
||||
```bash
|
||||
apt-get -y install git
|
||||
git clone --depth=1 --branch=main https://github.com/armbian/build
|
||||
cd build
|
||||
./compile.sh
|
||||
```
|
||||
|
||||
### BUILD Allwinner H616 quad core 2GB RAM SoC WiFi (blueberry)
|
||||
### 构建Allwinner H616四核2GB RAM SoC WiFi(蓝莓)
|
||||
```bash
|
||||
apt-get -y install git
|
||||
git clone --depth=1 --branch=main https://git.aixiao.me/aixiao/build.git
|
||||
./compile.sh build BOARD=blueberry BRANCH=legacy BUILD_DESKTOP=no BUILD_MINIMAL=yes KERNEL_CONFIGURE=yes RELEASE=bookworm
|
||||
```
|
||||
|
||||
|
||||
<a href="#how-to-build-an-image-or-a-kernel"><img src=".github/README.gif" alt="Armbian logo" width="100%"></a>
|
||||
|
||||
- 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.
|
||||
|
||||
### Build parameter examples
|
||||
|
||||
Show work-in-progress areas in interactive mode:
|
||||
|
||||
```bash
|
||||
./compile.sh EXPERT="yes"
|
||||
```
|
||||
|
||||
Build minimal CLI Armbian Focal image for Orangepi Zero. Use modern kernel and write image to the SD card:
|
||||
|
||||
```bash
|
||||
./compile.sh \
|
||||
BOARD=orangepizero \
|
||||
BRANCH=current \
|
||||
RELEASE=focal \
|
||||
BUILD_MINIMAL=yes \
|
||||
BUILD_DESKTOP=no \
|
||||
KERNEL_CONFIGURE=no \
|
||||
CARD_DEVICE="/dev/sdX"
|
||||
```
|
||||
|
||||
More information:
|
||||
|
||||
- [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;
|
||||
|
||||
## Download prebuilt images
|
||||
|
||||
- quarterly released **supported** builds — <https://www.armbian.com/download>
|
||||
- weekly released **unsupported** community builds — <https://github.com/armbian/community>
|
||||
- upon code change **unsupported** development builds — <https://github.com/armbian/build/releases>
|
||||
|
||||
## Compared with industry standards
|
||||
|
||||
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 |
|
||||
|
||||
## 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
|
||||
|
||||
### You don't need to be a programmer to help!
|
||||
|
||||
- The easiest way to help is by "Starring" our repository - it helps more people find our code.
|
||||
- [Check out our list of volunteer positions](https://forum.armbian.com/staffapplications/) and choose what you want to do ❤️
|
||||
- [Seed torrents](https://forum.armbian.com/topic/4198-seed-our-torrents/)
|
||||
- Help with [forum moderating](https://forum.armbian.com/topic/12631-help-on-forum-moderating/)
|
||||
- [Project administration](https://forum.armbian.com/forum/39-armbian-project-administration/)
|
||||
- [Donate](https://www.armbian.com/donate).
|
||||
|
||||
### Want to become a maintainer?
|
||||
|
||||
Please review the [Board Maintainers Procedures and Guidelines](https://docs.armbian.com/Board_Maintainers_Procedures_and_Guidelines/), and if you can meet the requirements and find a board on the [Board Maintainers](https://docs.armbian.com/Release_Board-Maintainers/) list with less than two maintainers, then please apply using the linked form.
|
||||
|
||||
### Want to become a developer?
|
||||
|
||||
To help with development, you should first review the [Development Code Review Procedures and Guidelines](https://docs.armbian.com/Development-Code_Review_Procedures_and_Guidelines/). Then you can review the pre-made Jira dashboards and additional resources provided below to find open tasks and how you can assist:
|
||||
|
||||
- [pull requests that need a review](https://github.com/armbian/build/pulls?q=is%3Apr+is%3Aopen+review%3Arequired)
|
||||
- dashboard for [junior](https://armbian.atlassian.net/jira/dashboards/10000) and [seniors](https://armbian.atlassian.net/jira/dashboards/10103) developers
|
||||
- [documentation](https://docs.armbian.com/)
|
||||
- [continuous integration](https://docs.armbian.com/Process_CI/)
|
||||
|
||||
## Support
|
||||
|
||||
For commercial or prioritized assistance:
|
||||
- Book an hour of [professional consultation](https://calendly.com/armbian/consultation)
|
||||
- Consider becoming a project partner. Reach us at <https://armbian.com/contact>. Alternatively, 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
|
||||
- Discord: [https://discord.gg/armbian](https://discord.gg/armbian)
|
||||
- Follow [@armbian](https://twitter.com/armbian) on Twitter, [Fosstodon](https://fosstodon.org/@armbian) 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!
|
||||
|
||||
<a href="https://github.com/armbian/build/graphs/contributors">
|
||||
<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 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.
|
53
compile.sh
Executable file
53
compile.sh
Executable file
@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# Copyright (c) 2013-2023 Igor Pecovnik, igor@armbian.com
|
||||
#
|
||||
# This file is a part of the Armbian Build Framework
|
||||
# https://github.com/armbian/build/
|
||||
|
||||
# DO NOT EDIT THIS FILE
|
||||
# use configuration files like config-default.conf to set the build configuration
|
||||
# check Armbian documentation https://docs.armbian.com/ for more info
|
||||
|
||||
#set -o pipefail # trace ERR through pipes - will be enabled "soon"
|
||||
#set -o nounset ## set -u : exit the script if you try to use an uninitialised variable - one day will be enabled
|
||||
set -e
|
||||
set -o errtrace # trace ERR through - enabled
|
||||
set -o errexit ## set -e : exit the script if any statement returns a non-true return value - enabled
|
||||
# Important, go read http://mywiki.wooledge.org/BashFAQ/105 NOW!
|
||||
|
||||
SRC="$(dirname "$(realpath "${BASH_SOURCE[0]}")")"
|
||||
cd "${SRC}" || exit
|
||||
|
||||
# check for whitespace in ${SRC} and exit for safety reasons
|
||||
grep -q "[[:space:]]" <<< "${SRC}" && {
|
||||
echo "\"${SRC}\" contains whitespace. Not supported. Aborting." >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Sanity check.
|
||||
if [[ ! -f "${SRC}"/lib/single.sh ]]; then
|
||||
echo "Error: missing build directory structure"
|
||||
echo "Please clone the full repository https://github.com/armbian/build/"
|
||||
exit 255
|
||||
fi
|
||||
|
||||
# shellcheck source=lib/single.sh
|
||||
source "${SRC}"/lib/single.sh
|
||||
|
||||
# initialize logging variables. (this does not consider parameters at this point, only environment variables)
|
||||
logging_init
|
||||
|
||||
# initialize the traps
|
||||
traps_init
|
||||
|
||||
# make sure git considers our build system dir as a safe dir (only if actually building)
|
||||
[[ "${CONFIG_DEFS_ONLY}" != "yes" && "${PRE_PREPARED_HOST}" != "yes" ]] && git_ensure_safe_directory "${SRC}"
|
||||
|
||||
# Execute the main CLI entrypoint.
|
||||
cli_entrypoint "$@"
|
||||
|
||||
# Log the last statement of this script for debugging purposes.
|
||||
display_alert "Armbian build script exiting" "very last thing" "cleanup"
|
18
config/aptly-temp.conf
Normal file
18
config/aptly-temp.conf
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"rootDir": "/tmp/aptly-temp/",
|
||||
"downloadConcurrency": 4,
|
||||
"downloadSpeedLimit": 0,
|
||||
"architectures": [],
|
||||
"dependencyFollowSuggests": false,
|
||||
"dependencyFollowRecommends": false,
|
||||
"dependencyFollowAllVariants": false,
|
||||
"dependencyFollowSource": false,
|
||||
"gpgDisableSign": false,
|
||||
"gpgDisableVerify": false,
|
||||
"gpgProvider": "internal",
|
||||
"downloadSourcePackages": false,
|
||||
"ppaDistributorID": "ubuntu",
|
||||
"ppaCodename": "",
|
||||
"S3PublishEndpoints": {},
|
||||
"SwiftPublishEndpoints": {}
|
||||
}
|
52
config/armbian.key
Normal file
52
config/armbian.key
Normal file
@ -0,0 +1,52 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1
|
||||
|
||||
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-----
|
121
config/boards/README.md
Normal file
121
config/boards/README.md
Normal file
@ -0,0 +1,121 @@
|
||||
# Internal build options
|
||||
|
||||
These options are used to declare variables used by the armbian build system to build a board-specific configuration.
|
||||
|
||||
If you are unsure about the documentation then invoke `$ grep -r -A5 -B5 "BUILD_OPTION_HERE" /path/to/local/armbian/build/repository` to get context to the option from the source code.
|
||||
|
||||
- **BOARD_NAME** ( company product version ): defines the board name used in welcome text, hostname and others relevant usage.The general convention is `COMPANY PRODUCT VERSION` - Often used as part of the scripting logic (namely for hacks) so follow the name declared in the board configuration.
|
||||
- Example: `OLIMEX Teres A64`
|
||||
- **BOARDFAMILY** ( board-family ): defines the family of the board to apply board-specific configuration during build time such as adjustments for the temperature, LED behavior, etc..
|
||||
- Refer to [sources table](https://github.com/armbian/build/blob/master/config/sources/README.md)
|
||||
- Example: `sun50iw1`
|
||||
- **BOARD_MAINTAINER** ( space-separated list of Github login ): Declares the maintainer of the board
|
||||
- **BOOTCONFIG** ( u-boot identifier ): declares the name of the u-boot configuration for the build without the '\_defconifig' suffix
|
||||
- Refer to the [u-boot source tree](https://github.com/u-boot/u-boot/tree/master/configs) to find configuration for the board
|
||||
- Example: `teres-i`
|
||||
- **BOOTSIZE** ( int ): Declares the size of the boot partitin in Mib
|
||||
- Default: `256`
|
||||
- Example: `256`
|
||||
- **BOOT_LOGO** ( string ): defines whether to use a eyecandy during bootloader phase
|
||||
- Values:
|
||||
- yes: Show the armbian boot logo
|
||||
- desktop: Show the armbian boot logo when `BUILD_DESKTOP` is set to `yes`
|
||||
- Default: `not set`
|
||||
- **CRUSTCONFIG** ( crust identifier ): declares the name of the crust defconfig configuration for the build. Specify only if the board has Allwinner CPU with AR100 coprocessor and SOC is supported by [crust firmware](https://github.com/crust-firmware/crust).
|
||||
- Refer to the [crust source tree](https://github.com/crust-firmware/crust/tree/master/configs) to find configuration for the board
|
||||
- Example: `nanopi_m1_defconfig`
|
||||
- **IMAGE_PARTITION_TABLE** ( string ): defines which disklabel type to use
|
||||
- Values:
|
||||
- msdos: Use dos/msdos disklabel
|
||||
- gpt: Use GPT disklabel
|
||||
- Default: msdos
|
||||
- **BOOTFS_TYPE** ( filesystem ): defines the expected filesystem for the boot file system
|
||||
- Values:
|
||||
- none: Uses /boot on the root filesystem
|
||||
- ext4: Use the [Fourth Extended Filesystem](https://en.wikipedia.org/wiki/Ext4)
|
||||
- ext2: Use the [Second Extended Filesystem](https://en.wikipedia.org/wiki/Ext2)
|
||||
- fat: Use the [File Allocation Table 32](https://en.wikipedia.org/wiki/File_Allocation_Table#FAT32)
|
||||
- Default: `ext4`
|
||||
- **DEFAULT_OVERLAYS** ( space-separated list list of dtb overlays ): defines dtb overlays that are enabled by default. There is a basic dtb for each family but they have different level of used SoC features. Board X might have four USB ports but others might not. Therefore other does not need to have those enabled while board X does.
|
||||
- Examples:
|
||||
- usbhost0
|
||||
- usbhost2
|
||||
- usbhost3
|
||||
- cir
|
||||
- analog-codec
|
||||
- gpio-regulator-1.3v
|
||||
- uart1
|
||||
- **DEFAULT_CONSOLE** ( string ): declares default console for the boot output
|
||||
- Values:
|
||||
- serial: Output boot messages to serial console
|
||||
- Default: `not set`
|
||||
- **MODULES** ( space-separated list of kernel modules ): appends modules to the kernel command line for **all** kernel branches
|
||||
- **MODULES_LEGACY** ( space-separated list of kernel modules ): appends modules to the kernel command line for **legacy** kernel
|
||||
- **MODULES_CURRENT** ( space-separated list of kernel modules ): appends modules to the kernel command line for **current** kernel
|
||||
- **MODULES_EDGE** ( space-separated list of kernel modules ): appends modules to the kernel command line for **edge** kernel
|
||||
- **MODULES_BLACKLIST** ( space-separated list of kernel modules ): appends modules to the kernel's blacklist/deny list for **all** kernel branches
|
||||
- **MODULES_BLACKLIST_LEGACY** ( space-separated list of kernel modules ): appends modules to the kernel's blacklist/deny list for **legacy** kernel
|
||||
- **MODULES_BLACKLIST_CURRENT** ( space-separated list of kernel modules ): appends modules to the kernel's blacklist/deny list for **current** kernel
|
||||
- **MODULES_BLACKLIST_EDGE** ( space-separated list of kernel modules ): appends modules to the kernel's blacklist/deny list for **edge** kernel
|
||||
- **SERIALCON** ( comma-separated list of terminal interfaces [:bandwidth] ): declares which serial console should be used on the system
|
||||
- Example: `ttyS0:15000000,ttyGS1`
|
||||
- **SKIP_ARMBIAN_REPO** ( boolean ): Whether to include the armbian repository in the built image
|
||||
- Values:
|
||||
- yes: Include (default)
|
||||
- no: Do NO include
|
||||
- **HAS_VIDEO_OUTPUT** ( boolean ): defines whether the system has video output such as eye candy, bootsplash, etc..
|
||||
- Values:
|
||||
- yes: Enable video-related configuration
|
||||
- no: Disable video-related configuration
|
||||
- **KERNEL_TARGET** ( comma-separated list of kernel releases or branches ): declares which kernels should be used for the build
|
||||
- Values:
|
||||
- legacy: Use legacy kernel
|
||||
- current: Use current kernel
|
||||
- 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 (internal switch)
|
||||
- **FULL_DESKTOP** ( boolean ): defines whether to install desktop stack of applications such as office, thunderbird, etc..
|
||||
- Values:
|
||||
- yes: install desktop stack
|
||||
- no: doesn't install desktop stack
|
||||
- **DESKTOP_AUTOLOGIN** ( boolean ): Toggle desktop autologin
|
||||
- Values:
|
||||
- yes: Automatically login to the desktop
|
||||
- no: disable desktop autologin
|
||||
- Default: `no`
|
||||
- **PACKAGE_LIST_BOARD** ( space-separated list of packages ): Declares which packages should be installed on the system
|
||||
- **PACKAGE_LIST_BOARD_REMOVE** ( space-separated list of packages ): Declares packages to be removed from the system
|
||||
- **BOOT_FDT_FILE** ( device tree configuration ): Force to load specific device tree configuration if different from the one defined by u-boot
|
||||
- Values:
|
||||
- [family]/[file.dtb]: Replace device tree with the one specified
|
||||
- none: Do not use device tree configuration
|
||||
- Example: `rockchip/rk3568-rock-3-a.dtb`
|
||||
- **CPUMIN** ( minimum CPU frequency to scale in Hz ): Set minimal CPU frequency of the system
|
||||
- Default: Differs per family `480000` for sunxi8 boards
|
||||
- **CPUMAX** ( minimum CPU frequency to scale in Hz ): Set maximal CPU frequency of the system
|
||||
- Default: Differs per family `1400000` for sunxi8 boards
|
||||
- **FORCE_BOOTSCRIPT_UPDATE** ( boolean ): Force bootscript installation if they are not present
|
||||
- Values:
|
||||
- yes: Enable
|
||||
- no: Disable
|
||||
- **OVERLAY_PREFIX** ( prefix ): Prefix for device tree and overlay file paths which will be set while creating an image
|
||||
- Example: `sun8i-h3`
|
||||
|
||||
## Deprecated
|
||||
|
||||
- **BOOTCONFIG_LEGACY** ( u-boot identifier ): use **BOOTCONFIG** instead
|
||||
- **BOOTCONFIG_CURRENT** ( u-boot identifier ): use **BOOTCONFIG** instead
|
||||
- **BOOTCONFIG_EDGE** ( u-boot identifier ): use **BOOTCONFIG** instead
|
||||
- **PACKAGE_LIST_BOARD_DESKTOP** ( space-separated list of packages ): use **PACKAGE_LIST_BOARD** instead
|
||||
- **PACKAGE_LIST_BOARD_DESKTOP_REMOVE** ( space-separated list of packages ): use **PACKAGE_LIST_BOARD** instead
|
||||
|
||||
## File extensions
|
||||
Statuses displayed at the login prompt:
|
||||
|
||||
|
||||
|file type|description|
|
||||
|:--|:--|
|
||||
|.csc or .tvb |community creations or no active maintainer|
|
||||
|.wip |work in progress|
|
||||
|.eos |end of life|
|
23
config/boards/aml-s9xx-box.tvb
Normal file
23
config/boards/aml-s9xx-box.tvb
Normal file
@ -0,0 +1,23 @@
|
||||
# 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"
|
||||
SERIALCON="ttyAML0"
|
||||
FULL_DESKTOP="yes"
|
||||
ASOUND_STATE="asound.state.mesongx"
|
||||
BOOT_LOGO="desktop"
|
||||
SRC_CMDLINE='rootflags=data=writeback console=ttyAML0,115200n8 console=tty0'
|
||||
|
||||
|
||||
function post_family_tweaks__config_aml-s9xx-box_bsp() {
|
||||
|
||||
display_alert "$BOARD" "Installing bsp files" "info"
|
||||
|
||||
cp -r $SRC/packages/bsp/aml-s9xx-box/boot $SDCARD
|
||||
install -m 755 $SRC/packages/bsp/aml-s9xx-box/root/install-aml.sh $SDCARD/root
|
||||
install -m 644 $SRC/packages/bsp/aml-s9xx-box/root/fstab.template $SDCARD/root
|
||||
}
|
6
config/boards/bananapi.csc
Normal file
6
config/boards/bananapi.csc
Normal file
@ -0,0 +1,6 @@
|
||||
# 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"
|
20
config/boards/bananapicm4io.conf
Normal file
20
config/boards/bananapicm4io.conf
Normal file
@ -0,0 +1,20 @@
|
||||
# Amlogic A311D 4GB RAM eMMC GBE USB3
|
||||
BOARD_NAME="Banana Pi CM4IO"
|
||||
BOARDFAMILY="meson-g12b"
|
||||
BOARD_MAINTAINER="pyavitz"
|
||||
BOOTCONFIG="bananapi-cm4-cm4io_defconfig"
|
||||
KERNEL_TARGET="current,edge"
|
||||
FULL_DESKTOP="yes"
|
||||
SERIALCON="ttyAML0"
|
||||
BOOT_LOGO="desktop"
|
||||
BOOT_FDT_FILE="amlogic/meson-g12b-bananapi-cm4-cm4io.dtb"
|
||||
BOOTBRANCH_BOARD="tag:v2023.01"
|
||||
BOOTPATCHDIR="v2023.01"
|
||||
|
||||
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/rtl_bt/* "${destination}"/lib/firmware/updates/rtl_bt/
|
||||
fi
|
||||
}
|
6
config/boards/bananapim1plus.csc
Normal file
6
config/boards/bananapim1plus.csc
Normal file
@ -0,0 +1,6 @@
|
||||
# Allwinner A20 dual core 1Gb SoC GBE WiFi 1xSATA
|
||||
BOARD_NAME="Banana Pi M1+"
|
||||
BOARDFAMILY="sun7i"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="bananapi_m1_plus_defconfig"
|
||||
KERNEL_TARGET="legacy,current,edge"
|
7
config/boards/bananapim2.eos
Normal file
7
config/boards/bananapim2.eos
Normal file
@ -0,0 +1,7 @@
|
||||
# A31s quad core 1Gb SoC Wifi
|
||||
BOARD_NAME="Banana Pi M2"
|
||||
BOARDFAMILY="sun6i"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="Sinovoip_BPI_M2_defconfig"
|
||||
OVERLAY_PREFIX="sun6i-a31s"
|
||||
KERNEL_TARGET="legacy,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"
|
20
config/boards/bananapim2pro.csc
Normal file
20
config/boards/bananapim2pro.csc
Normal file
@ -0,0 +1,20 @@
|
||||
# Amlogic S905X3 quad core 2-4GB RAM SoC eMMC GBE USB3 SPI Wifi
|
||||
BOARD_NAME="Banana Pi M2Pro"
|
||||
BOARDFAMILY="meson-sm1"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="bananapi-m2-pro_defconfig"
|
||||
BOOT_FDT_FILE="amlogic/meson-sm1-bananapi-m2-pro.dtb"
|
||||
KERNEL_TARGET="current,edge"
|
||||
FULL_DESKTOP="yes"
|
||||
SERIALCON="ttyAML0"
|
||||
BOOT_LOGO="desktop"
|
||||
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"
|
||||
}
|
||||
|
||||
function post_uboot_custom_postprocess__bpi-m2-pro() {
|
||||
uboot_g12_postprocess "$SRC"/cache/sources/amlogic-boot-fip/bananapi-m2-pro g12a
|
||||
}
|
20
config/boards/bananapim2s.conf
Normal file
20
config/boards/bananapim2s.conf
Normal file
@ -0,0 +1,20 @@
|
||||
# Amlogic A311D 4GB RAM eMMC 2xGBE USB3
|
||||
BOARD_NAME="Banana Pi M2S"
|
||||
BOARDFAMILY="meson-g12b"
|
||||
BOARD_MAINTAINER="pyavitz jeanrhum"
|
||||
BOOTCONFIG="bananapi-m2s_defconfig"
|
||||
KERNEL_TARGET="current,edge"
|
||||
FULL_DESKTOP="yes"
|
||||
SERIALCON="ttyAML0"
|
||||
BOOT_LOGO="desktop"
|
||||
BOOT_FDT_FILE="amlogic/meson-g12b-a311d-bananapi-m2s.dtb"
|
||||
BOOTBRANCH_BOARD="tag:v2023.07.02"
|
||||
BOOTPATCHDIR="v2023.07.02"
|
||||
|
||||
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/rtl_bt/* "${destination}"/lib/firmware/updates/rtl_bt/
|
||||
fi
|
||||
}
|
8
config/boards/bananapim2ultra.csc
Normal file
8
config/boards/bananapim2ultra.csc
Normal file
@ -0,0 +1,8 @@
|
||||
# Allwinner R40 quad core 2Gb SoC Wifi eMMC
|
||||
BOARD_NAME="Banana Pi M2 Ultra"
|
||||
BOARDFAMILY="sun8i"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="Bananapi_M2_Ultra_defconfig"
|
||||
OVERLAY_PREFIX="sun8i-r40"
|
||||
KERNEL_TARGET="current,edge"
|
||||
KERNEL_TEST_TARGET="current"
|
9
config/boards/bananapim2zero.csc
Normal file
9
config/boards/bananapim2zero.csc
Normal file
@ -0,0 +1,9 @@
|
||||
# Allwinner H2+ quad core 512MB SoC Wi-Fi/BT
|
||||
BOARD_NAME="Banana Pi M2 Zero"
|
||||
BOARDFAMILY="sun8i"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="bananapi_m2_zero_defconfig"
|
||||
MODULES_LEGACY="g_serial"
|
||||
MODULES_CURRENT="g_serial"
|
||||
SERIALCON="ttyS0,ttyGS0"
|
||||
KERNEL_TARGET="legacy,current,edge"
|
7
config/boards/bananapim3.conf
Normal file
7
config/boards/bananapim3.conf
Normal file
@ -0,0 +1,7 @@
|
||||
# Allwinner A83T octa core 2Gb SoC Wifi
|
||||
BOARD_NAME="Banana Pi M3"
|
||||
BOARDFAMILY="sun8i"
|
||||
BOARD_MAINTAINER="AaronNGray"
|
||||
BOOTCONFIG="Sinovoip_BPI_M3_defconfig"
|
||||
OVERLAY_PREFIX="sun8i-a83t"
|
||||
KERNEL_TARGET="legacy,current,edge"
|
28
config/boards/bananapim5.conf
Normal file
28
config/boards/bananapim5.conf
Normal file
@ -0,0 +1,28 @@
|
||||
# Amlogic S905X3 quad core 2-4GB RAM SoC eMMC GBE USB3 SPI
|
||||
BOARD_NAME="Banana Pi M5"
|
||||
BOARDFAMILY="meson-sm1"
|
||||
BOARD_MAINTAINER="bretmlw"
|
||||
BOOTCONFIG="bananapi-m5_defconfig"
|
||||
BOOT_FDT_FILE="amlogic/meson-sm1-bananapi-m5.dtb"
|
||||
KERNEL_TARGET="current,edge"
|
||||
FULL_DESKTOP="yes"
|
||||
SERIALCON="ttyAML0"
|
||||
BOOT_LOGO="desktop"
|
||||
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"
|
||||
}
|
||||
|
||||
function post_uboot_custom_postprocess__bpi-m5() {
|
||||
uboot_g12_postprocess "$SRC"/cache/sources/amlogic-boot-fip/bananapi-m5 g12a
|
||||
}
|
||||
|
||||
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/rtl_bt/* "${destination}"/lib/firmware/updates/rtl_bt/
|
||||
fi
|
||||
}
|
8
config/boards/bananapim64.conf
Normal file
8
config/boards/bananapim64.conf
Normal file
@ -0,0 +1,8 @@
|
||||
# Allwinner A64 quad core 2GB RAM SoC WiFi/BT eMMC GBE
|
||||
BOARD_NAME="Banana Pi M64"
|
||||
BOARDFAMILY="sun50iw1"
|
||||
BOARD_MAINTAINER="devdotnetorg"
|
||||
BOOTCONFIG_DEFAULT="sun50iw1p1_config"
|
||||
BOOTCONFIG="bananapi_m64_defconfig"
|
||||
KERNEL_TARGET="legacy,current,edge"
|
||||
CRUSTCONFIG="a64_defconfig"
|
7
config/boards/bananapipro.conf
Normal file
7
config/boards/bananapipro.conf
Normal file
@ -0,0 +1,7 @@
|
||||
# Allwinner A20 dual core 1GB RAM SoC 1xSATA GBE Wifi
|
||||
BOARD_NAME="Banana Pi Pro"
|
||||
BOARDFAMILY="sun7i"
|
||||
BOARD_MAINTAINER="teknoid"
|
||||
BOOTCONFIG="Bananapro_defconfig"
|
||||
KERNEL_TARGET="legacy,current,edge"
|
||||
KERNEL_TEST_TARGET="current,edge"
|
7
config/boards/bananapir2.csc
Normal file
7
config/boards/bananapir2.csc
Normal file
@ -0,0 +1,7 @@
|
||||
# Mediatek MT7623n quad core 2GB mPci 2xSATA 2xUSB3.0 5xGBE
|
||||
BOARD_NAME="Banana Pi R2"
|
||||
BOARDFAMILY="mt7623"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="mt7623n_bpir2_defconfig"
|
||||
HAS_VIDEO_OUTPUT="no"
|
||||
KERNEL_TARGET="legacy"
|
13
config/boards/bananapir2pro.csc
Normal file
13
config/boards/bananapir2pro.csc
Normal file
@ -0,0 +1,13 @@
|
||||
# Rockchip RK3568 quad core 2GB-4GB 5GBE eMMC SATA USB3 Mini PCIE M.2 key-e
|
||||
BOARD_NAME="Banana Pi R2 Pro"
|
||||
BOARDFAMILY="media"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="bpi-r2pro-rk3568_defconfig"
|
||||
KERNEL_TARGET="current,edge"
|
||||
FULL_DESKTOP="yes"
|
||||
BOOT_LOGO="desktop"
|
||||
BOOT_FDT_FILE="rockchip/rk3568-bpi-r2-pro.dtb"
|
||||
SRC_EXTLINUX="yes"
|
||||
SRC_CMDLINE="console=ttyS02,1500000 console=tty0"
|
||||
ASOUND_STATE="asound.state.station-p2"
|
||||
IMAGE_PARTITION_TABLE="gpt"
|
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
|
||||
}
|
6
config/boards/beelinkx2.tvb
Normal file
6
config/boards/beelinkx2.tvb
Normal file
@ -0,0 +1,6 @@
|
||||
# Allwinner H3 quad core 1GB SoC WiFi eMMC
|
||||
BOARD_NAME="Beelink X2"
|
||||
BOARDFAMILY="sun8i"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="beelink_x2_defconfig"
|
||||
KERNEL_TARGET="legacy,current,edge"
|
14
config/boards/bigtreetech-cb1.conf
Normal file
14
config/boards/bigtreetech-cb1.conf
Normal file
@ -0,0 +1,14 @@
|
||||
# Allwinner H616 quad core 512MB/1GB RAM SoC WiFi
|
||||
BOARD_NAME="BigTreeTech CB1"
|
||||
BOARDFAMILY="sun50iw9-btt"
|
||||
BOARD_MAINTAINER="bigtreetech"
|
||||
BOOTCONFIG="bigtreetech_cb1_defconfig"
|
||||
DEFAULT_CONSOLE="serial"
|
||||
SERIALCON="ttyS0"
|
||||
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="allwinner/sun50i-h616-bigtreetech-cb1-sd.dtb"
|
14
config/boards/blueberry.conf
Normal file
14
config/boards/blueberry.conf
Normal file
@ -0,0 +1,14 @@
|
||||
# Allwinner H616 quad core 2GB RAM SoC WiFi
|
||||
BOARD_NAME="Blueberry"
|
||||
BOARDFAMILY="sun50iw9-blb"
|
||||
BOARD_MAINTAINER="blueberry"
|
||||
BOOTCONFIG="blueberry_defconfig"
|
||||
DEFAULT_CONSOLE="serial"
|
||||
SERIALCON="ttyS0"
|
||||
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="allwinner/sun50i-h616-blueberry-sd.dtb"
|
8
config/boards/clearfogbase.csc
Normal file
8
config/boards/clearfogbase.csc
Normal file
@ -0,0 +1,8 @@
|
||||
# Marvell Armada 38x dual core 1GB/2GB RAM SoC 1xmPCIe M.2 2xGBE SFP
|
||||
BOARD_NAME="Clearfog Base"
|
||||
BOARDFAMILY="mvebu"
|
||||
BOARD_MAINTAINER=""
|
||||
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"
|
7
config/boards/clearfogpro.conf
Normal file
7
config/boards/clearfogpro.conf
Normal file
@ -0,0 +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"
|
||||
BOOTCONFIG="clearfog_defconfig"
|
||||
HAS_VIDEO_OUTPUT="no"
|
||||
KERNEL_TARGET="current,edge"
|
46
config/boards/clockworkpi-a06.csc
Normal file
46
config/boards/clockworkpi-a06.csc
Normal file
@ -0,0 +1,46 @@
|
||||
# Rockchip RK3399 hexa core 4GB RAM SoC WiFi/BT
|
||||
BOARD_NAME="Clockworkpi A06"
|
||||
BOARDFAMILY="rockchip64"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="clockworkpi-a06-rk3399_defconfig"
|
||||
KERNEL_TARGET="legacy,current,edge"
|
||||
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"
|
||||
|
||||
# rotate screen & disable dpms
|
||||
mkdir -p "$destination"/etc/X11/xorg.conf.d
|
||||
cat <<- EOF > "$destination"/etc/X11/xorg.conf.d/10-monitor.conf
|
||||
# set monitor
|
||||
Section "Monitor"
|
||||
Identifier "DSI-1"
|
||||
Option "Rotate" "right"
|
||||
Option "DPMS" "false"
|
||||
EndSection
|
||||
|
||||
Section "ServerLayout"
|
||||
Identifier "ServerLayout0"
|
||||
Option "BlankTime" "0"
|
||||
Option "StandbyTime" "0"
|
||||
Option "SuspendTime" "0"
|
||||
Option "OffTime" "0"
|
||||
EndSection
|
||||
EOF
|
||||
# fan support
|
||||
install -Dm644 $SRC/packages/bsp/clockworkpi-a06/temp_fan_daemon_a06.py $destination/usr/share/clockworkpi-a06-fan-daemon/bin/temp_fan_daemon_a06.py
|
||||
cp $SRC/packages/bsp/clockworkpi-a06/clockworkpi-a06-fan-daemon.service $destination/lib/systemd/system/
|
||||
|
||||
# alsa-ucm-conf profile for DevTerm A06
|
||||
mkdir -p $destination/usr/share/alsa/ucm2/Rockchip/es8388
|
||||
install -Dm644 $SRC/packages/bsp/clockworkpi-a06/es8388.conf $destination/usr/share/alsa/ucm2/Rockchip/es8388/es8388.conf
|
||||
install -Dm644 $SRC/packages/bsp/clockworkpi-a06/HiFi.conf $destination/usr/share/alsa/ucm2/Rockchip/es8388/HiFi.conf
|
||||
mkdir -p $destination/usr/share/alsa/ucm2/conf.d/simple-card
|
||||
ln -sfv /usr/share/alsa/ucm2/Rockchip/es8388/es8388.conf \
|
||||
$destination/usr/share/alsa/ucm2/conf.d/simple-card/rockchip,es8388-codec.conf
|
||||
|
||||
return 0
|
||||
}
|
8
config/boards/cubieboard.csc
Normal file
8
config/boards/cubieboard.csc
Normal file
@ -0,0 +1,8 @@
|
||||
# Allwinner A10 single core 1Gb SoC 1xSATA
|
||||
BOARD_NAME="Cubieboard 1"
|
||||
BOARDFAMILY="sun4i"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="Cubieboard_config"
|
||||
HAS_VIDEO_OUTPUT="no"
|
||||
KERNEL_TARGET="legacy,current,edge"
|
||||
MODULES_BLACKLIST="ir_lirc_codec lirc_dev sunxi-cir"
|
6
config/boards/cubieboard2.csc
Normal file
6
config/boards/cubieboard2.csc
Normal file
@ -0,0 +1,6 @@
|
||||
# Allwinner A20 dual core 1Gb SoC 1xSATA
|
||||
BOARD_NAME="Cubieboard 2"
|
||||
BOARDFAMILY="sun7i"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="Cubieboard2_config"
|
||||
KERNEL_TARGET="legacy,current,edge"
|
6
config/boards/cubieboard4.csc
Normal file
6
config/boards/cubieboard4.csc
Normal file
@ -0,0 +1,6 @@
|
||||
# Allwinner A80 SoC 8 cores 2GB RAM Wi-Fi
|
||||
BOARD_NAME="Cubieboard 4"
|
||||
BOARDFAMILY="sun9i"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG=Cubieboard4_defconfig
|
||||
KERNEL_TARGET="current,edge"
|
7
config/boards/cubietruck.csc
Normal file
7
config/boards/cubietruck.csc
Normal file
@ -0,0 +1,7 @@
|
||||
# Allwinner A20 dual core 2GB RAM SoC 1xSATA GBE WiFi/BT
|
||||
BOARD_NAME="Cubietruck"
|
||||
BOARDFAMILY="sun7i"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="Cubietruck_config"
|
||||
KERNEL_TARGET="legacy,current,edge"
|
||||
KERNEL_TEST_TARGET="current,edge"
|
7
config/boards/cubietruckplus.csc
Normal file
7
config/boards/cubietruckplus.csc
Normal file
@ -0,0 +1,7 @@
|
||||
# Allwinner A83T octa core 2Gb SoC Wifi
|
||||
BOARD_NAME="Cubietruck+"
|
||||
BOARDFAMILY="sun8i"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="Cubietruck_plus_defconfig"
|
||||
OVERLAY_PREFIX="sun8i-a83t"
|
||||
KERNEL_TARGET="current,edge"
|
9
config/boards/cubox-i.csc
Normal file
9
config/boards/cubox-i.csc
Normal file
@ -0,0 +1,9 @@
|
||||
# Freescale / NXP iMx6 dual-quad core 1GB/2GB RAM SoC Wifi/BT GBE
|
||||
BOARD_NAME="Cubox i2eX/i4"
|
||||
BOARDFAMILY="imx6"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="mx6cuboxi_defconfig"
|
||||
KERNEL_TARGET="current,edge"
|
||||
FULL_DESKTOP="yes"
|
||||
BOOT_LOGO="desktop"
|
||||
PACKAGE_LIST_BOARD="rfkill bluetooth bluez bluez-tools"
|
7
config/boards/espressobin.conf
Normal file
7
config/boards/espressobin.conf
Normal file
@ -0,0 +1,7 @@
|
||||
# Marvell Armada 37x 512MB-2GB RAM SoC 1xmPCIe 1xSATA 3xGBE USB3.0 eMMC SPI
|
||||
BOARD_NAME="Espressobin"
|
||||
BOARDFAMILY="mvebu64"
|
||||
BOARD_MAINTAINER="ManoftheSea"
|
||||
BOOTCONFIG="mvebu_espressobin-88f3720_defconfig"
|
||||
HAS_VIDEO_OUTPUT="no"
|
||||
KERNEL_TARGET="current,edge"
|
10
config/boards/fe-som-rk3399.eos
Normal file
10
config/boards/fe-som-rk3399.eos
Normal file
@ -0,0 +1,10 @@
|
||||
# Rockchip RK3399 hexa core 2GB/4GB RAM SoC GBE USB3 USB-C WiFi/BT eMMC NVMe PCI-e i2c
|
||||
BOARD_NAME="FE SOM RK3399"
|
||||
BOARDFAMILY="rockchip64"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="nanopc-t4-rk3399_defconfig"
|
||||
HAS_VIDEO_OUTPUT="no"
|
||||
KERNEL_TARGET="current,edge"
|
||||
ASOUND_STATE="asound.state.rt5651"
|
||||
BOOT_LOGO="desktop"
|
||||
#BOOT_FDT_FILE="rockchip/fe-som-rk3399.dtb"
|
29
config/boards/firefly-rk3399.conf
Normal file
29
config/boards/firefly-rk3399.conf
Normal file
@ -0,0 +1,29 @@
|
||||
# Rockchip RK3399 hexa core 4GB SoC eMMC GBE USB3 WiFi
|
||||
BOARD_NAME="Firefly RK3399"
|
||||
BOARDFAMILY="media"
|
||||
BOARD_MAINTAINER="150balbes"
|
||||
BOOTCONFIG="firefly-rk3399_defconfig"
|
||||
KERNEL_TARGET="legacy,current,edge"
|
||||
FULL_DESKTOP="yes"
|
||||
BOOT_LOGO="desktop"
|
||||
BOOT_FDT_FILE="rockchip/rk3399-firefly.dtb"
|
||||
SRC_EXTLINUX="yes"
|
||||
SRC_CMDLINE="console=ttyS2,1500000 console=tty0"
|
||||
#ASOUND_STATE="asound.state.station-p1"
|
||||
|
||||
function post_family_tweaks_bsp__firefly-rk3399_BSP() {
|
||||
display_alert "Installing BSP firmware and fixups"
|
||||
|
||||
if [[ $BRANCH == legacy ]]; then
|
||||
|
||||
# Bluetooth for most of others (custom patchram is needed only in legacy)
|
||||
install -m 755 $SRC/packages/bsp/rk3399/brcm_patchram_plus_rk3399 $destination/usr/bin
|
||||
cp $SRC/packages/bsp/rk3399/rk3399-bluetooth.service $destination/lib/systemd/system/
|
||||
|
||||
# need to swap chips in the service
|
||||
sed -i s%BCM4345C5%BCM4356A2%g $destination/lib/systemd/system/rk3399-bluetooth.service
|
||||
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
60
config/boards/fxblox-rk1.wip
Normal file
60
config/boards/fxblox-rk1.wip
Normal file
@ -0,0 +1,60 @@
|
||||
# Rockchip RK3588 SoC octa core 8-32GB SoC eMMC USB-C DP NvME SATA M2
|
||||
BOARD_NAME="FxBlox RK1"
|
||||
BOARDFAMILY="rockchip-rk3588"
|
||||
BOARD_MAINTAINER="mahdichi"
|
||||
BOOTCONFIG="fxblox-rk1-rk3588_defconfig"
|
||||
BOOT_SOC="rk3588"
|
||||
KERNEL_TARGET="legacy"
|
||||
FULL_DESKTOP="yes"
|
||||
BOOT_LOGO="desktop"
|
||||
BOOT_FDT_FILE="rockchip/rk3588-fxblox-rk1.dtb"
|
||||
BOOT_SCENARIO="spl-blobs"
|
||||
BOOT_SUPPORT_SPI="yes"
|
||||
BOOT_SPI_RKSPI_LOADER="yes"
|
||||
IMAGE_PARTITION_TABLE="gpt"
|
||||
SKIP_BOOTSPLASH="yes" # Skip boot splash patch, conflicts with CONFIG_VT=yes
|
||||
BOOTFS_TYPE="fat"
|
||||
DDR_BLOB='rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v1.11.bin'
|
||||
BL31_BLOB='rk35/rk3588_bl31_v1.38.elf'
|
||||
|
||||
|
||||
function post_family_tweaks__fxblox-rk1_naming_audios() {
|
||||
display_alert "$BOARD" "Renaming fxblox rk1 audios" "info"
|
||||
|
||||
mkdir -p $SDCARD/etc/udev/rules.d/
|
||||
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-dp1-sound", ENV{SOUND_DESCRIPTION}="DP1 Audio"' >> $SDCARD/etc/udev/rules.d/90-naming-audios.rules
|
||||
return 0
|
||||
}
|
||||
|
||||
function post_family_config_branch_legacy__fxblox-rk1_uboot_add_sata_target() {
|
||||
display_alert "$BOARD" "Configuring ($BOARD) standard and sata uboot target map" "info"
|
||||
|
||||
UBOOT_TARGET_MAP="
|
||||
BL31=$RKBIN_DIR/$BL31_BLOB $BOOTCONFIG spl/u-boot-spl.bin u-boot.dtb u-boot.itb;;idbloader.img u-boot.itb rkspi_loader.img
|
||||
BL31=$RKBIN_DIR/$BL31_BLOB $BOOTCONFIG spl/u-boot-spl.bin u-boot.dtb u-boot.itb;; rkspi_loader_sata.img
|
||||
"
|
||||
}
|
||||
|
||||
function post_uboot_custom_postprocess__create_sata_spi_image() {
|
||||
display_alert "$BOARD" "Create rkspi_loader_sata.img" "info"
|
||||
|
||||
dd if=/dev/zero of=rkspi_loader_sata.img bs=1M count=0 seek=16
|
||||
/sbin/parted -s rkspi_loader_sata.img mklabel gpt
|
||||
/sbin/parted -s rkspi_loader_sata.img unit s mkpart idbloader 64 7167
|
||||
/sbin/parted -s rkspi_loader_sata.img unit s mkpart vnvm 7168 7679
|
||||
/sbin/parted -s rkspi_loader_sata.img unit s mkpart reserved_space 7680 8063
|
||||
/sbin/parted -s rkspi_loader_sata.img unit s mkpart reserved1 8064 8127
|
||||
/sbin/parted -s rkspi_loader_sata.img unit s mkpart uboot_env 8128 8191
|
||||
/sbin/parted -s rkspi_loader_sata.img unit s mkpart reserved2 8192 16383
|
||||
/sbin/parted -s rkspi_loader_sata.img unit s mkpart uboot 16384 32734
|
||||
dd if=idbloader.img of=rkspi_loader_sata.img seek=64 conv=notrunc
|
||||
dd if=u-boot.itb of=rkspi_loader_sata.img seek=16384 conv=notrunc
|
||||
}
|
||||
|
||||
# Override family config for this board; let's avoid conditionals in family config.
|
||||
function post_family_config__fxblox-rk1_use_vendor_uboot() {
|
||||
BOOTSOURCE='https://github.com/functionland/u-boot.git'
|
||||
BOOTBRANCH='branch:next-dev'
|
||||
BOOTPATCHDIR="legacy"
|
||||
}
|
11
config/boards/helios4.conf
Normal file
11
config/boards/helios4.conf
Normal file
@ -0,0 +1,11 @@
|
||||
# Marvell Armada 388 2GB ECC RAM SoC 4xSATA 2xUSB3.0 GBE SPI
|
||||
BOARD_NAME="Helios4"
|
||||
BOARDFAMILY="mvebu"
|
||||
BOARD_MAINTAINER="Heisath"
|
||||
BOOTCONFIG="helios4_defconfig"
|
||||
BOOTCONFIG_NEXT="helios4_defconfig"
|
||||
MODULES_LEGACY="marvell_cesa lm75"
|
||||
MODULES_CURRENT="marvell_cesa lm75"
|
||||
HAS_VIDEO_OUTPUT="no"
|
||||
FORCE_BOOTSCRIPT_UPDATE="yes"
|
||||
KERNEL_TARGET="current,edge"
|
59
config/boards/helios64.csc
Normal file
59
config/boards/helios64.csc
Normal file
@ -0,0 +1,59 @@
|
||||
# RK3399 hexa core 4GB SoC 2.5GbE eMMC USB3 SATA M.2 UPS
|
||||
BOARD_NAME="Helios64"
|
||||
BOARDFAMILY="rockchip64" # Used to be rk3399
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="helios64-rk3399_defconfig"
|
||||
BOOT_SCENARIO="blobless"
|
||||
KERNEL_TARGET="current,edge"
|
||||
MODULES="lm75 ledtrig-netdev"
|
||||
MODULES_LEGACY="lm75"
|
||||
FULL_DESKTOP="yes"
|
||||
PACKAGE_LIST_BOARD="mdadm i2c-tools fancontrol"
|
||||
PACKAGE_LIST_BOARD_REMOVE="fake-hwclock"
|
||||
CPUMAX="1800000"
|
||||
|
||||
function post_family_tweaks__helios64_enable_heartbeat() {
|
||||
display_alert "$BOARD" "Installing board tweaks" "info"
|
||||
|
||||
chroot $SDCARD /bin/bash -c "systemctl --no-reload enable helios64-heartbeat-led.service >/dev/null 2>&1"
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
function post_family_tweaks_bsp__helios64() {
|
||||
display_alert "Installing BSP firmware and fixups"
|
||||
|
||||
mkdir -p $destination/etc/udev/rules.d/
|
||||
mkdir -p $destination/etc/systemd/system/fancontrol.service.d/
|
||||
mkdir -p $destination/lib/systemd/system/
|
||||
mkdir -p $destination/lib/systemd/system-shutdown/
|
||||
cp $SRC/packages/bsp/helios64/50-usb-realtek-net.rules $destination/etc/udev/rules.d/
|
||||
cp $SRC/packages/bsp/helios64/70-keep-usb-lan-as-eth1.rules $destination/etc/udev/rules.d/
|
||||
cp $SRC/packages/bsp/helios64/90-helios64-ups.rules $destination/etc/udev/rules.d/
|
||||
cp $SRC/packages/bsp/helios64/asound.conf $destination/etc/
|
||||
install -m 755 $SRC/packages/bsp/helios64/disable_auto_poweron $destination/lib/systemd/system-shutdown/
|
||||
|
||||
### Fancontrol tweaks
|
||||
# copy hwmon rules to fix device mapping
|
||||
# changed to only use one file regardless of branch
|
||||
install -m 644 $SRC/packages/bsp/helios64/90-helios64-hwmon.rules $destination/etc/udev/rules.d/
|
||||
|
||||
install -m 644 $SRC/packages/bsp/helios64/fancontrol.service.pid-override $destination/etc/systemd/system/fancontrol.service.d/pid.conf
|
||||
|
||||
# copy fancontrol config
|
||||
install -m 644 $SRC/packages/bsp/helios64/fancontrol.conf $destination/etc/fancontrol
|
||||
|
||||
# LED tweak
|
||||
if [[ $BRANCH == legacy ]]; then
|
||||
install -m 644 $SRC/packages/bsp/helios64/helios64-heartbeat-led-legacy.service $destination/etc/systemd/system/helios64-heartbeat-led.service
|
||||
else
|
||||
install -m 644 $SRC/packages/bsp/helios64/helios64-heartbeat-led.service $destination/etc/systemd/system/
|
||||
fi
|
||||
|
||||
# UPS service
|
||||
cp $SRC/packages/bsp/helios64/helios64-ups.service $destination/lib/systemd/system/
|
||||
cp $SRC/packages/bsp/helios64/helios64-ups.timer $destination/lib/systemd/system/
|
||||
install -m 755 $SRC/packages/bsp/helios64/helios64-ups.sh $destination/usr/bin/helios64-ups.sh
|
||||
|
||||
return 0
|
||||
}
|
9
config/boards/hikey960.csc
Normal file
9
config/boards/hikey960.csc
Normal file
@ -0,0 +1,9 @@
|
||||
# Kirin 960 octa core 3/4GB SoC eMMC USB3 WiFi/BT
|
||||
declare -g BOARD_NAME="HiKey 960"
|
||||
declare -g BOARDFAMILY="uefi-arm64"
|
||||
declare -g BOARD_MAINTAINER=""
|
||||
declare -g KERNEL_TARGET="current,edge"
|
||||
|
||||
declare -g GRUB_CMDLINE_LINUX_DEFAULT="efi=noruntime console=ttyAMA6,115200n8"
|
||||
declare -g BOOT_FDT_FILE="hisilicon/hi3660-hikey960.dtb"
|
||||
enable_extension "grub-with-dtb"
|
25
config/boards/hinlink-h88k.csc
Normal file
25
config/boards/hinlink-h88k.csc
Normal file
@ -0,0 +1,25 @@
|
||||
# Rockchip RK3588 SoC octa core 4-16GB eMMC USB3 NVMe SATA 4G WiFi/BT HDMI DP HDMI-In
|
||||
BOARD_NAME="Hinlink H88K"
|
||||
BOARDFAMILY="rockchip-rk3588"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="rock-5b-rk3588_defconfig"
|
||||
KERNEL_TARGET="legacy"
|
||||
FULL_DESKTOP="yes"
|
||||
BOOT_LOGO="desktop"
|
||||
BOOT_FDT_FILE="rockchip/rk3588-hinlink-h88k.dtb"
|
||||
BOOT_SCENARIO="spl-blobs"
|
||||
IMAGE_PARTITION_TABLE="gpt"
|
||||
SKIP_BOOTSPLASH="yes" # Skip boot splash patch, conflicts with CONFIG_VT=yes
|
||||
|
||||
function post_family_tweaks__hinlink_h88k_naming_audios() {
|
||||
display_alert "$BOARD" "Renaming hinlink-h88k 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-hdmi1-sound", ENV{SOUND_DESCRIPTION}="HDMI1 Audio"' >> $SDCARD/etc/udev/rules.d/90-naming-audios.rules
|
||||
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmiin-sound", ENV{SOUND_DESCRIPTION}="HDMI-In 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-es8388-sound", ENV{SOUND_DESCRIPTION}="ES8388 Audio"' >> $SDCARD/etc/udev/rules.d/90-naming-audios.rules
|
||||
|
||||
return 0
|
||||
}
|
6
config/boards/imx7sabre.eos
Normal file
6
config/boards/imx7sabre.eos
Normal file
@ -0,0 +1,6 @@
|
||||
# Freescale / NXP iMX7d dual core + M4 1Gb RAM SoC 1xmPCIe 2xGBE
|
||||
BOARD_NAME="MCIMX7SABRE"
|
||||
BOARDFAMILY="imx7d"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="imx_v7_defconfig"
|
||||
KERNEL_TARGET="legacy,current"
|
91
config/boards/indiedroid-nova.csc
Normal file
91
config/boards/indiedroid-nova.csc
Normal file
@ -0,0 +1,91 @@
|
||||
# Rockchip RK3588S octa core 4/8/16GB RAM SoC eMMC USB3 USB-C GbE
|
||||
declare -g BOARD_NAME="Indiedroid Nova"
|
||||
declare -g BOARD_MAINTAINER="lanefu"
|
||||
declare -g BOARDFAMILY="rockchip-rk3588"
|
||||
declare -g BOOTCONFIG="indiedroid_defconfig" # vendor name, not standard, see hook below, set BOOT_SOC below to compensate
|
||||
declare -g BOOT_SOC="rk3588"
|
||||
declare -g KERNEL_TARGET="legacy,collabora,edge"
|
||||
declare -g FULL_DESKTOP="yes"
|
||||
declare -g BOOT_LOGO="desktop"
|
||||
declare -g BOOT_FDT_FILE="rockchip/rk3588s-indiedroid-nova.dtb"
|
||||
declare -g BOOT_SCENARIO="spl-blobs"
|
||||
declare -g BOOT_SUPPORT_SPI="no"
|
||||
declare -g IMAGE_PARTITION_TABLE="gpt"
|
||||
declare -g SKIP_BOOTSPLASH="yes" # Skip boot splash patch, conflicts with CONFIG_VT=yes
|
||||
declare -g BOOTFS_TYPE="fat"
|
||||
declare -g SRC_EXTLINUX="no" # going back to standard uboot for now
|
||||
declare -g BL31_BLOB='rk35/rk3588_bl31_v1.38.elf'
|
||||
declare -g DDR_BLOB='rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v1.11.bin'
|
||||
|
||||
## only applies to extlinux so not used
|
||||
declare -g SRC_CMDLINE="console=ttyS0,115200n8 console=tty1 console=both net.ifnames=0 rootflags=data=writeback"
|
||||
|
||||
# Override family config for this board; let's avoid conditionals in family config.
|
||||
function post_family_config__indiedroid-nova_use_stvhay_uboot() {
|
||||
declare -g BOOTSOURCE='https://github.com/stvhay/u-boot.git'
|
||||
declare -g BOOTBRANCH='branch:rockchip-rk3588-unified'
|
||||
declare -g BOOTPATCHDIR="legacy"
|
||||
}
|
||||
|
||||
# BSP kernel uses device name from contract manufacturer rather than production name in mainline
|
||||
function post_family_config_branch_legacy__use_9tripod_dtb() {
|
||||
declare -g BOOT_FDT_FILE="rockchip/rk3588s-9tripod-linux.dtb"
|
||||
}
|
||||
|
||||
# Add bluetooth packages to the image (not rootfs cache)
|
||||
function post_family_config__bluetooth_hciattach_add_bluetooth_packages() {
|
||||
display_alert "${BOARD}" "adding bluetooth packages to image" "info"
|
||||
add_packages_to_image rfkill bluetooth bluez bluez-tools
|
||||
}
|
||||
|
||||
# setup bluetooth stuff
|
||||
function pre_customize_image__indiedroid_add_bluetooth() {
|
||||
display_alert "${BOARD}" "install bluetooth firmware" "info"
|
||||
local TMPDIR
|
||||
|
||||
# Build firmware
|
||||
TMPDIR=$(mktemp -d)
|
||||
pushd "${TMPDIR}" || exit 1
|
||||
git clone https://github.com/stvhay/rkwifibt || exit 1
|
||||
cd rkwifibt || exit 1
|
||||
make -C realtek/rtk_hciattach || exit 1
|
||||
# Install the firmware and utility
|
||||
mkdir -p "${SDCARD}/lib/firmware/rtl_bt"
|
||||
cp -fr realtek/RTL8821CS/* "${SDCARD}/lib/firmware/rtl_bt/"
|
||||
cp -f realtek/rtk_hciattach/rtk_hciattach "${SDCARD}/usr/bin/"
|
||||
cp -f bt_load_rtk_firmware "${SDCARD}/usr/bin/"
|
||||
chroot_sdcard chmod +x /usr/bin/{rtk_hciattach,bt_load_rtk_firmware}
|
||||
echo hci_uart >> "${SDCARD}/etc/modules"
|
||||
popd || exit 1
|
||||
|
||||
#TODO this should probably be replaced with the existing extensions/bluetooth-hciattach.sh
|
||||
|
||||
display_alert "${BOARD}" "setup bluetooth service" "info"
|
||||
# Systemd service
|
||||
cat > "${SDCARD}/etc/systemd/system/bluetooth-rtl8821cs.service" <<- EOD
|
||||
[Unit]
|
||||
Description=RTL8821CS Firmware Service
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
Environment=BT_TTY_DEV=/dev/ttyS9
|
||||
ExecStart=/usr/bin/bt_load_rtk_firmware
|
||||
RemainAfterExit=true
|
||||
StandardOutput=journal
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOD
|
||||
chroot_sdcard systemctl enable bluetooth-rtl8821cs.service
|
||||
}
|
||||
function post_family_tweaks__indiedroid_naming_audios() {
|
||||
display_alert "$BOARD" "Renaming indiedroid 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-es8388-sound", ENV{SOUND_DESCRIPTION}="ES8388 Audio"' >> $SDCARD/etc/udev/rules.d/90-naming-audios.rules
|
||||
|
||||
return 0
|
||||
}
|
8
config/boards/jethubj100.conf
Normal file
8
config/boards/jethubj100.conf
Normal file
@ -0,0 +1,8 @@
|
||||
# JetHub D1 (j100) Amlogic A113D quad core 512Mb/1Gb RAM SoC, eMMC 8/16Gb
|
||||
BOARD_NAME="JetHub D1"
|
||||
BOARDFAMILY="jethub"
|
||||
BOARD_MAINTAINER="adeepn"
|
||||
BOOTCONFIG="jethub_j100_defconfig"
|
||||
KERNEL_TARGET="current,edge"
|
||||
PACKAGE_LIST_BOARD="libubootenv-tool apparmor rfkill bluetooth bluez bluez-tools python3-pip watchdog python3-serial python3-intelhex python3-intelhex"
|
||||
DEFAULT_CONSOLE="serial"
|
8
config/boards/jethubj80.conf
Normal file
8
config/boards/jethubj80.conf
Normal file
@ -0,0 +1,8 @@
|
||||
# JetHub H1 (j80) Amlogic S905w quad core 1Gb RAM SoC, eMMC 8/16Gb
|
||||
BOARD_NAME="JetHub H1"
|
||||
BOARDFAMILY="jethub"
|
||||
BOARD_MAINTAINER="adeepn"
|
||||
BOOTCONFIG="jethub_j80_defconfig"
|
||||
KERNEL_TARGET="current,edge"
|
||||
PACKAGE_LIST_BOARD="libubootenv-tool apparmor rfkill bluetooth bluez bluez-tools python3-pip watchdog python3-serial python3-intelhex python3-intelhex"
|
||||
DEFAULT_CONSOLE="serial"
|
32
config/boards/jetson-nano.conf
Normal file
32
config/boards/jetson-nano.conf
Normal file
@ -0,0 +1,32 @@
|
||||
# Nvidia Jetson Nano quad core 2G/4GB SoC 4 x USB3 HDMI & DP
|
||||
BOARD_NAME="Jetson Nano"
|
||||
BOARDFAMILY="media"
|
||||
BOARD_MAINTAINER="150balbes"
|
||||
BOOTCONFIG="none"
|
||||
KERNEL_TARGET="current,edge"
|
||||
FULL_DESKTOP="yes"
|
||||
BOOT_LOGO="desktop"
|
||||
BOOT_FDT_FILE="nvidia/tegra210-p3450-0000.dtb"
|
||||
SRC_EXTLINUX="yes"
|
||||
SRC_CMDLINE="console=ttyS0,115200n8 console=tty0"
|
||||
|
||||
function post_family_tweaks__Jetson-nano() {
|
||||
display_alert "$BOARD" "Installing bsp firmware and fixups" "info"
|
||||
|
||||
install -m 755 $SRC/packages/blobs/jetson/jetson.sh $SDCARD/etc/initramfs-tools/hooks/jetson.sh
|
||||
if [[ $BRANCH == legacy ]]; then
|
||||
install -m 755 $SRC/packages/blobs/jetson/tegra21x_xusb_firmware $SDCARD/lib/firmware/tegra21x_xusb_firmware
|
||||
install -m 755 $SRC/packages/blobs/jetson/asound.conf.tegrahda $SDCARD/etc/asound.conf.tegrahda
|
||||
install -m 755 $SRC/packages/blobs/jetson/asound.conf.tegrahda $SDCARD/etc/asound.conf
|
||||
install -m 755 $SRC/packages/blobs/jetson/asound.conf.tegrasndt210ref $SDCARD/etc/asound.conf.tegrasndt210ref
|
||||
install -m 755 $SRC/packages/blobs/jetson/tegra-hda.conf $SDCARD/usr/share/alsa/cards/tegra-hda.conf
|
||||
install -m 755 $SRC/packages/blobs/jetson/tegra-snd-t210r.conf $SDCARD/usr/share/alsa/cards/tegra-snd-t210r.conf
|
||||
sed -e 's/exit 0//g' -i $SDCARD/etc/rc.local
|
||||
echo "su -c 'echo 255 > /sys/devices/pwm-fan/target_pwm'" >> $SDCARD/etc/rc.local
|
||||
echo "exit 0" >> $SDCARD/etc/rc.local
|
||||
else
|
||||
cp -R $SRC/packages/blobs/jetson/firmware/* $SDCARD/lib/firmware/
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
11
config/boards/khadas-edge.csc
Normal file
11
config/boards/khadas-edge.csc
Normal file
@ -0,0 +1,11 @@
|
||||
# Rockchip RK3399 hexa core 2G/4GB SoC GBe eMMC USB3 WiFi
|
||||
BOARD_NAME="Khadas Edge"
|
||||
BOARDFAMILY="rockchip64"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="khadas-edge-v-rk3399_defconfig"
|
||||
KERNEL_TARGET="current,edge"
|
||||
FULL_DESKTOP="yes"
|
||||
BOOT_LOGO="desktop"
|
||||
BOOT_SUPPORT_SPI=yes
|
||||
BOOT_SCENARIO="tpl-spl-blob"
|
||||
ASOUND_STATE="asound.state.rk3399"
|
21
config/boards/khadas-edge2.conf
Normal file
21
config/boards/khadas-edge2.conf
Normal file
@ -0,0 +1,21 @@
|
||||
# Rockchip RK3588s 2GB-16GB GBE eMMC NVMe SATA USB3 WiFi
|
||||
declare -g BOARD_NAME="Khadas Edge2"
|
||||
declare -g BOARDFAMILY="rockchip-rk3588"
|
||||
declare -g BOARD_MAINTAINER="igorpecovnik"
|
||||
declare -g BOOT_SOC="rk3588" # Just to avoid errors in rockchip64_commmon
|
||||
declare -g KERNEL_TARGET="legacy"
|
||||
declare -g IMAGE_PARTITION_TABLE="gpt"
|
||||
declare -g BOOT_FDT_FILE="rockchip/rk3588s-khadas-edge2.dtb" # Specific to this board
|
||||
|
||||
declare -g BLUETOOTH_HCIATTACH_PARAMS="-s 115200 /dev/ttyS9 bcm43xx 1500000" # For the bluetooth-hciattach extension
|
||||
enable_extension "bluetooth-hciattach" # Enable the bluetooth-hciattach extension
|
||||
|
||||
declare -g KHADAS_OOWOW_BOARD_ID="Edge2" # for use with EXT=output-image-oowow
|
||||
|
||||
# for the kedge2, we're counting on the blobs+u-boot in SPI working, as it comes from factory. It does not support bootscripts.
|
||||
function post_family_config_branch_legacy__uboot_kedge2() {
|
||||
display_alert "$BOARD" "Configuring ($BOARD) non-u-boot" "info"
|
||||
unset BOOTSOURCE
|
||||
declare -g BOOTCONFIG='none'
|
||||
declare -g SRC_EXTLINUX="yes" # For now, use extlinux. Thanks Monka
|
||||
}
|
8
config/boards/khadas-vim1.conf
Normal file
8
config/boards/khadas-vim1.conf
Normal file
@ -0,0 +1,8 @@
|
||||
# Amlogic S905x quad core 2Gb RAM SoC eMMC
|
||||
BOARD_NAME="Khadas VIM1"
|
||||
BOARDFAMILY="meson-gxl"
|
||||
BOARD_MAINTAINER="igorpecovnik"
|
||||
BOOTCONFIG="khadas-vim_defconfig"
|
||||
KERNEL_TARGET="current,edge"
|
||||
FULL_DESKTOP="yes"
|
||||
BOOT_LOGO="desktop"
|
21
config/boards/khadas-vim1s.wip
Normal file
21
config/boards/khadas-vim1s.wip
Normal file
@ -0,0 +1,21 @@
|
||||
# Amlogic S905Y4 4C 2GHz Cortex-A35 Mali-G31 MP2 2GB LPDDR4 16GB eMMC AP6256
|
||||
BOARD_NAME="Khadas VIM1S" # don't confuse with VIM1 (S905X)
|
||||
BOARDFAMILY="meson-s4t7"
|
||||
KERNEL_TARGET="legacy"
|
||||
BOARD_MAINTAINER="rpardini viraniac"
|
||||
SERIALCON="ttyS0" # for vendor kernel
|
||||
# BOOT_FDT_FILE="amlogic/kvim1s.dtb" # unset on purpose: uboot auto-determines the DTB to use
|
||||
|
||||
# build uboot from source
|
||||
BOOTCONFIG="kvim1s_defconfig"
|
||||
KHADAS_BOARD_ID="kvim1s" # used to compile the fip blobs
|
||||
|
||||
declare -g KHADAS_OOWOW_BOARD_ID="VIM1S" # for use with EXT=output-image-oowow
|
||||
|
||||
OVERLAY_PREFIX='s4-s905y4'
|
||||
|
||||
function image_specific_armbian_env_ready__set_vim1s_specific_parameters() {
|
||||
display_alert "Writing vim1s parameters in /boot/armbianEnv.txt"
|
||||
run_host_command_logged echo "earlycon=on" >>${SDCARD}/boot/armbianEnv.txt
|
||||
run_host_command_logged echo "extraboardargs=meson-gx-mmc.caps2_quirks=mmc-hs400" >>${SDCARD}/boot/armbianEnv.txt
|
||||
}
|
8
config/boards/khadas-vim2.conf
Normal file
8
config/boards/khadas-vim2.conf
Normal file
@ -0,0 +1,8 @@
|
||||
# Amlogic S912 octa core 2/3Gb RAM SoC eMMC
|
||||
BOARD_NAME="Khadas VIM2"
|
||||
BOARDFAMILY="meson-gxl"
|
||||
BOARD_MAINTAINER="igorpecovnik"
|
||||
BOOTCONFIG="khadas-vim2_defconfig"
|
||||
KERNEL_TARGET="current,edge"
|
||||
FULL_DESKTOP="yes"
|
||||
BOOT_LOGO="desktop"
|
50
config/boards/khadas-vim3.conf
Normal file
50
config/boards/khadas-vim3.conf
Normal file
@ -0,0 +1,50 @@
|
||||
# Amlogic A311D 2/4GB RAM eMMC GBE USB3 M.2
|
||||
BOARD_NAME="Khadas VIM3"
|
||||
BOARDFAMILY="meson-g12b"
|
||||
BOARD_MAINTAINER="rpardini NicoD-SBC"
|
||||
BOOTCONFIG="khadas-vim3_defconfig"
|
||||
KERNEL_TARGET="current,edge"
|
||||
FULL_DESKTOP="yes"
|
||||
SERIALCON="ttyAML0"
|
||||
BOOT_LOGO="desktop"
|
||||
BOOT_FDT_FILE="amlogic/meson-g12b-a311d-khadas-vim3.dtb" # there is also a s922x dtb, but vim3 is a311d only
|
||||
ASOUND_STATE="asound.state.khadas-vim3"
|
||||
|
||||
BOOTBRANCH_BOARD="tag:v2023.07-rc4"
|
||||
BOOTPATCHDIR="v2023.07"
|
||||
|
||||
declare -g KHADAS_OOWOW_BOARD_ID="VIM3" # for use with EXT=output-image-oowow
|
||||
|
||||
# To enable the SPI NOR the -spi .dtb is required, because eMMC shares a pin with SPI on the VIM3. To use it:
|
||||
# fdtfile=amlogic/meson-g12b-a311d-khadas-vim3-spinor.dtb # in armbianEnv.txt and reboot, then run armbian-install
|
||||
# After deploying to SPI-NOR/MTD, return back to the normal DTB, otherwise eMMC speed is impaired.
|
||||
UBOOT_TARGET_MAP="u-boot-dtb.img;;u-boot.bin.sd.bin:u-boot.bin u-boot-dtb.img u-boot-spi.bin:u-boot-spi.bin"
|
||||
write_uboot_platform_mtd() {
|
||||
dd if=$1/u-boot-spi.bin of=/dev/mtdblock0
|
||||
}
|
||||
|
||||
# Bring in some old FIP blobs for the VIM3, for use exclusively with SPI booting. See https://github.com/LibreELEC/amlogic-boot-fip/pull/10
|
||||
function fetch_sources_tools__libreelec_amlogic_fip_pre_vim3_blob_update() {
|
||||
fetch_from_repo "https://github.com/LibreELEC/amlogic-boot-fip" "amlogic-boot-fip-vim3-spi" "commit:f49ee39e1c6988b8ddb24f4e5a63286d133864cb" # pre-VIM3/3L DDR update
|
||||
}
|
||||
|
||||
function post_uboot_custom_postprocess__khadas_vim3_uboot_new_and_old_blobs() {
|
||||
# Preserve the u-boot produced (unsigned) u-boot.bin
|
||||
run_host_command_logged cp -v u-boot.bin u-boot.bin.orig
|
||||
|
||||
# Sign using the old FIP blobs (amlogic-boot-fip-vim3-spi), for use exclusively with SPI booting.
|
||||
display_alert "Signing u-boot for SPI booting with old blobs" "${BOARD}" "info"
|
||||
uboot_g12_postprocess "$SRC"/cache/sources/amlogic-boot-fip-vim3-spi/khadas-vim3 g12b
|
||||
|
||||
# Once done, store the resulting u-boot.bin as u-boot-spi.bin referenced in the UBOOT_TARGET_MAP above.
|
||||
run_host_command_logged cp -v u-boot.bin u-boot-spi.bin
|
||||
|
||||
# Restore the original, so we can do everything again.
|
||||
run_host_command_logged cp -v u-boot.bin.orig u-boot.bin
|
||||
|
||||
# Do the normal signing, using the regular/updated FIP blobs. This is for eMMC booting.
|
||||
display_alert "Signing u-boot for eMMC/SD booting with new blobs" "${BOARD}" "info"
|
||||
uboot_g12_postprocess "$SRC"/cache/sources/amlogic-boot-fip/khadas-vim3 g12b
|
||||
|
||||
display_alert "Done postprocessing u-boot with new/old FIP blobs" "${BOARD}" "info"
|
||||
}
|
50
config/boards/khadas-vim3l.conf
Normal file
50
config/boards/khadas-vim3l.conf
Normal file
@ -0,0 +1,50 @@
|
||||
# Amlogic S905D3 quad core 2GB RAM SoC eMMC GBE USB3 SPI
|
||||
BOARD_NAME="Khadas VIM3L"
|
||||
BOARDFAMILY="meson-sm1"
|
||||
BOARD_MAINTAINER="rpardini"
|
||||
BOOTCONFIG="khadas-vim3l_defconfig"
|
||||
KERNEL_TARGET="current,edge"
|
||||
FULL_DESKTOP="yes"
|
||||
SERIALCON="ttyAML0"
|
||||
BOOT_LOGO="desktop"
|
||||
BOOT_FDT_FILE="amlogic/meson-sm1-khadas-vim3l.dtb"
|
||||
ASOUND_STATE="asound.state.khadas-vim3l"
|
||||
|
||||
BOOTBRANCH_BOARD="tag:v2023.07-rc4"
|
||||
BOOTPATCHDIR="v2023.07"
|
||||
|
||||
declare -g KHADAS_OOWOW_BOARD_ID="VIM3L" # for use with EXT=output-image-oowow
|
||||
|
||||
# To enable the SPI NOR the -spi .dtb is required, because eMMC shares a pin with SPI on the VIM3. To use it:
|
||||
# fdtfile=amlogic/meson-sm1-khadas-vim3l-spinor.dtb # in armbianEnv.txt and reboot, then run armbian-install
|
||||
# After deploying to SPI-NOR/MTD, return back to the normal DTB, otherwise eMMC speed is impaired.
|
||||
UBOOT_TARGET_MAP="u-boot-dtb.img;;u-boot.bin.sd.bin:u-boot.bin u-boot-dtb.img u-boot-spi.bin:u-boot-spi.bin"
|
||||
write_uboot_platform_mtd() {
|
||||
dd if=$1/u-boot-spi.bin of=/dev/mtdblock0
|
||||
}
|
||||
|
||||
# Bring in some old FIP blobs for the VIM3L, for use exclusively with SPI booting. See https://github.com/LibreELEC/amlogic-boot-fip/pull/10
|
||||
function fetch_sources_tools__libreelec_amlogic_fip_pre_vim3l_blob_update() {
|
||||
fetch_from_repo "https://github.com/LibreELEC/amlogic-boot-fip" "amlogic-boot-fip-vim3-spi" "commit:f49ee39e1c6988b8ddb24f4e5a63286d133864cb" # pre-VIM3/3L DDR update
|
||||
}
|
||||
|
||||
function post_uboot_custom_postprocess__khadas_vim3l_uboot_new_and_old_blobs() {
|
||||
# Preserve the u-boot produced (unsigned) u-boot.bin
|
||||
run_host_command_logged cp -v u-boot.bin u-boot.bin.orig
|
||||
|
||||
# Sign using the old FIP blobs (amlogic-boot-fip-vim3-spi), for use exclusively with SPI booting.
|
||||
display_alert "Signing u-boot for SPI booting with old blobs" "${BOARD}" "info"
|
||||
uboot_g12_postprocess "${SRC}"/cache/sources/amlogic-boot-fip-vim3-spi/khadas-vim3l g12a
|
||||
|
||||
# Once done, store the resulting u-boot.bin as u-boot-spi.bin referenced in the UBOOT_TARGET_MAP above.
|
||||
run_host_command_logged cp -v u-boot.bin u-boot-spi.bin
|
||||
|
||||
# Restore the original, so we can do everything again.
|
||||
run_host_command_logged cp -v u-boot.bin.orig u-boot.bin
|
||||
|
||||
# Do the normal signing, using the regular/updated FIP blobs. This is for eMMC booting.
|
||||
display_alert "Signing u-boot for eMMC/SD booting with new blobs" "${BOARD}" "info"
|
||||
uboot_g12_postprocess "${SRC}"/cache/sources/amlogic-boot-fip/khadas-vim3l g12a
|
||||
|
||||
display_alert "Done postprocessing u-boot with new/old FIP blobs" "${BOARD}" "info"
|
||||
}
|
27
config/boards/khadas-vim4.wip
Normal file
27
config/boards/khadas-vim4.wip
Normal file
@ -0,0 +1,27 @@
|
||||
# Amlogic A311D2 8GB
|
||||
BOARD_NAME="Khadas VIM4"
|
||||
BOARDFAMILY="meson-s4t7"
|
||||
KERNEL_TARGET="legacy"
|
||||
BOARD_MAINTAINER="rpardini"
|
||||
SERIALCON="ttyS0" # for vendor kernel
|
||||
# BOOT_FDT_FILE="amlogic/kvim4.dtb" # not set on purpose; u-boot auto-selects kvim4.dtb or kvim4n.dtb for "new VIM4"
|
||||
|
||||
# build uboot from source
|
||||
BOOTCONFIG="kvim4_defconfig"
|
||||
KHADAS_BOARD_ID="kvim4" # used to compile the fip blobs
|
||||
|
||||
declare -g KHADAS_OOWOW_BOARD_ID="VIM4" # for use with EXT=output-image-oowow
|
||||
|
||||
OVERLAY_PREFIX='t7-a311d2'
|
||||
|
||||
# Add modprobe configuration for the ISP, see https://github.com/khadas/fenix/blob/master/archives/filesystem/special/VIM4/etc/modprobe.d/isp.conf
|
||||
# This avoids a kernel panic related to the ISP firmware; see https://armbian.atlassian.net/browse/AR-1801?focusedCommentId=11995
|
||||
function post_family_tweaks_bsp__kvim4_isp_modprobe() {
|
||||
: "${destination:?}"
|
||||
display_alert "${BOARD}" "Adding modprobe configuration for the ISP" "info"
|
||||
mkdir -p "${destination}"/etc/modprobe.d
|
||||
cat <<- EOD > "${destination}"/etc/modprobe.d/isp.conf
|
||||
options iv009_isp dcam=2
|
||||
softdep iv009_isp pre: iv009_isp_iq iv009_isp_lens iv009_isp_sensor
|
||||
EOD
|
||||
}
|
10
config/boards/lafrite.conf
Normal file
10
config/boards/lafrite.conf
Normal file
@ -0,0 +1,10 @@
|
||||
# Amlogic S805x quad core 1Gb RAM SoC eMMC
|
||||
BOARD_NAME="La Frite"
|
||||
BOARDFAMILY="meson-gxl"
|
||||
BOARD_MAINTAINER="Tonymac32"
|
||||
BOOTCONFIG="libretech-ac_defconfig"
|
||||
BOOT_FDT_FILE="amlogic/meson-gxl-s805x-libretech-ac.dtb"
|
||||
KERNEL_TARGET="current,edge"
|
||||
FULL_DESKTOP="yes"
|
||||
ASOUND_STATE="asound.state.mesongx"
|
||||
BOOT_LOGO="desktop"
|
6
config/boards/lamobo-r1.eos
Normal file
6
config/boards/lamobo-r1.eos
Normal file
@ -0,0 +1,6 @@
|
||||
# Allwinner A20 dual core 1Gb SoC 1xSATA Switch
|
||||
BOARD_NAME="Lamobo R1"
|
||||
BOARDFAMILY="sun7i"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="Lamobo_R1_defconfig"
|
||||
KERNEL_TARGET="current,edge"
|
12
config/boards/lepotato.conf
Normal file
12
config/boards/lepotato.conf
Normal file
@ -0,0 +1,12 @@
|
||||
# Amlogic S905x quad core 2Gb RAM SoC eMMC
|
||||
BOARD_NAME="Le potato"
|
||||
BOARDFAMILY="meson-gxl"
|
||||
BOARD_MAINTAINER="Tonymac32"
|
||||
BOOTCONFIG="libretech-cc_defconfig"
|
||||
KERNEL_TARGET="current,edge"
|
||||
SERIALCON="ttyAML0"
|
||||
FULL_DESKTOP="yes"
|
||||
ASOUND_STATE="asound.state.lepotato"
|
||||
BOOT_LOGO="desktop"
|
||||
|
||||
BOOTBRANCH_BOARD="tag:v2022.01"
|
18
config/boards/licheepi-4a.wip
Normal file
18
config/boards/licheepi-4a.wip
Normal file
@ -0,0 +1,18 @@
|
||||
# RISC-V LicheePi 4A
|
||||
BOARD_NAME="LicheePi 4A"
|
||||
BOARDFAMILY="thead"
|
||||
BOARD_MAINTAINER="chainsx"
|
||||
KERNEL_TARGET="legacy"
|
||||
BOOT_FDT_FILE="thead/light-lpi4a.dtb"
|
||||
SRC_EXTLINUX="yes"
|
||||
SRC_CMDLINE="console=ttyS0,115200 rootwait rw earlycon clk_ignore_unused loglevel=7 eth=$ethaddr rootrwoptions=rw,noatime rootrwreset=yes"
|
||||
BOOTCONFIG="light_lpi4a_defconfig"
|
||||
SKIP_BOOTSPLASH="yes"
|
||||
BOOTFS_TYPE="ext4"
|
||||
|
||||
function post_family_tweaks__licheepi4a() {
|
||||
display_alert "Applying blobs"
|
||||
cp -v "$SRC/packages/blobs/riscv64/thead/light_aon_fpga.bin" "$SDCARD/boot/light_aon_fpga.bin"
|
||||
cp -v "$SRC/packages/blobs/riscv64/thead/light_c906_audio.bin" "$SDCARD/boot/light_c906_audio.bin"
|
||||
cp -v "$SRC/packages/blobs/riscv64/thead/fw_dynamic.bin" "$SDCARD/boot/fw_dynamic.bin"
|
||||
}
|
6
config/boards/lime-a10.eos
Normal file
6
config/boards/lime-a10.eos
Normal file
@ -0,0 +1,6 @@
|
||||
# Allwinner A10 single core 512Mb SoC
|
||||
BOARD_NAME="Lime A10"
|
||||
BOARDFAMILY="sun4i"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="A10-OLinuXino-Lime_defconfig"
|
||||
KERNEL_TARGET="current,edge"
|
9
config/boards/lime-a33.csc
Normal file
9
config/boards/lime-a33.csc
Normal file
@ -0,0 +1,9 @@
|
||||
# Allwinner A33 quad core 1Gb SoC
|
||||
BOARD_NAME="A33 OLinuXino"
|
||||
BOARDFAMILY="sun8i"
|
||||
BOARD_MAINTAINER=""
|
||||
HAS_VIDEO_OUTPUT="no"
|
||||
BOOTCONFIG="A33-OLinuXino_defconfig"
|
||||
OVERLAY_PREFIX="sun8i-a33"
|
||||
KERNEL_TARGET="legacy,current,edge"
|
||||
|
9
config/boards/lime-a64.csc
Normal file
9
config/boards/lime-a64.csc
Normal file
@ -0,0 +1,9 @@
|
||||
# Allwinner A64 quad core 1GB RAM SoC GBE eMMC Wi-Fi/BT
|
||||
BOARD_NAME="A64 OLinuXino"
|
||||
BOARDFAMILY="sun50iw1"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG_DEFAULT="sun50iw1p1_config"
|
||||
BOOTCONFIG="a64-olinuxino_defconfig"
|
||||
KERNEL_TARGET="legacy,current,edge"
|
||||
FULL_DESKTOP="yes"
|
||||
CRUSTCONFIG="a64_defconfig"
|
6
config/boards/lime.csc
Normal file
6
config/boards/lime.csc
Normal file
@ -0,0 +1,6 @@
|
||||
# Allwinner A20 dual core 512Mb SoC
|
||||
BOARD_NAME="A20 OLinuXino Lime"
|
||||
BOARDFAMILY="sun7i"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="A20-OLinuXino-Lime_defconfig"
|
||||
KERNEL_TARGET="current,edge"
|
7
config/boards/lime2.csc
Normal file
7
config/boards/lime2.csc
Normal file
@ -0,0 +1,7 @@
|
||||
# Allwinner A20 dual core 1GB RAM SoC eMMC GBE 1xSATA
|
||||
BOARD_NAME="A20 OLinuXino Lime 2"
|
||||
BOARDFAMILY="sun7i"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="A20-OLinuXino-Lime2-eMMC_defconfig"
|
||||
KERNEL_TARGET="legacy,current,edge"
|
||||
|
7
config/boards/macchiatobin-doubleshot.csc
Normal file
7
config/boards/macchiatobin-doubleshot.csc
Normal file
@ -0,0 +1,7 @@
|
||||
# Marvell Armada 8040 DDR4 RAM SoC 1xPCIx4 3xSATA 1xGBE 1x2.5GBE 2x10GBE USB3.0 eMMC SPI
|
||||
BOARD_NAME="Macchiatobin DS"
|
||||
BOARDFAMILY="mvebu64"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="mvebu_mcbin-88f8040_defconfig"
|
||||
HAS_VIDEO_OUTPUT="no"
|
||||
KERNEL_TARGET="current,edge"
|
9
config/boards/mangopi-mq.wip
Normal file
9
config/boards/mangopi-mq.wip
Normal file
@ -0,0 +1,9 @@
|
||||
# RISC-V Mangopi-MQ D1
|
||||
BOARD_NAME="Mangopi-MQ"
|
||||
BOARDFAMILY="d1"
|
||||
BOARD_MAINTAINER="Zinput"
|
||||
KERNEL_TARGET="edge"
|
||||
BOOT_FDT_FILE="allwinner/sun20i-d1-nezha.dtb"
|
||||
SRC_EXTLINUX="yes"
|
||||
SRC_CMDLINE="console=ttyS0,115200n8 console=tty0 earlycon=sbi cma=96M rootflags=data=writeback stmmaceth=chain_mode:1 rw"
|
||||
BOOTCONFIG="nezha_defconfig"
|
9
config/boards/mekotronics-r58-minipc.wip
Normal file
9
config/boards/mekotronics-r58-minipc.wip
Normal file
@ -0,0 +1,9 @@
|
||||
# Rockchip RK3588 SoC octa core 4-16GB SoC 1GBe eMMC USB3 SATA WiFi/BT
|
||||
declare -g BOARD_NAME="Mekotronics R58 MiniPC"
|
||||
declare -g BOARDFAMILY="rockchip-rk3588"
|
||||
declare -g BOARD_MAINTAINER="monkaBlyat"
|
||||
declare -g KERNEL_TARGET="legacy"
|
||||
declare -g BOOT_FDT_FILE="rockchip/rk3588-blueberry-minipc-linux.dtb" # Specific to this board
|
||||
|
||||
# Source vendor-specific configuration
|
||||
source "${SRC}/config/sources/vendors/mekotronics/mekotronics-rk3588.conf.sh"
|
9
config/boards/mekotronics-r58x-4g.wip
Normal file
9
config/boards/mekotronics-r58x-4g.wip
Normal file
@ -0,0 +1,9 @@
|
||||
# Rockchip RK3588 SoC octa core 4-16GB SoC 2x1GBe eMMC USB3 NVMe SATA 4G WiFi/BT HDMI DP HDMI-In RS232 RS485
|
||||
declare -g BOARD_NAME="Mekotronics R58X-4G"
|
||||
declare -g BOARDFAMILY="rockchip-rk3588"
|
||||
declare -g BOARD_MAINTAINER="monkaBlyat"
|
||||
declare -g KERNEL_TARGET="legacy"
|
||||
declare -g BOOT_FDT_FILE="rockchip/rk3588-blueberry-edge-v12-linux.dtb" # Specific to this board
|
||||
|
||||
# Source vendor-specific configuration
|
||||
source "${SRC}/config/sources/vendors/mekotronics/mekotronics-rk3588.conf.sh"
|
9
config/boards/mekotronics-r58x.wip
Normal file
9
config/boards/mekotronics-r58x.wip
Normal file
@ -0,0 +1,9 @@
|
||||
# Rockchip RK3588 SoC octa core 4-16GB SoC 2x1GBe eMMC USB3 NVMe SATA WiFi/BT HDMI DP HDMI-In RS232 RS485
|
||||
declare -g BOARD_NAME="Mekotronics R58X"
|
||||
declare -g BOARDFAMILY="rockchip-rk3588"
|
||||
declare -g BOARD_MAINTAINER="monkaBlyat"
|
||||
declare -g KERNEL_TARGET="legacy"
|
||||
declare -g BOOT_FDT_FILE="rockchip/rk3588-blueberry-edge-v10-linux.dtb" # Specific to this board
|
||||
|
||||
# Source vendor-specific configuration
|
||||
source "${SRC}/config/sources/vendors/mekotronics/mekotronics-rk3588.conf.sh"
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user