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:
23
README.md
Normal file
23
README.md
Normal 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"}
|
||||
```
|
8
build.sh
8
build.sh
@@ -1,8 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
cd $(dirname $0)
|
||||
|
||||
dapper ./scripts/ci
|
||||
|
||||
ls -lh dist/kernel
|
@@ -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
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -6,3 +6,4 @@ cd $(dirname $0)/..
|
||||
./scripts/download
|
||||
./scripts/extract
|
||||
./scripts/build-kernel
|
||||
./scripts/package-kernel
|
||||
|
49
scripts/package-kernel
Executable file
49
scripts/package-kernel
Executable 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
|
Reference in New Issue
Block a user