1.修改内核配置选项

进入内核源码目录linux-2.6.32.2目录

cp config_mini2440_x35 .config

make menuconfig ARCH=arm

(1).打开配置菜单,修改两个配置项,分别是:

a):General setup-->选择 Initial RAM filesystem and RAM disk...... 项

b):Device Drivers-->Block devices-->选择 RAM block device support 项

c):并检查Optimize for size是否被选中,如果没有则选中,此项优化内核大小,根据需要进行配置。

d):device driver->block device里的一个选项,‍Default Ramdisk 设置ramdisk的大小.16384

Note:修改(8192)Default RAM disk size kbytes选项为(4096)Default RAM disk size kbytes, 之所以修改是因为我之后制作的ramdisk是4096KB大小的。当然如果你想制作8192KB大小的ramdisk,这里就要对应为8192了,以此 类推。但是最小系统嘛,是不用那么大的ramdisk的。此项的默认配置就是(4096),以前我改过这个配置,所以是(8192)了。如果这个大小和你 做的ramdisk不匹配,则启动时仍然会出现kernel panic内核恐慌,提示ramdisk格式不正确,挂载不上ramdisk。

(2).进入File systems菜单,选上 Second extended fs support

ramdisk是一种内存虚拟磁盘技术,实质上并不是一种文件系统,它使用的文件系统时ext2文件系统。

这样就为内核添加好了ramdisk启动功能和ramdisk的驱动支持了。

2.修改内核启动参数

方法有二:

a):修改.config的第310行,修改CONFIG_CMDLINE=""的定义

修改为CONFIG_CMDLINE="initrd=0x31000000,0x400000 root=/dev/ram0 rw init=/linuxrc console=ttySAC0 mem=64M"

保存。

意思为从ramdisk启动,ramdisk压缩文件起始地址在内存地址0x31000000处,文件大小为0x400000。

此参数也可以在make menuconfig ARCH=arm时进入Boot options菜单,然后在Default kernel command string里修改。效果是一样的

b):或者不修改.config的的第310行CMDLINE定义,而是用u-boot的bootargs环境变量来传递启动参数。

同样也是修改该环境变量为bootargs=initrd=0x31000000,0x400000 root=/dev/ram0 rw init=/linuxrc console=ttySAC0 mem=64M

并saveenv保存u-boot环境变量

以上a),b)的效果是一样的。

4.编译内核

make zImage ARCH=arm CROSS_COMPILE=arm-linux-

编译完成后在当前目录下就出现了zImage内核映像了。

5.其实 uImage就是在zImage的开头部分增加了一个64字节的内核映像说明。说明一下:zImage是ARM Linux常用的一种压缩映像文件,uImage是U-boot专用的映像文件,它是在zImage之前加上一个长度为0x40的“头”,说明这个映像文 件的类型、加载位置、生成时间、大小等信息。换句话说,如果直接从uImage的0x40位置开始执行,zImage和uImage没有任何区别。另 外,Linux2.4内核不支持uImage,Linux2.6内核加入了很多对嵌入式系统的支持,但是uImage的生成也需要设置。

5.制作uImage内核映像

由于使用的Bootloader是u-boot,所以要将zImage转化为uImage,方法如下:

1.把zImage 拷到uboot 的tools 目录下./mkimage -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008040 -n "Linux kernel Image" -d zImage uImage-ramdisk

说明:mkimage工具是u-boot格式uImage内核映像制作工具。如果成功编译u-boot之后,它会在u-boot源码树下的tools目录 之下。建议将其拷贝到宿主机的/sbin/目录下,以方便使用。

6.还有一个是启动到最后面,会提示

RAMDISK: Compressed image found at block 0

RAMDISK: incomplete write (2270 != 32768)

之类,这问题就是上面说的内核配置的ramdisk大小不对,要去修改一下内核配置

我将它修改成12288(1024的整数倍)

PHP ramdisk,linux ramdisk 配置相关推荐

  1. linux 修改ramdisk内容,修改linux ramdisk大小

    Linux Ramdisk Step 0: 簡介 Step 1: 系統預設的 RAM DISK Step 2: 修改 ramdisk 大小 Step 3: Format the ramdisk Ste ...

  2. linux ramdisk根文件系统,ramdisk 根文件系统制作

    隐逸桃源说:1.ramdisk是一个最小的linux rootfs系统,它包含了除内核以外的所有linux系统在引导和管理时需要的工具,包含如下目录:bin,dev,etc,home,lib,mnt, ...

  3. linux ramdisk根文件系统,根文件系统与ramdisk

    一.文件系统 文件系统,是管理文件数据的一堆程序.操作系统,可以通过这些程序,从块设备中,读取或者写入文件. 常见的一些文件系统: ◾FAT32 ◾NTFS ◾EXT2 ◾EXT3 二.扇区和簇 扇区 ...

  4. linux的网络地址配置,教你如何完成Linux网络地址配置

    如果你想了解Linux,了解一些关于Linux的知识.本文为你讲解Linux网络地址配置,希望你能理解Linux网络地址配置,下面就这个问题来详细说说吧. 1.关闭与开启网路端口: 开启81端口: i ...

  5. 系统dsn oracle,linux平台配置oracle odbc dsn的方法.docx

    linux平台配置oracle odbc dsn的方法.docx LINUX平台配置ORACLEODBCDSN的方法1DSN配置方法ORACLE11编辑配置文件一.OSRHEL5X86(ORACLED ...

  6. Linux下配置jupyter notebook远程访问实战:配置Jupyter的连接密码、启动jupyter服务、远程访问jupyter(关闭防火墙)

    Linux下配置jupyter notebook远程访问实战:配置Jupyter的连接密码.启动jupyter服务.远程访问jupyter(关闭防火墙) 目录 Linux下配置jupyter note ...

  7. linux tomcat 安装教程,关于Linux下配置安装Tomcat8的步骤

    由于Centos6即将停止更新,本次就使用Centos7.5 X64位系统来演示,Tomcat版本就使用8.5,如果想使用9.0的版本也可以去官网进行下载,步骤都大同小异. 关于Tomcat9的新特性 ...

  8. 查看Linux 硬件配置

    如何查看Linux 硬件配置信息 在网上找了N久,发现了一篇不错的文档,转载一下: 1.查看机器所有硬件信息: dmidecode |more dmesg |more 这2个命令出来的信息都非常多,所 ...

  9. linux内核配置系统浅析(转)

    随着 Linux 操作系统的广泛应用,特别是 Linux 在嵌入式领域的发展,越来越多的人开始投身到 Linux 内核级的开发中.面对日益庞大的 Linux 内核源代码,开发者在完成自己的内核代码后, ...

最新文章

  1. css--小白入门篇3
  2. VOS3000设置落地网关优先级
  3. Java 中的四种引用及垃圾回收策略
  4. Silverlight, B/S or C/S?
  5. Linux 命令之 ulimit 命令-控制shell程序的资源
  6. [3.30校内训练赛]
  7. 从2元钱到年赚20亿元的传奇经历!相信对你一定会有很大的启发!
  8. 【Antlr】Antlr preview 不能使用了
  9. 6. 以下耦合度中最松散的耦合是_什么是程序设计中的高内聚、低耦合?
  10. 大橡塑属于机器人板块吗_机器人中的启蒙教育
  11. c# Dictionary 中Keys.ToArray方法的细节测试
  12. 中国气象站点数据、降雨量气温蒸散发栅格数据集
  13. 偏差(bias)和方差(variance)区别:
  14. NYOJ-599-奋斗的小蜗牛-2013年11月4日22:22:22
  15. macOS安装MySQL,使用Navicat连接MySQL数据库/2022
  16. 浅谈OCR之Onenote 2010
  17. 百度 2018 年营收破千亿,那么 AI 为它赚了多少钱?...
  18. 徐徐图之红楼之花自飘零水自流房东和房客彼得·潘与辛德瑞拉
  19. JavaScript红皮书学习笔记
  20. 基于python的QQ第三方登陆实现工具类

热门文章

  1. 如何在博客文章中使用表情符号?
  2. 2018年9月13日英语学习
  3. NOTEBOOK_1电子元器件
  4. JAVA 提取字符串中的数字相加方法
  5. 祖玛游戏(记忆搜索+A*算法)
  6. 520不敢说出口?教你硬核表白
  7. 【个人】半年的总结与思考
  8. 项目中选择Vite还是Webpack
  9. Spark中Task数量的分析
  10. C++类static成员函数的调用