当前位置: 技术问答>linux和unix
如何将 内核和ramdisk.gz编译在一个imgge中
来源: 互联网 发布时间:2015-12-27
本文导语: 如题,ramdisk.gz中放的是根文件系统。在嵌入式系统中 如何 将它们编译成一个image文件。启动时给内核传参root=/dev/ram0即可。 请具体说明一下谢谢。分可以再加 | 很奇怪的问题,是flash 的imag...
如题,ramdisk.gz中放的是根文件系统。在嵌入式系统中 如何 将它们编译成一个image文件。启动时给内核传参root=/dev/ram0即可。
请具体说明一下谢谢。分可以再加
请具体说明一下谢谢。分可以再加
|
很奇怪的问题,是flash 的image文件吗?
我以前碰到的问题,
flash组成
0 - xxx1 bootloader
xxx1+1 - xxx2 kernel
xxx2+1 - xxx3 ramdisk.gz
一种方法,分别写到flash
另一种方法, 建个flash image文件,用dd命令将他们写到文件相应的位置。再写文件到flash
dd if=/dev/zero of=image bs=1024 count=4096
dd of=image if=loader seek=0 bs=1 conv=notrunc
dd of=image if=kernel seek=xxx1+1 bs=1 conv=notrunc
dd of=image if=ramdisk.gz seek=xxx2+1 bs=1 conv=notrunc
我以前碰到的问题,
flash组成
0 - xxx1 bootloader
xxx1+1 - xxx2 kernel
xxx2+1 - xxx3 ramdisk.gz
一种方法,分别写到flash
另一种方法, 建个flash image文件,用dd命令将他们写到文件相应的位置。再写文件到flash
dd if=/dev/zero of=image bs=1024 count=4096
dd of=image if=loader seek=0 bs=1 conv=notrunc
dd of=image if=kernel seek=xxx1+1 bs=1 conv=notrunc
dd of=image if=ramdisk.gz seek=xxx2+1 bs=1 conv=notrunc
|
我觉得要写到ramdisk中的话,bootloader做的工作就多了。
它需要解析ramdisk.gz 变成非压缩的,然后把里面的内核读出来。
看起来似乎可以做到。
它需要解析ramdisk.gz 变成非压缩的,然后把里面的内核读出来。
看起来似乎可以做到。
|
surfkm(滔滔)
文件系统作为内核的一部分了。在内核自解压的时候因该可以同时解压了吧。只要解压之后的位置是ramdisk的内存空间即可,不知对否?
...................
我觉得是这样的。
但是如果把内核也放到img.gz中的话,需要在boot中先定位到img.gz中的内核,然后再启动内核。而以前的情况是内核压缩映像直接可以使用地址定位。
文件系统作为内核的一部分了。在内核自解压的时候因该可以同时解压了吧。只要解压之后的位置是ramdisk的内存空间即可,不知对否?
...................
我觉得是这样的。
但是如果把内核也放到img.gz中的话,需要在boot中先定位到img.gz中的内核,然后再启动内核。而以前的情况是内核压缩映像直接可以使用地址定位。
|
顶一下,这个也是我目前关心的问题. 有没有msn的,楼猪,大家可以沟通下Linux方面的开发.
我的:fireangel.w@hotmail.com
我的:fireangel.w@hotmail.com