[size=large]配置LinuX USB设备热拔插[/size][align=center][/align]
一、 工作环境
LinuX Centos 5.3 平台、FAT32 U盘和NTFS移动硬盘各一个。
二、 工作任务目的
公司要求在linux平台上实现USB设备自动热拔插,如:
1. USB设备自动挂载;
2. 挂载后通过SMB服务共享出来,客户端访问权限;
3. USB设备驱动在Linux上自动加载;
注:最好找到相对应功能服务的linux版本。
三、 工作流程
1. 安装HAL、dbus、kernel-module-ntfs
测试采用CentOS5.3系统,默认安装了HAL和DBUS,只需要安装与CentOS 5.3内核相匹配的KERNEL-MODULE-NTFS版本。在这里我以经下载打包放在文件夹内,安装即可。
2. 配置
CentOS5.3对FAT32 U盘是支持热拔插,对于NFTS格式USB设备,只需要新建和修改以下文件即可,操作如下:
1) 创建访问权限755的可执行脚本/usr/lib/hal/hal-unmount.sh ,内容如下:
File: /usr/lib/hal/hal-unmount.sh
#!/bin/sh
# sanity check. DEVNAME should start with a /
[ "$DEVNAME" != "${DEVNAME#/}" ] || exit 0
# Lazily unmount drives which are removed, but still mounted
if [ "$ACTION" = remove ] ; then
if [ -x /usr/bin/pumount ] ; then
/usr/bin/pumount -l "$DEVNAME";
else
/bin/umount -l "$DEVNAME";
rm –rf "$DEVNAME";
fi
fi
exit 0
2) 然后你得告诉HAL当你移除你的U盘时运行这个脚本。在/etc/udev/rules.d/90-hal.rules 中加入以下内容:
File: /etc/udev/rules.d/90-hal.rules
SUBSYSTEM=="block", ACTION=="remove", RUN+="/usr/lib/hal/hal-unmount.sh"
3. SAMBA配置
添加如下配置文件:
#Vi /etc/samba/smb.conf
[usbfile]
Path=/media
Writable=yes
Public=yes
Only guest=yes
添加完成后,重新启动服务:
Service smb restart
4. GUSET用户自动登录
首先创建一个GUEST用户,然后对GUEST用户授权例如:
# useradd sam
创建sam用户
下面设置sam密码
# passwd sam
Changing password for user sam.
New UNIX password:
BAD PASSWORD: it is too simplistic/systematic
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
将sam用户加入到root组
# usermod -G root sam
修改配置文件,并加入以下内容:
File:/etc/gdm/custom.conf
[daemon]
AutomaticLogin=ylm
GtkModulesList=gail:atk-bridge:/usr/lib/gtk-2.0/modules/libkeymouselistener:/usr/lib/gtk-2.0/modules/libdwellmouselistener
AddGtkModules=true
RemoteGreeter=/usr/libexec/gdmgreeter
AutomaticLoginEnable=true
TimedLoginEnable=true
TimedLogin=ylm
TimedLoginDelay=1
注意:开始登录时为出现输入用户名,默认5秒将自动登录GUESTE用户。
5. 测试问题
在安装与配置过程中遇到的问题如下:
1. 安装KERNEL-MODULE-NTFS时,先确定安装GCC,否则会出错;
四、 总结及注意事项
在配置LINUX热拔插时,用了很多办法,遇到很的困惑与不解。刚开始用FreeNAS系统做USB设备热拔插,原因很简单,Thecus Y.E.S.box内置装的是FreeNAS系统,它具有这样的功能,也符合公司的要求;等我摸透Thecus Y.E.S.box后,它是通过硬件的支持才实现USB热拔插的功能,放弃采用FreeNAS系统做USB设备热拔插;为了降低成本,尝试在文本字符界面实现这样的功能,最后没办法先在linux图形界面实现USB设备热拔插;
注意事项:
在配置文件时,注意先备份再修改;安装所有需要的插件;自动开启samba服务;自动关闭防火墙;
以上是我安公司要求写的报告文件,只配置了可读,可写自己去网上去找找!
在这里求大家给个Centos 5.4的kernel-module-ntfs包,一直还没找到它!