基于2.6.19内核的小型Linux系统制作与移植的结合
来源:元器件交易网 作者:—— 时间:2012-04-28 09:35
内核
·修改内核
首先,修改内核源码linux-2.6.19下的Makefile文件,指定目标代码类型与编译器:SUBARCH :=arm;CROSS_COMPILE:=/usr/local/arm/3.4.1/bin/arm-linux-。
然后,在linux-2.6.19/arch/arm/mach-s3c2410/common-smdk.c中根据表1修改内核中的Flash分区信息。这里提醒读者,2.6.16(含)以前内核的源码中没有Flash分区信息,所以需要增加新的分区信息;而在2.6.17(含)以后内核的源码中已含 Flash分区信息,需要的只是修改分区信息。
内核Flash分区信息必须与vivi的Flash分区信息相一致。因为,vivi的 Flash分区中的地址是内核及文件系统下载到Nand flash的真正地址;而内核在启动时读的却是内核Flash分区设定的地址;所以,若两者不同,则很可能导致不能正常启动内核或读取文件系统。
最后,修改linux-2.6.19/drivers/mtd/nand/s3c2410.c,禁止Nand flash差错检测:
chip->eccmode = NAND_ECC_NONE;。
·内核的配置编译
在配置菜单中导入内核对smdk2410的默认配置,再在此基础上选择所需的功能。如Nand Flash及MTD设备的支持,Cramfs文件系统的支持等。
配置完毕,在终端输入编译命令“make”进行编译。若内核源码编译成功,将在linux-2.6.19/arch/arm/boot/下生成内核映像文件zImage。
最后,在vivi命令提示模式下使用下载命令,将内核映像zImage加载到开发板Flash中的适当地址。
根文件系统
Linux系统中的文件和设备是通过文件系统来组织的。文件系统的存在使得数据和设备可以被有效而透明地存取访问。一个linux的最简根文件系统应该包括支持linux系统正常运行的基本内容,包括系统使用的软件和库,以及所有用来为用户提供基本支持的架构和指令。
在根文件目录rootfs下建立bin、dev、etc、lib、proc、sbin、root、tmp等一系列必备的目录,把所需的配置文件、动态函数库放到相应的目录。采用BusyBox是缩小根文件系统的好办法。BusyBox以很小的体积集成了最常用的linux命令和应用程序,大大简化了制作 linux根文件系统的过程。
有一点必须指出的是,在2.6.12(含)之前的内核通常是用devfs来管理位于/dev下的所有块设备和字符设备;但在2.6.13(含)之后的内核已不支持devfs,而转用udev来管理/dev下的设备,详见[5]。所以,针对2.6.19内核,要使系统启动后进入BusyBox控制台,还需在/rootfs/dev下添加控制台设备文件:“[root@localhost dev]# mknod -m 600 console c 5 1”。
目前,linux已经能够支持几十种文件系统格式,如常用的Cramfs、Jfss2、Yaffs等。Cramfs 是一种只读的闪存文件系统,可以保护系统的基本设置不被更改。根文件系统就使用Cramfs格式。
使用Cramfs制作工具mkcramfs把根文件目录制作成映像文件:rootfs.cramfs。
- •ADI宣布Sensinel by Analog Devices心肺管理(CPM)系统获得美国FDA 510(k)认证并正式上市2024-03-07
- •人工智能安全关键型系统中的验证和确认2024-02-29
- •Omdia:预计 L3 及以上自动驾驶系统平均配备 5-8 个毫米波雷达2023-02-23
- •研究显示近半数美国司机将高级辅助驾驶系统当自动驾驶用2022-10-12
- •日本光伏发电系统也开始“缺芯”了2021-07-14
- •Cadence推出下一代Palladium Z2和Protium X2系统2021-04-06
- •思特威全新推出SC910GS与SC410GS,全面赋能智能交通系统2021-01-07
- •Xsens的MTi-100 系列IMU 为UWB 信标系统提供强大支持2020-09-02
- •业界首创!支持异常检测系统等所需的高速放大2020-05-21
- •亚马逊将开始出售其无人便利店Go系统2020-03-10