【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 吴兵博客接受赞助费二维码

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

目录
相关文章
|
3月前
|
存储 缓存 编译器
Linux kernel memory barriers 【ChatGPT】
Linux kernel memory barriers 【ChatGPT】
56 11
|
4月前
|
Linux 网络安全 开发工具
内核实验(二):自定义一个迷你Linux ARM系统,基于Kernel v5.15.102, Busybox,Qemu
本文介绍了如何基于Linux Kernel 5.15.102版本和BusyBox创建一个自定义的迷你Linux ARM系统,并使用QEMU进行启动和调试,包括内核和BusyBox的编译配置、根文件系统的制作以及运行QEMU时的命令和参数设置。
324 0
内核实验(二):自定义一个迷你Linux ARM系统,基于Kernel v5.15.102, Busybox,Qemu
|
4月前
|
编解码 安全 Linux
基于arm64架构国产操作系统|Linux下的RTMP|RTSP低延时直播播放器开发探究
这段内容讲述了国产操作系统背景下,大牛直播SDK针对国产操作系统与Linux平台发布的RTMP/RTSP直播播放SDK。此SDK支持arm64架构,基于X协议输出视频,采用PulseAudio和Alsa Lib处理音频,具备实时静音、快照、缓冲时间设定等功能,并支持H.265编码格式。此外,提供了示例代码展示如何实现多实例播放器的创建与管理,包括窗口布局调整、事件监听、视频分辨率变化和实时快照回调等关键功能。这一技术实现有助于提高直播服务的稳定性和响应速度,适应国产操作系统在各行业中的应用需求。
121 3
|
6月前
|
存储 编解码 Ubuntu
【QT】linux下alsa库的移植和QT中音视频的处理&笔记
【QT】linux下alsa库的移植和QT中音视频的处理&笔记
|
6月前
|
网络协议 Linux 编译器
【原创】EtherCAT主站IgH解析(二)-- 如何将Igh移植到Linux/Windows/RTOS等多操作系统移植指南
EtherCAT主站方案对比:商业的如Acontis、TwinCAT3和开源的igh、SOEM。SOEM易移植但功能和实时性不足,适合简单应用;igh功能强大,实时性能优秀,基于内核态,适合复杂场景。igh能移植到其他RTOS,但需克服多任务无调度的挑战。依赖操作系统服务如定时器、内存分配,适合Linux内核,但移植到裸机复杂。
253 0
|
7月前
|
存储 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内核版本的兼容性和实时性测试结果。
497 0
xenomai3+linux构建linux实时操作系统-基于X86_64和arm
|
7月前
|
JSON Ubuntu Linux
LuaJit交叉编译移植到ARM Linux
LuaJit交叉编译移植到ARM Linux
143 1
|
7月前
|
存储 Linux Android开发
RK3568 Android/Linux 系统动态更换 U-Boot/Kernel Logo
RK3568 Android/Linux 系统动态更换 U-Boot/Kernel Logo
904 0
|
7月前
|
Linux 编译器 测试技术
嵌入式 Linux 下的 LVGL 移植
嵌入式 Linux 下的 LVGL 移植
249 0
|
7月前
|
Linux 计算机视觉
Linux交叉编译opencv并移植ARM端
通过以上步骤,你可以在Linux上交叉编译OpenCV,并将生成的库文件和头文件移植到ARM平台上,从而在ARM上使用OpenCV。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
468 0