• 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

  • 相关阅读:
    js实现发布订阅模式
    js对象拷贝方法
    编译原理中的词法和语法分析怎么理解?
    js数组去重
    js对象判断方法
    js实现深度比较
    js遍历方法总结
    AngularJS入门教程08:更多模板
    任务,责任,过错之间的平衡问题
    C#操作Excel总结
  • 原文地址:https://www.cnblogs.com/silencehuan/p/11009623.html
Copyright © 2020-2023  润新知