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

简介: 1环境搭建所需材料2环境搭建所需材料之间的关系3所使用的开发板4译内核1修改makefile2拷贝配置文件3编译得到zImage4把zImage转成uImage5开发板串口连接6uboot设置7通过tftp服务器下载uImage8启动内核...

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

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

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

目录
相关文章
|
2天前
|
传感器 数据采集 存储
ARM Linux摄像头传感器数据处理全景视野:从板端编码视频到高级应用(一)
ARM Linux摄像头传感器数据处理全景视野:从板端编码视频到高级应用
84 0
|
2天前
|
Linux 调度 Android开发
【系统启动】Kernel怎么跳转到Android:linux与安卓的交界
【系统启动】Kernel怎么跳转到Android:linux与安卓的交界
52 0
|
2天前
|
传感器 Linux 数据处理
ARM Linux摄像头传感器数据处理全景视野:从板端编码视频到高级应用(二)
ARM Linux摄像头传感器数据处理全景视野:从板端编码视频到高级应用
51 1
|
2天前
|
存储 Ubuntu Linux
xenomai3+linux构建linux实时操作系统-基于X86_64和arm
Xenomai是一个实时性解决方案,通过在Linux上添加实时内核Cobalt来增强实时性能。它有三个主要部分:libcobalt(用户空间实时库)、Cobalt(内核空间实时内核)和硬件架构特定层(ipipe-core或dovetail)。ipipe-core适用于Linux 5.4以下版本,而dovetail用于5.4及以上版本。本文介绍了在X86 Ubuntu环境下,如何编译Xenomai内核,搭建应用环境,包括配置、编译、安装和实时性测试。对于其他硬件架构,如ARM和ARM64,步骤类似。文章还提到了Xenomai与Linux内核版本的兼容性和实时性测试结果。
17 0
xenomai3+linux构建linux实时操作系统-基于X86_64和arm
|
2天前
|
存储 Linux Android开发
RK3568 Android/Linux 系统动态更换 U-Boot/Kernel Logo
RK3568 Android/Linux 系统动态更换 U-Boot/Kernel Logo
68 0
|
2天前
|
Linux 编译器 测试技术
嵌入式 Linux 下的 LVGL 移植
嵌入式 Linux 下的 LVGL 移植
|
2天前
|
Linux 计算机视觉
Linux交叉编译opencv并移植ARM端
通过以上步骤,你可以在Linux上交叉编译OpenCV,并将生成的库文件和头文件移植到ARM平台上,从而在ARM上使用OpenCV。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
70 0
|
2天前
|
JSON Ubuntu Linux
LuaJit交叉编译移植到ARM Linux
LuaJit交叉编译移植到ARM Linux
29 1
|
2天前
|
Linux 编译器 网络安全
嵌入式Linux移植dropbear
嵌入式Linux移植dropbear
49 3
|
2天前
|
编解码 Ubuntu 算法
【Linux】NUC977移植使用MQTT(基于mosquitto)
【Linux】NUC977移植使用MQTT(基于mosquitto)