linux内核编译详细步骤

我是在移植机器人操作系统ROS的时候,最后一步编译的出错,是因为物理内存不足,想采用swap交换内存,分配虚拟内存来解决问题.可是显示错误说该内核不支持swap,不得已只能自己重新编译内核,在内核配置单上选上swap的支持.

1 安装交叉编译器

安装教程见 Ubuntu15.10下安装arm交叉编译器并搭建编译环境以及hello.c的实现

2 编译U-Boot

下载 U-Boot 源代码并编译,注意分支是 nanopi2-lollipop-mr1:

git clone https://github.com/friendlyarm/uboot_nanopi2.git
cd uboot_nanopi2
git checkout nanopi2-lollipop-mr1
make s5p4418_nanopi2_config
make CROSS_COMPILE=arm-linux-

编译成功结束后您将获得 u-boot.bin,

3、准备 mkimage

编译内核需要用到 U-Boot 中的工具 mkimage,因此,在编译内核 uImage 前,您需要保证您的主机环境可以成功运行它。
你可以直接使用命令 sudo apt-get install u-boot-tools 来安装,也可以自己编译并安装:

cd uboot_nanopi2
make CROSS_COMPILE=arm-linux- tools
sudo mkdir -p /usr/local/sbin && sudocp -v tools/mkimage /usr/local/sbin

4、编译 Linux kernel

1 ) 下载Kernel源码

git clone https://github.com/friendlyarm/linux-3.4.y.git
cd linux-3.4.y
git checkout nanopi2-lollipop-mr1

第一步获取的时候超慢,还以为是网速问题,再试一次就好了.
NanoPi2内核所属的分支是nanopi2-lollipop-mr1,在开始编译前先切换分支。

出现已经位于 'nanopi2-lollipop-mr1'
您的分支与上游分支 'origin/nanopi2-lollipop-mr1' 一致。
正常.

2)编译 Debian 内核

原内核默认支持 HDMI 输出,如果要编译支持 LCD 显示的内核,则需要修改内核配置,由于
若没有显示屏,在此不做处理:

touch .scmversion

make nanopi2_linux_defconfig // 选定内核配置,这里选择Linux
make menuconfig //编辑内核配置

此时出现了配置的图形界面。然后选择所需功能,我主要选择的是
General setup —> 常规安装选项
[*]Support for paging of anonymous memory (swap)
这个选项将使你的内核支持虚拟内存,也就是让你的计算机好象拥有比实际内存更多 多的内存空间用来执行很大的程序。默认是选择的。
另外,
Device Drivers –>
Graphics support –>
Nexell Graphics –>
LCD
[ ] HDMI
“`
再执行make uImage

编译成功结束后,
新生成的内核烧写文件为 arch/arm/boot/uImage 替换掉 SD 卡 boot 分区下的 uImage.hdmi。如果用的不是LCD则替换uImage
即执行更新内核:

sudo scp arch/arm/boot/uImage /media/daniel/boot1

到此重新编译的内核就可以支持swap功能了

补充说明说一下配置:

对每一个配置选项,用户有三种选择,它们分别代表的含义如下:

<>或[]——将该功能编译进内核

[]——不将该功能编译进内核

[M]——将该功能编译成可以在需要时动态插入到内核中的代码

出现错误 :

* Error during update of the kernel configuration.
make[2]: * [silentoldconfig] 错误 1
make[1]: * [silentoldconfig] 错误 2
CHK include/linux/version.hmake[1]: “include/asm-arm/mach-types.h”是最新的。
make: * 没有规则可以创建“include/config/kernel.release”需要的目标“include/config/auto.conf”。 停止

因为之前在root下选择功能的,现在又是普通用户下编译.所以建议不要用root了吧.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

穿着帆布鞋也能走猫步

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值