Skip to content

Commit c290140

Browse files
committed
.
1 parent a83f877 commit c290140

45 files changed

Lines changed: 66 additions & 18 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build-ArchLinux-ARM.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on:
44
workflow_dispatch:
55

66
env:
7-
REQUIRED_PACKAGES: acl aptly aria2 bc binfmt-support bison btrfs-progs build-essential busybox ca-certificates ccache coreutils cpio cryptsetup crossbuild-essential-arm64 clang curl debian-archive-keyring debian-keyring debootstrap device-tree-compiler dialog dirmngr dosfstools dwarves f2fs-tools fakeroot flex gawk gcc-arm-linux-gnueabi gcc-aarch64-linux-gnu gdisk git gpg gzip imagemagick jq kmod libbison-dev libc6-dev-armhf-cross libcrypto++-dev libelf-dev libfdt-dev libfile-fcntllock-perl parallel libfl-dev liblz4-tool libncurses-dev libncurses5 libncurses5-dev libncursesw5-dev libpython2.7-dev libssl-dev libusb-1.0-0-dev linux-base llvm lld lzma lz4 locales lzop ncurses-base ncurses-term nfs-kernel-server ntpdate p7zip p7zip-full parted patchutils pigz pixz pkg-config pv python3-dev python3-distutils qemu-user-static rename rsync swig subversion tar u-boot-tools udev unzip uuid-dev vim wget whiptail xz-utils xsltproc zip zlib1g-dev zstd distcc lib32ncurses-dev lib32stdc++6 libc6-i386 python2 python3 axel libarchive-tools
7+
REQUIRED_PACKAGES: acl aptly aria2 bc binfmt-support bison btrfs-progs build-essential busybox ca-certificates ccache coreutils cpio cryptsetup crossbuild-essential-arm64 clang curl debian-archive-keyring debian-keyring debootstrap device-tree-compiler dialog dirmngr dosfstools dwarves f2fs-tools fakeroot flex gawk gcc-arm-linux-gnueabi gcc-aarch64-linux-gnu gdisk git gpg gzip imagemagick jq kmod libbison-dev libc6-dev-armhf-cross libcrypto++-dev libelf-dev libfdt-dev libfile-fcntllock-perl parallel libfl-dev liblz4-tool libncurses-dev libncurses5 libncurses5-dev libncursesw5-dev libpython2.7-dev libssl-dev libusb-1.0-0-dev linux-base llvm lld lzma lz4 locales lzop ncurses-base ncurses-term nfs-kernel-server ntpdate p7zip p7zip-full parted patchutils pigz pixz pkg-config pv python3-dev python3-distutils qemu-user-static rename rsync swig subversion tar u-boot-tools udev unzip uuid-dev vim wget whiptail xz-utils xsltproc zip zlib1g-dev zstd distcc lib32ncurses-dev lib32stdc++6 libc6-i386 python2 python3 axel libarchive-tools u-boot-tools
88
DOWNLOAD_URL: http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz
99
TZ: Asia/Jakarta
1010
WORKING_DIR: /WORKING_DIR

build.sh

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ ROOTFS_TYPE="ext4"
66

77
SKIP_SIZE="68"
88
BOOT_SIZE="256"
9-
ROOT_SIZE="2748"
9+
ROOT_SIZE="1536"
1010
IMG_SIZE="$((SKIP_SIZE + BOOT_SIZE + ROOT_SIZE))"
1111

1212
BOOT_LABEL="BOOT"
@@ -34,7 +34,7 @@ print_msg() {
3434

3535
make_image() {
3636
mkdir -p ${OUT_DIR}
37-
dd if=/dev/zero of=${IMG_FILENAME} bs=2M count=${IMG_SIZE} conv=fsync >/dev/null 2>&1
37+
dd if=/dev/zero of=${IMG_FILENAME} bs=1M count=${IMG_SIZE} conv=fsync >/dev/null 2>&1
3838
sync
3939

4040
parted -s ${IMG_FILENAME} mklabel msdos 2>/dev/null
@@ -72,13 +72,27 @@ make_image() {
7272
cp -af ${BOOT_FILES}/* mnt/boot
7373
bsdtar -xpf ${ARCHLINUXARM_TARBALL_FILE} -C mnt
7474
cp -af ${PATCH_FILES}/* mnt/
75+
76+
# Modify mkinitcpio
77+
sed -i "s/PRESETS=.*/PRESETS=('default')/" mnt/etc/mkinitcpio.d/linux-aarch64.preset
78+
sed -i '/^[^#]/ s/\(^fallback_.*$\)/#\1/' mnt/etc/mkinitcpio.d/linux-aarch64.preset
79+
80+
# cleaning up
81+
rm mnt/boot/{Image.gz,initramfs-linux-fallback.img}
82+
find ./mnt/boot/dtbs -mindepth 1 ! -regex '^./mnt/boot/dtbs/amlogic\(/.*\)?' -delete
83+
84+
mkimage -A arm64 -O linux -T script -C none -a 0 -e 0 -n "S905 autoscript" -d mnt/boot/s905_autoscript.cmd mnt/boot/s905_autoscript
85+
mkimage -A arm64 -O linux -T script -C none -a 0 -e 0 -n "eMMC autoscript" -d mnt/boot/emmc_autoscript.cmd mnt/boot/emmc_autoscript
86+
mkimage -A arm64 -O linux -T script -C none -a 0 -e 0 -n "AML autoscript" -d mnt/boot/aml_autoscript.txt mnt/boot/aml_autoscript
87+
# mkimage -n "uInitrd Image" -A arm64 -O linux -T ramdisk -C none -d mnt/boot/initramfs-linux.img mnt/boot/uInitrd
88+
# mkimage -n "uImage" -A arm64 -O linux -T kernel -C none -a 0x1080000 -e 0x1080000 -d mnt/boot/Image mnt/boot/uImage
7589
sync
7690

7791
umount -R -f mnt 2>/dev/null
7892
losetup -d ${LOOP_DEV} 2>/dev/null
7993

8094
# Compress build IMG and move the file
81-
tar c ${IMG_FILENAME} | gzip -9 > "${OUT_DIR}/${IMG_FILENAME}.tar.gz"
95+
xz -9 > "${OUT_DIR}/${IMG_FILENAME}.xz"
8296
}
8397

8498
cd ${WORKING_DIR}

src/boot-files/aml_autoscript.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
defenv
2+
setenv bootcmd 'run start_autoscript; run storeboot'
3+
setenv start_autoscript 'mmcinfo && run start_mmc_autoscript; usb start && run start_usb_autoscript; run start_emmc_autoscript'
4+
setenv start_emmc_autoscript 'fatload mmc 1 1020000 emmc_autoscript && autoscr 1020000'
5+
setenv start_mmc_autoscript 'fatload mmc 0 1020000 s905_autoscript && autoscr 1020000'
6+
setenv start_usb_autoscript 'for usbdev in 0 1 2 3; do fatload usb ${usbdev} 1020000 s905_autoscript && autoscr 1020000; done'
7+
setenv system_part b
8+
setenv upgrade_step 2
9+
saveenv
10+
sleep 1
11+
reboot

src/boot-files/emmc_autoscript.cmd

100755100644
Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
if fatload mmc 1 0x1000000 u-boot.emmc; then go 0x1000000; fi;
2-
setenv dtb_addr 0x1000000
31
setenv env_addr 0x1040000
4-
setenv kernel_addr 0x11000000
52
setenv initrd_addr 0x13000000
6-
setenv boot_start booti ${kernel_addr} ${initrd_addr} ${dtb_addr}
7-
setenv addmac 'if printenv mac; then setenv bootargs ${bootargs} mac=${mac}; elif printenv eth_mac; then setenv bootargs ${bootargs} mac=${eth_mac}; elif printenv ethaddr; then setenv bootargs ${bootargs} mac=${ethaddr}; fi'
8-
if fatload mmc 1 ${env_addr} uEnv.txt && env import -t ${env_addr} ${filesize}; setenv bootargs ${APPEND}; then if fatload mmc 1 ${kernel_addr} ${LINUX}; then if fatload mmc 1 ${initrd_addr} ${INITRD}; then if fatload mmc 1 ${dtb_addr} ${FDT}; then run addmac; run boot_start; fi; fi; fi; fi;
3+
setenv boot_start 'bootm ${loadaddr} ${initrd_addr} ${dtb_mem_addr}'
4+
setenv addmac 'if printenv mac; then setenv bootargs ${bootargs} mac=${mac}; elif printenv eth_mac; then setenv bootargs ${bootargs} mac=${eth_mac}; fi'
5+
setenv try_boot_start 'if fatload ${devtype} ${devnum} ${loadaddr} uImage; then if fatload ${devtype} ${devnum} ${initrd_addr} uInitrd; then fatload ${devtype} ${devnum} ${env_addr} uEnv.ini && env import -t ${env_addr} ${filesize} && run addmac; fatload ${devtype} ${devnum} ${dtb_mem_addr} ${dtb_name} && run boot_start; fi;fi'
6+
setenv devtype mmc
7+
setenv devnum 1
8+
run try_boot_start
9+

src/boot-files/s905_autoscript.cmd

100755100644
Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1-
echo "start amlogic old u-boot"
2-
if fatload mmc 0 ${loadaddr} boot_android; then if test ${ab} = 0; then setenv ab 1; saveenv; exit; else setenv ab 0; saveenv; fi; fi;
3-
if fatload usb 0 ${loadaddr} boot_android; then if test ${ab} = 0; then setenv ab 1; saveenv; exit; else setenv ab 0; saveenv; fi; fi;
41
if fatload mmc 0 0x1000000 u-boot.ext; then go 0x1000000; fi;
52
if fatload usb 0 0x1000000 u-boot.ext; then go 0x1000000; fi;
6-
setenv kernel_addr_r 0x11000000
7-
setenv ramdisk_addr_r 0x13000000
8-
setenv fdt_addr_r 0x1000000
9-
setenv l_mmc "0"
10-
for devtype in "mmc usb" ; do if test "${devtype}" = "usb"; then echo "start test usb"; setenv l_mmc "0 1 2 3"; fi; for devnum in ${l_mmc} ; do if test -e ${devtype} ${devnum} uEnv.txt; then fatload ${devtype} ${devnum} ${loadaddr} uEnv.txt; env import -t ${loadaddr} ${filesize}; setenv bootargs ${APPEND}; if printenv mac; then setenv bootargs ${bootargs} mac=${mac}; elif printenv eth_mac; then setenv bootargs ${bootargs} mac=${eth_mac}; fi; if fatload ${devtype} ${devnum} ${kernel_addr_r} ${LINUX}; then if fatload ${devtype} ${devnum} ${ramdisk_addr_r} ${INITRD}; then if fatload ${devtype} ${devnum} ${fdt_addr_r} ${FDT}; then fdt addr ${fdt_addr_r}; booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}; fi; fi; fi; fi; done; done;
3+
setenv env_addr 0x1040000
4+
setenv initrd_addr 0x13000000
5+
setenv boot_start 'bootm ${loadaddr} ${initrd_addr} ${dtb_mem_addr}'
6+
setenv addmac 'if printenv mac; then setenv bootargs ${bootargs} mac=${mac}; elif printenv eth_mac; then setenv bootargs ${bootargs} mac=${eth_mac}; fi'
7+
setenv try_boot_start 'if fatload ${devtype} ${devnum} ${loadaddr} uImage; then if fatload ${devtype} ${devnum} ${initrd_addr} uInitrd; then fatload ${devtype} ${devnum} ${env_addr} uEnv.ini && env import -t ${env_addr} ${filesize} && run addmac; fatload ${devtype} ${devnum} ${dtb_mem_addr} ${dtb_name} && run boot_start; fi;fi'
8+
setenv devtype mmc
9+
setenv devnum 0
10+
run try_boot_start
11+
setenv devtype usb
12+
for devnum in 0 1 2 3 ; do run try_boot_start ; done

src/boot-files/uEnv.ini

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
dtb_name=/dtbs/amlogic/meson-gxl-s905x-khadas-vim.dtb
2+
bootargs=root=LABEL=ROOT rootflags=data=writeback rw console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0

0 commit comments

Comments
 (0)