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] Is Subsequence 是子序列

    Given a string s and a string t, check if s is subsequence of t. You may assume that there is only l ...

  2. [LeetCode] Design Hit Counter 设计点击计数器

    Design a hit counter which counts the number of hits received in the past 5 minutes. Each function a ...

  3. ConcurrentHashMap内存泄漏问题

    问题背景 上周,同事写了一段ConcurrentHashMap的测试代码,说往map里放了32个元素就内存溢出了,我大致看了一下他的代码及运行的jvm参数,觉得很奇怪,于是就自己捣鼓了一下.首先上一段 ...

  4. Mysql基本语句的总结

    1---------------创建一个表------------------------------------ drop table if exists 表名 create   table 表名( ...

  5. 配置generatorConfig.xml自动生成的代码的sql书写问题

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguratio ...

  6. php curl获取的数据不直接输出

    curl获取页面内容,不直接输出到页面 必需设置curl的CURLOPT_RETURNTRANSFER选项为1或true curl_setopt($ch, CURLOPT_RETURNTRANSFER ...

  7. Android基础总结(四)

    网络图片查看器 确定图片的网址 发送http请求 URL url = new URL(address); //获取连接对象,并没有建立连接 HttpURLConnection conn = (Http ...

  8. VirtualBox内ubuntu10.10系统和windows7 共享文件夹

    材料 virtualbox 4.3.0 ubuntu10.10 window 7 sp1 步骤 1.安装好虚拟机和操作系统,(具体步骤网上有很多) 2.安装虚拟机的增强功能包, 安装完成手动系统重新, ...

  9. OC与JavaScript的交互

    stringByEvaluatingJavaScriptFromString的用法,它的功能非常的强大,用起来非常简单,通过它我们可以很方便的操作uiwebview中的页面元素. UIWebView是 ...

  10. Bzoj3041 水叮当的舞步

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 132  Solved: 75 Description 水叮当得到了一块五颜六色的格子形地毯作为生日礼物 ...