<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">在挂载nfs根文件系统时遇到了两个问题,第一个是内核启动到最后出现如下信息:</span>
VFS: Mounted root (nfs filesystem).
Freeing init memory: 144K
Warning: unable to open an initial console.<启动停到此处>
这个问题足足困扰了我两天的时间,刚开始一直怀疑是nfs服务器配置的问题,尝试了很久都无法解决。后来无意中搜索了下“Warning: unable to open an initial console.“发现并不是nfs设置的问题,而是在根文件目录下的/dev中缺少了console文件。
解决方法是:在宿主机中进入需要挂载的根文件目录/dev,然后执行sudo mknod console c 5 1即可
第二个问题是成功挂载根文件系统并进入内核后,开发板断电重启后内核启动到开启网卡时失败,显示如下信息:
IP-Config: Failed to open eth0
IP-Config: No network devices available.
搜索了很久,最终确定是友善提供的驱动的问题,将mac地址传递给内核时出了错误,目前我的解决方案是在mach-mini2440.c中关于dm9000的代码中直接写入一个mac地址,即将static struct dm9000_plat_data mini2440_dm9k_pdata 结构体 修改成如下:
static struct dm9000_plat_data mini2440_dm9k_pdata = {
.flags
= (DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM),
.dev_addr={0x08,0x08,0x11,0x18,0x12,0x27},
保存后重新编译内核下载后即可解决。
本文详细介绍了在嵌入式开发中遇到的两个主要问题:NFS根文件系统挂载时缺少console文件导致无法正常启动,以及成功挂载后因友善提供的驱动错误导致网卡配置失败。通过在宿主机中创建console文件解决了第一个问题,对于第二个问题则在代码中直接写入了一个正确的MAC地址,从而确保了内核能够正确配置网络设备。
3180

被折叠的 条评论
为什么被折叠?



