|
shell script for kernel compile & pack
发表于 2016-3-30 17:57:26
浏览:6460
|
回复:2
打印
只看该作者
[复制链接]
楼主
簡單說明下, 因為重複的驗證, 所以寫了簡單的 script 避免編譯的時候出錯而不自知
需要依照 個人的編譯環境 做適度修改
./Kernel <<== https://bitbucket.org/T-Firefly/firefly-rk3288-kernel.git
./Kernel/initrd <<== https://github.com/TeeFirefly/initrd.git
do_source # 設定交叉編譯器
do_clean_make_kernel # 執行 kernel 編譯
do_clean_make_module # 執行 module 編譯並拷貝至 ./initrd/lib/modules/ 下
do_clean_pack # 執行 mkbootimg
do_cp2datadir # 拷貝新生的 image 到 Image資料夾下
cat build.sh
===========================================
#!/bin/sh
do_source()
{
export ARCH=arm
export CROSS_COMPILE=/home/woody/Projects/WOODY/FirePrime/arm-eabi-4.6/bin/arm-eabi-
}
do_clean_make_kernel()
{
#make firefly-rk3288-linux_defconfig #如果用預設的kernel config 可以去掉註解
make -j8 firefly-rk3288.img
if [ $? != 0 ] ; then
echo "Build Kernel Image GG"
exit 888
fi
}
do_clean_make_module()
{
make modules;
if [ $? != 0 ] ; then
echo "Build Kernel Module GG"
exit 888
fi
rm -rfv modules_install ; mkdir -pv modules_install ;
make INSTALL_MOD_PATH=./modules_install modules_install ;
rm -rfv ./initrd/lib/modules/3.10.0 ; cp -rfv ./modules_install/lib/modules/3.10.0 ./initrd/lib/modules/ ;
cd ./initrd/
git checkout lib/modules/rk*ko*
git status
cd -
}
do_clean_pack()
{
make -C initrd; truncate -s "%4" initrd.img;
mkbootimg --kernel arch/arm/boot/zImage --ramdisk initrd.img -o boot.img
}
do_cp2datadir()
{
rm -rfv Image/boot.img Image/resource.img
mkdir -pv Image
cp -rfv boot.img resource.img Image/
sync &
sync &
sync &
}
do_source
do_clean_make_kernel
do_clean_make_module
do_clean_pack
do_cp2datadir
|
|