当前位置: 技术问答>linux和unix
【求救】做一个boot/root映像时遇到的驱动程序的问题?
来源: 互联网 发布时间:2015-06-14
本文导语: 我们的项目里面要做一个1.44mb大的软盘映像文件,这个linux要求带tcp/ip网络,以便系统启动之后可以连接ftp以及我们自己的通信服务器。 我是这样做的,使用syslinux做引导程序,外加busybox。因此我只能把网卡的驱动...
我们的项目里面要做一个1.44mb大的软盘映像文件,这个linux要求带tcp/ip网络,以便系统启动之后可以连接ftp以及我们自己的通信服务器。
我是这样做的,使用syslinux做引导程序,外加busybox。因此我只能把网卡的驱动程序静态编译在内核里面,而这样内核会大一些,并且我不能选中所有的网卡驱动
现在我已经做好了,但是发现这样的问题,无法解决:
1、在虚拟机vmware上测试时,由于不支持虚拟的网卡,网络功能不能使用,自然不能连接服务器,在这里想问问,哪些网卡型号是最常见的(PC上),这样我的映像出问题的机会就少一些(我这样的做法正确吗?)
2、另外一种情况,如果当时的硬盘可用,我可以在约定的地方得到一些文件。这样,如果映像不支持网卡,我可以把尽可能多的网卡驱动放到硬盘上,然后linux启动之后加载他们,这个方法可行吗?怎么做啊?有很多的网卡驱动,linux怎么知道应该加载哪个驱动呢?(当然,linux映像应该尽可能地支持多一点网卡)
希望大家指点指点,非常感谢!!
我是这样做的,使用syslinux做引导程序,外加busybox。因此我只能把网卡的驱动程序静态编译在内核里面,而这样内核会大一些,并且我不能选中所有的网卡驱动
现在我已经做好了,但是发现这样的问题,无法解决:
1、在虚拟机vmware上测试时,由于不支持虚拟的网卡,网络功能不能使用,自然不能连接服务器,在这里想问问,哪些网卡型号是最常见的(PC上),这样我的映像出问题的机会就少一些(我这样的做法正确吗?)
2、另外一种情况,如果当时的硬盘可用,我可以在约定的地方得到一些文件。这样,如果映像不支持网卡,我可以把尽可能多的网卡驱动放到硬盘上,然后linux启动之后加载他们,这个方法可行吗?怎么做啊?有很多的网卡驱动,linux怎么知道应该加载哪个驱动呢?(当然,linux映像应该尽可能地支持多一点网卡)
希望大家指点指点,非常感谢!!
|
1、常用的有3COM系列、DLINK系列、RTL8139系列、INTEL系列
2、网卡驱动可以在LINUX启动之后,通过修改/etc/modules.conf来加载不同的驱动程序
比较困难的是实现硬件设备的识别,办法肯定有
2、网卡驱动可以在LINUX启动之后,通过修改/etc/modules.conf来加载不同的驱动程序
比较困难的是实现硬件设备的识别,办法肯定有
|
二楼的说得是对的。
首先需要收集硬件信息,可以在/proc/pci中列举所有检测的pci设备的设备id;
对于你的内核编译时存在的驱动模块,你可以从其源文件中查找到其设备id,即建立一个设备驱动模块与设备id之间的映射表;
知道应该加载哪个模块,可能剩下的问题就不是很困难了。
WINDOWS的驱动加载肯定也是这个原理。
首先需要收集硬件信息,可以在/proc/pci中列举所有检测的pci设备的设备id;
对于你的内核编译时存在的驱动模块,你可以从其源文件中查找到其设备id,即建立一个设备驱动模块与设备id之间的映射表;
知道应该加载哪个模块,可能剩下的问题就不是很困难了。
WINDOWS的驱动加载肯定也是这个原理。
|
1、我只能说,我用的是8139d
2、关于硬件的信息,可以在/proc下的文件中得到。如pci中列举出了所有检测的pci设备的设备id,如果你认识该id,就加载相应的驱动就行了。
2、关于硬件的信息,可以在/proc下的文件中得到。如pci中列举出了所有检测的pci设备的设备id,如果你认识该id,就加载相应的驱动就行了。