mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-18 22:54:00 +00:00
5784aa4823
Changed logic for gathering dtb list to just use a wildcard for boards that we're interested in. Changed generate_chromebook_its.sh logic to just take in scattered dtb files. Compressed all input files that go into the .its Here are some comparisons: none: 37M lz4: 17M < chosen in this commit lzma: ~10M but boots 1 second slower Since it's compressed the .its now had to include external compatible properties, used `fdtget .dtb / compatible`.
66 lines
1.4 KiB
Bash
Executable file
66 lines
1.4 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
image=$1
|
|
arch=$2
|
|
compression=$3
|
|
read -a dtb_list
|
|
|
|
cat <<-ITS_HEADER_END
|
|
/dts-v1/;
|
|
|
|
/ {
|
|
description = "Chrome OS kernel image with one or more FDT blobs";
|
|
images {
|
|
kernel@1{
|
|
description = "kernel";
|
|
data = /incbin/("${image}");
|
|
type = "kernel_noload";
|
|
arch = "${arch}";
|
|
os = "linux";
|
|
compression = "${compression}";
|
|
load = <0>;
|
|
entry = <0>;
|
|
};
|
|
ITS_HEADER_END
|
|
|
|
for i in ${!dtb_list[@]}; do
|
|
dtb=${dtb_list[${i}]}
|
|
cat <<-FDT_END
|
|
fdt@$(expr ${i} + 1){
|
|
description = "$(basename ${dtb})";
|
|
data = /incbin/("${dtb}");
|
|
type = "flat_dt";
|
|
arch = "${arch}";
|
|
compression = "${compression}";
|
|
hash@1{
|
|
algo = "sha1";
|
|
};
|
|
};
|
|
FDT_END
|
|
done
|
|
|
|
cat <<-ITS_MIDDLE_END
|
|
};
|
|
configurations {
|
|
default = "conf@1";
|
|
ITS_MIDDLE_END
|
|
|
|
for i in "${!dtb_list[@]}"; do
|
|
compat_line=""
|
|
dtb_uncompressed=$(echo ${dtb_list[${i}]} | sed "s/\(\.dtb\).*/\1/g")
|
|
for compat in $(fdtget "${dtb_uncompressed}" / compatible); do
|
|
compat_line+="\"${compat}\","
|
|
done
|
|
cat <<-ITS_CONF_END
|
|
conf@$(expr ${i} + 1){
|
|
kernel = "kernel@1";
|
|
fdt = "fdt@$(expr ${i} + 1)";
|
|
compatible = ${compat_line%,};
|
|
};
|
|
ITS_CONF_END
|
|
done
|
|
|
|
cat <<-ITS_FOOTER_END
|
|
};
|
|
};
|
|
ITS_FOOTER_END
|