- 论坛徽章:
- 0
|
近日对内核2.4.20-8升级到了2.6.14.5,搞得俺整整一个礼拜没睡好。编译时参考了论坛上的一些编译及配置,现对编译过程中遇到的几个问题小结一下,顺便请教两个问题
1. 编译完成后重启新内核时出现“VFS:Cannot open root device 'LABEL=/', kernel panic...”的错误。google时,感觉第一次编译时此错误较普遍,此问题让我重编了3次,郁闷之极!解决方法参阅http://kerneltrap.org/node/970?from=0&comments_per_page=50 最后在把init ramdisk选项编进内核后,编译终于成功
2. 在启动时总是提示usb filesystem 内核不支持,又郁闷了,明明把usb文件系统编进内核了的! 后来在一网友提示下在/etc/rc.sysinit里把usb文件类型由usbdevfs改为usbfs后正常. NND,把文件类型也改了也不通知俺(实际是俺孤陋寡闻)!
3. 把cdrom编成了module,insmod cdrom.ko后,mount时总提示not a avliad block device ,google后也没搞定,后来在看了Documentation/下的文档后,在insmod cdrom后insmod ide-cd.ko模块后cdrom正常使用
4. 编译 ldd3 的hello模块时,使用make和直接使用gcc编译都提示“undefined reference to 'printk()'”错误. 几番google后,发现我的Makefile是在2.4下的,找了个2.6下的Makfile后可正常编译。不过对2.6下的Makefile编写不懂,我的资料好像都较旧,哪位师兄有这方面的资料,请发一份给俺:ydyyun@tom.com 万分感谢!!
另有2个问题想请教一下各位
1. 在编译内核时,假设我忘了把ide disk编进内核,现在要把它编进内核而不是模块,不重新编译整个内核能否实现?
2. 哪位帮我解读下这个Makefile,主要是4-5行
bj-m := hello.o
KERNELDIR := /lib/modules/2.6.14.5/build/
PWD := $(shell pwd)
hello:
$(MAKE) -Wall -C $(KERNELDIR) M=$(PWD) modules
clean:
rm -rf *.o |
|