嵌入式linux学习第三天.

本文详细记录了作者编译与配置基于arm的Linux内核的过程,包括遇到的问题及解决方法,如错误提示的处理、配置文件的使用等。通过实际操作,作者最终成功编译出内核,并分享了编译过程中的经验和教训。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天没学到什么,因为自己偷懒,看LOL 的比赛. 花掉了大部分的时间.太惭愧了。

今天学到的东西。今天主要是把U-boot的部分再做了一遍。简单的学习了一些u-boot的命令。但是也没记住太多。诸如mm,md之类的命令,没有记住多少。这个个人感觉也不需要记住多少。用的时候查呗,谷歌百度干什么用的?

今天试着去编译了一个基于arm的linux内核,由于之前曾经编译过PC机的内核,所以这部分也没有太大的障碍。这里讲一下遇到的问题以及解决方法。

我用到的内核是linux2.6.38的版本。这里记录一下步骤。


1.清除原有配置以及中间文件。

X86下:make distclean

arm下:make distclean


2.配置内核。

X86下:make menuconfig

arm下:make menuconfig ARCH=arm


这里我出现了错误,错误提示是

Install ncurses(ncurses-devel) and try again.

主要原因是,ncurses是字符终端下屏幕控制的基本库。可能很多新开发的程序已经不再使用。假如要编译一些老的程序,还是会经常碰到。解决这个问题可以通过下面的解决方法来搞定。打开一个终端输入下面这条语句按回车进行安装即可。

sudo apt-get install libncurses5-dev 。这里解决完之后,继续刚才的配置,发现成功打开配置窗口。由于自己是第一次编译arm的 内核,配置也不清楚,文件系统,CPU处理之类的选择, 也不清晰,所以我直接用了别人写好的配置文件。每一个linux内核发行,其实都提供有一个配置文件。这里用到的是友善提供的arm内核配置。打开终端,进入linux内核目录,输入如下命令   cp config_linux_mini6410  ./.config 。  这样 ,在make menuconfig 的时候,就已经全部自动配置好了。



3.编译内核。

x86下:make bzImage

arm下:make uImage ARCH=arm CORSS_COMPILE=arm-linux-.

这条命令的意思,uImage,u的意思,是指u-boot的, 也就是arm的u-boot,这样指定,可以让u-boot 找到这个内核,之后才进行相关操作。这步比较麻烦,也比较耗时,编译就花了20多分钟。这里我自己又出现了一个错误。说是找不到mkimage 这个工具,之前有点傻逼了,直接复制了一个mkimage到任意目录下面,结果以为设置环境变量,什么事就结束了,结果折腾了一会,又编译了一次,还是失败了。最后一次,痛改前非,不自己去复制那个mkimage,也不自己去设置环境变量了,直接打开终端,输入如下命令:

sudo apt-get install mkimage ,安装这个工具,然后系统去帮我们配置。这次编译成功了。linux-2.6.38/arch/arm/boot 这里面的uImage就是编译完成的内核。



好吧,今天就做这件事。。惭愧啊。情人节就要到了,过一个快乐的情人节,预祝大家情人节快乐!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值