|
|
楼主 |
发表于 2018-11-1 17:42:18
|
显示全部楼层
本帖最后由 2011os_defend 于 2018-11-1 18:10 编辑
刚好今天我在阅读这方面的问题,得到的信息如下:
1,在32位的系统上,驱动可以在ramfs时加载(用户空间未加载之前就先加载驱动),这是最理想,也是效果最好的。
2,到了64位系统之后,大意是说没有进入系统之前无法启动内存分页,64位的程序暂时无法运行。于是有了后期延迟加载驱动的方案。
那么对于1,常踩用的方案是把驱动放到initrd里面,尽快尽早加载,但如今的驱动越来越多,initrd有大小限制(我个人实测到达400M左右时就已经无法启动了),太多驱动已经放不下了。所以通常使用方案2。
补充:之前回答有误,1是在内核模块中一起被加载,因为驱动都很小,几k~几百k之间。initrd已经是后期延迟加载的方案了。
说这些是想说:驱动与EFI或BIOS的启动类型无关,只要能引导bzImage到内存,余下的都好办。
至于平板,手机,之前得到的信息是如果不是efi或bios的即么就要另外写bootloader,比如安卓手机的uboot。只要引导成功,余下的就只有一件事:就是设备所使用的硬件有没有驱动程序?
驱动程序我知道有三种来源:
1,官方提供的开源驱动或闭源驱动。
2,逆向工程得到的驱动,记得之前有个显卡就被逆向完成的,费时长,效果不理想。
3,官方提供接口和硬件参数,第三方的人按某种业界公认的“约定”给硬件厂方编写,现在有个wifi驱动项目就是基于此的,但怨言也不少。如果需要我可以提供网址。
那些电子工厂没有能力研发,通常会使用公版/公模(比如深圳的华南)生产硬件,如果这种公版本身就有开源或闭源的驱动,那么情况是好的,不管是手机或平板都能很正常的驱动起来,就怕有些电子厂还有自己的修改固件,但又没能力或没财力开发Linux驱动,这就等于这种硬件根本没有驱动,Linux表示也无能为力。
我只是个积木工,把一些自己认为是好的积木拼凑起来,造一个像样的“轮子”,没有能力开发驱动,所以是否能成功驱动平板不得而知,但我估计不会太理想。另外一个,除了CPU、显卡这种微码/固件/驱动会早产品发部半年前就先开发以外,其它硬件几乎都会比产品后出现,我大概观察了一下,总结出来的规律是:
1,大部分通用硬件驱动Linux的会晚1-6个月左右出现。
2,通用但不常用的硬件驱动Linux会晚1-2年出现。
3,偏门,且不常用的硬件,可能晚3-5年后出现。
4,太偏门,太小众的硬件,Linux驱动可能永远不会出现。
说了一堆,希望可以解疑 |
|