内核与根文件系统的制作——小白学ARM(十)

本文档介绍了在嵌入式平台上构建Linux内核和根文件系统的步骤。首先,清理并配置内核,通过修复编译错误并安装`u-boot-tools`来完成内核编译。然而,尝试制作根文件系统时遇到问题,因此选择使用已有的文件系统。文章详细记录了使用busybox构建根文件系统的流程,包括创建必要的设备节点、配置文件夹、拷贝库文件以及设置NFS启动的相关操作。
摘要由CSDN通过智能技术生成

嵌入式平台下的内核制作

  1. 清除原有配置、中间文件
make distclean
  1. 图形化配置内核

    先找到教程提供的config-file文件,复制到内核目录下,改名为.config
    运行:

make menuconfig ARCH=arm

在图形化配置界面上找到Initramfs_source选项:将Initramfs_source前的文件目录删除,以防出现错误。

  1. 编译内核
make uImage ARCH=arm CROSS_COMPILE=arm-linux-

可能出现的错误:

Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373.

删掉了kernel/timeconst.pl 文件中 373行的 if (!defined(@val)) { 改为 if (!@val) { 后,编译成功。

“mkimage” command not found – U-Boot images will not be built

原因:未安装uboot里带的mkimage,
只需要输入:sudo apt-get install u-boot-tools,安装即可

根文件系统制作(制作失败,挪用现成的文件系统)

流程都是按教程来的,最后做出来的文件系统怎么都挂在不上,内核启动时一直会卡在一个地方,没办法,只能先把教程里做好的文件系统拷贝过来先用着,下面是我的制作流程,大家不要看,这里只是记录一下,方便日后找错

  • 使用busybox(其中,arm-linux-gnueabihf-一众编译器位于/usr/bin目录下)

  • 官网下载版本:1.29.3.tar.bz2,解压至linux下目录,进入解压目录

     执行:make menuconfig,进入图形化配置界面
     settings --->
     	--- Build Options
     		[*] Build static binary(no share libs),勾选
     
     		() Cross compiler prefix,选中,写入:arm-linux-gnueabihf-,若只写arm-linux-会报错
     		
     	--- Installation Options
     		(./_install)Destination path for 'make install',保持默认路径
    

退出,保存上述配置。
执行:make
创建文件夹:/home/linux

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值