linux根文件系统与内核合二为一
2014-01-08 14:54
274 查看
硬件平台 :AT91SAM9260
内核版本:Linux-2.6.36
内核文件和根文件系统在Flash中一起压缩放置可节省大量的Flash存储空间,也便于固件的存档和升级,把根文件系统放到内核中一起压缩如以下步骤:
1、配置内核
#make menuconfig
在以下选择项中填入已经做好的根文件系统文件夹的路径,例如:把根文件系统放到内核的/linux-2.6.36/rootfs/root6200目录下,则填入以下红色字体信息:
General setup --->
[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
(/rootfs/root6200) Initramfs source file(s)
2、NAND flash中的分区重新规划
由于原先内核和根文件系统不在同一分区内,现在需要重新分区,把内核和根文件系统分到一个区,在linux-2.6.36/arch/arm/mach-at91/board-at91sam9260ek.c文件的static struct mtd_partition __initdata ek_nand_partition[]结构中根据情况重新分区,例如:
0x00000000-0x00080000 : "Boot"
0x00080000-0x000a0000 : "Param1"
0x000a0000-0x008a0000 : "Kernel&Rootfs"
0x008a0000-0x00ca0000 : "Param2"
0x00ca0000-0x014a0000 : "proc"
0x014a0000-0x024a0000 : "data"
0x024a0000-0x10000000 : "UserDisk"
3、更改初始化程序
在根文件系统文件夹中将linuxrc 改名为init,注意不要改软链接属性。
4、uboot中的更改
在NAND flash的分区中把内核和根文件系统分到0x000a0000-0x008a0000区域,把/u-boot-1.3.4/include/configs/at91sam9260.h中#define CONFIG_BOOTCOMMAND宏定义的值设置为“nand read 0x20400000 0xA0000 0x500000; bootm 20400000”。
5、调试
重新编译内核和uboot,重新烧写uboot,根据分区和uboot中的设置将内核重新烧写到0xa0000处,运行系统查看是否运行正常。
相关文章推荐
- Linux内核中流量控制(20)
- linux、内核源码、内核编译与配置、内核模块开发、内核启动流程
- 卸载Linux旧内核
- HAL(1) -- 编写android内核驱动
- 用户态与内核态
- 如何修改内核启动的logo
- linux内核情景分析之execve()
- GCC 用户态&内核态 Makefile
- Linux 内核中的 GCC 特性
- 编译Linux 2.6内核
- Windows 临界区,内核事件,互斥量,信号量。
- Linux内核基础
- 使内核支持NOR FLASH分区
- Ubuntu升级内核后启动VirtualBox虚拟机报错NS_ERROR_FAILURE
- 系统内核管理模块的实现2--解析内存状态信息
- 【DUBBO】 Dubbo原理解析-Dubbo内核实现之基于SPI思想Dubbo内核实现
- 从2.4 到2.6:Linux 内核可装载模块机制的改变对设备驱动的影响
- 浏览器内核
- Linux查看内核、CPU等信息的常用命令
- Ubuntu10.04手动更新内核2.6.32.27&3.10.9_核心问题要点