1
0
mirror of https://github.com/rancher/os-kernel.git synced 2025-09-02 05:14:29 +00:00

Move things around to make it easier to package up a kernel you built elsewhere

Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
This commit is contained in:
Sven Dowideit
2016-10-13 20:53:35 +10:00
parent 754391dd8d
commit 92afa014c8
6 changed files with 80 additions and 27 deletions

23
README.md Normal file
View File

@@ -0,0 +1,23 @@
# Build kernel release archives for use in building RancherOS
**Fill me in**
## packaging your own kernel builds
Assuming you have some kernel source you have built in `/usr/src/linux-4.8`, you can
package up the result by running
```
./scripts/package-kernel --srcdir /usr/src/linux-4.8
```
You may need to adjust the expected module list files.
## Notes
```
+: ${KERNEL_URL:="https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.8.1.tar.xz"}
+: ${KERNEL_SHA1:="af418cf983819e99fb4bd0c200a10d9568a2ac52"}
```

View File

@@ -1,8 +0,0 @@
#!/bin/bash
set -e
cd $(dirname $0)
dapper ./scripts/ci
ls -lh dist/kernel

View File

@@ -39,7 +39,7 @@ create_firmware_tar() {
echo Found $i
echo $i >> files
else
echo Not found $i
echo WARNING: Firmware listed in $list Not found $i
fi
fi
done
@@ -91,7 +91,7 @@ split_tar() {
mkdir -p tar/{build,main,extra}
echo Extracting $archive
tar xf $archive -C tar/build
depmod -b tar/build $(basename tar/build/lib/modules/*)
/sbin/depmod -b tar/build $(basename tar/build/lib/modules/*)
cd tar/build/lib/modules/*/kernel/..
@@ -102,8 +102,12 @@ split_tar() {
move_files $module_extra_list extra
if [ $(find kernel -type f | wc -l) -gt 0 ]; then
echo Invalid files
echo Invalid files in $(pwd)
find kernel -type f
echo
echo ERROR: Extra files in $(pwd)
echo ERROR: You may need to either remove some modules from your kernel .config, or
echo ERROR: add these files to $module_list or $module_extra_list
exit 1
fi

View File

@@ -19,19 +19,3 @@ cd ${BUILD}/${DIR}
make oldconfig
make -j$(nproc) tar-pkg
create_firmware_tar $FIRMWARE
mkdir -p ${DIST}/kernel
FILE=$(echo linux*.tar)
(
split_tar $FILE $MODULE_LIST $MODULE_EXTRA_LIST
)
tar --concatenate --file=base.tar firmware.tar
tar --concatenate --file=extra.tar firmware-extra.tar
cat base.tar | gzip -c > ${DIST}/kernel/${FILE}.gz
cat extra.tar | gzip -c > ${DIST}/kernel/extra.tar.gz
list_build_files | tar -czf ${DIST}/kernel/build.tar.gz -T /dev/stdin

View File

@@ -6,3 +6,4 @@ cd $(dirname $0)/..
./scripts/download
./scripts/extract
./scripts/build-kernel
./scripts/package-kernel

49
scripts/package-kernel Executable file
View File

@@ -0,0 +1,49 @@
#!/bin/bash
set -e
cd $(dirname $0)/..
source scripts/build-common
source scripts/version
SOURCEDIR=${BUILD}/${VERSION}
while [ "$#" -gt 0 ]; do
case $1 in
--srcdir)
shift 1
SOURCEDIR="$1"
;;
*)
break
;;
esac
shift 1
done
export CCACHE_DIR="${HOME}/.kernel-ccache"
export CC="ccache gcc"
export PATH="/usr/lib/ccache:$PATH"
KERNEL=$(basename ${KERNEL_URL})
FIRMWARE=$(readlink -f scripts/firmware)
MODULE_LIST=$(readlink -f modules.list)
MODULE_EXTRA_LIST=$(readlink -f modules-extra.list)
cd ${SOURCEDIR}
create_firmware_tar $FIRMWARE
mkdir -p ${DIST}/kernel
FILE=$(echo linux*.tar)
(
split_tar $FILE $MODULE_LIST $MODULE_EXTRA_LIST
)
tar --concatenate --file=base.tar firmware.tar
tar --concatenate --file=extra.tar firmware-extra.tar
cat base.tar | gzip -c > ${DIST}/kernel/${FILE}.gz
cat extra.tar | gzip -c > ${DIST}/kernel/extra.tar.gz
list_build_files | tar -czf ${DIST}/kernel/build.tar.gz -T /dev/stdin