当前位置:  技术问答>linux和unix

内核加载ramdisk失败(在线等,帮顶有分)

    来源: 互联网  发布时间:2016-06-29

    本文导语:  21.7内核加载ramdisk文件系统失败,以下为详情: 在内核menuconfig时: Initial RAM filesystem and RAM disk 选项为开; Initramfs source file选项为空; default bootloader kernel arguments选项为空 ramdisk制作过程: mkdir initrd ...

21.7内核加载ramdisk文件系统失败,以下为详情:




在内核menuconfig时:


Initial RAM filesystem and RAM disk 选项为开;

Initramfs source file选项为空;

default bootloader kernel arguments选项为空

ramdisk制作过程:

mkdir initrd

dd if=/dev/zero of=initrd.img bs=1k count=40960

mke2fs -F -v -m0 initrd.img

mount -o loop initrd.img initrd

cp -av rootfs/* initrd

sync

umount initrd

sync

gzip -f -9 initrd.img

sync

./mkimage -T ramdisk -C gzip -n 'MPC8572 Ramdisk Image' -d initrd.img.gz your.ramdisk.u-boot


uboot启动脚本为:


proc main
transmit "setenv serverip 192.168.1.102;"
transmit "setenv ipaddr 192.168.1.3;"
transmit "setenv bootargs root=/dev/ram rw console=ttyS0,115200;"
transmit "tftp 800000 mpc8572ds.dtb;"
transmit "tftp 700000 your.ramdisk.u-boot;"
transmit "tftp 500000 uImage;"
transmit "bootm 500000 700000 800000;"
endproc




内核启动后,加打印跟踪,发现:


内核启动至initramfs.c里面的  populate_rootfs 函数,  在该函数的 

err = unpack_to_rootfs((char *)initrd_start,
                       initrd_end - initrd_start, 0);

这一个调用出错;

再跟进去,发现出错的地方在unpack_to_rootfs函数的 

if (state != Reset)  这一句。



到此,我已经跟踪的精疲力尽,无法再跟踪下去了。  


请问,到底会是哪里出问题,导致rootfs的解压失败?


谢谢!

|
看看配置的RAMDISK大小。
如果内核太大,而ramdisk太小的话,可能无法顺利执行

|
bs=1k count=40960 这里block_size要和内核里面的设置一致,count也要和内核一致。

也可以在grub.conf里加上
kernel.......... ramdisk_size=40960

|
基本上kernel的代码出错的可能性很小,还是参数设置问题。

|
帮顶

|
也想知道,在哪里配置的?

|
UP
想知道

|
up

    
 
 

您可能感兴趣的文章:

  • [求教]内核加载模块后,这部分内容编译在内核里的吗?
  • 我下载了一个驱动,在2.4内核编译后用insmod加载说内核版本不一样?
  • intel e1000网卡无法加载,内核是2.4.28,想重新编译内核,应该注意哪些步骤!
  • 升级内核之后,模块加载问题
  • 怎么给内核加载自己编写的模块
  • 求救!!编译内核后,加载时出错。
  • linux2.6内核 如何自动加载当前所需要的模块
  • 2.4内核编译好的.o虚拟设备怎么在2.6下加载啊
  • 遇到一个很棘手的问题:内核模块不能加载
  • 请问我要加载内核模块 ipip.o 怎么做
  • 如何查看Linux静态加载了哪些内核
  • 有没有什么办法能够查询到某个内核模块程序加载之后的运行情况?
  • 内核模块一加载计算机就死机,如何调试
  • 急:内核模块加载时出现unresolved symbol错误
  • 急:加载内核模块时出现unresolved symbol错误
  • 内核模块加载成功,但设备号申请不到
  • 加载linux内核的问题
  • fc3 怎么定制内核,让它启动的时候少加载一些模块
  • 如果加载的内核模块出错了,怎么卸载??
  • intel e1000网卡无法加载,内核是2.4.28,想重新编译内核,应该注意哪些步骤! iis7站长之家
  • uboot 引导内核启动 失败 内核不能自解压
  • 升级Linux内核在终端下输入make moveold执行失败问题?
  • Linux7.3.2内核编译通过,但引导过程失败!!!
  • 内核升级失败,帮帮忙。。。
  • copy模块到内核失败?
  • 内核编译成功,系统启动失败
  • uClinux系统内核2.6,使用GFP_KERNEL | GFP_DMA分配内存失败!
  • 飞凌2440 内核移植运行时遇上/dev/fb0打开失败
  • 用netlink从内核空间向用户空间传送数据为何失败!
  • 编译好的内核,也设置好了,但是启动时候总是失败
  • Linux 编译原来内核失败原因探索
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux内核中影响tcp三次握手的一些协议配置
  • Fedora Core 2自带的内核升级程序下载下来内核后,要不要再编译一遍内核?
  • TCP协议四次断连过程介绍及Linux内核协议栈中相关设置项
  • 进程内核栈和操作系统内核栈的关系
  • CentOS 6内核升级:下载编译启用新内核版本详细过程
  • Linux中内核线程不访问内核态地址空间?
  • Linux进程的内核栈和用户栈概念,相互关系及切换过程
  • 2.6内核下编译2.4内核
  • linux内核中的likely宏和unlikely宏介绍及用法
  • 谁能提供kgdb内核补丁内核模块的下载
  • CentOS 6.5 下载地址及如何升级内核(kernel)版本到 3.10.28
  • 编译新内核后怎么进入原来内核
  • Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法
  • 请问linux中如何判断内核是否已经启动。(在内核中写程序)
  • docker使用的技术之Container内核原理介绍
  • 内核模块跟内核版本不匹配????????
  • 请教:如何安装新内核(rpm包)而不同原来得内核冲突?? 在线等待!!
  • linux为什么要升级内核?升级内核有何作用?
  • 内核升级后,如何在新的内核中加载显卡驱动?
  • 内核源码和结果make过的内核源码有什么区别
  • 不重新编译内核能修改内核函数吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3