手斧Linux – 从LFS到Funtoo (134)
来源:互联网 发布:淘宝黑莓靠谱店铺 编辑:程序博客网 时间:2024/06/07 22:41
2. 如何手工将生成的initramfs包解开?
为什么要解开生成的包呢?因为在排错时,需要查验initramfs包里的内容,以验证思路,坚定决心。以gentoo官方livecd里的initramfs为例,这个initramfs的文件名为gentoo.igz,将它拷到一个临时目录里,然后用以下的命令解开它:
mv gentoo.igz gentoo.gz
gunzip gentoo.gz
cpio -idv <gentoo
ls
3. 使用哪个linuxrc?
在genkernel时,可用--linuxrc=/usr/share/genkernel/defaults/linuxrc
指定使用的linuxrc是哪个文件,但在缺省情况下(也就是最原始的/usr/portage/sys-kernel/debian-sources/debian-sources-3.2.29.ebuild),并没有指定。genkernel会使用/usr/share/genkernel/下的多个sh脚本完成多项工作,从这些脚本中,可以知道,在没有指定linuxrc时,genkernel会优先使用/usr/share/genkernel/arch/x86_64/linuxrc,缺少这个文件时,则使用/usr/share/genkernel/default/linuxrc。在这个实验里,真正使用的正是default目录里的那个linuxrc。当需要时,就要在这个文件里修改,然后重新genkernel initramfs,使之生效。
4. 如何在linuxrc里调试?
当initramfs成功加载后,linuxrc会被执行(因在syslinux.cfg 或 isolinux.cfg里指定了init=/linuxrc),在执行的过程中,如果想停下来查看一下,可以在它的执行路径上加一上句
rundebugshell
这时可以进到busybox的shell里,查看当前的文件系统和内核的状态,如lsmod、dmesg等等。
5. initramfs里的busybox是哪里来的?
genkernel会单独给initramfs装配一个busybox,它和最后在rootfs里看到的busybox并不相同。ebuild后,这个专属的busybox的源码包在/var/cache/genkernel/src/busybox-1.20.1.tar.bz2,genkernel在生成initramfs时,会将这个包解开编译,将生成的结果存在/var/tmp/portage/sys-kernel/debian-sources-3.2.29/temp/cache/busybox-1.20.1-x86_64.tar.bz2里,这个cache包里有三个文件:
busybox
.config
.config.gk_orig
因此,如果要修改busybox的源代码,要将上面提到的 busybox-1.20.1.tar.bz2包解开,修改后要重新打包放在原来的位置上,还要将busybox-1.20.1-x86_64.tar.bz2删除,然后再用genkernel initramfs的命令来生成initramfs。
initramfs里的busybox不同于rootfs里的busybox,前者是static方式编译的,可以不依靠别的动态库的支撑就运行起来,这点很重要。
busybox-1.20.1-x86_64.tar.bz2里的.config是编译时使用的配置文件,那这个配置是由谁决定的呢?通过/usr/share/genkernel/的sh文件可以看到,可以在genkernel的命令参数里用--busybox-config来指定具体的config文件,如果显式指定,优先使用/usr/share/genkernel/arch/x86_64/busy-config,不存在时,改用
- 手斧Linux – 从LFS到Funtoo (134)
- 手斧Linux – 从LFS到Funtoo (1)
- 手斧Linux – 从LFS到Funtoo (2)
- 手斧Linux – 从LFS到Funtoo (3)
- 手斧Linux – 从LFS到Funtoo (4)
- 手斧Linux – 从LFS到Funtoo (5)
- 手斧Linux – 从LFS到Funtoo (6)
- 手斧Linux – 从LFS到Funtoo (7)
- 手斧Linux – 从LFS到Funtoo (8)
- 手斧Linux – 从LFS到Funtoo (9)
- 手斧Linux – 从LFS到Funtoo (10)
- 手斧Linux – 从LFS到Funtoo (11)
- 手斧Linux – 从LFS到Funtoo (12)
- 手斧Linux – 从LFS到Funtoo (13)
- 手斧Linux – 从LFS到Funtoo (14)
- 手斧Linux – 从LFS到Funtoo (15)
- 手斧Linux – 从LFS到Funtoo (16)
- 手斧Linux – 从LFS到Funtoo (17)
- 学生成绩管理系统
- css在用空元素、无内容的元素布局不兼容ie7/8
- [MFC]串行化CArchive类
- IOS设备MDM证书申请流程
- 比较实用的几个网站收藏 不定期更新
- 手斧Linux – 从LFS到Funtoo (134)
- [Facebook] 如何建立facebook App 且取得FB ID
- 配置描述文件mobileconfig的生成及注意事项
- js+html实现遮罩层效果(收藏哦)
- MYSQL 启动错误193
- 手斧Linux – 从LFS到Funtoo (135)
- IOS 微信分享到朋友圈(ios自学笔记)
- java基础-java语言中的关键字总结
- Swift开发教程--Xcode6在iPhone模拟器上编译上下留有黑块问题