环境

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

Linux内核编译配置脚本的更多相关文章

  1. Linux内核编译完整过程

    Linux内核编译完整过程 通过网上的资料我自己的实际内核编译,我把对Linux内核编译的过程写在这里,也许对其他的Linux爱好者的编译学习有些帮助,其中很大部分是网上的资料,另外就是我在实际编译过 ...

  2. linux内核编译环境配置

    linux内核编译环境配置 如果不是编译内核,只需要安装与内核相匹配的kernel-devel开发包即可.即是/lib/modules/`uname -r`/build -> /usr/src/ ...

  3. 【内核】linux2.6版本内核编译配置选项(一)

    Linux 2.6.19.x 内核编译配置选项简介 作者:金步国 版权声明 本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布.任何人都可以自由使用.转载.复制和再分发, ...

  4. linux内核的配置

    以2.6.35.7版本的内核为例 总结:.config决定了Make时的条件编译与连接..config文件由两次配置第一次make XX_defconfig 第二次menuconfig. 1.分析源码 ...

  5. 运行在TQ2440开发板上以及X86平台上的linux内核编译

    一.运行在TQ2440开发板上的linux内核编译 1.获取源码并解压 直接使用天嵌移植好的“linux-2.6.30.4_20100531.tar.bz2”源码包. 解压(天嵌默认解压到/opt/E ...

  6. Linux内核编译与安装

    2013-04-16    Linux内核介绍  Linux内核是一个用C语言写成的,符合POSIX标准的类Unix操作系统.内核是操作系统中最基本的一部分,提供了众多应用程序访问计算机硬件的机制.L ...

  7. 【内核】linux2.6版本内核编译配置选项(二)

    目录 Linux2.6版本内核编译配置选项(一):http://infohacker.blog.51cto.com/6751239/1203633 Linux2.6版本内核编译配置选项(二):http ...

  8. Linux内核编译、安装流程

    原文链接:https://blog.csdn.net/qq_28437139/article/details/83692907 此处只讲linux内核编译步骤至于安装虚拟机,安装ubuntu操作系统请 ...

  9. Linux 内核 编译模块

    背景: 由于调试内核或者由于分区大小限制,有时候内核组件不一定完全需要编进内核中. 所以,在开发中经常将内核组件编译成为模块,等到在恰当的时机加载. 概览: Linux内核模块的编译方法有两种: 1. ...

随机推荐

  1. 【网站公告】避免反对百度的限制措施:百度搜索过来的访问会自动禁用js权限

    今天下午百度联系我们,发现通过百度搜索访问我们网站的博文时会出现下面反对百度的画面,让我们今天彻底处理好,保证不再出现这种情况. 我们排查后发现是这位博主申请了js权限,添加了下面的反对百度的脚本: ...

  2. I类HDACs是乳酸化修饰“eraser”

    赖氨酸酰化修饰 (lysine acylation) 是一种广泛存在的.进化上高度保守的蛋白质翻译后修饰 (post-translational modifications, PTMs) 类型,通过表 ...

  3. MapReduce框架原理-MapTask和ReduceTask工作机制

    MapTask工作机制 并行度决定机制 1)问题引出 maptask的并行度决定map阶段的任务处理并发度,进而影响到整个job的处理速度.那么,mapTask并行任务是否越多越好呢? 2)MapTa ...

  4. Linux - curl -w 参数详解

    -w 的作用 完成请求传输后,使 curl 在 stdout 上显示自定义信息 格式是一个字符串,可以包含纯文本和任意数量的变量 输出格式 输出格式中的变量会被 curl 用对应的值替换掉 所有变量的 ...

  5. MySQL学习05(MySQL函数)

    MySQL函数 常用函数 官方文档 : https://dev.mysql.com/doc/refman/5.7/en/func-op-summary-ref.html 数据函数 SELECT ABS ...

  6. Golang语言系列-11-goroutine并发

    goroutine 并发 概念 package main import ( "fmt" "time" ) /* [Go语言中的并发编程 goroutine] [ ...

  7. Android系统编程入门系列之服务Service中的进程间通信

    在上篇文章以线程间的通信方式Handler类结尾,服务Service还支持的进程间通信,又是具体怎么实现的呢?这就要用到加载服务一文中提到的AIDL语言规范了. AIDL是 Android Inter ...

  8. 零基础学Java之Java学习笔记(三):变量和数据类型

    为什么需要变量? 变量是一个程序的基本组成单位. 变量的概念: 变量相当于内存中一个数据存储空间的表示,你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房 间,而通过变量名可以访问到变量(值 ...

  9. sqli-labs lesson 38-45

    从page3也就是less 38开始进入了堆叠注入(stacked injection) stacked injection: 简单来说就是进行SQL注入时注入了多条语句.因为之前我们都是只进行过注入 ...

  10. GET请求与POST请求详解

    一.GET请求 常用于获取服务器数据.常见的发起GET请求的方式有:url.href.src.form. 二.GET请求的格式 例子:index.php?userName=harry&pass ...