1
0
mirror of https://github.com/rancher/os-kernel.git synced 2025-04-28 18:43:20 +00:00
os-kernel/scripts/build-common

103 lines
2.5 KiB
Plaintext
Raw Normal View History

2015-08-05 16:53:05 +00:00
#!/bin/bash
set -e
2016-06-06 16:58:02 +00:00
: ${KERNEL_URL:="https://github.com/rancher/linux/archive/Ubuntu-4.4.0-23.41-rancher2.tar.gz"}
: ${KERNEL_SHA1:="62d171607f7f816b277fb4d4d58fb08a0c7960e5"}
2015-08-05 16:53:05 +00:00
: ${ARTIFACTS:=$(pwd)/assets}
2015-09-17 07:44:12 +00:00
: ${BUILD:=/usr/src}
2015-08-05 16:53:05 +00:00
: ${CONFIG:=$(pwd)/config}
: ${DIST:=$(pwd)/dist}
2015-09-17 07:44:12 +00:00
list_build_files() {
find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl
find $(find ./arch/${SRCARCH} -name include -o -name scripts -type d) ./include ./scripts -type f
find ./arch/${SRCARCH} -name module.lds -o -name Kbuild.platforms -o -name Platform
find . -name Module.symvers -type f
}
2015-10-01 15:43:09 +00:00
create_firmware_tar() {
local list=$1
local temp=firmware-temp
rm -rf $temp
mkdir -p $temp
tar xf linux*.tar -C $temp
if [ ! -e linux-firmware ]; then
git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
fi
(
cd linux-firmware
git rev-parse HEAD > .git-commit
)
echo .git-commit > files
for i in $(<$list); do
if [ ! -e $temp/lib/firmware/$i ]; then
if [ -e linux-firmware/$i ]; then
echo Found $i
echo $i >> files
else
echo Not found $i
fi
fi
done
tar cf firmware.tar --transform 's,^,lib/firmware/,' -C linux-firmware $(<files)
2016-04-20 04:58:56 +00:00
for i in $(<files); do
if [ -e linux-firmware/$i ]; then
rm linux-firmware/$i
fi
done
tar cf firmware-extra.tar --transform 's,^./,lib/firmware/,' -C linux-firmware .
}
move_files() {
local module_list=$1
local target=$2
for i in $(<$module_list); do
if [ ! -e $i ]; then
continue
fi
dest=$(readlink -f $i | sed 's!/build/!/'$target'/!')
mkdir -p $(dirname $dest)
mv $i $dest
done
}
split_tar() {
local archive=$1
local module_list=$2
local module_extra_list=$3
rm -rf tar
mkdir -p tar/{build,main,extra}
echo Extracting $archive
tar xf $archive -C tar/build
cd tar/build/lib/modules/*/kernel/..
echo Separating modules
move_files $module_list main
move_files $module_extra_list extra
if [ $(find kernel -type f | wc -l) -gt 0 ]; then
echo Invalid files
find kernel -type f
exit 1
fi
rm -rf kernel
mv $(pwd | sed 's!/build/!/main/!')/kernel .
echo Creating base.tar
tar cf ../../../../../base.tar -C ../../.. .
echo Creating extra.tar
tar cf ../../../../../extra.tar -C ../../../../extra .
2015-10-01 15:43:09 +00:00
}