ARM开发教程之ARM Linux系统移植步骤
- 格式:pptx
- 大小:189.10 KB
- 文档页数:11
2020年第8期信息与电脑China Computer & Communication软件开发与应用基于嵌入式ARM9的Linux 系统移植的研究和实现冯宁波 周 剑(苏州长风航空电子有限公司,江苏 苏州 215151)摘 要:笔者以ARM9处理器为硬件,对嵌入式系统展开分析,并对安装到嵌入式ARM9芯片开发板上的Linux 系统移植进行研究。
Linux 系统移植步骤如下:首先初始化随机存取存储器,设置堆栈,引导加载程序移植;然后下载Linux 内核,修改Makefile 文件,设计交叉编译环境;最后依据内核启动过程,指定启动初始值,控制后台,并执行制作菜单配置命令。
关键词:嵌入式ARM9;Linux 系统;移植;内核中图分类号:TP311.54;TP316.81 文献标识码:A 文章编号:1003-9767(2020)08-078-02Research and Implementation of Linux System Migration Based on EmbeddedARM9Feng Ningbo, Zhou Jian(Suzhou Changfeng Avionics Co., Ltd., Suzhou Jiangsu 215151, China)Abstract: The author takes ARM9 processor as hardware, analyzes the embedded system, and studies the Linux systemporting installed on the embedded ARM9 chip development board. The steps of Linux system porting are as follows: first, initialize random access memory, set stack, boot loader porting; then download Linux kernel, modify makefile file, and design cross compiling environment; finally, according to the kernel startup process, specify the initial startup value, control the background, and execute thecommand of making menu configuration.Key words: embedded ARM9; Linux system; transplantation; kernel0 引言微电子技术快速发展使计算机技术支持下的嵌入式系统得到广泛应用,该系统因软硬件可裁剪、使用性能良好,受到人们青睐[1]。
基于ARM平台的Linux内核移植中图分类号:tp 文献标识码:a 文章编号:1007-0745(2011)10-0204-01摘要:linux是一个可移植性非常好的操作系统,它广泛支持了许多不同体系结构的计算机。
可移植性是指代码从一种体系结构移植到另外一种不同的体系结构上的方便程度。
本文介绍了基于arm 开发板的linux内核移植过程,主要包括二方面的内容:交叉编译器的安装、内核的配置与移植。
本文要求读者具备一定的linux操作系统使用经验。
关键词:移植内核 linux一、概述一个嵌入式linux系统的启动顺序可以分为四步:1、引导加载程序(bootloader)。
2、加载linux内核。
3、挂载根文件系统。
4、运行应用程序。
所以要想使linux内核在开发板上运行,就必须对以上四步的相关源代码进行移植操作,使其可运行于嵌入式平台。
本文主要介绍内核移植部分,其余部分可参考相应书箱或文档。
二、开发环境的建立2.1、安装虚拟机、fedora13操作系统及相关的开发工具(gcc、gedit等),本文的所有操作均是在这种开发环境下进行,本文的工作目录为 \work,且都是在root权限下操作。
2.2、交叉编译器(arm-linux-gcc)的安装。
交叉编译器是嵌入式linux开发的基础,后续的移植过程都要用到此编译器,在linux pc平台下,利用arm-linux-gcc编译器可编译出针对arm linux平台的可执行代码。
安装过程如下:a、网上获取arm-linux-gcc-4.3.2.tgz源代码包并保存于/work 目录中。
b、解压命令(tar xvzf arm-linux-gcc-4.3.2.tgz -c /)注意上面的命令必须是大写c且后面有个空格,这样将源代码解压至目录/usr/local/arm/4.3.2中。
c、配置编译环境路径。
输入命令(gedit /root/.bashrc)打开.bashrc文件,在最后一行加入如下内容:exportpath=/usr/local/arm/4.3.2/bin:$path保存关闭文件,用root重新登录系统,输入命令:(arm-linux-gcc –v)如果安装成功将会显示arm-linux-gcc的版本号。
linux系统迁移流程
1. 收集系统信息
在迁移系统之前,首先要收集系统信息。
包括:
(1)硬件清单和设置,如处理器、存储介质、网络,硬件间的互连接细节,如接口卡以及相应的号码;
(2)系统软件,包括操作系统、基础软件,如语言运行时环境、软件编译器及其他基础设施;
(3)应用软件的详细信息,包括应用软件版本号、功能、安装方式以及与其他应用软件的交互细节;
(4)系统的当前状态,包括系统上的数据、目前的登录用户状态等。
2. 迁移方案开发
具体的迁移方案开发,可以采用系统流程文档的方式,或是绘制流程图的方式,都可以,通常如果迁移系统较复杂,则可以采用流程文档的方式,而在系统迁移的过程中,建议收集系统中的相关信息。
3. 确定迁移期程
确定系统的实际迁移期程。
考虑到系统安装、运行及应用软件的部署时间,需要把握好每个步骤的时间顺序,加以安排。
在确定迁移期程时,要注意系统稳定性,故障开发时间以及整体工期质量。
4. 准备移植软件
在确定迁移期程以后,再根据迁移期程以及系统收集的信息,准备移植软件。
准备移植软件时,要考虑两点:一是要选择正确的操作系统和应用软件;二是对于操作系统的软件语言的的移植,要确保系统的功能没有受影响。
5. 测试系统
完成系统移植后,就要进行系统测试,测试的内容有:操作系统的安装,检查系统性能以及软件数据与原系统及恢复数据的正确性。
6. 文档处理
最后,在系统迁移流程完成以后,要编写系统的相关安装文档,记录迁移过程中可能的偏差,并且要收集相应的历史记录,以便进行完善。
arm-linuxusbwifi模块的添加与AP的建立一、内核的配置在内核源码的根目录下执行以下命令打开内核配置菜单:$ make ARCH=arm menuconfig根据下面的菜单进行配置:内核配置完成后,重新编译内核,并将编译出来的内核镜像下载到开发板。
如果仅仅是编译驱动,可以不用将系统烧进板子。
二、驱动源码的编译(1)驱动内容的更改:如果不更改驱动代码,在编译时会遇见缺少create_proc_entry,和create_proc_read_entry 这两个函数的问题(原因在于官方的源码适用于内核小于3.9的linux系统,而本系统上使用的系统内核为3.12.10)。
下载文https:///raspberrypi/linux/rpi-.10.y/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c并替换原文件中的os_intfs.c文件。
参考:/group/topic/347735/和/entry/125504在驱动源文件下的Makefile中添加一行:CONFIG_PLATFORM_ARM_AM437X = y并设置:CONFIG_PLATFORM_I386_PC =n同时添加:ifeq ($(CONFIG_PLATFORM_ARM_AM437X), y)EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIANARCH := armCROSS_COMPILE := arm-linux-gnueabihf- #这是你的交叉编译器KVER := 3.12.10 #系统的版本KSRC := /home/hjiahu/Desktop/CrossFiles/linux-3.12.10 #这是第一步编译后的源码文件夹endif(2)为了使用硬件同时支持AP与STA模式,在源码中的include/autoconf.h中将CONFIG_CONCURRENT_MODE的注释去掉(其他方法可以参考源码中的文档)。
描述Linux内核的移植过程
Linux内核的移植过程可以分为以下几个步骤:
1. 确定目标平台:首先需要确定要将Linux内核移植到哪个目标平台上,这个平台可以是嵌入式设备、服务器、桌面电脑等。
2. 获取源代码:从Linux官网或其他开源代码库获取Linux内核的源代码。
3. 配置内核:根据目标平台的硬件特性和需求,对内核进行配置。
可以使用make menuconfig、make xconfig或make config等命令进行配置。
4. 编译内核:使用交叉编译工具链对内核进行编译。
交叉编译工具链是一组针对特定平台的编译器、链接器、调试器等工具,可以在开发主机上编译生成目标平台上的可执行文件。
5. 生成镜像文件:将编译生成的内核、设备树、启动程序等文件打包成一个镜像文件。
镜像文件的格式可以是uImage、zImage、vmlinux等。
6. 烧录镜像文件:将生成的镜像文件烧录到目标平台的存储设备上,例如闪存、SD卡、硬盘等。
可以使用dd、fastboot、flash等命令进行烧录。
7. 启动内核:将目标平台连接到开发主机,通过串口或网络连接进行调试和启动。
可以使用bootloader或者直接从存储设备启动内核。
8. 调试内核:在目标平台上运行内核时,可能会遇到各种问题,例如驱动不兼容、内存泄漏、死锁等。
需要使用调试工具对内核进行调试,例如gdb、kgdb、strace等。
以上就是Linux内核的移植过程,需要根据具体的目标平台和需求进行调整和优化。