分页: 1 / 1

编译内核的几个问题!

发表于 : 2008-05-30 11:37
cnkilior
初次尝试编译内核,失败了,(无法挂载root)。有几个问题!
我先说我的操作步骤:1、下载内核到主目录,2、解包内核到当前目录(~),3、切换到该目录,直接make menuconfig , make , make install。4、make install 出错,找不到某个命令,于是直接把新生成的vmlinuz拷到/boot,配置menu.lst,发现没有initrd,于是mkinitrd,提示没有该命令。借用以前的initrd,启动时貌似内核载入了,挂载root(/dev/sda3)出错,没有找到该设备!

我的问题:每一个教程都要求做一个软连接,连接到源代码。这步是什么意思?
配置完毕后怎么生成新内核?
对于其他构架的内核,例如要生成arm构架的,是否要使用交叉编译?如何做呢?
生成新内核后initrd怎么生成?除了要生成initrd还要生成其他东西吗?例如system.map?

注:我不在debian体系下。。。。

发表于 : 2008-05-30 11:38
cnkilior
谁变成了我又把我的头像换了!。。。。

发表于 : 2008-05-30 16:51
cnkilior
刚试着装上了mkinitrd这个软件包,再编下看看!

发表于 : 2008-05-31 10:18
cnkilior
看来我的问题都要自问自答了!

我安装好了mkinitrd后重编了一次,花了我40+分钟,

代码: 全选

make clean
make menuconfig
make 
mkinitrd auto
cp ~/l(tab)/arch/i386/bzImage /boot
cd /boot/grub
vi menu.lst
回答我的问题:
1:有必要吗?不太清楚,也许会影响到mkinitrd auto?未加考证
2:新内核生成了,bzImage?怎么不是vmlinuz?
3:编译的时候要加上arch=xxx cross(忘了,在坛子一贴上留名了,呵呵)
4:不知道!

新的问题!
1:为什么不是vmlinuz?
2:是不是我把sata支持去掉了,所以root=/dev/sda3 错了,改成hda3就好了。改了后fsck出错,也是超块的问题!貌似和坛子里一个人的问题一样,留名了!

发表于 : 2008-05-31 10:24
chasye
make mrproper
make menuconfig
(交叉编译里,好像是 HOST=XXX make menuconfig )

make
make module_install install

把必要的驱动,编译进内核,可以不生成initrd.img

发表于 : 2008-05-31 10:27
cnkilior
笔误

。。。。


囧!

谢谢楼上,不然我又是独角戏了!