继昨天之后, 开始对内核中的硬件开始配置, 方法是, 根据发行版给出的硬件模块, 找出在内核中对应的的选项. 具体是
先执行脚本find_all_modules.sh -- 源自<linux内核技术手册>一书, 其代码:
#!/bin/sh
#
for i in `find /sys/ -name modalias -exec cat {} \;`; do
/sbin/modprobe --config /dev/null --show-depends $i ;
done | rev | cut -f 1 -d '/' | rev | sort -u
得到所有模块后, 一一在内核代码目录下执行 find -type f -name Makefile | xargs grep module_name, 查找到驱动名, (此可以再做个脚本, 但还不清楚此方法是否一定正确).
再menuconfig下, 搜索该驱动名, 若该驱动未选择, 即[=n], 那么, 首先按Location的逐一选择, 其次, 注意depends下的驱动, 也要安装, 不确定的还要搜索, 最下方的selects, 应该也是要安装的, 最后, Location只是给出目录, 而目录下要自行选择产口的驱动. 即可
然而, 完成配置后, 新内核依然卡死在loading initial ramdisk处, 后参考此文, 得出方法:
启动至grub2下时:
setroot = 'hd0,msdos2' // 参考grub.cfg
ls /
找出内核文件和引导文件
linux / vmlinuz-2.6.32root=/dev/sda1 ro
initrd /initramfs-2.6.32.img
boot
看内核报出什么错.
结果是内核报出fatal: kernel too old的错误
又根据该文, 得出是库文件要求内核至少为2.6.32版本以上导致出错, 只好放弃3.6.30, 重新编译32
今天时间不多 只是将32按默认配置编译, 就仓促安装运行起来, 可惜仍然卡死在原处, 但原因已不一样, 此时, 内核报错为:
dropping to debug shell
sh:can't access tty:control turned off
估计着是配置硬件的问题或者是grub又出了什么问题, 总之 先到这了