First Commit

This commit is contained in:
leeboby
2020-10-30 09:50:39 +08:00
commit e5f9bb65ac
845 changed files with 177861 additions and 0 deletions

18
external/config/aptly-beta.conf vendored Normal file
View File

@@ -0,0 +1,18 @@
{
"rootDir": "output/repository-beta",
"downloadConcurrency": 4,
"downloadSpeedLimit": 0,
"architectures": [],
"dependencyFollowSuggests": false,
"dependencyFollowRecommends": false,
"dependencyFollowAllVariants": false,
"dependencyFollowSource": false,
"gpgDisableSign": false,
"gpgDisableVerify": false,
"gpgProvider": "gpg2",
"downloadSourcePackages": false,
"ppaDistributorID": "ubuntu",
"ppaCodename": "",
"S3PublishEndpoints": {},
"SwiftPublishEndpoints": {}
}

17
external/config/aptly-temp.conf vendored Normal file
View File

@@ -0,0 +1,17 @@
{
"rootDir": "/tmp/aptly-temp/",
"downloadConcurrency": 4,
"downloadSpeedLimit": 0,
"architectures": [],
"dependencyFollowSuggests": false,
"dependencyFollowRecommends": false,
"dependencyFollowAllVariants": false,
"dependencyFollowSource": false,
"gpgDisableSign": false,
"gpgDisableVerify": false,
"downloadSourcePackages": false,
"ppaDistributorID": "ubuntu",
"ppaCodename": "",
"S3PublishEndpoints": {},
"SwiftPublishEndpoints": {}
}

18
external/config/aptly.conf vendored Normal file
View File

@@ -0,0 +1,18 @@
{
"rootDir": "output/repository",
"downloadConcurrency": 4,
"downloadSpeedLimit": 0,
"architectures": [],
"dependencyFollowSuggests": false,
"dependencyFollowRecommends": false,
"dependencyFollowAllVariants": false,
"dependencyFollowSource": false,
"gpgDisableSign": false,
"gpgDisableVerify": false,
"gpgProvider": "gpg2",
"downloadSourcePackages": false,
"ppaDistributorID": "ubuntu",
"ppaCodename": "",
"S3PublishEndpoints": {},
"SwiftPublishEndpoints": {}
}

52
external/config/armbian.key vendored Normal file
View 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-----

5
external/config/boards/orangepi2.conf vendored Normal file
View File

@@ -0,0 +1,5 @@
# Allwinner H3 quad core 1GB RAM
BOARD_NAME="Orange Pi 2"
BOARDFAMILY="sun8i"
BOOTCONFIG="orangepi_2_defconfig"
KERNEL_TARGET="current"

7
external/config/boards/orangepi3.conf vendored Normal file
View File

@@ -0,0 +1,7 @@
# Allwinner H6 quad core 2GB RAM SoC GBE USB3
BOARD_NAME="Orange Pi 3"
BOARDFAMILY="sun50iw6"
BOOTCONFIG="orangepi_3_defconfig"
KERNEL_TARGET="current"
FULL_DESKTOP="yes"
ATFBRANCH="tag:v2.2"

8
external/config/boards/orangepi4.conf vendored Normal file
View File

@@ -0,0 +1,8 @@
# Rockchip RK3399 hexa core 4GB RAM SoC GBE eMMC USB3 USB-C WiFi/BT
BOARD_NAME="OrangePi 4"
BOARDFAMILY="rk3399"
BOOTCONFIG="orangepi-4-rk3399_defconfig"
KERNEL_TARGET="current"
FULL_DESKTOP="yes"
ASOUND_STATE="asound.state.rt5651"
BOOT_LOGO="desktop"

View File

@@ -0,0 +1,7 @@
# Allwinner H3 quad core 512MB RAM WiFi
BOARD_NAME="Orange Pi Lite"
BOARDFAMILY="sun8i"
BOOTCONFIG="orangepi_lite_defconfig"
MODULES_LEGACY="g_serial"
MODULES_CURRENT="g_serial"
KERNEL_TARGET="current"

View File

@@ -0,0 +1,5 @@
# Allwinner H6 quad core 1GB RAM SoC WiFi USB3
BOARD_NAME="Orange Pi Lite 2"
BOARDFAMILY="sun50iw6"
BOOTCONFIG="orangepi_lite2_defconfig"
KERNEL_TARGET="current"

View File

@@ -0,0 +1,5 @@
# Allwinner H3 quad core 512MB RAM SoC
BOARD_NAME="Orange Pi One"
BOARDFAMILY="sun8i"
BOOTCONFIG="orangepi_one_defconfig"
KERNEL_TARGET="current"

View File

@@ -0,0 +1,6 @@
# Allwinner H6 quad core 1GB RAM SoC GBE
BOARD_NAME="Orange Pi One+"
BOARDFAMILY="sun50iw6"
BOOTCONFIG="orangepi_one_plus_defconfig"
KERNEL_TARGET="current"
ATFBRANCH="tag:v2.2"

View File

@@ -0,0 +1,5 @@
# Allwinner H3 quad core 1GB RAM SoC
BOARD_NAME="Orange Pi PC"
BOARDFAMILY="sun8i"
BOOTCONFIG="orangepi_pc_defconfig"
KERNEL_TARGET="current"

View File

@@ -0,0 +1,6 @@
# Allwinner H5 quad core 1GB RAM SoC GBE SPI
BOARD_NAME="Orange Pi PC2"
BOARDFAMILY="sun50iw2"
BOOTCONFIG="orangepi_pc2_defconfig"
KERNEL_TARGET="current"
FULL_DESKTOP="yes"

View File

@@ -0,0 +1,5 @@
# Allwinner H3 quad core 1GB RAM WiFi eMMC
BOARD_NAME="Orange Pi PC +"
BOARDFAMILY="sun8i"
BOOTCONFIG="orangepi_pc_plus_defconfig"
KERNEL_TARGET="current"

View File

@@ -0,0 +1,5 @@
# Allwinner H3 quad core 1GB/2GB RAM WiFi eMMC
BOARD_NAME="Orange Pi+"
BOARDFAMILY="sun8i"
BOOTCONFIG="orangepi_plus_defconfig"
KERNEL_TARGET="current"

View File

@@ -0,0 +1,6 @@
# Allwinner H3 quad core 2GB RAM WiFi GBE eMMC
BOARD_NAME="Orange Pi+ 2E"
BOARDFAMILY="sun8i"
BOOTCONFIG="orangepi_plus2e_defconfig"
KERNEL_TARGET="current"
FULL_DESKTOP="yes"

View File

@@ -0,0 +1,7 @@
# Allwinner H5 quad core 2GB RAM Wi-Fi/BT
BOARD_NAME="Orange Pi Prime"
BOARDFAMILY="sun50iw2"
BOOTCONFIG="orangepi_prime_defconfig"
DEFAULT_OVERLAYS="analog-codec"
KERNEL_TARGET="current"
FULL_DESKTOP="yes"

11
external/config/boards/orangepir1.conf vendored Normal file
View File

@@ -0,0 +1,11 @@
# Allwinner H2+ quad core 256MB/512MB RAM SoC WiFi SPI 2xETH
BOARD_NAME="Orange Pi R1"
BOARDFAMILY="sun8i"
BOOTCONFIG="orangepi_r1_defconfig"
DEFAULT_OVERLAYS="usbhost2 usbhost3"
MODULES="g_serial"
MODULES_BLACKLIST="lima"
BUILD_DESKTOP="no"
DEFAULT_CONSOLE="serial"
SERIALCON="ttyS0,ttyGS0"
KERNEL_TARGET="current"

View File

@@ -0,0 +1,7 @@
# Rockchip RK3399 hexa core 2G/4GB RAM SoC GBE eMMC mPCI USB3 WiFi/BT
BOARD_NAME="Orange Pi RK3399"
BOARDFAMILY="rk3399"
BOOTCONFIG="orangepi-rk3399_defconfig"
KERNEL_TARGET="current"
FULL_DESKTOP="yes"
BOOT_LOGO="desktop"

View File

@@ -0,0 +1,6 @@
# Allwinner A64 quad core 1GB/2GB RAM SoC GBE WiFi/BT
BOARD_NAME="Orange Pi Win"
BOARDFAMILY="sun50iw1"
BOOTCONFIG="orangepi_win_defconfig"
KERNEL_TARGET="current"
PACKAGE_LIST_DESKTOP_BOARD="xfce4-power-manager"

View File

@@ -0,0 +1,11 @@
# Allwinner H2+ quad core 256/512MB RAM SoC WiFi SPI
BOARD_NAME="Orange Pi Zero"
BOARDFAMILY="sun8i"
BOOTCONFIG="orangepi_zero_defconfig"
MODULES_CURRENT="g_serial"
MODULES_BLACKLIST="lima"
DEFAULT_OVERLAYS="usbhost2 usbhost3"
DEFAULT_CONSOLE="serial"
BUILD_DESKTOP="no"
SERIALCON="ttyS0,ttyGS0"
KERNEL_TARGET="current"

View File

@@ -0,0 +1,5 @@
# Allwinner H616 quad core 1GB RAM
BOARD_NAME="Orange Pi Zero 2"
BOARDFAMILY="sun50iw9"
BOOTCONFIG="orangepi_zero2_defconfig"
KERNEL_TARGET="legacy"

View File

@@ -0,0 +1,11 @@
# Allwinner H2+ quad core 256/512MB RAM SoC WiFi SPI
BOARD_NAME="Orange Pi Zero LTS"
BOARDFAMILY="sun8i"
BOOTCONFIG="orangepi_zero_defconfig"
MODULES_CURRENT="g_serial"
MODULES_BLACKLIST="lima"
DEFAULT_OVERLAYS="usbhost2 usbhost3"
DEFAULT_CONSOLE="serial"
BUILD_DESKTOP="no"
SERIALCON="ttyS0,ttyGS0"
KERNEL_TARGET="current"

View File

@@ -0,0 +1,11 @@
# Allwinner H5 quad core 512MB RAM SoC GBE WiFi SPI
BOARD_NAME="Orange Pi Zero Plus"
BOARDFAMILY="sun50iw2"
BOOTCONFIG="orangepi_zero_plus_defconfig"
DEFAULT_CONSOLE="serial"
MODULES="g_serial"
MODULES_BLACKLIST="lima"
SERIALCON="ttyS0,ttyGS0"
DEFAULT_OVERLAYS="usbhost2 usbhost3"
BUILD_DESKTOP="no"
KERNEL_TARGET="current"

View File

@@ -0,0 +1,9 @@
# Allwinner H3 quad core 512MB RAM SoC Wi-Fi/BT
BOARD_NAME="Orange Pi Zero Plus 2"
BOARDFAMILY="sun8i"
BOOTCONFIG="orangepi_zero_plus2_h3_defconfig"
MODULES_LEGACY="g_serial"
MODULES_CURRENT="g_serial"
DEFAULT_OVERLAYS="usbhost2 usbhost3"
SERIALCON="ttyS0,ttyGS0"
KERNEL_TARGET="current"

View File

@@ -0,0 +1,9 @@
# Allwinner H5 quad core 512MB RAM SoC Wi-Fi/BT
BOARD_NAME="Orange Pi Zero Plus 2"
BOARDFAMILY="sun50iw2"
BOOTCONFIG="orangepi_zero_plus2_defconfig"
MODULES_LEGACY="g_serial"
MODULES_CURRENT="g_serial"
DEFAULT_OVERLAYS="gpio-regulator-1.3v usbhost2 usbhost3"
SERIALCON="ttyS0,ttyGS0"
KERNEL_TARGET="current"

2
external/config/bootenv/rockchip.txt vendored Normal file
View File

@@ -0,0 +1,2 @@
verbosity=1
bootlogo=false

View File

@@ -0,0 +1 @@
verbosity=1

View File

@@ -0,0 +1,2 @@
verbosity=1
console=both

View File

@@ -0,0 +1,2 @@
verbosity=1
console=both

View File

@@ -0,0 +1,5 @@
verbosity=1
console=both
disp_mode=1080p60
fb0_width=1280
fb0_height=720

View File

@@ -0,0 +1,2 @@
verbosity=1
console=both

View File

@@ -0,0 +1,4 @@
verbosity=1
logo=disabled
console=both
disp_mode=1920x1080p60

4
external/config/bootenv/sunxi.txt vendored Normal file
View File

@@ -0,0 +1,4 @@
verbosity=1
bootlogo=false
console=both
disp_mode=1920x1080p60

View File

@@ -0,0 +1,79 @@
# DO NOT EDIT THIS FILE
#
# Please edit /boot/armbianEnv.txt to set supported parameters
#
setenv ramdisk_addr_r "0x21000000"
setenv load_addr "0x39000000"
setenv overlay_error "false"
# default values
setenv rootdev "/dev/mmcblk0p1"
setenv verbosity "1"
setenv console "both"
setenv bootlogo "false"
setenv rootfstype "ext4"
setenv docker_optimizations "on"
setenv earlycon "off"
echo "Boot script loaded from ${devtype} ${devnum}"
if test -e ${devtype} ${devnum} ${prefix}armbianEnv.txt; then
load ${devtype} ${devnum} ${load_addr} ${prefix}armbianEnv.txt
env import -t ${load_addr} ${filesize}
fi
if test "${logo}" = "disabled"; then setenv logo "logo.nologo"; fi
# Tinkerboard walkaround.
if test "${console}" = "ttyS2,115200n8"; then setenv console "both"; fi
if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=tty1"; fi
if test "${console}" = "serial" || test "${console}" = "both"; then setenv consoleargs "console=ttyS2,115200n8 ${consoleargs}"; fi
if test "${earlycon}" = "on"; then setenv consoleargs "earlycon ${consoleargs}"; fi
if test "${bootlogo}" = "true"; then setenv consoleargs "bootsplash.bootfile=bootsplash.armbian ${consoleargs}"; fi
# get PARTUUID of first partition on SD/eMMC the boot script was loaded from
if test "${devtype}" = "mmc"; then part uuid mmc ${devnum}:1 partuuid; fi
setenv bootargs "earlyprintk root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}"
if test "${docker_optimizations}" = "on"; then setenv bootargs "${bootargs} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1"; fi
if test "${board}" = "miqi_rk3288"; then setenv fdtfile "rk3288-miqi.dtb"; fi
load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}uInitrd
load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}zImage
load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
fdt addr ${fdt_addr_r}
fdt resize 65536
for overlay_file in ${overlays}; do
if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/overlay/${overlay_prefix}-${overlay_file}.dtbo; then
echo "Applying kernel provided DT overlay ${overlay_prefix}-${overlay_file}.dtbo"
fdt apply ${load_addr} || setenv overlay_error "true"
fi
done
for overlay_file in ${user_overlays}; do
if load ${devtype} ${devnum} ${load_addr} ${prefix}overlay-user/${overlay_file}.dtbo; then
echo "Applying user provided DT overlay ${overlay_file}.dtbo"
fdt apply ${load_addr} || setenv overlay_error "true"
fi
done
if test "${overlay_error}" = "true"; then
echo "Error applying DT overlays, restoring original DT"
load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
else
if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/overlay/${overlay_prefix}-fixup.scr; then
echo "Applying kernel provided DT fixup script (${overlay_prefix}-fixup.scr)"
source ${load_addr}
fi
if test -e ${devtype} ${devnum} ${prefix}fixup.scr; then
load ${devtype} ${devnum} ${load_addr} ${prefix}fixup.scr
echo "Applying user provided fixup script (fixup.scr)"
source ${load_addr}
fi
fi
bootz ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
# Recompile with:
# mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr

View File

@@ -0,0 +1,73 @@
# DO NOT EDIT THIS FILE
#
# Please edit /boot/armbianEnv.txt to set supported parameters
#
setenv load_addr "0x9000000"
setenv overlay_error "false"
# default values
setenv rootdev "/dev/mmcblk0p1"
setenv verbosity "1"
setenv console "both"
setenv bootlogo "false"
setenv rootfstype "ext4"
setenv docker_optimizations "on"
setenv earlycon "off"
echo "Boot script loaded from ${devtype} ${devnum}"
if test -e ${devtype} ${devnum} ${prefix}armbianEnv.txt; then
load ${devtype} ${devnum} ${load_addr} ${prefix}armbianEnv.txt
env import -t ${load_addr} ${filesize}
fi
if test "${logo}" = "disabled"; then setenv logo "logo.nologo"; fi
if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=tty1"; fi
if test "${console}" = "serial" || test "${console}" = "both"; then setenv consoleargs "console=ttyS2,1500000 ${consoleargs}"; fi
if test "${earlycon}" = "on"; then setenv consoleargs "earlycon ${consoleargs}"; fi
if test "${bootlogo}" = "true"; then setenv consoleargs "bootsplash.bootfile=bootsplash.armbian ${consoleargs}"; fi
# get PARTUUID of first partition on SD/eMMC the boot script was loaded from
if test "${devtype}" = "mmc"; then part uuid mmc ${devnum}:1 partuuid; fi
setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}"
if test "${docker_optimizations}" = "on"; then setenv bootargs "${bootargs} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1"; fi
load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}uInitrd
load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}Image
load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
fdt addr ${fdt_addr_r}
fdt resize 65536
for overlay_file in ${overlays}; do
if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/rockchip/overlay/${overlay_prefix}-${overlay_file}.dtbo; then
echo "Applying kernel provided DT overlay ${overlay_prefix}-${overlay_file}.dtbo"
fdt apply ${load_addr} || setenv overlay_error "true"
fi
done
for overlay_file in ${user_overlays}; do
if load ${devtype} ${devnum} ${load_addr} ${prefix}overlay-user/${overlay_file}.dtbo; then
echo "Applying user provided DT overlay ${overlay_file}.dtbo"
fdt apply ${load_addr} || setenv overlay_error "true"
fi
done
if test "${overlay_error}" = "true"; then
echo "Error applying DT overlays, restoring original DT"
load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
else
if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/rockchip/overlay/${overlay_prefix}-fixup.scr; then
echo "Applying kernel provided DT fixup script (${overlay_prefix}-fixup.scr)"
source ${load_addr}
fi
if test -e ${devtype} ${devnum} ${prefix}fixup.scr; then
load ${devtype} ${devnum} ${load_addr} ${prefix}fixup.scr
echo "Applying user provided fixup script (fixup.scr)"
source ${load_addr}
fi
fi
booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
# Recompile with:
# mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr

View File

@@ -0,0 +1,75 @@
# DO NOT EDIT THIS FILE
#
# Please edit /boot/orangepiEnv.txt to set supported parameters
#
# default values
setenv load_addr "0x45000000"
setenv rootdev "/dev/mmcblk0p1"
setenv verbosity "1"
setenv rootfstype "ext4"
setenv console "both"
setenv docker_optimizations "on"
setenv bootlogo "false"
# Print boot source
itest.b *0x10028 == 0x00 && echo "U-boot loaded from SD"
itest.b *0x10028 == 0x02 && echo "U-boot loaded from eMMC or secondary SD"
itest.b *0x10028 == 0x03 && echo "U-boot loaded from SPI"
echo "Boot script loaded from ${devtype}"
if test -e ${devtype} ${devnum} ${prefix}orangepiEnv.txt; then
load ${devtype} ${devnum} ${load_addr} ${prefix}orangepiEnv.txt
env import -t ${load_addr} ${filesize}
fi
if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=ttyS0,115200 console=tty1"; fi
if test "${console}" = "serial"; then setenv consoleargs "console=ttyS0,115200"; fi
if test "${bootlogo}" = "true"; then setenv consoleargs "bootsplash.bootfile=bootsplash.orangepi ${consoleargs}"; fi
# get PARTUUID of first partition on SD/eMMC it was loaded from
# mmc 0 is always mapped to device u-boot (2016.09+) was loaded from
if test "${devtype}" = "mmc"; then part uuid mmc 0:1 partuuid; fi
setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}"
if test "${docker_optimizations}" = "on"; then setenv bootargs "${bootargs} cgroup_enable=memory swapaccount=1"; fi
load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
fdt addr ${fdt_addr_r}
fdt resize 65536
for overlay_file in ${overlays}; do
if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/allwinner/overlay/${overlay_prefix}-${overlay_file}.dtbo; then
echo "Applying kernel provided DT overlay ${overlay_prefix}-${overlay_file}.dtbo"
fdt apply ${load_addr} || setenv overlay_error "true"
fi
done
for overlay_file in ${user_overlays}; do
if load ${devtype} ${devnum} ${load_addr} ${prefix}overlay-user/${overlay_file}.dtbo; then
echo "Applying user provided DT overlay ${overlay_file}.dtbo"
fdt apply ${load_addr} || setenv overlay_error "true"
fi
done
if test "${overlay_error}" = "true"; then
echo "Error applying DT overlays, restoring original DT"
load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
else
if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/allwinner/overlay/${overlay_prefix}-fixup.scr; then
echo "Applying kernel provided DT fixup script (${overlay_prefix}-fixup.scr)"
source ${load_addr}
fi
if test -e ${devtype} ${devnum} ${prefix}fixup.scr; then
load ${devtype} ${devnum} ${load_addr} ${prefix}fixup.scr
echo "Applying user provided fixup script (fixup.scr)"
source ${load_addr}
fi
fi
load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}uInitrd
load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}Image
booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
# Recompile with:
# mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr

View File

@@ -0,0 +1,49 @@
# DO NOT EDIT THIS FILE
#
# Please edit /boot/orangepiEnv.txt to set supported parameters
#
# default values
setenv load_addr "0x45000000"
setenv rootdev "/dev/mmcblk0p1"
setenv verbosity "1"
setenv rootfstype "ext4"
setenv console "both"
setenv docker_optimizations "on"
setenv bootlogo "false"
# Print boot source
itest.b *0x10028 == 0x00 && echo "U-boot loaded from SD"
itest.b *0x10028 == 0x02 && echo "U-boot loaded from eMMC or secondary SD"
itest.b *0x10028 == 0x03 && echo "U-boot loaded from SPI"
echo "Boot script loaded from ${devtype}"
if test -e ${devtype} ${devnum} ${prefix}orangepiEnv.txt; then
load ${devtype} ${devnum} ${load_addr} ${prefix}orangepiEnv.txt
env import -t ${load_addr} ${filesize}
fi
if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=ttyS0,115200 console=tty1"; fi
if test "${console}" = "serial"; then setenv consoleargs "console=ttyS0,115200"; fi
if test "${bootlogo}" = "true"; then setenv consoleargs "bootsplash.bootfile=bootsplash.orangepi ${consoleargs}"; fi
# get PARTUUID of first partition on SD/eMMC it was loaded from
# mmc 0 is always mapped to device u-boot (2016.09+) was loaded from
if test "${devtype}" = "mmc"; then part uuid mmc 0:1 partuuid; fi
setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}"
if test "${docker_optimizations}" = "on"; then setenv bootargs "${bootargs} cgroup_enable=memory swapaccount=1"; fi
load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
fdt addr ${fdt_addr_r}
fdt resize 65536
load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}uInitrd
load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}Image
booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
# Recompile with:
# mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr

View File

@@ -0,0 +1,59 @@
# DO NOT EDIT THIS FILE
#
# Please edit /boot/orangepiEnv.txt to set supported parameters
#
# default values
setenv load_addr "0x45000000"
setenv rootdev "/dev/mmcblk0p1"
setenv verbosity "1"
setenv rootfstype "ext4"
setenv console "both"
setenv docker_optimizations "off"
setenv bootlogo "false"
# Print boot source
itest.b *0x10028 == 0x00 && echo "U-boot loaded from SD"
itest.b *0x10028 == 0x02 && echo "U-boot loaded from eMMC or secondary SD"
itest.b *0x10028 == 0x03 && echo "U-boot loaded from SPI"
echo "Boot script loaded from ${devtype}"
if test -e ${devtype} ${devnum} ${prefix}orangepiEnv.txt; then
load ${devtype} ${devnum} ${load_addr} ${prefix}orangepiEnv.txt
env import -t ${load_addr} ${filesize}
fi
if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=ttyS0,115200 console=tty1"; fi
if test "${console}" = "serial"; then setenv consoleargs "console=ttyS0,115200"; fi
if test "${bootlogo}" = "true"; then setenv consoleargs "bootsplash.bootfile=bootsplash.orangepi ${consoleargs}"; fi
# get PARTUUID of first partition on SD/eMMC it was loaded from
# mmc 0 is always mapped to device u-boot (2016.09+) was loaded from
if test "${devtype}" = "mmc"; then part uuid mmc 0:1 partuuid; fi
setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} disp_reserve=${disp_reserve} ${extraargs} ${extraboardargs}"
if test "${docker_optimizations}" = "on"; then setenv bootargs "${bootargs} cgroup_enable=memory swapaccount=1"; fi
#load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
#fdt addr -c ${fdt_addr_r}
#fdt addr ${fdt_addr_r}
#fdt resize 65536
fdt set disp boot_fb0 ${boot_fb0}
fdt set disp boot_disp <${boot_disp}>
fdt set disp boot_disp1 <${boot_disp1}>
fdt set disp boot_disp2 <${boot_disp2}>
fdt set disp tv_vdid <${tv_vdid}>
fdt set disp fb0_width <${fb0_width}>
fdt set disp fb0_height <${fb0_height}>
load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}uInitrd
load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}uImage
bootm ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
# Recompile with:
# mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr

View File

@@ -0,0 +1,90 @@
# DO NOT EDIT THIS FILE
#
# Please edit /boot/orangepiEnv.txt to set supported parameters
#
setenv load_addr "0x44000000"
setenv overlay_error "false"
# default values
setenv verbosity "1"
setenv console "both"
setenv disp_mem_reserves "off"
setenv disp_mode "1920x1080p60"
setenv rootfstype "ext4"
setenv docker_optimizations "on"
setenv devnum "0"
setenv rootdev "/dev/mmcblk${devnum}p2"
# Print boot source
itest.b *0x28 == 0x00 && echo "U-boot loaded from SD"
itest.b *0x28 == 0x02 && echo "U-boot loaded from eMMC or secondary SD"
itest.b *0x28 == 0x03 && echo "U-boot loaded from SPI"
# get PARTUUID of first partition on SD/eMMC it was loaded from
# mmc 0 is always mapped to device u-boot (2016.09+) was loaded from
if test "${devtype}" = "mmc"; then
part uuid mmc ${devnum}:1 partuuid;
setenv devnum ${mmc_bootdev}
setenv rootdev "/dev/mmcblk${mmc_bootdev}p2"
fi
echo "Boot script loaded from ${devtype}"
if test -e ${devtype} ${devnum} ${prefix}orangepiEnv.txt; then
load ${devtype} ${devnum} ${load_addr} ${prefix}orangepiEnv.txt
env import -t ${load_addr} ${filesize}
fi
if test "${logo}" = "disabled"; then setenv logo "logo.nologo"; fi
if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=ttyS0,115200 console=tty1"; fi
if test "${console}" = "serial"; then setenv consoleargs "console=ttyS0,115200"; fi
setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} hdmi.audio=EDID:0 disp.screen0_output_mode=${disp_mode} consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} ubootsource=${devtype} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}"
if test "${disp_mem_reserves}" = "off"; then setenv bootargs "${bootargs} sunxi_ve_mem_reserve=0 sunxi_g2d_mem_reserve=0 sunxi_fb_mem_reserve=16"; fi
if test "${docker_optimizations}" = "on"; then setenv bootargs "${bootargs} cgroup_enable=memory swapaccount=1"; fi
load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}uInitrd
load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}zImage
if test -e ${devtype} ${devnum} "${prefix}.next"; then
echo "Found mainline kernel configuration"
load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
fdt addr ${fdt_addr_r}
fdt resize 65536
for overlay_file in ${overlays}; do
if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/overlay/${overlay_prefix}-${overlay_file}.dtbo; then
echo "Applying kernel provided DT overlay ${overlay_prefix}-${overlay_file}.dtbo"
fdt apply ${load_addr} || setenv overlay_error "true"
fi
done
for overlay_file in ${user_overlays}; do
if load ${devtype} ${devnum} ${load_addr} ${prefix}overlay-user/${overlay_file}.dtbo; then
echo "Applying user provided DT overlay ${overlay_file}.dtbo"
fdt apply ${load_addr} || setenv overlay_error "true"
fi
done
if test "${overlay_error}" = "true"; then
echo "Error applying DT overlays, restoring original DT"
load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
else
if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/overlay/${overlay_prefix}-fixup.scr; then
echo "Applying kernel provided DT fixup script (${overlay_prefix}-fixup.scr)"
source ${load_addr}
fi
if test -e ${devtype} ${devnum} ${prefix}fixup.scr; then
load ${devtype} ${devnum} ${load_addr} ${prefix}fixup.scr
echo "Applying user provided fixup script (fixup.scr)"
source ${load_addr}
fi
fi
bootz ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
else
echo "Found legacy kernel configuration"
load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}script.bin
bootz ${kernel_addr_r} ${ramdisk_addr_r}
fi
# Recompile with:
# mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr

View File

@@ -0,0 +1,92 @@
# DO NOT EDIT THIS FILE
#
# Please edit /boot/orangepiEnv.txt to set supported parameters
#
setenv load_addr "0x45000000"
setenv overlay_error "false"
# default values
setenv verbosity "1"
setenv console "both"
setenv disp_mem_reserves "off"
setenv disp_mode "1920x1080p60"
setenv rootfstype "ext4"
setenv docker_optimizations "on"
setenv bootlogo "false"
setenv devnum "0"
setenv rootdev "/dev/mmcblk${devnum}p1"
setenv earlycon "off"
# Print boot source
itest.b *0x28 == 0x00 && echo "U-boot loaded from SD"
itest.b *0x28 == 0x02 && echo "U-boot loaded from eMMC or secondary SD"
itest.b *0x28 == 0x03 && echo "U-boot loaded from SPI"
# get PARTUUID of first partition on SD/eMMC it was loaded from
# mmc 0 is always mapped to device u-boot (2016.09+) was loaded from
if test "${devtype}" = "mmc"; then
part uuid mmc ${devnum}:1 partuuid;
setenv devnum ${mmc_bootdev}
setenv rootdev "/dev/mmcblk${mmc_bootdev}p1"
fi
echo "Boot script loaded from ${devtype}"
if test -e ${devtype} ${devnum} ${prefix}orangepiEnv.txt; then
load ${devtype} ${devnum} ${load_addr} ${prefix}orangepiEnv.txt
env import -t ${load_addr} ${filesize}
fi
if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=ttyS0,115200 console=tty1"; fi
if test "${console}" = "serial"; then setenv consoleargs "console=ttyS0,115200"; fi
if test "${earlycon}" = "on"; then setenv consoleargs "earlycon ${consoleargs}"; fi
if test "${bootlogo}" = "true"; then setenv consoleargs "bootsplash.bootfile=bootsplash.orangepi ${consoleargs}"; fi
setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} hdmi.audio=EDID:0 disp.screen0_output_mode=${disp_mode} consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} ubootsource=${devtype} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}"
if test "${disp_mem_reserves}" = "off"; then setenv bootargs "${bootargs} sunxi_ve_mem_reserve=0 sunxi_g2d_mem_reserve=0 sunxi_fb_mem_reserve=16"; fi
if test "${docker_optimizations}" = "on"; then setenv bootargs "${bootargs} cgroup_enable=memory swapaccount=1"; fi
load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}uInitrd
load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}zImage
if test -e ${devtype} ${devnum} "${prefix}.next"; then
echo "Found mainline kernel configuration"
load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
fdt addr ${fdt_addr_r}
fdt resize 65536
for overlay_file in ${overlays}; do
if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/overlay/${overlay_prefix}-${overlay_file}.dtbo; then
echo "Applying kernel provided DT overlay ${overlay_prefix}-${overlay_file}.dtbo"
fdt apply ${load_addr} || setenv overlay_error "true"
fi
done
for overlay_file in ${user_overlays}; do
if load ${devtype} ${devnum} ${load_addr} ${prefix}overlay-user/${overlay_file}.dtbo; then
echo "Applying user provided DT overlay ${overlay_file}.dtbo"
fdt apply ${load_addr} || setenv overlay_error "true"
fi
done
if test "${overlay_error}" = "true"; then
echo "Error applying DT overlays, restoring original DT"
load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
else
if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/overlay/${overlay_prefix}-fixup.scr; then
echo "Applying kernel provided DT fixup script (${overlay_prefix}-fixup.scr)"
source ${load_addr}
fi
if test -e ${devtype} ${devnum} ${prefix}fixup.scr; then
load ${devtype} ${devnum} ${load_addr} ${prefix}fixup.scr
echo "Applying user provided fixup script (fixup.scr)"
source ${load_addr}
fi
fi
bootz ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
else
echo "Found legacy kernel configuration"
load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}script.bin
bootz ${kernel_addr_r} ${ramdisk_addr_r}
fi
# Recompile with:
# mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr

BIN
external/config/bootscripts/boot.scr vendored Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1
external/config/sources/README.md vendored Symbolic link
View File

@@ -0,0 +1 @@
families/README.md

28
external/config/sources/arm64.conf vendored Normal file
View File

@@ -0,0 +1,28 @@
QEMU_BINARY="qemu-aarch64-static"
ARCHITECTURE=arm64
ARCH=arm64
KERNEL_IMAGE_TYPE=Image
CAN_BUILD_STRETCH=yes
GIT_SERVER="https://github.com/orangepi-xunlong"
#[[ ${DOWNLOAD_MIRROR} == china ]] && GIT_SERVER="https://gitee.com/leeboby"
[[ -z $INITRD_ARCH ]] && INITRD_ARCH=arm64
[[ $ATF_COMPILE != "no" && -z $ATF_COMPILER ]] && ATF_COMPILER="aarch64-none-linux-gnu-"
[[ $ATF_COMPILE != "no" && -z $ATFSOURCE ]] && ATFSOURCE='https://github.com/ARM-software/arm-trusted-firmware'
#[[ $ATF_COMPILE != "no" && ${DOWNLOAD_MIRROR} == china ]] && ATFSOURCE="${GIT_SERVER}/arm-trusted-firmware"
[[ $ATF_COMPILE != "no" && -z $ATFDIR ]] && ATFDIR='arm-trusted-firmware-sunxi-mainline'
[[ $ATF_COMPILE != "no" && -z $ATFBRANCH ]] && ATFBRANCH='branch:master'
[[ $ATF_COMPILE != "no" && -z $ATF_USE_GCC ]] && ATF_USE_GCC='> 8.0'
[[ -z $UBOOT_COMPILER ]] && UBOOT_COMPILER="aarch64-none-linux-gnu-"
[[ -z $UBOOT_USE_GCC ]] && UBOOT_USE_GCC='> 8.0'
[[ -z $BOOTSOURCE ]] && BOOTSOURCE="${GIT_SERVER}/u-boot-orangepi.git"
[[ -z $BOOTDIR ]] && BOOTDIR="${SRC}/u-boot"
[[ -z $BOOTBRANCH ]] && BOOTBRANCH='branch:v2020.04'
[[ -z $KERNEL_COMPILER ]] && KERNEL_COMPILER="aarch64-none-linux-gnu-"
[[ -z $KERNEL_USE_GCC ]] && KERNEL_USE_GCC='> 8.0'
[[ -z $KERNELDIR ]] && KERNELDIR="${SRC}/kernel"
[[ -z $KERNELSOURCE ]] && KERNELSOURCE="${GIT_SERVER}/linux-orangepi.git"
[[ -z $KERNELBRANCH ]] && KERNELBRANCH='branch:orange-pi-5.4'

20
external/config/sources/armhf.conf vendored Normal file
View File

@@ -0,0 +1,20 @@
INITRD_ARCH=arm
QEMU_BINARY="qemu-arm-static"
ARCHITECTURE=arm
ARCH=armhf
KERNEL_IMAGE_TYPE=Image
CAN_BUILD_STRETCH=yes
GIT_SERVER="https://github.com/orangepi-xunlong"
#[[ ${DOWNLOAD_MIRROR} == china ]] && GIT_SERVER="https://gitee.com/leeboby"
[[ -z $UBOOT_COMPILER ]] && UBOOT_COMPILER="arm-none-linux-gnueabihf-"
[[ -z $UBOOT_USE_GCC ]] && UBOOT_USE_GCC='> 8.0'
[[ -z $BOOTSOURCE ]] && BOOTSOURCE="${GIT_SERVER}/u-boot-orangepi.git"
[[ -z $BOOTDIR ]] && BOOTDIR="${SRC}/u-boot"
[[ -z $BOOTBRANCH ]] && BOOTBRANCH='branch:v2020.04'
[[ -z $KERNEL_COMPILER ]] && KERNEL_COMPILER="arm-none-linux-gnueabihf-"
[[ -z $KERNEL_USE_GCC ]] && KERNEL_USE_GCC='> 8.0'
[[ -z $KERNELDIR ]] && KERNELDIR="${SRC}/kernel"
[[ -z $KERNELSOURCE ]] && KERNELSOURCE="${GIT_SERVER}/linux-orangepi.git"
[[ -z $KERNELBRANCH ]] && KERNELBRANCH='branch:orange-pi-5.4'

View File

@@ -0,0 +1,15 @@
|armhf| arm64 |
|:--|:--|
| imx6 : imx6 | meson-gxbb : meson64 |
| imx7d : imx7d | meson-gxl : meson64 |
| meson8b: meson | mt7623 : mt7623|
| mvebu : mvebu | mvebu64 : mvebu64 |
| odroidxu4 : odroidxu4 | odroidn2 : odroidn2|
| rockchip : rockchip | rk3399 : rk3399 |
| Allwinner sun4i : sunxi | rockchip64 : rockchip64|
| Allwinner sun5i : sunxi | s5p6818 : s5p6818 |
| Allwinner sun6i : sunxi | sun50iw1 : sunxi64 |
| Allwinner sun7i : sunxi | sun50iw2 : sunxi64 |
| Allwinner sun8i : sunxi | sun50iw6 : sunxi64 |
| Allwinner sun9i : sunxi &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; | &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; &emsp; |

View File

@@ -0,0 +1,300 @@
ARCH=arm64
KERNEL_IMAGE_TYPE=Image
OFFSET=16
BOOTSCRIPT='boot-rockchip64.cmd:boot.cmd'
BOOTENV_FILE='rockchip.txt'
UBOOT_TARGET_MAP=";;idbloader.bin uboot.img trust.bin"
BOOTDELAY=0
OVERLAY_PREFIX='rockchip'
SERIALCON=${SERIALCON:=$([ $BRANCH == "legacy" ] && echo "ttyFIQ0:1500000" || echo "ttyS2:1500000")}
GOVERNOR="ondemand"
CPUMAX="2016000"
CPUMIN="408000"
BOOTBRANCH="tag:v2020.07"
RKBIN_DIR="$SRC/cache/sources/rkbin-tools"
if [[ $BOARD == nanopi-r2s || $BOARD == rockpi-e || $BOARD == nanopineo3 ]]; then
BOOT_USE_BLOBS=yes
BOOT_SOC=rk3328
DDR_BLOB='rk33/rk3328_ddr_333MHz_v1.16.bin'
MINILOADER_BLOB='rk33/rk322xh_miniloader_v2.50.bin'
BL31_BLOB='rk33/rk322xh_bl31_v1.42.elf'
elif [[ $BOOTCONFIG == *3328* ]]; then
BOOT_RK3328_USE_AYUFAN_ATF=yes
CPUMAX="1390000"
elif [[ $BOARD == rockpi-4* ]]; then
BOOT_USE_BLOBS=yes
BOOT_SOC=rk3399
DDR_BLOB='rk33/rk3399_ddr_933MHz_v1.20.bin' # 1GB model does not boot with later versions
MINILOADER_BLOB='rk33/rk3399_miniloader_v1.19.bin'
BL31_BLOB='rk33/rk3399_bl31_v1.30.elf'
elif [[ $BOARD == rockpro64 ]] || [[ $BOARD == pinebook-pro ]]; then
BOOT_RK3399_LEGACY_HYBRID=yes
BL31_BLOB='rk33/rk3399_bl31_v1.17.elf'
elif [[ $BOARD == rockpi-s ]]; then
BOOT_USE_BLOBS=yes
BOOT_SOC=rk3308
DDR_BLOB='rk33/rk3308_ddr_589MHz_uart0_m0_v1.26.bin'
MINILOADER_BLOB='rk33/rk3308_miniloader_sd_nand_v1.13.bin'
BL31_BLOB='rk33/rk3308_bl31_v2.10.elf'
CPUMAX="1296000"
else
ATFPATCHDIR='atf-rk3399'
fi
case $BRANCH in
current)
KERNELPATCHDIR='rockchip64-'$BRANCH
KERNELBRANCH="branch:linux-5.7.y"
LINUXFAMILY=rockchip64
LINUXCONFIG='linux-rockchip64-'$BRANCH
;;
dev)
KERNELPATCHDIR='rockchip64-'$BRANCH
KERNELBRANCH="branch:linux-5.7.y"
LINUXFAMILY=rockchip64
LINUXCONFIG='linux-rockchip64-'$BRANCH
;;
esac
prepare_boot_configuration()
{
if [[ $BOOT_USE_MAINLINE_ATF == yes ]]; then
UBOOT_TARGET_MAP="BL31=bl31.bin idbloader.img u-boot.itb;;idbloader.img u-boot.itb"
ATFSOURCE='https://github.com/ARM-software/arm-trusted-firmware'
ATF_COMPILER='aarch64-linux-gnu-'
ATFDIR='arm-trusted-firmware'
ATFBRANCH='tag:v2.2'
ATF_USE_GCC='> 6.3'
ATF_TARGET_MAP='M0_CROSS_COMPILE=arm-linux-gnueabi- PLAT=rk3399 bl31;;build/rk3399/release/bl31/bl31.elf:bl31.bin'
ATF_TOOLCHAIN2="arm-linux-gnueabi-:> 5.0"
elif [[ $BOOT_USE_TPL_SPL_BLOB == yes ]]; then
UBOOT_TARGET_MAP="BL31=$RKBIN_DIR/$BL31_BLOB idbloader.img u-boot.itb;;idbloader.img u-boot.itb"
ATFSOURCE=''
ATF_COMPILE='no'
elif [[ $BOOT_USE_BLOBS == yes ]]; then
UBOOT_TARGET_MAP="u-boot-dtb.bin;;idbloader.bin uboot.img trust.bin"
ATFSOURCE=''
ATF_COMPILE='no'
elif [[ $BOOT_RK3399_LEGACY_HYBRID == yes ]]; then # to be removed
UBOOT_TARGET_MAP="BL31=$RKBIN_DIR/$BL31_BLOB u-boot-dtb.bin spl/u-boot-spl.bin u-boot.itb;;spl/u-boot-spl.bin u-boot.itb"
ATFSOURCE=''
ATF_COMPILE='no'
legacy_uboot_locations
elif [[ $BOOT_RK3328_USE_AYUFAN_ATF == yes ]]; then # to be removed
UBOOT_TARGET_MAP=";;idbloader.bin uboot.img trust.bin"
ATFSOURCE='https://github.com/ayufan-rock64/arm-trusted-firmware'
ATF_COMPILER='aarch64-linux-gnu-'
ATFDIR='arm-trusted-firmware-rockchip64'
ATFBRANCH='branch:rockchip'
ATF_USE_GCC='> 6.3'
ATF_TARGET_MAP='PLAT=rk322xh DEBUG=1 bl31;;trust.bin'
ATF_TOOLCHAIN2="arm-linux-gnueabi-:> 5.0"
legacy_uboot_locations
fi
}
legacy_uboot_locations()
{
BOOTSOURCE='https://github.com/ayufan-rock64/linux-u-boot'
BOOTDIR='u-boot-rockchip64'
BOOTBRANCH='branch:rockchip-master'
case $BRANCH in
legacy)
BOOTPATCHDIR="u-boot-rockchip64"
;;
*)
BOOTPATCHDIR="u-boot-rockchip64-dev"
;;
esac
}
uboot_custom_postprocess()
{
if [[ $BOOT_USE_MAINLINE_ATF == yes || $BOOT_USE_TPL_SPL_BLOB == yes ]]; then
:
elif [[ $BOOT_USE_BLOBS == yes ]]; then
local tempfile=$(mktemp)
tools/mkimage -n $BOOT_SOC -T rksd -d $RKBIN_DIR/$DDR_BLOB idbloader.bin
cat $RKBIN_DIR/$MINILOADER_BLOB >> idbloader.bin
loaderimage --pack --uboot ./u-boot-dtb.bin uboot.img 0x200000
trust_merger --replace bl31.elf $RKBIN_DIR/$BL31_BLOB trust.ini
elif [[ $BOOT_RK3399_LEGACY_HYBRID == yes ]]; then
# 3399
tools/mkimage -n rk3399 -T rksd -d $SRC/cache/sources/rkbin-tools/rk33/rk3399_ddr_933MHz_v1.13.bin rksd_loader.img
cat spl/u-boot-spl.bin >> rksd_loader.img
dd if=u-boot.itb of=rksd_loader.img seek=448 conv=notrunc
cp rksd_loader.img $SRC/.tmp/$uboot_name/usr/lib/$uboot_name/$f_dst
tools/mkimage -n rk3399 -T rksd -d $SRC/cache/sources/rkbin-tools/rk33/rk3399_ddr_933MHz_v1.13.bin rkspi_loader.img
cat spl/u-boot-spl.bin >> rkspi_loader.img
for i in `seq 1 128`; do dd count=4 status=none; dd if=/dev/zero count=4 status=none; done < rkspi_loader.img > rkspi_loader.tmp
mv rkspi_loader.tmp rkspi_loader.img
dd if=u-boot.itb of=rkspi_loader.img seek=1024 conv=notrunc
cp rkspi_loader.img $SRC/.tmp/$uboot_name/usr/lib/$uboot_name/$f_dst
elif [[ $BOOT_RK3328_USE_AYUFAN_ATF == yes ]]; then
# 3328
tools/mkimage -n rk3328 -T rksd -d $SRC/cache/sources/rkbin-tools/rk33/rk3328_ddr_786MHz_v1.13.bin idbloader.bin
cat $SRC/cache/sources/rkbin-tools/rk33/rk3328_miniloader_v2.46.bin >> idbloader.bin
loaderimage --pack --uboot ./u-boot-dtb.bin uboot.img 0x200000
else
echo "Unsupported u-boot processing configuration!"
exit 1
fi
}
write_uboot_platform()
{
if [[ -f $1/rksd_loader.img ]]; then # legacy rk3399 loader
dd if=$1/rksd_loader.img of=$2 seek=64 conv=notrunc status=none >/dev/null 2>&1
elif [[ -f $1/u-boot.itb ]]; then # $BOOT_USE_MAINLINE_ATF == yes || $BOOT_USE_TPL_SPL_BLOB == yes
dd if=$1/idbloader.img of=$2 seek=64 conv=notrunc status=none >/dev/null 2>&1
dd if=$1/u-boot.itb of=$2 seek=16384 conv=notrunc status=none >/dev/null 2>&1
elif [[ -f $1/uboot.img ]]; then # $BOOT_USE_BLOBS == yes
dd if=$1/idbloader.bin of=$2 seek=64 conv=notrunc status=none >/dev/null 2>&1
dd if=$1/uboot.img of=$2 seek=16384 conv=notrunc status=none >/dev/null 2>&1
dd if=$1/trust.bin of=$2 seek=24576 conv=notrunc status=none >/dev/null 2>&1
else
echo "Unsupported u-boot processing configuration!"
exit 1
fi
}
setup_write_uboot_platform()
{
if grep -q "ubootpart" /proc/cmdline; then
local tmp=$(cat /proc/cmdline)
tmp="${tmp##*ubootpart=}"
tmp="${tmp%% *}"
[[ -n $tmp ]] && local part=$(findfs PARTUUID=$tmp 2>/dev/null)
[[ -n $part ]] && local dev=$(lsblk -n -o PKNAME $part 2>/dev/null)
[[ -n $dev ]] && DEVICE="/dev/$dev"
fi
}
atf_custom_postprocess()
{
# remove bl31.bin which can be 4+GiB in size and thus may fill the tmpfs mount
rm -f build/rk322xh/debug/bl31.bin
# ATF
trust_merger trust.ini
}
family_tweaks()
{
if [[ $BOARD == z28pro ]]; then
chroot $SDCARD /bin/bash -c "systemctl --no-reload enable z28pro-bluetooth.service >/dev/null 2>&1"
elif [[ $BOARD == nanopi-r2s ]]; then
# rename USB based network to lan0
mkdir -p $SDCARD/etc/udev/rules.d/
echo 'SUBSYSTEM=="net", ACTION=="add", DRIVERS=="r8152", KERNEL=="eth1", NAME="lan0"' > $SDCARD/etc/udev/rules.d/70-rename-lan.rules
# workaround - create old school initial network config since network manager have issues
echo "auto eth0" >> $SDCARD/etc/network/interfaces
echo " iface eth0 inet dhcp" >> $SDCARD/etc/network/interfaces
echo "auto lan0" >> $SDCARD/etc/network/interfaces
echo " iface lan0 inet dhcp" >> $SDCARD/etc/network/interfaces
elif [[ -f $SDCARD/lib/systemd/system/rk3399-bluetooth.service ]]; then
# install and enable Bluetooth
chroot $SDCARD /bin/bash -c "apt-get -y -qq install rfkill bluetooth bluez bluez-tools"
chroot $SDCARD /bin/bash -c "systemctl --no-reload enable rk3399-bluetooth.service >/dev/null 2>&1"
fi
}
family_tweaks_bsp()
{
if [[ $BOARD == z28pro ]]; then
mkdir -p $destination/usr/local/bin
# Bluetooth for Z28 PRO
install -m 755 $SRC/packages/bsp/rk3328/z28pro/8822b_hciattach $destination/usr/bin
install -m 755 $SRC/packages/bsp/rk3328/z28pro/start_bt.sh $destination/usr/local/bin
cp $SRC/packages/bsp/rk3328/z28pro/z28pro-bluetooth.service $destination/lib/systemd/system/
elif [[ $BOARD == rockpi-4b || $BOARD == nanop* || $BOARD == orangepi* || $BOARD == firefly* || $BOARD == roc-rk3399-pc ]]; then
# Bluetooth for most of others
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/
fi
if [[ $BOARD == pinebook-pro ]]; then
cp $SRC/packages/bsp/pinebook-pro/xorg.conf $destination/etc/X11/
fi
# Graphics and media
mkdir -p $destination/etc/udev/rules.d
cp $SRC/packages/bsp/rk3399/50-mali.rules $destination/etc/udev/rules.d/
cp $SRC/packages/bsp/rk3399/50-rk3399-vpu.rules $destination/etc/udev/rules.d/
mkdir -p $destination/etc/sysfs.d
cp $SRC/packages/bsp/rk3399/20-gpu-governor.conf $destination/etc/sysfs.d/
}

View File

@@ -0,0 +1,72 @@
ARCH=arm64
ATF_TARGET_MAP="PLAT=$ATF_PLAT DEBUG=1 bl31;;build/$ATF_PLAT/debug/bl31.bin"
BOOTDELAY=1
BOOTPATCHDIR='u-boot-sunxi'
BOOTENV_FILE='sunxi.txt'
UBOOT_TARGET_MAP=';;spl/sunxi-spl.bin u-boot.itb'
BOOTSCRIPT='boot-sun50i-next.cmd:boot.cmd'
LINUXFAMILY=sunxi64
PACKAGE_LIST_DESKTOP_FAMILY="fcitx fonts-wqy-zenhei"
case $BRANCH in
legacy)
KERNELBRANCH="branch:orange-pi-5.4"
KERNELPATCHDIR='sunxi-'$BRANCH
;;
current)
KERNELBRANCH="branch:orange-pi-5.4"
KERNELPATCHDIR='sunxi-'$BRANCH
;;
dev)
KERNELSOURCE="https://github.com/megous/linux"
KERNELBRANCH="branch:orange-pi-5.7"
KERNELPATCHDIR='sunxi-'$BRANCH
;;
esac
family_tweaks()
{
# execute specific tweaks function if present
[[ $(type -t family_tweaks_s) == function ]] && family_tweaks_s
#cp $SRC/packages/blobs/splash/orangepi-u-boot-24.bmp $SDCARD/boot/boot.bmp
}
write_uboot_platform()
{
if [[ -f $1/boot0_sdcard.fex ]]; then # legacy h616 loader
dd if=$1/boot0_sdcard.fex of=$2 bs=8k seek=1 conv=fsync > /dev/null 2>&1
dd if=$1/boot_package.fex of=$2 bs=8k seek=2050 conv=fsync > /dev/null 2>&1 || true
else
[[ -f $1/sunxi-spl.bin ]] && dd if=$1/sunxi-spl.bin of=$2 bs=8k seek=1 conv=fsync > /dev/null 2>&1
[[ -f $1/u-boot.itb ]] && dd if=$1/u-boot.itb of=$2 bs=8k seek=5 conv=fsync > /dev/null 2>&1 || true
fi
}
setup_write_uboot_platform()
{
if grep -q "ubootpart" /proc/cmdline; then
# mainline with new boot script
local tmp=$(cat /proc/cmdline)
tmp="${tmp##*ubootpart=}"
tmp="${tmp%% *}"
[[ -n $tmp ]] && local part=$(findfs PARTUUID=$tmp 2>/dev/null)
[[ -n $part ]] && local dev=$(lsblk -n -o PKNAME $part 2>/dev/null)
[[ -n $dev ]] && DEVICE="/dev/$dev"
else
# legacy or old boot script
local tmp=$(cat /proc/cmdline)
tmp="${tmp##*root=}"
tmp="${tmp%% *}"
[[ -n $tmp ]] && local part=$(findfs $tmp 2>/dev/null)
[[ -n $part ]] && local dev=$(lsblk -n -o PKNAME $part 2>/dev/null)
# do not try to write u-boot to USB devices
[[ -n $dev && $dev == mmcblk* ]] && DEVICE="/dev/$dev"
fi
}

View File

@@ -0,0 +1,82 @@
ARCH=armhf
BOOTDELAY=1
BOOTPATCHDIR='u-boot-sunxi'
UBOOT_TARGET_MAP=';;u-boot-sunxi-with-spl.bin'
BOOTSCRIPT="boot-sunxi.cmd:boot.cmd"
BOOTENV_FILE='sunxi.txt'
LINUXFAMILY=sunxi
UBOOT_FW_ENV='0x88000,0x20000' # /etc/fw_env.config offset and env size
ASOUND_STATE='asound.state.sunxi-next'
GOVERNOR=ondemand
PACKAGE_LIST_DESKTOP_FAMILY="fcitx fonts-wqy-zenhei"
case $BRANCH in
legacy)
KERNELBRANCH="branch:orange-pi-3.4"
KERNELPATCHDIR='sunxi-'$BRANCH
BOOTENV_FILE='sun8i-default.txt'
KERNEL_USE_GCC='> 5.0'
ASOUND_STATE='asound.state.sun8i-default'
;;
current)
KERNELBRANCH="branch:orange-pi-5.4"
KERNELPATCHDIR='sunxi-'$BRANCH
;;
dev)
KERNELSOURCE="https://github.com/megous/linux"
KERNELBRANCH="branch:orange-pi-5.7"
KERNELPATCHDIR='sunxi-'$BRANCH
;;
esac
family_tweaks()
{
# execute specific tweaks function if present
[[ $(type -t family_tweaks_s) == function ]] && family_tweaks_s
#cp $SRC/packages/blobs/splash/orangepi-u-boot-24.bmp $SDCARD/boot/boot.bmp
}
family_tweaks_bsp()
{
# execute specific tweaks function if present
[[ $(type -t family_tweaks_bsp_s) == function ]] && family_tweaks_bsp_s
}
write_uboot_platform()
{
dd if=/dev/zero of=$2 bs=1k count=1023 seek=1 status=noxfer > /dev/null 2>&1
dd if=$1/u-boot-sunxi-with-spl.bin of=$2 bs=1024 seek=8 status=noxfer > /dev/null 2>&1
}
setup_write_uboot_platform()
{
if grep -q "ubootpart" /proc/cmdline; then
local tmp=$(cat /proc/cmdline)
tmp="${tmp##*ubootpart=}"
tmp="${tmp%% *}"
[[ -n $tmp ]] && local part=$(findfs PARTUUID=$tmp 2>/dev/null)
[[ -n $part ]] && local dev=$(lsblk -n -o PKNAME $part 2>/dev/null)
[[ -n $dev ]] && DEVICE="/dev/$dev"
elif [[ -f /var/lib/orangepi/force_search_uboot ]]; then
# This may cause overwriting u-boot for android or other non-Orange Pi OS installed on eMMC
# so don't run this function by default
for dev in $(lsblk -d -n -p -o NAME); do
if grep -q 'eGON.BT0' <(dd if=$dev bs=32 skip=256 count=1 status=none); then
# Assuming that only one device with SPL signature is present
echo "SPL signature found on $dev" >&2
DEVICE=$dev
break
fi
done
fi
}

View File

@@ -0,0 +1,44 @@
source "${BASH_SOURCE%/*}/include/rockchip64_common.inc"
BOOTPATCHDIR="u-boot-rockchip64-mainline"
BOOT_SOC="rk3399"
case $BRANCH in
legacy)
KERNELSOURCE='https://github.com/friendlyarm/kernel-rockchip'
KERNELBRANCH='branch:nanopi4-linux-v4.4.y'
KERNELDIR="${SRC}/kernel"
KERNELCONFIG='linux-rockchip64'
;;
esac
if [[ $BOARD == roc-rk3399-pc ]]; then
BOOT_USE_MAINLINE_ATF=yes
elif [[ $BOARD == nanopim4v2 || $BOARD == orangepi4 ]]; then
BOOT_USE_BLOBS=yes
DDR_BLOB='rk33/rk3399_ddr_933MHz_v1.24.bin'
MINILOADER_BLOB='rk33/rk3399_miniloader_v1.19.bin'
BL31_BLOB='rk33/rk3399_bl31_v1.30.elf'
else
BOOT_USE_BLOBS=yes
DDR_BLOB='rk33/rk3399_ddr_800MHz_v1.24.bin'
MINILOADER_BLOB='rk33/rk3399_miniloader_v1.19.bin'
BL31_BLOB='rk33/rk3399_bl31_v1.30.elf'
fi
prepare_boot_configuration
atf_custom_postprocess()
{
:
}

View File

@@ -0,0 +1,115 @@
ARCH=armhf
BOOTSCRIPT="boot-rockchip.cmd:boot.cmd"
BOOTENV_FILE='rockchip.txt'
OVERLAY_PREFIX='rockchip'
UBOOT_TARGET_MAP=";;$SRC/packages/blobs/rockchip/rk3288_boot.bin u-boot-rockchip-with-spl.bin"
BOOTDELAY=1
if [[ $BOARD == miqi ]]; then
BOOTBRANCH='tag:v2017.11'
elif [[ $BOARD == xt-q8l-v10 ]]; then
BOOTBRANCH='tag:v2020.04'
else
BOOTBRANCH='tag:v2018.11'
fi
SERIALCON=ttyS2
case $BRANCH in
legacy)
KERNELSOURCE='https://github.com/rockchip-linux/kernel.git'
KERNELBRANCH='branch:stable-4.4-rk3288-linux'
KERNELDIR='linux-rockchip'
;;
current)
KERNELBRANCH='branch:linux-5.7.y'
;;
dev)
KERNELBRANCH='branch:linux-5.7.y'
;;
esac
CPUMIN="600000"
CPUMAX="1900000"
GOVERNOR="ondemand"
write_uboot_platform()
{
dd if=/dev/zero of=$2 bs=1k count=1023 seek=1 status=noxfer > /dev/null 2>&1
dd if=$1/u-boot-rockchip-with-spl.bin of=$2 seek=64 conv=notrunc > /dev/null 2>&1
}
uboot_custom_postprocess()
{
# xt-q8l-v10 requires the original DDR init blob because u-boot does not support LPDDR2 initialization
# for rk3288 SoC (binary is in sources/rkbin-tools/rk32 path). U-boot is configured to produce a TPL
# which is thrown away. SPL does some more initial configurations, expecially pinmux for power hold,
# so reset works more reliably. U-boot image is set to be at sector 0x200 on the eMMC/SD,
# so we burn it 0x200-0x40 because of the rockchip 0x40 sectors offset.
if [[ $BOARD == xt-q8l-v10 ]]; then
tools/mkimage -n rk3288 -T rksd -d $SRC/cache/sources/rkbin-tools/rk32/rk3288_ddr_400MHz_v1.08.bin u-boot-rockchip-with-spl.bin
cat spl/u-boot-spl-dtb.bin >> u-boot-rockchip-with-spl.bin
dd if=u-boot-dtb.img of=u-boot-rockchip-with-spl.bin seek=$((0x200 - 0x40)) conv=notrunc
else
tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin u-boot-rockchip-with-spl.bin
cat u-boot-dtb.bin >> u-boot-rockchip-with-spl.bin
fi
}
family_tweaks()
{
if [[ $BOARD == tinkerboard ]]; then
chroot $SDCARD /bin/bash -c "apt-get -y -qq install rfkill bluetooth bluez bluez-tools"
chroot $SDCARD /bin/bash -c "systemctl --no-reload enable tinker-bluetooth.service >/dev/null 2>&1"
sed -i -e "/#load-module module-alsa-sink/r $SRC/packages/bsp/rockchip/pulseaudio.txt" $SDCARD/etc/pulse/default.pa >/dev/null 2>&1
fi
if [[ $BOARD == xt-q8l-v10 ]]; then
mkdir -p $SDCARD/etc/firmware/
ln -sf /lib/firmware/brcm/BCM4330B1.hcd $SDCARD/etc/firmware
chroot $SDCARD /bin/bash -c "systemctl --no-reload enable ap6330-bluetooth.service >/dev/null 2>&1"
fi
}
family_tweaks_bsp()
{
#Graphics and media
mkdir -p $destination/etc/udev/rules.d
mkdir -p $destination/usr/local/bin
cp $SRC/packages/bsp/rockchip/hdmi.rules $destination/etc/udev/rules.d
cp $SRC/packages/bsp/rockchip/50-hevc.rules $destination/etc/udev/rules.d
cp $SRC/packages/bsp/rockchip/50-mali.rules $destination/etc/udev/rules.d
cp $SRC/packages/bsp/rockchip/50-vpu.rules $destination/etc/udev/rules.d
cp $SRC/packages/bsp/rockchip/60-media.rules $destination/etc/udev/rules.d
install -m 755 $SRC/packages/bsp/rockchip/hdmi-hotplug $destination/usr/local/bin
# Peripheral access for specific groups
addgroup --system --quiet --gid 997 gpio
addgroup --system --quiet --gid 998 i2c
cp $SRC/packages/bsp/rockchip/70-gpio.rules $destination/etc/udev/rules.d
cp $SRC/packages/bsp/rockchip/71-i2c.rules $destination/etc/udev/rules.d
# Bluetooth
install -m 755 $SRC/packages/bsp/rockchip/rtk_hciattach $destination/usr/bin
install -m 755 $SRC/packages/bsp/rockchip/start_bt.sh $destination/usr/local/bin
cp $SRC/packages/bsp/rockchip/tinker-bluetooth.service $destination/lib/systemd/system/
# Sound
cp $SRC/packages/bsp/rockchip/asound.conf $destination/etc/
cp $SRC/packages/bsp/rockchip/89-pulseaudio-usb.rules $destination/etc/udev/rules.d
# ap6330 bluetooth (required for xt-q8l-v10)
cp $SRC/packages/bsp/rockchip/ap6330-bluetooth.service $destination/lib/systemd/system/
}

View File

@@ -0,0 +1,17 @@
source "${BASH_SOURCE%/*}/include/rockchip64_common.inc"
BOOTPATCHDIR="u-boot-rockchip64-mainline"
case $BRANCH in
legacy)
KERNELSOURCE='https://github.com/ayufan-rock64/linux-kernel'
KERNELBRANCH='tag:4.4.202-1237-rockchip-ayufan'
KERNELDIR='linux-rockchip64'
;;
esac
prepare_boot_configuration

View File

@@ -0,0 +1,17 @@
ATF_PLAT="sun50i_a64"
source "${BASH_SOURCE%/*}/include/sunxi64_common.inc"
OVERLAY_PREFIX='sun50i-a64'
[[ -z $CPUMIN ]] && CPUMIN=480000
[[ -z $CPUMAX ]] && CPUMAX=1010000
GOVERNOR=performance
ASOUND_STATE='asound.state.pinebook-next'
family_tweaks_s()
{
# add bluetooth firmware for 8723cs + sysrq fix
if [[ $BOARD == pinebook-a64 ]]; then
cp -R $SRC/packages/blobs/rtl8723bt_fw/* $SDCARD/lib/firmware/rtl_bt/
touch $SDCARD/etc/sysctl.d/sysrq.conf
echo "kernel.sysrq = 0" >> $SDCARD/etc/sysctl.d/sysrq.conf
fi
}

View File

@@ -0,0 +1,41 @@
ATF_PLAT="sun50i_a64"
source "${BASH_SOURCE%/*}/include/sunxi64_common.inc"
OVERLAY_PREFIX='sun50i-h5'
[[ -z $CPUMIN ]] && CPUMIN=480000
[[ -z $CPUMAX ]] && CPUMAX=1368000
GOVERNOR=ondemand
ASOUND_STATE='asound.state.sun50iw2-dev'
family_tweaks_s()
{
if [[ -f $SDCARD/lib/systemd/system/ap6212-bluetooth.service ]]; then
# install and enable Bluetooth
chroot $SDCARD /bin/bash -c "apt-get -y -qq install rfkill bluetooth bluez bluez-tools >/dev/null 2>&1"
chroot $SDCARD /bin/bash -c "systemctl --no-reload enable ap6212-bluetooth.service >/dev/null 2>&1"
fi
if [[ -f $SDCARD/lib/systemd/system/rtl8723bs-bluetooth.service ]]; then
# install and enable Bluetooth
chroot $SDCARD /bin/bash -c "apt-get -y -qq install rfkill bluetooth bluez bluez-tools >/dev/null 2>&1"
chroot $SDCARD /bin/bash -c "systemctl --no-reload enable rtl8723bs-bluetooth.service >/dev/null 2>&1"
fi
}
family_tweaks_bsp()
{
if [[ $BOARD == orangepizeroplus2h5 ]]; then
install -m 755 $EXTER/packages/blobs/bt/brcm_patchram_plus/brcm_patchram_plus_$ARCH $destination/usr/bin/brcm_patchram_plus
cp $EXTER/packages/bsp/sunxi/ap6212-bluetooth.service $destination/lib/systemd/system/
fi
if [[ $BOARD == orangepiprime ]]; then
install -m 755 $EXTER/packages/blobs/bt/hciattach/rtk_hciattach_$ARCH $destination/usr/bin/rtk_hciattach
cp $EXTER/packages/bsp/sunxi/rtl8723bs-bluetooth.service $destination/lib/systemd/system/
fi
}

View File

@@ -0,0 +1,48 @@
ATF_PLAT="sun50i_h6";
source "${BASH_SOURCE%/*}/include/sunxi64_common.inc"
OVERLAY_PREFIX='sun50i-h6'
[[ -z $CPUMIN ]] && CPUMIN=480000
[[ -z $CPUMAX ]] && CPUMAX=1810000
GOVERNOR=ondemand
ASOUND_STATE='asound.state.sun50iw2-dev'
case $BRANCH in
other)
LINUXFAMILY=sun50iw6
KERNELBRANCH="branch:orange-pi-4.9-sun50iw6"
KERNELPATCHDIR=${BOARDFAMILY}-${BRANCH}
#BUILD_UIMAGE="yes"
#BOOTBRANCH='branch:v2020.04'
#UBOOT_TARGET_MAP=';;'
BOOTENV_FILE=sun50iw6-default.txt
BOOTSCRIPT='boot-sun50iw6.cmd:boot.cmd'
#PACK_UBOOT="yes"
#ATFSOURCE=""
#ATF_COMPILE="no"
#INITRD_ARCH=arm
;;
legacy)
LINUXFAMILY=sun50iw6
KERNELBRANCH="branch:orange-pi-4.9-sun50iw6"
KERNELPATCHDIR=${BOARDFAMILY}-${BRANCH}
BOOTCONFIG="sun50iw6p1_config"
BOOTBRANCH='branch:v2014.07-sun50iw6-linux4.9'
UBOOT_TARGET_MAP='u-boot.bin;;
spl;;'
UBOOT_COMPILER="arm-linux-gnueabi-"
UBOOT_USE_GCC='> 4.0'
BOOTENV_FILE=sun50iw6-default.txt
BOOTSCRIPT='boot-sun50iw6.cmd:boot.cmd'
PACK_UBOOT="yes"
ATFSOURCE=""
ATF_COMPILE="no"
INITRD_ARCH=arm
;;
esac

View File

@@ -0,0 +1,57 @@
source "${BASH_SOURCE%/*}/include/sunxi64_common.inc"
LINUXFAMILY=sun50iw9
[[ -z $CPUMIN ]] && CPUMIN=480000
[[ -z $CPUMAX ]] && CPUMAX=1512000
GOVERNOR=ondemand
case $BRANCH in
legacy)
KERNELBRANCH="branch:orange-pi-4.9-sun50iw9"
KERNELPATCHDIR=${BOARDFAMILY}-${BRANCH}
BOOTBRANCH='branch:v2018.05-sun50iw9'
UBOOT_TARGET_MAP='u-boot.bin;;'
UBOOT_COMPILER="arm-linux-gnueabi-"
UBOOT_USE_GCC='> 6.0'
BOOTENV_FILE=sun50iw9-default.txt
BOOTSCRIPT='boot-sun50iw9.cmd:boot.cmd'
PACK_UBOOT="yes"
OFFSET=20
ATFSOURCE=""
ATF_COMPILE="no"
INITRD_ARCH=arm
MODULES_LEGACY="uwe5622_bsp_sdio sprdbt_tty sprdwl_ng"
ASOUND_STATE='asound.state.sun50iw9-legacy'
;;
esac
family_tweaks_s()
{
if [[ -f $SDCARD/lib/systemd/system/aw859a-bluetooth.service ]]; then
# install and enable Bluetooth
chroot $SDCARD /bin/bash -c "apt-get -y -qq install rfkill bluetooth bluez bluez-tools" >/dev/null 2>&1
chroot $SDCARD /bin/bash -c "systemctl --no-reload enable aw859a-bluetooth.service >/dev/null 2>&1"
fi
if [[ -f $SDCARD/lib/systemd/system/hdmi-audio.service ]]; then
chroot $SDCARD /bin/bash -c "systemctl --no-reload enable hdmi-audio.service >/dev/null 2>&1"
fi
}
family_tweaks_bsp()
{
if [[ $BOARD == orangepizero2 ]]; then
install -m 755 $EXTER/packages/blobs/bt/hciattach/hciattach_opi_$ARCH $destination/usr/bin/hciattach_opi
cp $EXTER/packages/bsp/sunxi/aw859a-bluetooth.service $destination/lib/systemd/system/
install -m 755 $EXTER/packages/blobs/sunxi/h616/inithdmiaudio $destination/usr/bin/
cp $EXTER/packages/blobs/sunxi/h616/libtinyalsa.so $destination/usr/lib/
cp $EXTER/packages/bsp/sunxi/hdmi-audio.service $destination/lib/systemd/system/
fi
}

View File

@@ -0,0 +1,30 @@
source "${BASH_SOURCE%/*}/include/sunxi_common.inc"
if [[ -z ${OVERLAY_PREFIX} ]]; then
OVERLAY_PREFIX='sun8i-h3'
fi
[[ -z $CPUMIN ]] && CPUMIN=480000
[[ -z $CPUMAX ]] && CPUMAX=1400000
family_tweaks_s()
{
if [[ -f $SDCARD/lib/systemd/system/ap6212-bluetooth.service ]]; then
# install and enable Bluetooth
chroot $SDCARD /bin/bash -c "apt-get -y -qq install rfkill bluetooth bluez bluez-tools >/dev/null 2>&1"
chroot $SDCARD /bin/bash -c "systemctl --no-reload enable ap6212-bluetooth.service >/dev/null 2>&1"
fi
}
family_tweaks_bsp()
{
if [[ $BOARD == orangepizeroplus2h3 ]]; then
install -m 755 $EXTER/packages/blobs/bt/brcm_patchram_plus/brcm_patchram_plus_$ARCH $destination/usr/bin/brcm_patchram_plus
cp $EXTER/packages/bsp/sunxi/ap6212-bluetooth.service $destination/lib/systemd/system/
fi
}

441
external/config/targets.conf vendored Normal file
View File

@@ -0,0 +1,441 @@
# targets are delimited with tabs
#
# boardname - legacy|current|dev - upstream release name - desktop|cli|minimal - stable|beta - yes, images
#
# orangepizero
orangepizero legacy buster minimal stable no
orangepizero legacy bionic minimal stable no
orangepizero legacy focal minimal stable no
orangepizero legacy buster cli stable no
orangepizero legacy bionic cli stable no
orangepizero legacy focal cli stable no
orangepizero legacy buster desktop stable no
orangepizero legacy bionic desktop stable no
orangepizero legacy focal desktop stable no
orangepizero current buster minimal stable yes
orangepizero current bionic minimal stable yes
orangepizero current focal minimal stable yes
orangepizero current buster cli stable yes
orangepizero current bionic cli stable yes
orangepizero current focal cli stable yes
orangepizero current buster desktop stable no
orangepizero current bionic desktop stable no
orangepizero current focal desktop stable no
# orangepir1
orangepir1 legacy buster minimal stable no
orangepir1 legacy bionic minimal stable no
orangepir1 legacy focal minimal stable no
orangepir1 legacy buster cli stable no
orangepir1 legacy bionic cli stable no
orangepir1 legacy focal cli stable no
orangepir1 legacy buster desktop stable no
orangepir1 legacy bionic desktop stable no
orangepir1 legacy focal desktop stable no
orangepir1 current buster minimal stable yes
orangepir1 current bionic minimal stable yes
orangepir1 current focal minimal stable yes
orangepir1 current buster cli stable yes
orangepir1 current bionic cli stable yes
orangepir1 current focal cli stable yes
orangepir1 current buster desktop stable no
orangepir1 current bionic desktop stable no
orangepir1 current focal desktop stable no
# orangepilite
orangepilite legacy buster minimal stable no
orangepilite legacy bionic minimal stable no
orangepilite legacy focal minimal stable no
orangepilite legacy buster cli stable no
orangepilite legacy bionic cli stable no
orangepilite legacy focal cli stable no
orangepilite legacy buster desktop stable no
orangepilite legacy bionic desktop stable no
orangepilite legacy focal desktop stable no
orangepilite current buster minimal stable yes
orangepilite current bionic minimal stable yes
orangepilite current focal minimal stable yes
orangepilite current buster cli stable yes
orangepilite current bionic cli stable yes
orangepilite current focal cli stable yes
orangepilite current buster desktop stable yes
orangepilite current bionic desktop stable yes
orangepilite current focal desktop stable yes
# orangepione
orangepione legacy buster minimal stable no
orangepione legacy bionic minimal stable no
orangepione legacy focal minimal stable no
orangepione legacy buster cli stable no
orangepione legacy bionic cli stable no
orangepione legacy focal cli stable no
orangepione legacy buster desktop stable no
orangepione legacy bionic desktop stable no
orangepione legacy focal desktop stable no
orangepione current buster minimal stable yes
orangepione current bionic minimal stable yes
orangepione current focal minimal stable yes
orangepione current buster cli stable yes
orangepione current bionic cli stable yes
orangepione current focal cli stable yes
orangepione current buster desktop stable yes
orangepione current bionic desktop stable yes
orangepione current focal desktop stable yes
# orangepipc
orangepipc legacy buster minimal stable no
orangepipc legacy bionic minimal stable no
orangepipc legacy focal minimal stable no
orangepipc legacy buster cli stable no
orangepipc legacy bionic cli stable no
orangepipc legacy focal cli stable no
orangepipc legacy buster desktop stable no
orangepipc legacy bionic desktop stable no
orangepipc legacy focal desktop stable no
orangepipc current buster minimal stable yes
orangepipc current bionic minimal stable yes
orangepipc current focal minimal stable yes
orangepipc current buster cli stable yes
orangepipc current bionic cli stable yes
orangepipc current focal cli stable yes
orangepipc current buster desktop stable yes
orangepipc current bionic desktop stable yes
orangepipc current focal desktop stable yes
# orangepipcplus
orangepipcplus legacy buster minimal stable no
orangepipcplus legacy bionic minimal stable no
orangepipcplus legacy focal minimal stable no
orangepipcplus legacy buster cli stable no
orangepipcplus legacy bionic cli stable no
orangepipcplus legacy focal cli stable no
orangepipcplus legacy buster desktop stable no
orangepipcplus legacy bionic desktop stable no
orangepipcplus legacy focal desktop stable no
orangepipcplus current buster minimal stable yes
orangepipcplus current bionic minimal stable yes
orangepipcplus current focal minimal stable yes
orangepipcplus current buster cli stable yes
orangepipcplus current bionic cli stable yes
orangepipcplus current focal cli stable yes
orangepipcplus current buster desktop stable yes
orangepipcplus current bionic desktop stable yes
orangepipcplus current focal desktop stable yes
# orangepiplus
orangepiplus legacy buster minimal stable no
orangepiplus legacy bionic minimal stable no
orangepiplus legacy focal minimal stable no
orangepiplus legacy buster cli stable no
orangepiplus legacy bionic cli stable no
orangepiplus legacy focal cli stable no
orangepiplus legacy buster desktop stable no
orangepiplus legacy bionic desktop stable no
orangepiplus legacy focal desktop stable no
orangepiplus current buster minimal stable yes
orangepiplus current bionic minimal stable yes
orangepiplus current focal minimal stable yes
orangepiplus current buster cli stable yes
orangepiplus current bionic cli stable yes
orangepiplus current focal cli stable yes
orangepiplus current buster desktop stable yes
orangepiplus current bionic desktop stable yes
orangepiplus current focal desktop stable yes
# orangepiplus2e
orangepiplus2e legacy buster minimal stable no
orangepiplus2e legacy bionic minimal stable no
orangepiplus2e legacy focal minimal stable no
orangepiplus2e legacy buster cli stable no
orangepiplus2e legacy bionic cli stable no
orangepiplus2e legacy focal cli stable no
orangepiplus2e legacy buster desktop stable no
orangepiplus2e legacy bionic desktop stable no
orangepiplus2e legacy focal desktop stable no
orangepiplus2e current buster minimal stable yes
orangepiplus2e current bionic minimal stable yes
orangepiplus2e current focal minimal stable yes
orangepiplus2e current buster cli stable yes
orangepiplus2e current bionic cli stable yes
orangepiplus2e current focal cli stable yes
orangepiplus2e current buster desktop stable yes
orangepiplus2e current bionic desktop stable yes
orangepiplus2e current focal desktop stable yes
# orangepizeroplus2h3
orangepizeroplus2h3 legacy buster minimal stable no
orangepizeroplus2h3 legacy bionic minimal stable no
orangepizeroplus2h3 legacy focal minimal stable no
orangepizeroplus2h3 legacy buster cli stable no
orangepizeroplus2h3 legacy bionic cli stable no
orangepizeroplus2h3 legacy focal cli stable no
orangepizeroplus2h3 legacy buster desktop stable no
orangepizeroplus2h3 legacy bionic desktop stable no
orangepizeroplus2h3 legacy focal desktop stable no
orangepizeroplus2h3 current buster minimal stable yes
orangepizeroplus2h3 current bionic minimal stable yes
orangepizeroplus2h3 current focal minimal stable yes
orangepizeroplus2h3 current buster cli stable yes
orangepizeroplus2h3 current bionic cli stable yes
orangepizeroplus2h3 current focal cli stable yes
orangepizeroplus2h3 current buster desktop stable yes
orangepizeroplus2h3 current bionic desktop stable yes
orangepizeroplus2h3 current focal desktop stable yes
# orangepiprime
orangepiprime legacy buster minimal stable no
orangepiprime legacy bionic minimal stable no
orangepiprime legacy focal minimal stable no
orangepiprime legacy buster cli stable no
orangepiprime legacy bionic cli stable no
orangepiprime legacy focal cli stable no
orangepiprime legacy buster desktop stable no
orangepiprime legacy bionic desktop stable no
orangepiprime legacy focal desktop stable no
orangepiprime current buster minimal stable yes
orangepiprime current bionic minimal stable yes
orangepiprime current focal minimal stable yes
orangepiprime current buster cli stable yes
orangepiprime current bionic cli stable yes
orangepiprime current focal cli stable yes
orangepiprime current buster desktop stable yes
orangepiprime current bionic desktop stable yes
orangepiprime current focal desktop stable yes
# orangepipc2
orangepipc2 legacy buster minimal stable no
orangepipc2 legacy bionic minimal stable no
orangepipc2 legacy focal minimal stable no
orangepipc2 legacy buster cli stable no
orangepipc2 legacy bionic cli stable no
orangepipc2 legacy focal cli stable no
orangepipc2 legacy buster desktop stable no
orangepipc2 legacy bionic desktop stable no
orangepipc2 legacy focal desktop stable no
orangepipc2 current buster minimal stable yes
orangepipc2 current bionic minimal stable yes
orangepipc2 current focal minimal stable yes
orangepipc2 current buster cli stable yes
orangepipc2 current bionic cli stable yes
orangepipc2 current focal cli stable yes
orangepipc2 current buster desktop stable yes
orangepipc2 current bionic desktop stable yes
orangepipc2 current focal desktop stable yes
# orangepizeroplus
orangepizeroplus legacy buster minimal stable no
orangepizeroplus legacy bionic minimal stable no
orangepizeroplus legacy focal minimal stable no
orangepizeroplus legacy buster cli stable no
orangepizeroplus legacy bionic cli stable no
orangepizeroplus legacy focal cli stable no
orangepizeroplus legacy buster desktop stable no
orangepizeroplus legacy bionic desktop stable no
orangepizeroplus legacy focal desktop stable no
orangepizeroplus current buster minimal stable yes
orangepizeroplus current bionic minimal stable yes
orangepizeroplus current focal minimal stable yes
orangepizeroplus current buster cli stable yes
orangepizeroplus current bionic cli stable yes
orangepizeroplus current focal cli stable yes
orangepizeroplus current buster desktop stable yes
orangepizeroplus current bionic desktop stable yes
orangepizeroplus current focal desktop stable yes
# orangepizeroplus2h5
orangepizeroplus2h5 legacy buster minimal stable no
orangepizeroplus2h5 legacy bionic minimal stable no
orangepizeroplus2h5 legacy focal minimal stable no
orangepizeroplus2h5 legacy buster cli stable no
orangepizeroplus2h5 legacy bionic cli stable no
orangepizeroplus2h5 legacy focal cli stable no
orangepizeroplus2h5 legacy buster desktop stable no
orangepizeroplus2h5 legacy bionic desktop stable no
orangepizeroplus2h5 legacy focal desktop stable no
orangepizeroplus2h5 current buster minimal stable yes
orangepizeroplus2h5 current bionic minimal stable yes
orangepizeroplus2h5 current focal minimal stable yes
orangepizeroplus2h5 current buster cli stable yes
orangepizeroplus2h5 current bionic cli stable yes
orangepizeroplus2h5 current focal cli stable yes
orangepizeroplus2h5 current buster desktop stable yes
orangepizeroplus2h5 current bionic desktop stable yes
orangepizeroplus2h5 current focal desktop stable yes
# orangepi3
orangepi3 legacy buster minimal stable no
orangepi3 legacy bionic minimal stable no
orangepi3 legacy focal minimal stable no
orangepi3 legacy buster cli stable no
orangepi3 legacy bionic cli stable no
orangepi3 legacy focal cli stable no
orangepi3 legacy buster desktop stable no
orangepi3 legacy bionic desktop stable no
orangepi3 legacy focal desktop stable no
orangepi3 current buster minimal stable yes
orangepi3 current bionic minimal stable yes
orangepi3 current focal minimal stable yes
orangepi3 current buster cli stable yes
orangepi3 current bionic cli stable yes
orangepi3 current focal cli stable yes
orangepi3 current buster desktop stable yes
orangepi3 current bionic desktop stable yes
orangepi3 current focal desktop stable yes
# orangepilite2
orangepilite2 legacy buster minimal stable no
orangepilite2 legacy bionic minimal stable no
orangepilite2 legacy focal minimal stable no
orangepilite2 legacy buster cli stable no
orangepilite2 legacy bionic cli stable no
orangepilite2 legacy focal cli stable no
orangepilite2 legacy buster desktop stable no
orangepilite2 legacy bionic desktop stable no
orangepilite2 legacy focal desktop stable no
orangepilite2 current buster minimal stable yes
orangepilite2 current bionic minimal stable yes
orangepilite2 current focal minimal stable yes
orangepilite2 current buster cli stable yes
orangepilite2 current bionic cli stable yes
orangepilite2 current focal cli stable yes
orangepilite2 current buster desktop stable yes
orangepilite2 current bionic desktop stable yes
orangepilite2 current focal desktop stable yes
# orangepioneplus
orangepioneplus legacy buster minimal stable no
orangepioneplus legacy bionic minimal stable no
orangepioneplus legacy focal minimal stable no
orangepioneplus legacy buster cli stable no
orangepioneplus legacy bionic cli stable no
orangepioneplus legacy focal cli stable no
orangepioneplus legacy buster desktop stable no
orangepioneplus legacy bionic desktop stable no
orangepioneplus legacy focal desktop stable no
orangepioneplus current buster minimal stable yes
orangepioneplus current bionic minimal stable yes
orangepioneplus current focal minimal stable yes
orangepioneplus current buster cli stable yes
orangepioneplus current bionic cli stable yes
orangepioneplus current focal cli stable yes
orangepioneplus current buster desktop stable yes
orangepioneplus current bionic desktop stable yes
orangepioneplus current focal desktop stable yes
# orangepizero2
orangepizero2 legacy stretch cli stable yes
orangepizero2 legacy buster cli stable yes
orangepizero2 legacy xenial cli stable yes
orangepizero2 legacy bionic cli stable yes
orangepizero2 legacy focal cli stable yes
orangepizero2 legacy stretch desktop stable yes
orangepizero2 legacy buster desktop stable yes
orangepizero2 legacy xenial desktop stable yes
orangepizero2 legacy bionic desktop stable yes
orangepizero2 legacy focal desktop stable yes
orangepizero2 legacy stretch minimal stable yes
orangepizero2 legacy buster minimal stable yes
orangepizero2 legacy xenial minimal stable yes
orangepizero2 legacy bionic minimal stable yes
orangepizero2 legacy focal minimal stable yes

107
external/config/templates/Dockerfile vendored Normal file
View File

@@ -0,0 +1,107 @@
FROM ubuntu:20.04
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
gnupg \
gnupg1 \
gpgv1 \
&& rm -rf /var/lib/apt/lists/*
RUN sh -c "if [ x"" != x$http_proxy ]; then \
apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --keyserver-options http-proxy=$http_proxy --recv-keys ED75B5A4483DA07C >/dev/null 2>&1; \
else \
apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys ED75B5A4483DA07C >/dev/null 2>&1; \
fi"
RUN echo "deb http://repo.aptly.info/ nightly main" > /etc/apt/sources.list.d/aptly.list
RUN dpkg --add-architecture i386
RUN apt-get update \
&& apt-get -y upgrade \
&& apt-get install -y --no-install-recommends \
acl \
aptly \
aria2 \
bc \
binfmt-support \
binutils \
bison \
btrfs-progs \
build-essential \
ca-certificates \
ccache \
cpio \
cryptsetup \
cryptsetup-bin \
curl \
debian-archive-keyring \
debian-keyring \
debootstrap \
device-tree-compiler \
dialog \
dosfstools \
f2fs-tools \
fakeroot \
flex \
g++-8-arm-linux-gnueabihf \
gawk \
gcc-arm-linux-gnueabihf \
git \
imagemagick \
kmod \
lib32ncurses6 \
lib32stdc++6 \
lib32tinfo6 \
libbison-dev \
libc6-dev-armhf-cross \
libc6-i386 \
libfile-fcntllock-perl \
libfl-dev \
liblz4-tool \
libncurses5-dev \
libpython2.7-dev \
libpython3-dev \
libssl-dev \
libusb-1.0-0-dev \
linux-base \
locales \
lsb-release \
lzop \
ncurses-base \
ncurses-term \
nfs-kernel-server \
ntpdate \
p7zip-full \
parted \
patchutils \
pigz \
pixz \
pkg-config \
psmisc \
pv \
python2 \
python3 \
python3-dev \
python3-distutils \
qemu-user-static \
rsync \
swig \
systemd-container \
tzdata \
u-boot-tools \
udev \
unzip \
uuid-dev \
wget \
whiptail \
xxd \
zip \
zlib1g-dev \
zlib1g:i386 \
&& rm -rf /var/lib/apt/lists/*
RUN locale-gen en_US.UTF-8
# Static port for NFSv3 server used for USB FEL boot
RUN sed -i 's/\(^STATDOPTS=\).*/\1"--port 32765 --outgoing-port 32766"/' /etc/default/nfs-common \
&& sed -i 's/\(^RPCMOUNTDOPTS=\).*/\1"--port 32767"/' /etc/default/nfs-kernel-server
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8' TERM=screen
WORKDIR /root/orangepi
ENTRYPOINT [ "/bin/bash", "/root/orangepi/compile.sh" ]

53
external/config/templates/Vagrantfile vendored Normal file
View File

@@ -0,0 +1,53 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.require_version ">= 1.5"
$provisioning_script = <<SCRIPT
# use remote git version instead of sharing a copy from host to preserve proper file permissions
# and prevent permission related issues for the temp directory
git clone https://github.com/armbian/build /home/vagrant/armbian
mkdir -p /vagrant/output /vagrant/userpatches
ln -sf /vagrant/output /home/vagrant/armbian/output
ln -sf /vagrant/userpatches /home/vagrant/armbian/userpatches
SCRIPT
Vagrant.configure(2) do |config|
# What box should we base this build on?
config.vm.box = "ubuntu/bionic64"
config.vm.box_version = ">= 20180719.0.0"
# Default images are not big enough to build Armbian.
config.vagrant.plugins = "vagrant-disksize"
config.disksize.size = "40GB"
# provisioning: install dependencies, download the repository copy
config.vm.provision "shell", inline: $provisioning_script
# forward terminal type for better compatibility with Dialog - disabled on Ubuntu by default
config.ssh.forward_env = ["TERM"]
# default user name is "ubuntu", please do not change it
# SSH password auth is disabled by default, uncomment to enable and set the password
#config.ssh.password = "armbian"
config.vm.provider "virtualbox" do |vb|
vb.name = "Armbian Builder"
# uncomment this to enable the VirtualBox GUI
#vb.gui = true
# Tweak these to fit your needs.
#vb.memory = "8192"
#vb.cpus = "4"
end
case File.basename(Dir.getwd)
when "templates"
config.vm.synced_folder "../..", "/vagrant"
when "userpatches"
config.vm.synced_folder "..", "/vagrant"
end
end

View File

@@ -0,0 +1,10 @@
START="0"
BSP_BUILD="no"
MULTITHREAD="0"
STABILITY="stable"
BUILD_OPT="image"
BRANCH_OVER=""
RELEASE_OVER=""
CLEAN_LEVEL="oldcache"
KERNEL_CONFIGURE="no"
REBUILD_IMAGES=""

View File

@@ -0,0 +1,143 @@
# DO NOT EDIT THIS FILE
#
# This is a Docker launcher file. To set up the configuration, use command line arguments to compile.sh
# or use pass a config file as a parameter ./compile docker [example] BUILD_KERNEL="yes" ...
[[ ! -c /dev/loop-control ]] && display_alert "/dev/loop-control does not exist, image building may not work" "" "wrn"
# second argument can be a build parameter or a config file
# create user accessible directories and set their owner group and permissions
# if they are created from Docker they will be owned by root and require root permissions to change/delete
mkdir -p $SRC/{output,userpatches}
grep -q '^docker:' /etc/group && chgrp --quiet docker $SRC/{output,userpatches}
chmod --quiet g+w,g+s $SRC/{output,userpatches}
VERSION=$(cat $SRC/VERSION)
if grep -q $VERSION <(grep armbian <(docker images)); then
display_alert "Using existed a armbian Docker container"
else
# build a new container based on provided Dockerfile
display_alert "Docker container not found or out of date"
display_alert "Building a Docker container"
if ! docker build -t armbian:$VERSION . ; then
STATUS=$?
# Adding a newline, so the alert won't be shown in the same line as the error
echo
display_alert "Docker container build exited with code: " "$STATUS" "err"
exit 1
fi
fi
DOCKER_FLAGS=()
# Running this container in privileged mode is a simple way to solve loop device access issues
# Required for USB FEL or when writing image directly to the block device, when CARD_DEVICE is defined
#DOCKER_FLAGS+=(--privileged)
# add only required capabilities instead (though MKNOD should be already present)
# CAP_SYS_PTRACE is required for systemd-detect-virt in some cases
DOCKER_FLAGS+=(--cap-add=SYS_ADMIN --cap-add=MKNOD --cap-add=SYS_PTRACE)
# mounting things inside the container on Ubuntu won't work without this
# https://github.com/moby/moby/issues/16429#issuecomment-217126586
DOCKER_FLAGS+=(--security-opt=apparmor:unconfined)
# remove resulting container after exit to minimize clutter
# bad side effect - named volumes are considered not attached to anything and are removed on "docker volume prune"
#DOCKER_FLAGS+=(--rm)
# pass through loop devices
for d in /dev/loop*; do
DOCKER_FLAGS+=(--device=$d)
done
# accessing dynamically created devices won't work by default
# and --device doesn't accept devices that don't exist at the time "docker run" is executed
# https://github.com/moby/moby/issues/27886
# --device-cgroup-rule requires new Docker version
# Test for --device-cgroup-rule support. If supported, appends it
# Otherwise, let it go and let user know that only kernel and u-boot for you
if docker run --help | grep device-cgroup-rule > /dev/null 2>&1; then
# allow loop devices (not required)
DOCKER_FLAGS+=(--device-cgroup-rule='b 7:* rmw')
# allow loop device partitions
DOCKER_FLAGS+=(--device-cgroup-rule='b 259:* rmw')
# this is an ugly hack, but it is required to get /dev/loopXpY minor number
# for mknod inside the container, and container itself still uses private /dev internally
DOCKER_FLAGS+=(-v /dev:/tmp/dev:ro)
else
display_alert "Your Docker version does not support device-cgroup-rule" "" "wrn"
display_alert "and will be able to create only Kernel and u-boot packages (KERNEL_ONLY=yes)" "" "wrn"
fi
# Expose ports for NFS server inside docker container, required for USB FEL
#DOCKER_FLAGS+=(-p 0.0.0.0:2049:2049 -p 0.0.0.0:2049:2049/udp -p 0.0.0.0:111:111 -p 0.0.0.0:111:111/udp -p 0.0.0.0:32765:32765 -p 0.0.0.0:32765:32765/udp -p 0.0.0.0:32767:32767 -p 0.0.0.0:32767:32767/udp)
# Export usb device for FEL, required for USB FEL
#DOCKER_FLAGS+=(-v /dev/bus/usb:/dev/bus/usb:ro)
# map source to Docker Working dir.
DOCKER_FLAGS+=(-v=$SRC/:/root/armbian/)
# mount 2 named volumes - for cacheable data and compiler cache
DOCKER_FLAGS+=(-v=armbian-cache:/root/armbian/cache -v=armbian-ccache:/root/.ccache)
DOCKER_FLAGS+=(-e COLUMNS="`tput cols`" -e LINES="`tput lines`")
# pass other command line arguments like KERNEL_ONLY=yes, KERNEL_CONFIGURE=yes, etc.
# pass "docker-guest" as an additional config name that will be sourced in the container if exists
if [[ $SHELL_ONLY == yes ]]; then
display_alert "Running the container in shell mode" "" "info"
cat <<\EOF
Welcome to the docker shell of Armbian.
To build the whole thing using default profile, run:
./compile.sh
To build the U-Boot only, run:
# Optional: prepare the environment first if you had not run `./compile.sh`
./compile.sh 'prepare_host && compile_sunxi_tools && install_rkbin_tools'
# build the U-Boot only
./compile.sh compile_uboot
If you prefer to use profile, for example, `userpatches/config-my.conf`, try:
./compile.sh my 'prepare_host && compile_sunxi_tools && install_rkbin_tools'
./compile.sh my compile_uboot
EOF
docker run "${DOCKER_FLAGS[@]}" -it --rm --entrypoint /usr/bin/env armbian:$VERSION "$@" /bin/bash
else
display_alert "Running the container" "" "info"
docker run "${DOCKER_FLAGS[@]}" -it --rm armbian:$VERSION "$@"
fi
# Docker error treatment
STATUS=$?
# Adding a newline, so the message won't be shown in the same line as the error
echo
case $STATUS in
0)
# No errors from either Docker or build script
echo
;;
125)
display_alert "Docker command failed, check syntax or version support. Error code: " "$STATUS" "err"
;;
126)
display_alert "Failure when running containerd command. Error code: " "$STATUS" "err"
;;
127)
display_alert "containerd command not found. Error code: " "$STATUS" "err"
;;
137)
display_alert "Container exit from docker stop. Error code: " "$STATUS" "info"
;;
*)
# Build script exited with error, but the error message should have been already printed
echo
;;
esac
# don't need to proceed further on the host
exit 0

View File

@@ -0,0 +1,23 @@
KERNEL_CONFIGURE="yes" # leave empty to select each time, set to "yes" or "no" to skip dialog prompt
CLEAN_LEVEL="debs,oldcache" # comma-separated list of clean targets: "make" = make clean for selected kernel and u-boot,
# "debs" = delete packages in "./output/debs" for current branch and family,
# "alldebs" = delete all packages in "./output/debs", "images" = delete "./output/images",
# "cache" = delete "./output/cache", "sources" = delete "./sources"
# "oldcache" = remove old cached rootfs except for the newest 8 files
DEST_LANG="en_US.UTF-8" # sl_SI.UTF-8, en_US.UTF-8
# advanced
EXTERNAL_NEW="prebuilt" # compile and install or install prebuilt additional packages
INSTALL_HEADERS="yes" # install kernel headers package
LIB_TAG="master" # change to "branchname" to use any branch currently available.
DOWNLOAD_MIRROR="" # set to "china" to use mirrors.tuna.tsinghua.edu.cn
BOARD=""
BRANCH=""
RELEASE=""
WIREGUARD="no"
BUILD_KSRC="no"
INSTALL_KSRC="no"
IGNORE_UPDATES=""
COMPRESS_OUTPUTIMAGE="no"

View File

@@ -0,0 +1,27 @@
# DO NOT EDIT THIS FILE
#
# This is a Vagrant launcher file. To set up the configuration, use command line arguments to compile.sh
# remove "vagrant" from the command line
shift
# second argument can be a build parameter or a config file
unset VAGRANT_CONF
[[ $1 != *=* ]] && VAGRANT_CONF=$1
display_alert "Building and running the Vagrant box"
VAGRANT_INSTALL_LOCAL_PLUGINS=1 vagrant up || vagrant up
display_alert "SSH config for the Vagrant box"
vagrant ssh-config
display_alert "Trying to connect using SSH"
IFS=' ' vagrant ssh -c "cd armbian; sudo ./compile.sh $VAGRANT_CONF $*"
display_alert "Press <Enter> to halt the Vagrant box"
read
vagrant halt
# don't need to proceed further on the host
exit 0

View File

@@ -0,0 +1,231 @@
#!/bin/bash
# arguments: $RELEASE $LINUXFAMILY $BOARD $BUILD_DESKTOP
#
# This is the image customization script
# NOTE: It is copied to /tmp directory inside the image
# and executed there inside chroot environment
# so don't reference any files that are not already installed
# NOTE: If you want to transfer files between chroot and host
# userpatches/overlay directory on host is bind-mounted to /tmp/overlay in chroot
RELEASE=$1
LINUXFAMILY=$2
BOARD=$3
BUILD_DESKTOP=$4
Main() {
case $RELEASE in
xenial)
# your code here
;;
stretch)
# your code here
# InstallOpenMediaVault # uncomment to get an OMV 4 image
;;
buster)
# your code here
;;
bionic)
# your code here
;;
esac
} # Main
InstallOpenMediaVault() {
# use this routine to create a Debian based fully functional OpenMediaVault
# image (OMV 3 on Jessie, OMV 4 with Stretch). Use of mainline kernel highly
# recommended!
#
# Please note that this variant changes Orange Pi default security
# policies since you end up with root password 'openmediavault' which
# you have to change yourself later. SSH login as root has to be enabled
# through OMV web UI first
echo root:openmediavault | chpasswd
rm /root/.not_logged_in_yet
. /etc/default/cpufrequtils
export LANG=C LC_ALL="en_US.UTF-8"
export DEBIAN_FRONTEND=noninteractive
export APT_LISTCHANGES_FRONTEND=none
case ${RELEASE} in
jessie)
OMV_Name="erasmus"
OMV_EXTRAS_URL="https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/openmediavault-omvextrasorg_latest_all3.deb"
;;
stretch)
OMV_Name="arrakis"
OMV_EXTRAS_URL="https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/openmediavault-omvextrasorg_latest_all4.deb"
;;
esac
# Add OMV source.list and Update System
cat > /etc/apt/sources.list.d/openmediavault.list <<- EOF
deb https://openmediavault.github.io/packages/ ${OMV_Name} main
## Uncomment the following line to add software from the proposed repository.
deb https://openmediavault.github.io/packages/ ${OMV_Name}-proposed main
## This software is not part of OpenMediaVault, but is offered by third-party
## developers as a service to OpenMediaVault users.
# deb https://openmediavault.github.io/packages/ ${OMV_Name} partner
EOF
# Add OMV and OMV Plugin developer keys, add Cloudshell 2 repo for XU4
if [ "${BOARD}" = "odroidxu4" ]; then
add-apt-repository -y ppa:kyle1117/ppa
sed -i 's/jessie/xenial/' /etc/apt/sources.list.d/kyle1117-ppa-jessie.list
fi
mount --bind /dev/null /proc/mdstat
apt-get update
apt-get --yes --force-yes --allow-unauthenticated install openmediavault-keyring
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 7AA630A1EDEE7D73
apt-get update
# install debconf-utils, postfix and OMV
HOSTNAME="${BOARD}"
debconf-set-selections <<< "postfix postfix/mailname string ${HOSTNAME}"
debconf-set-selections <<< "postfix postfix/main_mailer_type string 'No configuration'"
apt-get --yes --force-yes --allow-unauthenticated --fix-missing --no-install-recommends \
-o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install \
debconf-utils postfix
# move newaliases temporarely out of the way (see Ubuntu bug 1531299)
cp -p /usr/bin/newaliases /usr/bin/newaliases.bak && ln -sf /bin/true /usr/bin/newaliases
sed -i -e "s/^::1 localhost.*/::1 ${HOSTNAME} localhost ip6-localhost ip6-loopback/" \
-e "s/^127.0.0.1 localhost.*/127.0.0.1 ${HOSTNAME} localhost/" /etc/hosts
sed -i -e "s/^mydestination =.*/mydestination = ${HOSTNAME}, localhost.localdomain, localhost/" \
-e "s/^myhostname =.*/myhostname = ${HOSTNAME}/" /etc/postfix/main.cf
apt-get --yes --force-yes --allow-unauthenticated --fix-missing --no-install-recommends \
-o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install \
openmediavault
# install OMV extras, enable folder2ram and tweak some settings
FILE=$(mktemp)
wget "$OMV_EXTRAS_URL" -qO $FILE && dpkg -i $FILE
/usr/sbin/omv-update
# Install flashmemory plugin and netatalk by default, use nice logo for the latter,
# tweak some OMV settings
. /usr/share/openmediavault/scripts/helper-functions
apt-get -y -q install openmediavault-netatalk openmediavault-flashmemory
AFP_Options="mimic model = Macmini"
SMB_Options="min receivefile size = 16384\nwrite cache size = 524288\ngetwd cache = yes\nsocket options = TCP_NODELAY IPTOS_LOWDELAY"
xmlstarlet ed -L -u "/config/services/afp/extraoptions" -v "$(echo -e "${AFP_Options}")" /etc/openmediavault/config.xml
xmlstarlet ed -L -u "/config/services/smb/extraoptions" -v "$(echo -e "${SMB_Options}")" /etc/openmediavault/config.xml
xmlstarlet ed -L -u "/config/services/flashmemory/enable" -v "1" /etc/openmediavault/config.xml
xmlstarlet ed -L -u "/config/services/ssh/enable" -v "1" /etc/openmediavault/config.xml
xmlstarlet ed -L -u "/config/services/ssh/permitrootlogin" -v "0" /etc/openmediavault/config.xml
xmlstarlet ed -L -u "/config/system/time/ntp/enable" -v "1" /etc/openmediavault/config.xml
xmlstarlet ed -L -u "/config/system/time/timezone" -v "UTC" /etc/openmediavault/config.xml
xmlstarlet ed -L -u "/config/system/network/dns/hostname" -v "${HOSTNAME}" /etc/openmediavault/config.xml
xmlstarlet ed -L -u "/config/system/monitoring/perfstats/enable" -v "0" /etc/openmediavault/config.xml
echo -e "OMV_CPUFREQUTILS_GOVERNOR=${GOVERNOR}" >>/etc/default/openmediavault
echo -e "OMV_CPUFREQUTILS_MINSPEED=${MIN_SPEED}" >>/etc/default/openmediavault
echo -e "OMV_CPUFREQUTILS_MAXSPEED=${MAX_SPEED}" >>/etc/default/openmediavault
for i in netatalk samba flashmemory ssh ntp timezone interfaces cpufrequtils monit collectd rrdcached ; do
/usr/sbin/omv-mkconf $i
done
/sbin/folder2ram -enablesystemd || true
sed -i 's|-j /var/lib/rrdcached/journal/ ||' /etc/init.d/rrdcached
# Fix multiple sources entry on ARM with OMV4
sed -i '/stretch-backports/d' /etc/apt/sources.list
# rootfs resize to 7.3G max and adding omv-initsystem to firstrun -- q&d but shouldn't matter
echo 15500000s >/root/.rootfs_resize
sed -i '/systemctl\ disable\ orangepi-firstrun/i \
mv /usr/bin/newaliases.bak /usr/bin/newaliases \
export DEBIAN_FRONTEND=noninteractive \
sleep 3 \
apt-get install -f -qq python-pip python-setuptools || exit 0 \
pip install -U tzupdate \
tzupdate \
read TZ </etc/timezone \
/usr/sbin/omv-initsystem \
xmlstarlet ed -L -u "/config/system/time/timezone" -v "${TZ}" /etc/openmediavault/config.xml \
/usr/sbin/omv-mkconf timezone \
lsusb | egrep -q "0b95:1790|0b95:178a|0df6:0072" || sed -i "/ax88179_178a/d" /etc/modules' /usr/lib/orangepi/orangepi-firstrun
sed -i '/systemctl\ disable\ orangepi-firstrun/a \
sleep 30 && sync && reboot' /usr/lib/orangepi/orangepi-firstrun
# add USB3 Gigabit Ethernet support
echo -e "r8152\nax88179_178a" >>/etc/modules
case ${BOARD} in
odroidxu4)
HMP_Fix='; taskset -c -p 4-7 $i '
# Cloudshell stuff (fan, lcd, missing serials on 1st CS2 batch)
echo "H4sIAKdXHVkCA7WQXWuDMBiFr+eveOe6FcbSrEIH3WihWx0rtVbUFQqCqAkYGhJn
tF1x/vep+7oebDfh5DmHwJOzUxwzgeNIpRp9zWRegDPznya4VDlWTXXbpS58XJtD
i7ICmFBFxDmgI6AXSLgsiUop54gnBC40rkoVA9rDG0SHHaBHPQx16GN3Zs/XqxBD
leVMFNAz6n6zSWlEAIlhEw8p4xTyFtwBkdoJTVIJ+sz3Xa9iZEMFkXk9mQT6cGSQ
QL+Cr8rJJSmTouuuRzfDtluarm1aLVHksgWmvanm5sbfOmY3JEztWu5tV9bCXn4S
HB8RIzjoUbGvFvPw/tmr0UMr6bWSBupVrulY2xp9T1bruWnVga7DdAqYFgkuCd3j
vORUDQgej9HPJxmDDv+3WxblBSuYFH8oiNpHz8XvPIkU9B3JVCJ/awIAAA==" \
| tr -d '[:blank:]' | base64 --decode | gunzip -c >/usr/local/sbin/cloudshell2-support.sh
chmod 755 /usr/local/sbin/cloudshell2-support.sh
apt install -y i2c-tools odroid-cloudshell cloudshell2-fan
sed -i '/systemctl\ disable\ orangepi-firstrun/i \
lsusb | grep -q -i "05e3:0735" && sed -i "/exit\ 0/i echo 20 > /sys/class/block/sda/queue/max_sectors_kb" /etc/rc.local \
/usr/sbin/i2cdetect -y 1 | grep -q "60: 60" && /usr/local/sbin/cloudshell2-support.sh' /usr/lib/orangepi/orangepi-firstrun
;;
bananapim3|nanopifire3|nanopct3plus|nanopim3)
HMP_Fix='; taskset -c -p 4-7 $i '
;;
edge*|ficus|firefly-rk3399|nanopct4|nanopim4|nanopineo4|renegade-elite|roc-rk3399-pc|rockpro64)
HMP_Fix='; taskset -c -p 4-5 $i '
;;
esac
echo "* * * * * root for i in \`pgrep \"ftpd|nfsiod|smbd|afpd|cnid\"\` ; do ionice -c1 -p \$i ${HMP_Fix}; done >/dev/null 2>&1" \
>/etc/cron.d/make_nas_processes_faster
chmod 600 /etc/cron.d/make_nas_processes_faster
# add SATA port multiplier hint if appropriate
[ "${LINUXFAMILY}" = "sunxi" ] && \
echo -e "#\n# If you want to use a SATA PM add \"ahci_sunxi.enable_pmp=1\" to bootargs above" \
>>/boot/boot.cmd
# Filter out some log messages
echo ':msg, contains, "do ionice -c1" ~' >/etc/rsyslog.d/omv-orangepi.conf
echo ':msg, contains, "action " ~' >>/etc/rsyslog.d/omv-orangepi.conf
echo ':msg, contains, "netsnmp_assert" ~' >>/etc/rsyslog.d/omv-orangepi.conf
echo ':msg, contains, "Failed to initiate sched scan" ~' >>/etc/rsyslog.d/omv-orangepi.conf
# Fix little python bug upstream Debian 9 obviously ignores
if [ -f /usr/lib/python3.5/weakref.py ]; then
wget -O /usr/lib/python3.5/weakref.py \
https://raw.githubusercontent.com/python/cpython/9cd7e17640a49635d1c1f8c2989578a8fc2c1de6/Lib/weakref.py
fi
# clean up and force password change on first boot
umount /proc/mdstat
chage -d 0 root
} # InstallOpenMediaVault
UnattendedStorageBenchmark() {
# Function to create Orange Pi images ready for unattended storage performance testing.
# Useful to use the same OS image with a bunch of different SD cards or eMMC modules
# to test for performance differences without wasting too much time.
rm /root/.not_logged_in_yet
apt-get -qq install time
wget -qO /usr/local/bin/sd-card-bench.sh https://raw.githubusercontent.com/ThomasKaiser/sbc-bench/master/sd-card-bench.sh
chmod 755 /usr/local/bin/sd-card-bench.sh
sed -i '/^exit\ 0$/i \
/usr/local/bin/sd-card-bench.sh &' /etc/rc.local
} # UnattendedStorageBenchmark
InstallAdvancedDesktop()
{
apt install -yy transmission libreoffice libreoffice-style-tango meld remmina thunderbird kazam avahi-daemon
[[ -f /usr/share/doc/avahi-daemon/examples/sftp-ssh.service ]] && cp /usr/share/doc/avahi-daemon/examples/sftp-ssh.service /etc/avahi/services/
[[ -f /usr/share/doc/avahi-daemon/examples/ssh.service ]] && cp /usr/share/doc/avahi-daemon/examples/ssh.service /etc/avahi/services/
apt clean
} # InstallAdvancedDesktop
Main "$@"

View File

@@ -0,0 +1,12 @@
setenv nfs_ip FEL_LOCAL_IP
setenv nfs_root FEL_ROOTFS
setenv branch BRANCH
setenv bootargs "console=tty1 console=ttyS0,115200 root=/dev/nfs nfsroot=${nfs_ip}:${nfs_root} ip=dhcp rw panic=10 consoleblank=0 enforcing=0 loglevel=6 rootflags=noatime,nodiratime"
# uncomment to disable initrd
# setenv ramdisk_addr_r "-"
if test ${branch} != legacy; then
setenv fdt_high ffffffff
bootz ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
else
bootz ${kernel_addr_r} ${ramdisk_addr_r}
fi

View File

@@ -0,0 +1,24 @@
#!/bin/bash
#
# fel-hooks.sh.example -- this file is an example how
# userpatches/fel-hooks.sh could be implemented.
#
# The following example assumes you use a Gembird power switch connected
# through USB to be able to power cycle the board you want to fel boot. You
# need the sispmctl package and use 'sispmctl -s' to get the ID of your
# power switch.
fel_pre_load() {
# power cycle socket 1 of Gembird power switch
sispmctl -D01:01:51:23:cb -q -f1
# 5 seconds delay since PSUs don't like be being power cycled too fast
sleep 5
sispmctl -D01:01:51:23:cb -q -o1
# 3 seconds delay since the SoC has to initialise
sleep 3
} # fel_pre_load
fel_post_prepare() {
# currently empty - sun8i-default tweaks were converted into u-boot patches
echo "calling fel_post_prepare()"
} # fel_post_prepare

View File

@@ -0,0 +1,34 @@
## set this to NFS root path (ip:path)
## or else provide dhcp option 17 (root-path)
setenv nfs_ip NFS_LOCAL_IP
setenv nfs_root NFS_ROOTFS
setenv branch BRANCH
# for DHCP
setenv net_setup "ip=dhcp"
# for static configuration see documentation
# https://github.com/torvalds/linux/blob/master/Documentation/filesystems/nfs/nfsroot.txt
# setenv net_setup "ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>:<dns0-ip>:<dns1-ip>"
# you may need to add extra kernel arguments specific to your device
setenv bootargs "console=tty1 console=ttyS0,115200 root=/dev/nfs nfsroot=${nfs_ip}:${nfs_root} ${net_setup} rw rootflags=noatime,nodiratime disp.screen0_output_mode=1920x1080p60 panic=10 consoleblank=0 enforcing=0 loglevel=6"
if test ${branch} != legacy; then
ext4load mmc 0 ${fdt_addr_r} /dtb/${fdtfile} || fatload mmc 0 ${fdt_addr_r} /dtb/${fdtfile}
ext4load mmc 0 ${kernel_addr_r} zImage || fatload mmc 0 ${kernel_addr_r} zImage
setenv ramdisk_addr_r "-"
# uncomment to enable initrd
#ext4load mmc 0 ${ramdisk_addr_r} uInitrd || fatload mmc 0 ${ramdisk_addr_r} uInitrd || setenv ramdisk_addr_r "-"
setenv fdt_high ffffffff
bootz ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
else
ext4load mmc 0 ${fdt_addr_r} script.bin || fatload mmc 0 ${fdt_addr_r} script.bin
ext4load mmc 0 ${kernel_addr_r} zImage || fatload mmc 0 ${kernel_addr_r} zImage
ext4load mmc 0 ${ramdisk_addr_r} uInitrd || fatload mmc 0 ${ramdisk_addr_r} uInitrd || setenv ramdisk_addr_r "-"
bootz ${kernel_addr_r} ${ramdisk_addr_r}
fi
# Recompile with:
# mkimage -C none -A arm -T script -d boot.cmd boot.scr

View File

@@ -0,0 +1 @@
c7e2ae4fd6a66df642d59e8453775b4c gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz

View File

@@ -0,0 +1 @@
c7e2ae4fd6a66df642d59e8453775b4c

View File

@@ -0,0 +1 @@
650dc30f7e937fa12e37ea70ff6e10dd gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz

View File

@@ -0,0 +1 @@
650dc30f7e937fa12e37ea70ff6e10dd

View File

@@ -0,0 +1 @@
23ecc1dc528253c43e43365c6d923ec3 gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz

View File

@@ -0,0 +1 @@
23ecc1dc528253c43e43365c6d923ec3 gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz

View File

@@ -0,0 +1 @@
ae539d09dadacf7f22fcd6f54870e5ad gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz

View File

@@ -0,0 +1 @@
ae539d09dadacf7f22fcd6f54870e5ad gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz

View File

@@ -0,0 +1 @@
631c4c7b1fe9cb115cf51bd6a926acb7 gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu.tar.xz

View File

@@ -0,0 +1 @@
631c4c7b1fe9cb115cf51bd6a926acb7

View File

@@ -0,0 +1 @@
7d409a976ac5bb68fe52b9c1dc503734 gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi.tar.xz

View File

@@ -0,0 +1 @@
7d409a976ac5bb68fe52b9c1dc503734

View File

@@ -0,0 +1 @@
545af35e13c439cc156dc0881d976463 gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz

View File

@@ -0,0 +1 @@
545af35e13c439cc156dc0881d976463

View File

@@ -0,0 +1 @@
641f6a790c26bda22c0aaa6fb44f8775 gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu.tar.xz

View File

@@ -0,0 +1 @@
641f6a790c26bda22c0aaa6fb44f8775

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