宿主机平台:Ubuntu 16.04.6
目标机:iMX6ULL
在linux开发过程中熟练使用脚本可以大大简化命令行操作,同时对于需要经常重复操作的指令也是一种备忘;
在linux内核源码根目录添加 config-kernel 文件
#!/bin/sh
echo "config menu"
echo " 1 make clean"
echo " 2 make distclean"
echo " 3 config for mys_imx6"
echo " 4 config for myd_y6ulx"
echo " 5 config for mxs"
echo " a make menuconfig"
echo " b make uImage"
echo " c make zImage"
echo " d make modules"
echo " e make dtbs"
echo " q exit"
prompt_make() {
echo "*** Configure done,execute 'make uImage' to build kernel or try 'make menuconfig' for more customization. Or use a-e***"
echo
}
make_distclean() {
echo "make make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean"
make distclean
}
make_clean() {
echo "make make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- clean"
make clean
}
config_mys_imx6() {
echo "mys_imx6"
cp .config .config.bk
cp arch/arm/configs/mys_imx6_defconfig .config
prompt_make
}
config_myd_y6ulx() {
echo "myd_y6ulx"
cp .config .config.bk
cp arch/arm/configs/myd_y6ulx_defconfig .config
prompt_make
}
config_mxs() {
echo "mxs"
cp .config .config.bk
cp arch/arm/configs/mxs_defconfig .config
prompt_make
}
make_menuconfig() {
make make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
}
make_uImage() {
make make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage
}
make_zImage() {
make make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage
}
make_modules() {
make make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules
}
make_dtbs() {
make make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs
}
echo -n "please select your choice: "
while true
do
read sel
echo "select $sel"
case $sel in
"1") make\_clean;;
"2") make\_distclean;;
"3") config\_mys\_imx6;;
"4") config\_myd\_y6ulx;;
"5") config\_mxs;;
"a") make\_menuconfig;;
"b") make\_uImage;;
"c") make\_zImage;;
"d") make\_modules;;
"e") make\_dtbs;;
\[q\] | \[Q\]) exit 0;;
\*) echo "ONLY accept 1~5,a~e/q/Q"
esac
done
运行效果如下
初次内核编译流程一次选择:2 3 c d e
手机扫一扫
移动阅读更方便
你可能感兴趣的文章