KDE
发表于 2007-5-31 01:59:34
mi好象是通过new-kernel-pkg命令来做的,他会检测环境依赖 /sbin/new-kernel-pkg --install --mkinitrd --depmod,把你用到的scsi驱动加入initrd,mi中好象注释掉了mkinitrd所做的,用new-kernel-pkg代替了mkinitrd.其实linux本身是自由的,我其实可以把sata驱动加入initrd ,mkinitrd -f -v initrd.img 2.6.20.4 --with=sata_via --with=sata_sis 后修改modprobe.conf即可.
但你若是将所有涉及启动的设备驱动均打包进 initrd,这样一来和把它直接做进内核又有什么区别?况且你知不知道这样的命令行有多长?这不成了脱裤子放屁了?倘若安装程序或者 mkinitrd 自动探测如何有选择地加入驱动,那么就会出现我所说的那种窘境。
类似的问题我们早就翻来覆去想过不知多少遍。现在的内核除了涉及启动的驱动外,其余几乎什么东西都做成了模块,模块是按需装载的,但从内核的角度讲这已经是尽了最大努力。
qdzhuang
发表于 2007-5-31 08:44:24
mi好象是通过new-kernel-pkg命令来做的,他会检测环境依赖 /sbin/new-kernel-pkg --install --mkinitrd --depmod,把你用到的scsi驱动加入initrd,mi中好象注释掉了mkinitrd所做的,用new-kernel-pkg代替了mkinitrd.其实linux本身是自由的,我其实可以把sata驱动加入initrd ,mkinitrd -f -v initrd.img 2.6.20.4 --with=sata_via --with=sata_sis 后修改modprobe.conf即可.
但你若是将所有涉及启动的设备驱动均打包进 initrd,这样一来和把它直接做进内核又有什么区别?况且你知不知道这样的命令行有多长?这不成了脱裤子放屁了?倘若安装程序或者 mkinitrd 自动探测如何有选择地加入驱动,那么就会出现我所说的那种窘境。
类似的问题我们早就翻来覆去想过不知多少遍。现在的内核除了涉及启动的驱动外,其余几乎什么东西都做成了模块,模块是按需装载的,但从内核的角度讲这已经是尽了最大努力。
kde兄,你的言语是有点过激,论坛本身就是发表自由评论的地方,再说我的观点不一定就是对的,至于你说的模块方式和内河方式,模块是可以按需挂载的,但内河不是,这就增加了开销,因为我的linux是centos5和magic,centos5把所有的sata驱动都做成模块,所以我只是说说其原理,所以。。。 :oops:
lly365
发表于 2007-6-1 13:51:41
我两年前就开始用ML了,感觉很好.
今年重新买了台电脑, 装了ML2.0之后声卡没法用,而当时又急着找事做, 没什么时间去弄, 所以只好放弃了.
上个月申请了UBUNTU的光盘, 昨天收到了. 它好象是一个LIVE CD? 没有深入用它, 所以不好枉下评论, 不过, 它的界面是一半中文一半英文, 而且, 中文输入法好象调不出来.....
刚刚看到了置顶的解决声卡问题的帖子, 回去重装一下ML :lol:
KDE
发表于 2007-6-2 01:36:47
mi好象是通过new-kernel-pkg命令来做的,他会检测环境依赖 /sbin/new-kernel-pkg --install --mkinitrd --depmod,把你用到的scsi驱动加入initrd,mi中好象注释掉了mkinitrd所做的,用new-kernel-pkg代替了mkinitrd.其实linux本身是自由的,我其实可以把sata驱动加入initrd ,mkinitrd -f -v initrd.img 2.6.20.4 --with=sata_via --with=sata_sis 后修改modprobe.conf即可.
但你若是将所有涉及启动的设备驱动均打包进 initrd,这样一来和把它直接做进内核又有什么区别?况且你知不知道这样的命令行有多长?这不成了脱裤子放屁了?倘若安装程序或者 mkinitrd 自动探测如何有选择地加入驱动,那么就会出现我所说的那种窘境。
类似的问题我们早就翻来覆去想过不知多少遍。现在的内核除了涉及启动的驱动外,其余几乎什么东西都做成了模块,模块是按需装载的,但从内核的角度讲这已经是尽了最大努力。
kde兄,你的言语是有点过激,论坛本身就是发表自由评论的地方,再说我的观点不一定就是对的,至于你说的模块方式和内河方式,模块是可以按需挂载的,但内河不是,这就增加了开销,因为我的linux是centos5和magic,centos5把所有的sata驱动都做成模块,所以我只是说说其原理,所以。。。 :oops:
任何人都可以把 sata/pata 做成模块放进 initrd/initramfs。centos5 是面向企业级服务器的操作系统,根本不会考虑在一些罕用设备上的启动问题,其硬件驱动完全可以针对服务器这个有限的硬件环境进行充分的精简。我没有用过 centos5,很难相像一个大型服务器操作系统会考虑如何从优盘上启动系统,而这些是一个桌面系统必须要考虑的:
0. BIOS 支持从引导设备上的启动。
1. 引导管理器能够识别位于引导设备上的 kernel 和 inidrd/initramfs,否则你的机器启动时就会死翘翘。
2. 任何其设备驱动模块没有进入 inidrd/initramfs 也没有进入 kernel 的设备都将无法从该引导设备上面启动操作系统,一个没有被驱动的设备上存放着其自身的驱动,即便模块能按需加载,又能怎样?你就永远也别想进系统。例如你想从优盘/CF 卡上启动系统,就会因为内核以及 inidrd/initramfs 里面都没有其驱动,而导致 kernel panic。
3. 若要支持从任何已知可启动存储设备上启动系统,你要么拥有一个大内核,要么拥有一个大 inidrd/initramfs。而实际运行中,无论是 kernel 自身还是 inidrd/initramfs 里的驱动模块,一旦加载就会驻留内存,这和所有相关驱动做在一起的单一的一个 kernel 对内存的消耗几乎没有区别。
4. 迄今为止,无论是安装程序还是 mkinitrd 都无法做到智能地决策哪些驱动应该进入 inidrd/initramfs,而哪些不该进入。而 inidrd/initramfs 自身也并不能决定其所包含的驱动哪些应该加载、哪些不该加载,只能统统加载。
qdzhuang
发表于 2007-6-4 15:11:26
不过第4点有点不明白,我服务器用centos5 for mi 1cd,scsi是 sym53c8xx,模块方式,modprobe.conf是alias scsi_hostadapter sym53c8xx没有
kernel panic提示,kde说安装程序还是 mkinitrd 都无法做到智能地决策哪些驱动应该进入,那内河没有,它是怎么启动的,现在越来越糊涂了
cjacker
发表于 2007-6-4 15:21:57
不过第4点有点不明白,我服务器用centos5 for mi 1cd,scsi是 sym53c8xx,模块方式,modprobe.conf是alias scsi_hostadapter sym53c8xx没有
kernel panic提示,kde说安装程序还是 mkinitrd 都无法做到智能地决策哪些驱动应该进入,那内河没有,它是怎么启动的,现在越来越糊涂了
你看到centos里面的modprobe.conf的一行是由安装程序写入的。
mkinitrd一定是可以智能决策那些驱动应该进入的,举个最简单的例子,不同的sata controller需要不同的驱动,这些驱动都必须在initrd中,谁来决定他们进入initrd,就是mkinitrd。
安装程序也可以自动判断驱动。
内核提供了modules.pcimap等文件,在/lib/modules/<kernel-version>目录里面,通过这些文件的内容和系统硬件的id,基本可以决定大部分的驱动。
最起码,声卡,网卡,主板相关的驱动都可以确定下来。
因为没办法取到显卡驱动,也就是xorg的.so驱动支持的硬件列表,所以,显卡驱动的对应表是显式维护的,也就是需要开发者手工维护。
下面是intel显卡驱动的一个例子,通过这些也可以实现显卡驱动的探测。
alias pcivideo:v00008086d00001132sv*sd*bc*sc*i* intel
alias pcivideo:v00008086d00002562sv*sd*bc*sc*i* intel
alias pcivideo:v00008086d00002572sv*sd*bc*sc*i* intel
alias pcivideo:v00008086d00002582sv*sd*bc*sc*i* intel
alias pcivideo:v00008086d0000258asv*sd*bc*sc*i* intel
alias pcivideo:v00008086d00002592sv*sd*bc*sc*i* intel
alias pcivideo:v00008086d00002772sv*sd*bc*sc*i* intel
alias pcivideo:v00008086d000027a2sv*sd*bc*sc*i* intel
也就是说,理论上所有的驱动都是可以智能判断的。
jiangtao9999
发表于 2007-6-5 21:48:31
硬件 ID 数据库……………………
:roll:
qdzhuang
发表于 2007-6-6 12:17:46
cjacker不愧为大师级人物,现在我知道mkinitrd是可以智能决策那些驱动应该进入的.
cjacker
发表于 2007-6-7 15:47:36
硬件 ID 数据库……………………
:roll:
这个数据库绝大部分是活的,比如内核部分是可以自动生成的。
即使是外来的ko,通过modinfo也是可以发现的,当然也可以通过编程发现。
比如Everest中的声卡配置工具中不同声卡驱动模块的参数其实是通过.ko读出来的。
目前比较遗憾的是Xorg的so没有任何方式读出其支持的硬件列表,如果这个问题解决了。
自动探测就彻底没有问题了。
当然,需要特殊参数控制的还是要进行交互。
jiangtao9999
发表于 2007-6-7 18:04:54
目前比较遗憾的是Xorg的so没有任何方式读出其支持的硬件列表,如果这个问题解决了。
让 xorg 的驱动接口强行加上可以获取支持的硬件列表的规范就可以了~~
:mrgreen::twisted:
cjacker
发表于 2007-6-8 11:39:47
目前比较遗憾的是Xorg的so没有任何方式读出其支持的硬件列表,如果这个问题解决了。
让 xorg 的驱动接口强行加上可以获取支持的硬件列表的规范就可以了~~
:mrgreen::twisted:
那完了:-D
很多二进制驱动可能要broken了。
qdzhuang
发表于 2007-6-8 12:05:39
是不是xorg就没有软件探测这部分功能?
另外听说fc7能探测显示器
LinuxCoder
发表于 2007-6-8 14:34:03
本人下载了一个最新的magicLinux,可是用起来怎么就不爽呢?
主要是显示上看来不太好,还有加了源后升级,感觉真的很糟糕
sejishikong
发表于 2007-6-8 16:34:46
本人下载了一个最新的magicLinux,可是用起来怎么就不爽呢?
主要是显示上看来不太好,还有加了源后升级,感觉真的很糟糕
那个版本,显示看来不好指的什么?字体?
加了源后升级?怎么加的,升级了什么?
qdzhuang
发表于 2007-6-8 16:54:46
一看就是ubuntu支持者,magic是中文化最好的linux,加上beryl就一个字"cool",支持maigclinux@!!!!!