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

时间:2022-10-28 15:46:53

1环境搭建所需材料

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

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

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

3所使用的开发板

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

4译内核

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

4.1修改makefile

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

4.2拷贝配置文件

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

4.3编译得到zImage

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

4.4把zImage转成uImage

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

5开发板串口连接

串口形状 ,在电脑上映射出来的串口设备连接串口
【ARM】一步一步移植Linux Kernel 2.6.13到板子
【ARM】一步一步移植Linux Kernel 2.6.13到板子
【ARM】一步一步移植Linux Kernel 2.6.13到板子
到0回车。。。

6uboot设置

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

7通过tftp服务器下载uImage

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

8启动内核

【ARM】一步一步移植Linux Kernel 2.6.13到板子
这时启动内核后还不会进入文件系统

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

先看现象:挂载成功,启动板子,再tftp下载
【ARM】一步一步移植Linux Kernel 2.6.13到板子

10下面正式来操作

10.1安装nfs-kernel-server

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

10.2配置网络文件系统

【ARM】一步一步移植Linux Kernel 2.6.13到板子
重启远程文件系统
/etc/init.d/nfs-kernel-server restart

10.3配置内核里面的nfs选项

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

11配置开发板的启动参数

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

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

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

参考文档,把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引导的内核需要与其机器类型一致
【ARM】一步一步移植Linux Kernel 2.6.13到板子
【ARM】一步一步移植Linux Kernel 2.6.13到板子
【ARM】一步一步移植Linux Kernel 2.6.13到板子

  • 设置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.csdn.net/u014134180/article/details/72873397

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

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