Linux kernel 编译方法大全记录

一、这是一个我自己写的自动make脚本:

#!/bin/sh

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
export CHEN_DTB="chenfl.dtb" if [ 1 -eq $# ]; then
if [ $1 = "dtb" ]; then
make -j2 $CHEN_DTB O=out
cp ~/am335x/kernel4.4.12/out/arch/arm/boot/dts/am335x-chenfl.dtb $CHEN_PATH -rf
# cp ~/am335x/kernel4.4.12/out/arch/arm/boot/dts/am335x-sbc7109.dtb $CHEN_PATH -rf
sync
echo "Copy dts over ...\n"
elif [ $1 = "defconfig" ]; then
make -j2 aplex_sbc7109_defconfig O=out
echo "Use aplex_sbc7109_defconfig over ...\n"
elif [ $1 = "menuconfig" ]; then
make -j2 $1 O=out
elif [ $1 = "zImage" ]; then
make -j2 $1 O=out
cp ~/am335x/kernel4.4.12/out/arch/arm/boot/zImage $CHEN_PATH -rf
sync
echo "Copy kernel zImage to myself file over ... \n"
elif [ $1 = "all" ]; then
make -j2 $1 O=out
cp ~/am335x/kernel4.4.12/out/arch/arm/boot/zImage $CHEN_PATH -rf
cp ~/am335x/kernel4.4.12/out/arch/arm/boot/dts/am335x-sbc7109.dtb $CHEN_PATH -rf
sync
echo "Copy kernel image and dts over ... \n"
elif [ $1 = "savedefconfig" ]; then
make $1 O=out
echo "Save .config to defconfig over ... \n"
elif [ $1 = "clean" ]; then
make $1 O=out
echo "Clean out over ...\n"
elif [ $1 = "distclean" ]; then
make $1 O=out
echo "Distclean over ...\n"
elif [ $1 = "help" ]; then
make $1
else
echo " "
echo "You can following command to do the thing you want to do..."
echo "./remake dtb -- Only cross-complie your device tree table"
echo "./remake defconfig -- Only configure your defconfig"
echo "./remake menuconfig -- Only configure your configuration"
echo "./remake zImage -- Only cross-complie your Linux kernel zImage "
echo "./remake all -- Cross-complie kernel and dts"
echo "./remake savedefconfig -- Save your .config as defconfig "
echo "./remake clean -- Clean your output file"
echo "./remake distclean -- Deep clean your output file"
echo "./remake help -- Check help infomation "
fi
else
echo " "
echo "You can following command to do the thing you want to do..."
echo "./remake dtb -- Only cross-complie your device tree table"
echo "./remake defconfig -- Only configure your defconfig"
echo "./remake menuconfig -- Only configure your configuration"
echo "./remake zImage -- Only cross-complie your Linux kernel zImage "
echo "./remake all -- Cross-complie kernel and dts"
echo "./remake savedefconfig -- Save your .config as defconfig "
echo "./remake clean -- Clean your output file"
echo "./remake distclean -- Deep clean your output file"
echo "./remake help -- Check help infomation "
fi

二、当你指定ARCH=arm 之后,如下命令运行,则会出现arm相关kernel的help信息。

make ARCH=arm help
这里面完全介绍了有关arm kernel make的帮助信息。

三、挑几个重点的讲解一下。

编译的时候,首先, 指定芯片的架构以及交叉编译器前缀。
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf- make clean
除了保存config文件以及构建外围模块必要的文件其他的全部清除。
make mrproper
清理全部生成的文件+config文件+不同的备份文件
make distclean
clean + mrproper , 彻底的清理 执行完上面的步骤之后。
选择一个自己的产品参考的defconfig
文件在arch/arm/configs/ 里面,这里面全部都是你可以选择的defconfig
例如:
make omap2plus_defconfig O=out
O 的指定是指output file 的意思,此时会在out文件夹下生成.config 文件。 当然,你应该还有一些想要添加的,我这里直接使用menuconfig进行配置
make menuconfig O=out 配置好了,你想要保存.config文件为自己的配置的一个备份。
make savedefconfig O=out
这时在out文件夹下就会有一个defconfig文件 当所有的都配置好了,现在,你想编译自己的设备树chenfl.dts
make -j2 chenfl.dtb O=out 你想编译自己的镜像zImage
make -j2 zImage O=out 你想编译自己的模块
make -j2 modules O=out 你想编译所有的东西
make -j2 all O=out 好了,所有常用的make功能介绍完毕。
zImage 在out/arch/arm/boot/zImage
chenfl.dtb 在out/arch/arm/boot/dts/chenfl.dtb
defconfig 你可以复制到arm/arch/configs/ 里面,后缀必须是defconfig

不正望指出谢谢。

Linux kernel make 常用选项介绍的更多相关文章

  1. 深入linux kernel内核配置选项

    ============================================================================== 深入linux kernel内核配置选项 ...

  2. Linux文件操作常用选项

    常用选项 选项 功能 -a 查看隐藏文件 -l 列表方式查看 -h 人性化显示 * 通配符,忽略多个字符匹配 ? 通配符,忽略一个字符匹配 [Num1-Num2] 通配符,查看从Num1到Num2的匹 ...

  3. linux之shell常用命令介绍

    一.cd    切换目录 cd /etc  切换到/etc目录下              cd ~       切换到主目录下 cd  ..      返回上级目录                  ...

  4. Linux 终端 Bash 常用快捷键介绍及经验

    1. 最重要的自动补全 命令 解释 Tab 自动补全 不用多说,自动补全可以节省大量时间 2. 编辑跳转 命令 解释 Ctrl + A 跳转到当前行首 Ctrl + E 跳转到当前行末 Alt + F ...

  5. linux 时钟源初步分析linux kernel 时钟框架详细介绍

    初步概念: 看datasheet的关于时钟与定时器的部分, FCLK供给cpu, HCLK供给AHB总线设备(存储器控制器,中断控制器.LCD控制器.DMA.USB主机控制器等), PCLK供给APB ...

  6. Linux Kernel C语言编程范式

    介绍 不同的编程语言具有不同的抽象原语(如下),有的原语抽象层次低,有的原语抽象层次高.其中函数式.DSL是这几年十分热门的编程语言概念. 过程式抽象原语:变量 对象式抽象原语:对象 函数式抽象原语: ...

  7. Linux centos7 rsync工具介绍、rsync常用选项、rsync通过ssh同步

    一.rsync工具介绍 rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync.rsync是Linux系统下的文件同步和数据传输工具,它采用“rsync ...

  8. Linux运维常用的几个命令介绍【转】

    Linux运维常用的几个命令介绍 1. 查看系统内核版本​ [root@funsion geekxa]# cat /etc/issue CentOS release 6.5 (Final) Kerne ...

  9. Linux kernel启动选项(参数)(转)

    Linux kernel启动选项(参数)  转载链接https://www.cnblogs.com/linuxbo/p/4286227.html 在Linux中,给kernel传递参数以控制其行为总共 ...

随机推荐

  1. mac机上搭建php56/nginx 1.8.x/thinkphp 3.2.x/gearman扩展/seaslog扩展/redis扩展环境

    php的各种扩展配置起来实在不容易,记录一下备忘: 一.php56 安装 虽然php7出来了,但是没用过,不知道有没有坑,这里仍然使用php5.6版本 1.1 安装php/php-pfm brew u ...

  2. [LeetCode] Concatenated Words 连接的单词

    Given a list of words (without duplicates), please write a program that returns all concatenated wor ...

  3. [LeetCode] H-Index 求H指数

    Given an array of citations (each citation is a non-negative integer) of a researcher, write a funct ...

  4. 理解OAuth 2.0

    转自:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛 ...

  5. Java Win自动环境配置脚本

    @echo off :: TODO:设置java环境变量 :: Author: Sunky color 02 set "NewPath=%cd%" set "JavaHo ...

  6. Ajax跨域实现

    Ajax Ajax,Asynchronus JavaScript and XML,字母意思:异步的 JavaScript 和 XML,是指一种创建交互式网页应用的网页开发技术.用于异步地去获取XML作 ...

  7. 对于多个数据库表对应一个Model问题的思考

    最近做项目遇到一个场景,就是客户要求为其下属的每一个分支机构建一个表存储相关数据,而这些表的结构都是一样的,只是分属于不同的机构.这个问题抽象一下就是多个数据库表对应一个Model(或者叫实体类).有 ...

  8. 五.Jenkins安装plugin

    http://blog.csdn.net/jmyue/article/details/9376237

  9. 全局变量都是window对象的属性

    var x = "haha"; var test  = function(){ alert(this.x); } 上述,则会弹出 haha的值. 因为在JavaScript的变量作 ...

  10. BZOJ 2039: [2009国家集训队]employ人员雇佣

    2039: [2009国家集训队]employ人员雇佣 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 1369  Solved: 667[Submit ...