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. [LeetCode] Battleships in a Board 平板上的战船

    Given an 2D board, count how many different battleships are in it. The battleships are represented w ...

  2. C#进阶系列——WebApi 路由机制剖析:你准备好了吗?

    前言:从MVC到WebApi,路由机制一直是伴随着这些技术的一个重要组成部分. 它可以很简单:如果你仅仅只需要会用一些简单的路由,如/Home/Index,那么你只需要配置一个默认路由就能简单搞定: ...

  3. 基本组件的使用——UITabBarController

    和UINavigationController的作用差不多,UITabBarController也可以在多个UIViewController中切换 这个控件的使用相对简单,只需要为该控件的viewCo ...

  4. Java各种数据结构实现

    1.单向链表 实现思路:创建Node类,包括自己的数据和指向下一个:创建Node类,包括头尾节点,实现添加.删除.输出等功能. tips:n = n.next不破坏链表结果,而n.next = n.n ...

  5. jQuery的页面载入

    jQuery 页面载入 $(document).ready(function(){ //程序段 }) 原生javaScript window.onload = function(){ //程序段 } ...

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

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

  7. iOS之UITableView组头组尾视图/标题悬停

    最近笔者在公司的iOS开发中,有一个iOS开发同事跑来问了两个问题:1.给UITableView设置了组头和组尾视图,但是一直显示不出来?2.UITableView的section的header和fo ...

  8. react 表单

    import React ,{PropTypes}from 'react'; import { render } from 'react-dom'; const styles={ mb10:{ mar ...

  9. 认真研究一下Gradients css3(无聊笔记)(原)

    渐变(gradients)分为2种: 线性渐变(Linear Gradients)- 向下/向上/向左/向右/对角方向 径向渐变(Radial Gradients)- 由它们的中心定义 红色框表示可重 ...

  10. Android SDK NDK开发总结

    描述:http://talent.baidu.com/external/baidu/index.html#/jobDetail/2/1237247043 android studio实现Jni(C/C ...