【CubieBoard6试用体验】编译Linux内核

不知道怎么说,CB6的资源真是少之又少。比如说吧,http://docs.cubieboard.org/tutorials/cb6/start CB6的安卓源码尽然不提供。 那也只能折腾 Debian x64了。。。 得到debian的源代码并不是很复杂,介绍一个最简单的途径...
sudo apt-get install linux-source
也可以在linus分支上获取...用 git比较方便 https://www.kernel.org/ 编译内核与编译其他软件没有多少不同,只是编译内核的设置选项比较复杂多样。 2.6.x版本的内核多达13 500个设置选项。现在目前版本4.11.x就更多了、、 现在比较方便的是 make可以直接自动处理依赖关系..选项可以通过kconfig完成.... kconfig 的源码就是内核代码中 script/kconfig 目录下各个编译选项的选择有3种方式:
  1. =y :: 直接编译到内核中
  2. =m :: 以模块方式编译到内核中
  3. 不设置 :: 不编译
编译方法:
  1. make menuconfig :: 源码根目录下生成 .config (没有会自动生成), .config中就是各个内核编译选项的选择状况.
  2. make defconfig :: 根据当前系统的架构默认 .config 生成内核源码目录下的 .config (每个架构的配置文件: ex. arch/x86/configs/x86_64_defconfig)
  3. make oldconfig :: 将已有的 .config 放到源码根目录下后执行, 目的是为了复用之前的内核编译选项的配置.
  4. make xconfig :: 图形化配置, 需要qt3, 个人觉得没有必要, 有 make menuconfig 就足够了.
  5. make localmodconfig :: 生成以正在使用的内核模块为对象的 .config
方法选择不同编译速度也不同。。。那怎么查看.ko生成呢...
cd /lib/modules/3.2.60

find . -name '*.ko' | wc -l
如果编译CB6的image中的一段内核代码:
make -C ${CB_KSRC_DIR} O=${CB_KBUILD_DIR} ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- kernel_defconfig

make -C ${CB_KSRC_DIR} O=${CB_KBUILD_DIR} ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4 INSTALL_MOD_PATH=${CB_TARGET_DIR} uImage modules
上述 第一行 是编译内核源码. 第二行 是创建 uImage 格式的内核映像以及创建内核模块 最终在 INSTALL_MOD_PATH 生成的内核模块可以直接拷贝到 arm机器上使用. 生成内核包:
make deb-pkg

安装内核: make modules_install (安装内核模块到 /lib/modules 下) make install (安装内核二进制映像, 生成并安装boot初始化文件系统映像文件) 删除内核:
  1. 删除/lib/modules/目录下不需要的内核库文件
  2. 删除/usr/src/kernel/目录下不需要的内核源码
  3. 删除/boot目录下启动的核心档案禾内核映像
  4. 更改grub的配置,删除不需要的内核启动列表
具体其他怎么做,就等官方发文档把......
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:0
x
收藏成功!点击 我的收藏 查看收藏的全部帖子