手斧Linux – 从LFS到Funtoo (133)
来源:互联网 发布:计量分析软件 编辑:程序博客网 时间:2024/05/17 09:29
第17章 调试genkernel 和debian-souces
1. 如何直接用genkernel部分编译debian-souces?
在ebuild /usr/portage/sys-kernel/debian-sources/debian-sources-3.2.29.ebuild clean install来编译kernel+initramfs时,会使用genkernel这个工具完成编译过程。整个ebuild过程挺花时间的,有时出于实验的目的,所做的修改并不一定要完全编译,例如,需要修改initramfs里的linuxrc,则只要编译initramfs,并不要编译kernel和modules。
如何知道在ebuild过程中,genkernel在哪个工作目录下,用什么参数被调用呢?为了了解这个问题,使用了一个调试技巧。修改/usr/portage/sys-kernel/debian-sources/debian-sources-3.2.29.ebuild,在genkernel命令的前一行加上一行:
cat > templog <<EOF
在genkernel命令的后一行加上一行:
EOF
然后,再执行一次ebuild /usr/portage/sys-kernel/debian-sources/debian-sources-3.2.29.ebuild clean install,genkernel并不会真正执行起来,但它的命令参数被存到templog文件里了,而templog所在的目录就是它工作的当前目录,在这个实验里,我看到templog文件在/var/tmp/portage/sys-kernel/debian-sources-3.2.29/work/linux-3.2.29目录里。
因此,用下面的命令可以只编译生成initramfs:
cd /var/tmp/portage/sys-kernel/debian-sources-3.2.29/work/linux-3.2.29
genkernel \
--linuxrc=/usr/share/genkernel/defaults/linuxrc \
--no-save-config \
--kernel-config="/var/tmp/portage/sys-kernel/debian-sources-3.2.29/temp/config" \
--kernname="debian-sources" \
--build-src="/var/tmp/portage/sys-kernel/debian-sources-3.2.29/work/linux-3.2.29" \
--build-dst=/var/tmp/portage/sys-kernel/debian-sources-3.2.29/work/build \
--makeopts="" \
--firmware-dst=/var/tmp/portage/sys-kernel/debian-sources-3.2.29/work/out/lib/firmware \
--cachedir="/var/tmp/portage/sys-kernel/debian-sources-3.2.29/temp/cache" \
--tempdir="/var/tmp/portage/sys-kernel/debian-sources-3.2.29/temp/twork" \
--logfile="/var/tmp/portage/sys-kernel/debian-sources-3.2.29/work/genkernel.log" \
--bootdir="/var/tmp/portage/sys-kernel/debian-sources-3.2.29/work/out/boot" \
--lvm --luks --iscsi --module-prefix="/var/tmp/portage/sys-kernel/debian-sources-3.2.29/work/out" \
initramfs
成生的文件在 /var/tmp/portage/sys-kernel/debian-sources-3.2.29/work/out/boot/目录里。如果需要编译kernel,只要将initramfs换成kernel调用genkernel就可以了。这样做,可以在排错时,对kernel或initramfs的局部重构,加快排错的过程。
- 手斧Linux – 从LFS到Funtoo (133)
- 手斧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)
- 手斧Linux – 从LFS到Funtoo (132)
- Ebook-isbn Test Report
- 一种简单、安全的Dota全图新思路 作者:LC 【转】
- 2015WPE封包刷Q币图文教程
- 【任意进制转换】 例:输入十进制转换二进制
- 手斧Linux – 从LFS到Funtoo (133)
- MYSQL 与 Oracle 之间的数据类型转换
- 测试一下第一篇C博客
- MySQL数据库表名、列名、别名区分大小写的问题
- Swift开发教程--Unused variable 'fileName'问题的解决
- LZW算法压缩和解压缩
- bootstrap基础知识学习(下拉菜单+按钮)
- Safari浏览器获取iPhone UDID
- yiluo-----web.xml语句顺序问题