- 论坛徽章:
- 0
|
编译内核相关问题....
1.你前后两次操作有没有添加modules?
而make modules_install 未用,system.map未替换,
却取得了成功?
看来mkinitrd到底做了什么,以及生成的initrd文件我们没有搞清楚
2.为什么initrd的错误会导致根本不存在的SCSI的BusLogic module出错?
难道是内核报错的bug?因为很多的内核compile上都出现这问题?
看来mkinitrd到底做了什么,以及生成的initrd文件我们没有搞清楚
非常感谢提出意见,我们把这个帖子一直顶下去如何?
我来解答一些问题:
在把新核心放进/boot之后,我觉得,在grub.conf里边指定一下,然后制作不制作initrd.img我个人认为无所谓,我的是IDE硬盘,因为这个你可以在grub.conf里边写initrd /initrd-2.4.20-8.img的这个地方改成no initrd,同样是可以启动的,因为initrd的存在是由于你使用了ext3格式以及SCSI磁盘.
是否make modules我觉得也没什么?这里我有点疑问...
make modules之后是否把编译好的modules放到/lib/modules/2.4.20-8custom去了?还是在make modules_install之后才放到那里去?
insmod和modprobe应该都是在/lib/modules/相应文件夹里查找模块的吧...
如果我make modules,modules 编译了,但是没安装?这又是个什么意思?
也就是,俺想知道make modules之前之后系统有哪些地方改变了.
make modules_install之前之后系统又有哪些地方改变了?
make install又是起什么作用,干什么的?
System.map如网中人大哥所说,自动更新:)
至于initrd.img
我有一点浅见:
initrd.img类似于ramdisk,在这里我写过:
http://chinaunix.net/forum/viewtopic.php?t=169044
initrd***.img
initrd的镜像,类似ramdisk,把一段程序打包到img里,然后在内存里开辟一段区域,一般是2m,释放到那里运行,都是一些初始化的程序
不同内核,初始化的img可以相同,也可以不同,不要也可以。。。
如果没有,可以在grub.conf里加上no initrd,它就跳过initrd的检测和执行了,以前好像就没有,后来才有的
在没有mount /分区以前,系统要执行一些操作,比如挂载驱动什么的,它就把initrd释放到内存里,作一个虚拟的/,然后执行
查看initrd.img:
initrd好像是gz格式的
cp initrd.img initrd.gz
guzip initrd.gz
mount -o loop initrd /mnt/floppy
试试
看看/mnt/floppy下有没有啥
initrd.img这里边主要是一些驱动,里面有buslogic.o文件,ext3.o等,而我在vm下为什么编译不成功,是因为vm中要求BusLogic做vm中SCSI的驱动...
所以会出错....但是为什么SCSI就会出错?我不大清楚...
我在vm当前系统中lsmod里边出现了BusLogic ... |
|