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
|
|
|
}
|