mirror of
https://github.com/rancher/os-kernel.git
synced 2025-09-02 13:24:50 +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 Found $i
|
||||||
echo $i >> files
|
echo $i >> files
|
||||||
else
|
else
|
||||||
echo Not found $i
|
echo WARNING: Firmware listed in $list Not found $i
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
@@ -91,7 +91,7 @@ split_tar() {
|
|||||||
mkdir -p tar/{build,main,extra}
|
mkdir -p tar/{build,main,extra}
|
||||||
echo Extracting $archive
|
echo Extracting $archive
|
||||||
tar xf $archive -C tar/build
|
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/..
|
cd tar/build/lib/modules/*/kernel/..
|
||||||
|
|
||||||
@@ -102,8 +102,12 @@ split_tar() {
|
|||||||
move_files $module_extra_list extra
|
move_files $module_extra_list extra
|
||||||
|
|
||||||
if [ $(find kernel -type f | wc -l) -gt 0 ]; then
|
if [ $(find kernel -type f | wc -l) -gt 0 ]; then
|
||||||
echo Invalid files
|
echo Invalid files in $(pwd)
|
||||||
find kernel -type f
|
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
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@@ -19,19 +19,3 @@ cd ${BUILD}/${DIR}
|
|||||||
|
|
||||||
make oldconfig
|
make oldconfig
|
||||||
make -j$(nproc) tar-pkg
|
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/download
|
||||||
./scripts/extract
|
./scripts/extract
|
||||||
./scripts/build-kernel
|
./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