/dev 的问题我要没记错是需要编译 devfs 这个东西。另外可能还需要 tmpfs 。
/dev/console 如果不存在,那 linux 连启动都会有问题。启动一个控制台必须要一个 console ,以及几个 /dev/ttyXXXXX 的设备。这个必须在内核正式挂载系统后马上存在,不然任何程序都不能继续运行(系统启动时必须有一个程序通过这个设备连接内核进行控制)。也就是说,这个文件必须早就在硬盘上,除非你的使用 initrd ,在 initrd 这个预先设计好的内存盘上面存在也可以的。
你这个已经存在的错误就是因为前面的 mount /dev 失败导致的。
用 2.4 说稳定的那帮其实都是用 windows 的。
你现在最大的问题就是内核配置完全的有问题,none 和内核无关,这是 mount 的一个参数,如果是 tmpfs 、devfs 、sysfs、usbfs 这种内存中存在的特殊文件系统,那么这个 none 的部分就不是必须的,所以有个 none 就是替代品,如果是整一个 ext3、fat 什么的实际的文件系统硬件,那么这个 none 必须是这个文件系统的设备文件。
你现在的错误和 i2c 一点关系都没有。错误信息和正常提示信息的区分能力必须有。
我真不明白你连错误信息都看不懂的时候,为什么去编译内核?
那个骗子让你这么干的?
这个问题我也看不懂,不知道是怎么回事。
最近学着编译了下内核,之前也是配置config的时候很头痛。后来不管了,干脆把以前的配置直接cp过来。然后改了下编译内核的步骤,成功编译了。所以我想你的可能是步骤的问题吧。
我的步骤是:
清理 sudo make mrproper
复制原先的内核 cp /usr/src/linux-headers-2.6.32-21-generic/.config .config
配置 sudo make menuconfig 直接保存
编译 sudo make
编译模块 sudo make modules
安装模块 sudo make modules install
安装 sudo make install 相当于拷贝到/boot下vmlinuz system.map config那3个文件
配置initrd sudo mkinitramfs -o initrd.img-2.6.34.1 /lib/modules/2.6.34.1
更新grub sudo update-grub
重启 sudo reboot
我的步骤是这样的,希望能对你有所帮助。
2.4,好老的内核,一定要用2.4吗?你自己修改过内核源代码?一般那么老的内核只有做嵌入式自己修改内核才会用到,以适应开发板附带的文件系统,如果没要求建议你换2.6内核吧,最新的内核make,make install直接搞定,自己去kernel.org下
补充回答:
其实内核大小与版本没关系,需要看你自己订制得如何,自己用make menuconfig进去调整,不要的驱动都别编译,恢复盘也就只要启动基本系统就好,什么声卡显卡等高级驱动都不要的,我们做嵌入式开发的时候2.6内核裁减过之后编译出来也就几百K
文件存在可能是你之前mknod过驱动,你进dev目录删掉看看,或make clean一下,然后就是你的配置估计有问题.因为在mount处,提示挂载硬件失败,我在移植kernel遇见过
[ 1.060277] i2c-parport-light:adapter type unspecified
这个基本不用,可不选,
一般只要选择声卡、网卡、硬盘、文件系统驱动就可以,其它的像i2c等都可不选