LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: d00m3d

最新包括 udev update 的 LFS-Book

[复制链接]
发表于 2006-3-4 02:37:22 | 显示全部楼层
试试把 hal 和 ivman 都装上,我觉得挺好用的。我现在还没用到那么新的 udev,等机器起来后,就测试一下。

兄弟是完全按照 book 上的步骤来的?我是指 udev 的安装。
回复 支持 反对

使用道具 举报

发表于 2006-3-4 03:02:46 | 显示全部楼层
Hotplug 包:
his package contains the scripts necessary for hotplug Linux support, and lets you plug in new devices and use them immediately. It includes support for PCI, Cardbus (PCMCIA), USB and Firewire devices and can automatically configure network interfaces.

Coldplug 包:
Coldplug is responsible for all devices connected before the hotplug system is enabled during the boot process. It also takes care of devices that are not easy to detect.

udev 包:
udev allows Linux users to have a dynamic /dev directory and it provides the ability to have persistent device names. It uses sysfs and /sbin/hotplug and runs entirely in userspace.

HAL:
These pages attempt to provide a specification and an implementation of a hardware abstraction layer.

我想了一下,
1。如果 hotplug 消失了,那么就是用 udev 来处理 /sbin/hotplug 接到的信息。
2。hal 在这里担任什么角色?是 udev 接到信号后,然后再告诉 hal ?还是等到 udev 把信息写入 /sys 后 hal 自动去取?
3。coldplug 也被取消了?用 udev 来处理的话,是怎么做的?

如果一个 U盘 或者 光碟 插入:
1。内核首先响应,然后把信息发送到 /sbin/hotplug。
2。/sbin/hotplug(由udev提供)根据信息来执行响应的动作,比如把信息发送给 udev daemon?
3。udev daemon 收到后,进行模块匹配等,看看是否能找到模块,或者内核有的,加载后,执行 /etc/udev.d/里边的东西,比如建立不同的 node。
4。是谁往 /sys 写入信息的?驱动被加载的时候自己写的,还是 udev 写?我据的是驱动自己。不然就不会有 nvidia 那类问题了。


一篇不错的 udev 说明:
http://webpages.charter.net/deci ... elp_UDEVPrimer.html
回复 支持 反对

使用道具 举报

发表于 2006-3-4 11:43:30 | 显示全部楼层
1.hotplug 问题,现在是这样做的:
  1. # Rules to allow hotplugging of devices with modular drivers
  2. ACTION=="add", SUBSYSTEM=="usb", MODALIAS=="*", \
  3.   RUN+="/sbin/modprobe $modalias"
  4. ACTION=="add", SUBSYSTEM=="scsi", SYSFS{type}=="[07]", \
  5.   RUN+="/sbin/modprobe sd_mod"
复制代码

而以前是调用 hotplug 的,我这没有旧版的,谁看一下旧版的 /etc/udev/

3.coldplug 脚本我不清楚,我现在用的 udev 的 coldplug 脚本好像是发送已经插入的硬件的插入消息
比如,我的鼠标是开机前插入的,udev应该不会发"插入鼠标" 的消息,而udev的开机脚本,会伪造,发出"插入鼠标" 的消息.
回复 支持 反对

使用道具 举报

发表于 2006-3-4 11:58:55 | 显示全部楼层
代码里边的,加载的是基础模块。如果内核没包括相应的模块的话,消息仍然能发出?

比如我没编译 usb 的任何模块,那么插入一个 U盘的话,内核也会知道有一个USB设备插入?
回复 支持 反对

使用道具 举报

发表于 2006-3-4 12:28:15 | 显示全部楼层
Post by 终极幻想
代码里边的,加载的是基础模块。如果内核没包括相应的模块的话,消息仍然能发出?

比如我没编译 usb 的任何模块,那么插入一个 U盘的话,内核也会知道有一个USB设备插入?


不行,usbmouse 依赖于 usb-ohci 之类接口, 没有 usb-ohci 内核不会知道usb设备.
回复 支持 反对

使用道具 举报

发表于 2006-3-4 18:49:54 | 显示全部楼层
有点问题,就是执行到/etc/rc.d/rcsysinit.d/S20swap这个脚本的时候,有可能设备还未生成,导致swapon失败。还有,如果内核版本低于2.6.16,有可能mountfs脚本也会失败。LFS邮件列表提到。
回复 支持 反对

使用道具 举报

发表于 2006-3-4 18:51:37 | 显示全部楼层
swap这个脚本,我觉得可以放到几乎最后再打开,不缺那一点内存。。
回复 支持 反对

使用道具 举报

发表于 2006-3-4 18:57:30 | 显示全部楼层
我是用一个笨方法解决的:
在swap脚本start段添加以下命令:

swapdevice=$(awk '{if ($2="swap") print $1}' /etc/fstab)
while [ ! -e $swapdevice]
do
    sleep 0
done

凭记忆,可能有错。
回复 支持 反对

使用道具 举报

发表于 2006-3-4 19:23:09 | 显示全部楼层
swapoff -a 就可以全部取消了,你是什么意思?
回复 支持 反对

使用道具 举报

发表于 2006-3-4 19:37:26 | 显示全部楼层
就是在生成/dev/hdxx(swap分区)后再swapon -a。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表