Skip to content

Commit 5b2c298

Browse files
committed
use debian kernels only now that trixie is 6.10.x
Signed-off-by: John Clark <inindev@gmail.com>
1 parent 2739745 commit 5b2c298

File tree

2 files changed

+50
-93
lines changed

2 files changed

+50
-93
lines changed

debian/make_debian_img.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ main() {
145145
# disable sshd until after keys are regenerated on first boot
146146
sudo rm -fv "$mountpt/etc/systemd/system/sshd.service"
147147
sudo rm -fv "$mountpt/etc/systemd/system/multi-user.target.wants/ssh.service"
148-
sudo rm -fv "$mountpt/etc/ssh/ssh_host_"*
148+
#sudo rm -fv "$mountpt/etc/ssh/ssh_host_"*
149149

150150
# generate machine id on first boot
151151
sudo truncate -s0 "$mountpt/etc/machine-id"

scripts/setup_image.sh

Lines changed: 49 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -11,50 +11,50 @@ main() {
1111
local lrev="${3:-0}"
1212
local outbin="${4:-outbin}"
1313

14-
local kern_rk3568_dist='bookworm'
15-
local kern_rk3588_dist='sid'
16-
17-
# ensure all prerequisites are downloaded
18-
preflight_check "$kern_rk3568_dist" "$kern_rk3588_dist"
19-
[ '_preflight' = "_$1" ] && exit 0
14+
local dist_next='trixie'
2015

16+
# check for media file
2117
test -e "$media" || { echo "error: unable to find media: $media"; exit 1; }
2218
trap "on_exit $mountpt" EXIT INT QUIT ABRT TERM
2319

20+
# download file dependencies
21+
get_deps "$dist_next"
22+
[ '_deps_only' = "_$1" ] && exit 0
23+
2424
# nanopi-r5c
25-
setup_image "$media" "$mountpt" 'nanopi-r5c' 'rk3568-nanopi-r5c.dtb' "$kern_rk3568_dist" "$lrev" "$outbin" 'nanopi_hook'
25+
setup_image "$media" "$mountpt" 'stable' 'rk3568-nanopi-r5c.dtb' "$outbin" 'nanopi_hook'
2626

2727
# nanopi-r5s
28-
setup_image "$media" "$mountpt" 'nanopi-r5s' 'rk3568-nanopi-r5s.dtb' "$kern_rk3568_dist" "$lrev" "$outbin" 'nanopi_hook'
28+
setup_image "$media" "$mountpt" 'stable' 'rk3568-nanopi-r5s.dtb' "$outbin" 'nanopi_hook'
2929

3030
# odroid-m1
31-
setup_image "$media" "$mountpt" 'odroid-m1' 'rk3568-odroid-m1.dtb' "$kern_rk3568_dist" "$lrev" "$outbin"
31+
setup_image "$media" "$mountpt" 'stable' 'rk3568-odroid-m1.dtb' "$outbin"
3232

3333
# radxa-e25
34-
setup_image "$media" "$mountpt" 'radxa-e25' 'rk3568-radxa-e25.dtb' "$kern_rk3568_dist" "$lrev" "$outbin"
34+
setup_image "$media" "$mountpt" 'stable' 'rk3568-radxa-e25.dtb' "$outbin"
3535

3636
# nanopc-t6
37-
setup_image "$media" "$mountpt" 'nanopc-t6' 'rk3588-nanopc-t6.dtb' "$kern_rk3588_dist" "$lrev" "$outbin" 'sid_inindev_kern_hook'
37+
setup_image "$media" "$mountpt" "$dist_next" 'rk3588-nanopc-t6.dtb' "$outbin"
3838

3939
# orangepi-5
40-
setup_image "$media" "$mountpt" 'orangepi-5' 'rk3588s-orangepi-5.dtb' "$kern_rk3588_dist" "$lrev" "$outbin" 'sid_kern_hook'
40+
setup_image "$media" "$mountpt" "$dist_next" 'rk3588s-orangepi-5.dtb' "$outbin"
4141

4242
# orangepi-5-plus
43-
setup_image "$media" "$mountpt" 'orangepi-5-plus' 'rk3588-orangepi-5-plus.dtb' "$kern_rk3588_dist" "$lrev" "$outbin" 'sid_kern_hook'
43+
setup_image "$media" "$mountpt" "$dist_next" 'rk3588-orangepi-5-plus.dtb' "$outbin"
4444

4545
# rock-5b
46-
setup_image "$media" "$mountpt" 'rock-5b' 'rk3588-rock-5b.dtb' "$kern_rk3588_dist" "$lrev" "$outbin" 'sid_inindev_kern_hook'
46+
setup_image "$media" "$mountpt" "$dist_next" 'rk3588-rock-5b.dtb' "$outbin"
4747
}
4848

4949
setup_image() {
5050
local media="$1"
5151
local mountpt="$2"
52-
local board="$3"
52+
local kern_dist="$3"
5353
local dtb="$4"
54-
local kdeb="${5}.deb"
55-
local lrev="${6:-0}"
56-
local outbin="${7:-outbin}"
57-
local hook="$8"
54+
local outbin="${5:-outbin}"
55+
local hook="$6"
56+
57+
local board="${dtb#*-}" ; board="${board%.*}"
5858

5959
echo "${h1}configuring debian image for board ${yel}$board${rst}${bld}...${rst}"
6060

@@ -68,15 +68,22 @@ setup_image() {
6868
set_hostname "$mountpt" "$board"
6969

7070
# install the kernel
71-
install_kernel "$mountpt" "downloads/kernels/$kdeb"
71+
[ '_stable' != "_$kern_dist" ] && dist_kern_hook "$mountpt" "$kern_dist"
72+
sudo chroot "$mountpt" /usr/bin/apt update
73+
sudo chroot "$mountpt" /usr/bin/apt -y upgrade
74+
sudo chroot "$mountpt" /usr/bin/apt -y install linux-image-arm64
75+
sudo chroot "$mountpt" /usr/bin/apt clean
7276

7377
# the final image name is based on distribution name
7478
local img_name=''
75-
get_img_name "$mountpt" "$board" "$lrev"
79+
get_img_name "$mountpt" "$board"
7680

7781
# post setup hook
7882
[ -n "$hook" ] && "$hook" "$media" "$mountpt" "$board"
7983

84+
# cleanup ssh keys
85+
sudo rm -fv "$mountpt/etc/ssh/ssh_host_"*
86+
8087
unmount_media "$mountpt"
8188

8289
# install u-boot
@@ -98,68 +105,41 @@ nanopi_hook() {
98105
sudo sed -i "/setup for expand fs/e cat configs/network_${board}.cfg" "$mountpt/etc/rc.local"
99106
}
100107

101-
sid_kern_hook() {
102-
local media="$1"
103-
local mountpt="$2"
104-
local board="$3"
108+
dist_kern_hook() {
109+
local mountpt="$1"
110+
local dist="$2"
105111

106-
cat <<-EOF | sudo tee "$mountpt/etc/apt/preferences.d/99-sid-kernel"
112+
cat <<-EOF | sudo tee "$mountpt/etc/apt/preferences.d/99-${dist}-kernel"
107113
Package: *
108114
Pin: release n=bookworm*
109115
Pin-Priority: 600
110116
111117
Package: linux-image-arm64
112-
Pin: release n=sid
113-
Pin-Priority: 900
118+
Pin: release n=$dist
119+
Pin-Priority: 800
114120
115121
EOF
116122

117123
cat <<-EOF | sudo tee -a "$mountpt/etc/apt/sources.list"
118124
# linux-image*
119-
deb http://deb.debian.org/debian sid main
120-
#deb-src http://deb.debian.org/debian sid main
125+
deb http://deb.debian.org/debian $dist main
126+
#deb-src http://deb.debian.org/debian $dist main
121127
122128
EOF
123129
}
124130

125-
sid_inindev_kern_hook() {
126-
local media="$1"
127-
local mountpt="$2"
128-
local board="$3"
129-
130-
sid_kern_hook "$media" "$mountpt" "$board"
131-
132-
# install the inindev kernel
133-
install_kernel "$mountpt" "downloads/kernels/inindev.deb"
134-
}
135-
136-
install_kernel() {
137-
local mountpt="$1"
138-
local kdebpath="$2"
139-
140-
local kfpath="$(realpath "$kdebpath")"
141-
local kfname="$(basename "$kfpath")"
142-
local kdir="$(dirname "$kfpath")"
143-
144-
echo "${h1}installing kernel: $kfname${rst}"
145-
sudo mount -vo bind "$kdir" "$mountpt/mnt"
146-
sudo chroot "$mountpt" "/usr/bin/dpkg" -i "/mnt/$kfname"
147-
sudo umount "$mountpt/mnt"
148-
echo "kernel installed successfully"
149-
}
150-
151131
set_dtb() {
152132
local mountpt="$1"
153133
local dtbname="$2"
154134

135+
# some kernels require an external dtb
136+
[ -e "downloads/dtbs/$dtbname" ] && sudo install -vm 644 "downloads/dtbs/$dtbname" "$mountpt/boot" || true
137+
155138
echo "${h1}installing device tree: $dtbname${rst}"
156139
sudo sed -i "s/<DTB_FILE>/$dtbname/g" "$mountpt/etc/kernel/postinst.d/dtb_cp"
157140
sudo sed -i "s/<DTB_FILE>/$dtbname/g" "$mountpt/etc/kernel/postinst.d/kernel_chmod"
158141
sudo sed -i "s/<DTB_FILE>/$dtbname/g" "$mountpt/etc/kernel/postrm.d/dtb_rm"
159142
sudo sed -i "s/<DTB_FILE>/$dtbname/g" "$mountpt/boot/mk_extlinux"
160-
161-
# some kernels require an external dtb
162-
[ -e "downloads/dtbs/$dtbname" ] && sudo install -vm 644 "downloads/dtbs/$dtbname" "$mountpt/boot" || true
163143
}
164144

165145
set_hostname() {
@@ -178,20 +158,14 @@ set_hostname() {
178158
get_img_name() {
179159
local mountpt="$1"
180160
local board="$2"
181-
local lrev="${3:-0}"
182161

183162
# <board>_<dist>-<ver>_<lrev>.img
184163
# odroid-m1_bookworm-12.4-1.img
185164
local dist=$(cat "$mountpt/etc/os-release" | sed -rn 's/VERSION_CODENAME=(.*)/\1/p')
186165
local ver=$(cat "$mountpt/etc/debian_version")
187166
[ 'trixie/sid' = "$ver" ] && ver='13'
188167

189-
img_name="${board}_${dist}-${ver}"
190-
if [ $lrev -gt 0 ]; then
191-
img_name="${img_name}-${lrev}"
192-
fi
193-
194-
img_name="${img_name}.img"
168+
img_name="${board}_${dist}-${ver}.img"
195169
}
196170

197171
install_uboot() {
@@ -204,37 +178,20 @@ install_uboot() {
204178
echo "u-boot installed successfully"
205179
}
206180

207-
preflight_check() {
208-
local kern_rk3568_dist="$1"
209-
local kern_rk3588_dist="$2"
181+
get_deps() {
182+
local dist_next="$1"
210183

211-
# download kernels
184+
# download kernel
212185
if ! [ -d 'downloads/kernels' ]; then
213-
echo "${h1}downloading debian kernels...${rst}"
214-
sh 'scripts/get_deb_kernel.sh' "$kern_rk3568_dist"
215-
sh 'scripts/get_deb_kernel.sh' "$kern_rk3588_dist"
216-
fi
217-
218-
# copy inindev kernel from local if available
219-
if [ -d '../linux-rockchip/kernel-'* ]; then
220-
local lkpath=$(ls '../linux-rockchip/kernel-'*'/linux-image-'*'-arm64_'*'_arm64.deb' 2>/dev/null)
221-
if [ -e "$lkpath" ]; then
222-
inindev_kern=$(basename "$lkpath")
223-
echo "${h1}copying inindev kernel from local...${rst}"
224-
cp -uv "$lkpath" 'downloads/kernels'
225-
ln -sfv "$(basename "$lkpath")" 'downloads/kernels/inindev.deb'
226-
fi
186+
echo "${h1}downloading debian kernel...${rst}"
187+
mkdir -p "downloads/kernels"
188+
sh 'scripts/get_deb_kernel.sh' "$dist_next"
227189
fi
228190

229-
# if ! [ -e "downloads/kernels/$inindev_kern" ]; then
230-
# echo "${h1}downloading inindev kernel...${rst}"
231-
# wget -P 'downloads/kernels' "https://github.com/inindev/linux-rockchip/releases/latest/download/$inindev_kern"
232-
# fi
233-
234-
# extract rk3568 dtbs from the rk3588 kernel
191+
# extract rk3568 dtbs from the kernel deb
235192
if ! [ -d "downloads/dtbs" ]; then
236-
echo "${h1}extracting rk3568 dtb files from $kern_rk3588_dist kernel package...${rst}"
237-
sh 'scripts/extract_dtbs.sh' "downloads/kernels/${kern_rk3588_dist}.deb" 'rk3568*.dtb'
193+
echo "${h1}extracting rk3568 dtb files from $dist_next kernel package...${rst}"
194+
sh 'scripts/extract_dtbs.sh' "downloads/kernels/${dist_next}.deb" 'rk3568*.dtb'
238195
# use rk3568-odroid-m1.dtb from the bookworm debian kernel package
239196
rm -f 'downloads/dtbs/rk3568-odroid-m1.dtb'
240197
fi

0 commit comments

Comments
 (0)