@@ -27,6 +27,28 @@ create_package() {
27
27
chown -R root:root " $pdir "
28
28
chmod -R go-w " $pdir "
29
29
30
+ # Create preinstall and post install script to remove dtb
31
+ if [[ " $1 " == * dtb* ]]; then
32
+ echo " if [ -d /boot/dtb-$version ]; then mv /boot/dtb-$version /boot/dtb-$version .old; fi" >> $pdir /DEBIAN/preinst
33
+ echo " if [ -d /boot/dtb.old ]; then rm -rf /boot/dtb.old; fi" >> $pdir /DEBIAN/preinst
34
+ echo " if [ -d /dtb ]; then mv /dtb /dtb.old; fi" >> $pdir /DEBIAN/preinst
35
+ echo " if [ -d /boot/dtb ]; then mv /boot/dtb /boot/dtb.old; fi" >> $pdir /DEBIAN/preinst
36
+ echo " exit 0" >> $pdir /DEBIAN/preinst
37
+ chmod 775 $pdir /DEBIAN/preinst
38
+ #
39
+ echo " if [ -d /boot/dtb-$version .old ]; then rm -rf /boot/dtb-$version .old; fi" >> $pdir /DEBIAN/postinst
40
+ echo " ln -sf dtb-$version /boot/dtb > /dev/null 2>&1 || mv /boot/dtb-$version /boot/dtb" >> $pdir /DEBIAN/postinst
41
+ echo " exit 0" >> $pdir /DEBIAN/postinst
42
+ chmod 775 $pdir /DEBIAN/postinst
43
+ fi
44
+
45
+ # Create postinstall script for headers
46
+ if [[ " $1 " == * headers* ]]; then
47
+ echo " cd /usr/src/linux-headers-$version ; echo \" Compiling headers - please wait ...\" ; make -s scripts >/dev/null 2>&1" >> $pdir /DEBIAN/postinst
48
+ echo " exit 0" >> $pdir /DEBIAN/postinst
49
+ chmod 775 $pdir /DEBIAN/postinst
50
+ fi
51
+
30
52
# Create the package
31
53
dpkg-gencontrol $forcearch -Vkernel:debarch=" ${debarch} " -p$pname -P" $pdir "
32
54
dpkg --build " $pdir " ..
@@ -93,11 +115,13 @@ tmpdir="$objtree/debian/tmp"
93
115
fwdir=" $objtree /debian/fwtmp"
94
116
kernel_headers_dir=" $objtree /debian/hdrtmp"
95
117
libc_headers_dir=" $objtree /debian/headertmp"
118
+ dtb_dir=" $objtree /debian/dtbtmp"
96
119
dbg_dir=" $objtree /debian/dbgtmp"
97
- packagename=linux-image-$version
98
- fwpackagename=linux-firmware-image-$version
99
- kernel_headers_packagename=linux-headers-$version
100
- libc_headers_packagename=linux-libc-dev
120
+ packagename=linux-image" $LOCAL_VERSION "
121
+ fwpackagename=linux-firmware-image" $LOCAL_VERSION "
122
+ kernel_headers_packagename=linux-headers" $LOCAL_VERSION "
123
+ dtb_packagename=linux-dtb" $LOCAL_VERSION "
124
+ libc_headers_packagename=linux-libc-dev" $LOCAL_VERSION "
101
125
dbg_packagename=$packagename -dbg
102
126
debarch=
103
127
forcearch=
124
148
BUILD_DEBUG=" $( grep -s ' ^CONFIG_DEBUG_INFO=y' $KCONFIG_CONFIG || true) "
125
149
126
150
# Setup the directory structure
127
- rm -rf " $tmpdir " " $fwdir " " $kernel_headers_dir " " $libc_headers_dir " " $dbg_dir " $objtree /debian/files
151
+ rm -rf " $tmpdir " " $fwdir " " $kernel_headers_dir " " $libc_headers_dir " " $dbg_dir " " $dtb_dir " $objtree /debian/files
152
+ mkdir -m 755 -p " $dtb_dir /DEBIAN"
153
+ mkdir -p " $dtb_dir /boot/dtb-$version " " $dtb_dir /usr/share/doc/$dtb_packagename "
128
154
mkdir -m 755 -p " $tmpdir /DEBIAN"
129
155
mkdir -p " $tmpdir /lib" " $tmpdir /boot"
130
156
mkdir -p " $fwdir /lib/firmware/$version /"
@@ -141,12 +167,8 @@ else
141
167
cp System.map " $tmpdir /boot/System.map-$version "
142
168
cp $KCONFIG_CONFIG " $tmpdir /boot/config-$version "
143
169
fi
144
- # Not all arches include the boot path in KBUILD_IMAGE
145
- if [ -e $KBUILD_IMAGE ]; then
146
- cp $KBUILD_IMAGE " $tmpdir /$installed_image_path "
147
- else
148
- cp arch/$ARCH /boot/$KBUILD_IMAGE " $tmpdir /$installed_image_path "
149
- fi
170
+
171
+ cp arch/$ARCH /boot/Image " $tmpdir /$installed_image_path "
150
172
151
173
if grep -q " ^CONFIG_OF=y" $KCONFIG_CONFIG ; then
152
174
# Only some architectures with OF support have this target
@@ -183,6 +205,12 @@ if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then
183
205
fi
184
206
fi
185
207
208
+ if grep -q ' ^CONFIG_ARM64=y' $KCONFIG_CONFIG ; then
209
+ mkdir -p " $tmpdir /boot/dtb-" " $version "
210
+ cp $objtree /arch/$SRCARCH /boot/dts/rockchip/* .dtb $dtb_dir /boot/dtb-$version
211
+ fi
212
+
213
+
186
214
if [ " $ARCH " != " um" ]; then
187
215
$MAKE headers_check KBUILD_SRC=
188
216
$MAKE headers_install KBUILD_SRC= INSTALL_HDR_PATH=" $libc_headers_dir /usr"
218
246
chmod 755 " $tmpdir /DEBIAN/$script "
219
247
done
220
248
249
+ # #
250
+ # # Create sym link to kernel image
251
+ # #
252
+ sed -e " s/set -e//g" -i $tmpdir /DEBIAN/postinst
253
+ sed -e " s/exit 0//g" -i $tmpdir /DEBIAN/postinst
254
+ cat >> $tmpdir /DEBIAN/postinst << EOF
255
+ ln -sf $( basename $installed_image_path ) /boot/zImage > /dev/null 2>&1 || mv /$installed_image_path /boot/zImage
256
+ exit 0
257
+ EOF
258
+
259
+ # # backup kernel image, config and System.map, fixup kernel upgrade issue
260
+ sed -e " s/exit 0//g" -i $tmpdir /DEBIAN/preinst
261
+ cat >> $tmpdir /DEBIAN/preinst << EOF
262
+ if [ -f /$installed_image_path ]; then
263
+ mv /$installed_image_path /$installed_image_path .old
264
+ fi
265
+
266
+ if [ -f /boot/zImage ]; then
267
+ mv /boot/zImage /boot/zImage.old
268
+ fi
269
+
270
+ if [ -f /boot/System.map-$version ]; then
271
+ mv /boot/System.map-$version /boot/System.map-$version .old
272
+ fi
273
+
274
+ if [ -f /boot/config-$version ]; then
275
+ mv /boot/config-$version /boot/config-$version .old
276
+ fi
277
+ exit 0
278
+ EOF
279
+
221
280
# Try to determine maintainer and email values
222
281
if [ -n " $DEBEMAIL " ]; then
223
282
email=$DEBEMAIL
363
422
364
423
cat << EOF >> debian/control
365
424
425
+ Package: $dtb_packagename
426
+ Architecture: any
427
+ Description: Linux DTB, version $version
428
+ This package contains device blobs from the Linux kernel, version $version .
429
+ EOF
430
+
431
+ create_package " $dtb_packagename " " $dtb_dir "
432
+
433
+ cat << EOF >> debian/control
434
+
366
435
Package: $libc_headers_packagename
367
436
Section: devel
368
437
Provides: linux-kernel-headers
0 commit comments