zoukankan      html  css  js  c++  java
  • Linux内核编译配置脚本

    环境

    宿主机平台: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

  • 相关阅读:
    香洲区学区查询
    审批流程标识
    小技巧
    Python字符串操作
    Delphi删除动态数组的指定元素
    dephi 多种排序 算法
    [转载]模拟退火,遗传算法,禁忌搜索,神经网络
    Date类学习总结(Calendar Date 字符串 相互转换 格式化) 转
    Java静态嵌套类
    java中的匿名内部类总结
  • 原文地址:https://www.cnblogs.com/silencehuan/p/11009623.html
Copyright © 2011-2022 走看看