【ARM】一步一步移植Linux Kernel 2.6.13到板子

本文详细介绍了如何将Linux Kernel 2.6.13移植到特定的开发板上,包括环境搭建、内核编译、文件系统挂载等关键步骤。解决了64位Ubuntu下使用arm-linux-gcc遇到的问题,并分享了网络配置、NFS服务设置的经验。

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

1环境搭建所需材料

  • Linux 内核代码
  • 编译器
  • 文件系统
  • samba
  • tftp
  • SecureCRT6.0
  • 开发板uboot
  • nfs-kernel-server

2环境搭建所需材料之间的关系

这里写图片描述

3所使用的开发板

这里写图片描述

4译内核

这里写图片描述

4.1修改makefile

这里写图片描述

4.2拷贝配置文件

这里写图片描述

4.3编译得到zImage

这里写图片描述

4.4把zImage转成uImage

这里写图片描述

5开发板串口连接

串口形状 ,在电脑上映射出来的串口设备连接串口
这里写图片描述
这里写图片描述
这里写图片描述
到0回车。。。

6uboot设置

这里写图片描述
这里写图片描述

7通过tftp服务器下载uImage

这里写图片描述
这里写图片描述

8启动内核

这里写图片描述
这时启动内核后还不会进入文件系统

9先看挂载文件系统的样子

先看现象:挂载成功,启动板子,再tftp下载
这里写图片描述

10下面正式来操作

10.1安装nfs-kernel-server

这里写图片描述

10.2配置网络文件系统

这里写图片描述
重启远程文件系统
/etc/init.d/nfs-kernel-server restart

10.3配置内核里面的nfs选项

make menuconfig
这里写图片描述

11配置开发板的启动参数

这里写图片描述
这里写图片描述

12操作板子的Linux

下来可以通过SecureCRT操作板子的Linux系统了。我们可以在Ubuntu先用arm-linux-gcc 编译一个hello.c,然后把可执行文件复制到板子的远程文件系统,最后在SecureCRT里运行hello。

13注意(总结)

  • 64位Ubuntu 编译linux源码arm-linux-gcc问题

好像要下载个软件
吴兵(1040003585) 2017-5-16 14:36:59
make出问题
韩滔(1198637117) 2017-5-16 14:37:50
你用的vm和Ubuntu什么版本
**吴兵(1040003585) 2017-5-16 14:39:19
ubuntu 64位
程老师(1209050967) 2017-5-16 14:43:25
但arm编译器是32位**
韩滔(1198637117) 2017-5-16 14:45:08
sudo apt-get install lsb-core

吴兵(1040003585) 2017-5-16 14:57:27

吴兵(1040003585) 2017-5-16 16:32:38
板子网线是连接和电脑同一个网段的路由器
吴兵(1040003585) 2017-5-16 17:00:03
tftp
吴兵(1040003585) 2017-5-16 17:01:58
搞定

  • bootm之后就卡在这里——两个782改为1999

这里写图片描述

参考文档,把782改成1999即可@吴兵
吴兵(1040003585) 2017-5-16 17:43:40
ok
吴兵(1040003585) 2017-5-16 17:52:45
@张奥华 两个782都要改吗?
这是什么道理
张奥华(434638973) 2017-5-16 17:52:57
是的
改成1999
mach type不匹配
程老师(1209050967) 2017-5-16 17:53:39
uboot引导的内核需要与其机器类型一致
这里写图片描述
这里写图片描述
这里写图片描述

  • 设置bootargs (文件系统路径)

setenv bootargs noinitrd root=/dev/nfs rw nfsroot= 172.16.245.93:/home/wuchengbing/linux/root_nfs ip= 172.16.245.254:172.16.245.93: 172.16.245.1:255.255.255.0 console=ttySAC0,115200 init=/linuxrc mem=64M

文件系统IP:172.16.245.93
板子IP:172.16.245.254
网关:172.16.245.1
掩码:255.255.255.0

  • bootm能不能成功挂载文件系统

@张奥华 搞定,重启远程文件系统
/etc/init.d/nfs-kernel-server restart
吴兵(1040003585) 2017-5-16 18:59:05

附录

工具下载链接:
https://github.com/1040003585/Mini2440/tree/master/Tools

Wu_Being 博客声明:本人博客欢迎转载,请标明博客原文和原链接!谢谢!
《【ARM】一步一步移植Linux Kernel 2.6.13到板子》
http://blog.youkuaiyun.com/u014134180/article/details/72873397

Wu_Being 吴兵博客接受赞助费二维码

如果你看完这篇博文,觉得对你有帮助,并且愿意付赞助费,那么我会更有动力写下去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值