Firefly开源社区

标题: shell script for kernel compile & pack [打印本页]

作者: woody.lee    时间: 2016-3-30 17:57
标题: shell script for kernel compile & pack
簡單說明下, 因為重複的驗證, 所以寫了簡單的 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

作者: ljj3166    时间: 2016-6-24 22:22
真牛,顶一个
作者: stanleyfang    时间: 2016-7-14 11:08
多谢楼主




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1