环境
宿主机平台:Ubuntu 16.04.6
目标机:iMX6ULL
Linux内核编译配置脚本
在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