LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1066|回复: 4

LFS中U盘使用问题

[复制链接]
发表于 2006-2-4 22:57:31 | 显示全部楼层 |阅读模式
以下是我今天配置USB的过程,其中难免有些理解上的错误,还望指正

原LFS系统中,插入U盘,UDEV没有自动加载usb-storage, sd_mod, scsi_mod模块.(只要加载usb-storage模块,根据依赖关系,可自动加载后面两个), 也没有在/dev目录下创建sda或 sda1节点.U盘不能使用.
手动加载usb-storage模块,插上U盘,可以自动创建sda1 sda节点.U盘可以使用

根据LFS-6.0BOOK中关于UDEV的描述:
---------------------------------------------------------------
"处理可热插拔/动态设备
当您插入一个设备,例如一个 USB(Universal Serial Bus 通用串行总线) 接口的 MP3 播放器,内核会检测到设备连接,并产生一个热插拔事件,如果驱动程序已经加载(要么是因为驱动已经编入内核,要么是已经通过 S05modules  启动脚本加载了),udev  将被调用,根据 /sys  目录下的 sysfs  数据来创建相应的设备节点。如果该设备的驱动是一个未加载的模块,将设备连接到系统上只会让内核的总线驱动产生一个热插拔事件,通知用户空间有新设备连接,但并不加载驱动。事实上,什么都没有做,设备仍然不能使用。
----------------------------------------------------------------------
USB驱动是usb-storage模块,我想这里是属于第二种情况, dmesg显示有"kobject_hotplug: /sbin/udevsend....................."说明产生了一个热插拔事件,但未加载驱动.

在BOOK中还有如下内容:
----------------------------------------------------------------
创建设备的问题

自动创建设备节点的时候,存在一些已知的问题:

1) 某个内核驱动可能没有将其数据导出到 sysfs。

这个问题在内核源代码树之外的第三方驱动程序上尤其常见,结果是这些驱动无法创建其设备节点。用 /etc/sysconfig/createfiles 配置文件手动创建这些设备,参考内核文档里的 devices.txt 文件或者该驱动的文档以获得正确的主/次设备号。
-----------------------------------------------------------------
这里没有加载驱动,应该不是"没有将数据导出到sysfs

安装HOTPLUG.
直接"make install"安装
LFS中是用S10udev初初始化脚本负责在 Linux 启动的时候创建设备节点,该脚本首先将 /sbin/udev  注册为热插拔事件处理程序。
该脚本中有一行:
echo /sbin/udevsend > /proc/sys/kernel/hotplug
注释掉,修改为
echo /sbin/hotplug > /proc/sys/kernel/hotplug

启动LFS,插上U盘,自动创建节点,加载模块,U盘可以使用
 楼主| 发表于 2006-2-4 23:02:01 | 显示全部楼层
我想问的是,原LFS的设置中“用S10udev初初始化脚本负责在 Linux 启动的时候创建设备节点”,为何不能自动创建节点,加载模块???宿主系统中使用的是一样的内核配置,却可以自动加载,(我想这也许是宿主系统中配置文件起的作用)是什么问题?
如果不使用HOTPLUG,就按原来LFS-BOOK中的安装,怎样才能自动加载,使用U盘???
回复 支持 反对

使用道具 举报

发表于 2006-2-4 23:47:41 | 显示全部楼层
我的系统,可以自动加载,但是我的 usb-storage 是buildin的,不是module的。
以前研究过自动加载,后来由于懒惰,就没继续了。。。。。
回复 支持 反对

使用道具 举报

发表于 2006-2-5 00:49:40 | 显示全部楼层
Post by 终极幻想
我的系统,可以自动加载,但是我的 usb-storage 是buildin的,不是module的。
以前研究过自动加载,后来由于懒惰,就没继续了。。。。。
你上次的HAL+ivman不就可以了嗎?
回复 支持 反对

使用道具 举报

发表于 2006-2-5 01:24:41 | 显示全部楼层
我的那个实验和这个问题不一样。

这个问题是,不产生 sda1 这个设备文件。好像是内核并不知道该设备的存在。

我的则是要自动生成fstab信息,然后自动mount。比如同时插了2个USB盘,那么就在fstab中自动生成2条相关的记录,然后自动mount上。


我不清楚的是,如果usb-storage编译成module的话,我的机器是否也会有这个问题。晚上试试。。嘿嘿。。。
回复 支持 反对

使用道具 举报

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

本版积分规则

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