分享
 
 
 

Fedora Core 4.0 HAL配置即插即用移动存储(USB及1394)的实践

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

由于本人思维固化,对新事物接受不足,所以在学习Fedora Core 4.0 总是用老思维;对于对移动存储,比如U盘;移动硬盘;数码相机,现在大多能在Linux即插即用;只有少数不行;比如笔记本集成的6合1读卡器(好多都不支持,也有支持的);

我对Fedora 用的极少,感觉Fedora 是实验室,新的特性都会在Fedora 中出现,这增强Linux桌面版的易用性;其实这也是好事;

对即插即用的USB存储的原理,bbbush兄弟已经在《设置 fc3 HAL 的 storage-policy 自动挂载优盘上的 vfat 分区》中已经谈过。大家可以去看一下,看过后思路就清晰多了;看过后此文后,功力也会大长;:)

HAL - Hardware Abstraction Layer (硬件提取层),这是我直译的,不知道怎么译才好,以我的理解和Windows的硬件管理类似;

而我写的这篇其实一文不值,为什么这样说呢?因为没有技术含量,只是为了解决问题而写,没有原理,只是改几行或者加几行的字;可能对新手还有点用;

一、USB移动存储;

数码相机;MMC 卡, SD卡;USB MINI 盘;USB移动硬盘(有个USB接口的盒子,里面装的是笔记本硬盘、大电脑硬盘),1394接口的移动存值储;录音笔;DV等,大多都是用的移动存储;

二、fat 、ntfs、fat32、reiserfs 、ext3及hfs文件系统的支持;

Fedora core 4.0 几乎支持所有文件系统,所以没有必要编内核,如果您和我一样有一个移动硬盘是NTFS分区的,请安装内核NTFS模块的支持;

内核已经支持了fat格式的,无论是 fat16 fat32都已经支持;对于NTFS格式的文件系统的支持,要安装NTFS的kernel-moduls ;我感觉NTFS移动磁盘分区,没有太大的意义(但我有一个移动硬盘,有一个分区就是ntfs的),因为NTFS是不可写的;所以还是用fat或者fat32吧;

如果您的机器有1394接口,如果想购买容量比较大的存储设备,建议还是买1394接口的盒子,USB对大文件的写入支持并不好,无论是什么文件系统(以事实说话,我试过);另外1394接口的硬盘,能在系统启动的过程中稳定的加载;

三、即插即用,系统自动mount 移动存储设备;

1、首先确保 以下的几个服务是打开的;

[root@localhost beinan]# chkconfig --list |grep haldaemon

haldaemon 0:启用 1:启用 2:启用 3:启用 4:启用 5:启用 6:启用

[root@localhost beinan]# chkconfig --list |grep messagebus

messagebus 0:启用 1:启用 2:启用 3:启用 4:启用 5:启用 6:关闭

如果在3和5模式并未启用,则需要打开;

[root@localhost beinan]# chkconfig --level 0123456 haldaemon on

[root@localhost beinan]# chkconfig --level 0123456 messagebus on

在所有模式化全部打开;查看我们所提及的服务是否在所有模式运行;请用前面所说的 chkconfig --list |grep 服务器名;

如果这样做后,我们提到的这些服务,开机自动在所有模式下运行;不用我们人为去干涉了;不过有时为了调试,还得我们自己来打开和关闭;看下一部分;

2、以standalone模式运行的服务,大多是在 /etc/init.d目录中;

用法:

/etc/initrd 服务器 start|stop|status|restart|condrestart

举例:

比如我们要开启 haldaemon 服务器则是:

[root@localhost beinan]# /etc/init.d/haldaemon start

启动 HAL 守护进程: [ 确定 ]

[root@localhost beinan]# /etc/init.d/haldaemon restart

正在关闭 HAL 守护进程: [ 确定 ]

启动 HAL 守护进程: [ 确定 ]

[root@localhost beinan]# /etc/init.d/haldaemon stop

正在关闭 HAL 守护进程: [ 确定 ]

[root@localhost beinan]# /etc/init.d/haldaemon status

hald 已停

这个初学的弟兄都懂;start 启动; restart 重启; stop 停止;status 状态;

我们在本文提到的三个服务器,都在 /etc/init.d目录中;

3、其实如果能把上面的几步弄好了,其实移动存储设备大多都是即插即用的,同时也是自动挂载的;

虽然系统即插即用了,但对权限可能不太符合我们的需要;另外如果在fat和ntfs文件系统中存放了文本,对文件名的中文支持不太友好;所以......解决.....

四、解决vfat和ntfs文件系统正常显示中文文件名和文件权限的解决;

1、确认系统的locale ;

[beinan@localhost ~] $ locale

LANG=zh_CN.UTF-8

LC_CTYPE="zh_CN.UTF-8"

LC_NUMERIC="zh_CN.UTF-8"

LC_TIME="zh_CN.UTF-8"

LC_COLLATE="zh_CN.UTF-8"

LC_MONETARY="zh_CN.UTF-8"

LC_MESSAGES="zh_CN.UTF-8"

LC_PAPER="zh_CN.UTF-8"

LC_NAME="zh_CN.UTF-8"

LC_ADDRESS="zh_CN.UTF-8"

LC_TELEPHONE="zh_CN.UTF-8"

LC_MEASUREMENT="zh_CN.UTF-8"

LC_IDENTIFICATION="zh_CN.UTF-8"

LC_ALL=

[beinan@localhost ~] $

如果您的系统编码是gb2312、gbk、gb18030的;就不要改locale;我们只是改hal服务器的一个文件就行;

2、改hal的配置文件;

在Fedora 4.0 中,hal服务器关于移动存储配置文件

/usr/share/hal/fdi/policy/10osvendor/10-storage-policy.fdi ;

在更改之前,请备份;

[root@localhost 10osvendor]# cp 10-storage-policy.fdi 10-storage-policy.fdiBAK

我们打开 10-storage-policy.fdi 文件;然后可以加下面的两段;

<device>

<match key="volume.fsusage" string="filesystem">

<match key="volume.fstype" string="vfat">

<merge key="volume.policy.should_mount" type="bool">true</merge>

<merge key="volume.policy.mount_option.auto" type="bool">true</merge>

<merge key="volume.policy.mount_option.user" type="bool">true</merge>

<merge key="volume.policy.mount_option.rw" type="bool">true</merge>

<merge key="volume.policy.mount_option.utf8" type="bool">true</merge>

</match>

</match>

</device>

<device>

<match key="volume.fsusage" string="filesystem">

<match key="volume.fstype" string="ntfs">

<merge key="volume.policy.should_mount" type="bool">true</merge>

<merge key="volume.policy.mount_option.auto" type="bool">true</merge>

<merge key="volume.policy.mount_option.user" type="bool">true</merge>

<merge key="volume.policy.mount_option.umask=000" type="bool">true</merge>

<merge key="volume.policy.mount_option.utf8" type="bool">true</merge>

</match>

</match>

</device>

加在下面这段的后面;

<device>

<match key="info.udi" string="/org/freedesktop/Hal/devices/computer">

<merge key="storage.policy.default.mount_root" type="string">/media</merge>

<merge key="storage.policy.default.use_managed_keyword" type="bool">true</merge>

<merge key="storage.policy.default.managed_keyword.primary" type="string">managed</merge>

<merge key="storage.policy.default.managed_keyword.secondary" type="string">kudzu</merge>

<merge key="storage.policy.default.mount_option.noauto" type="bool">true</merge>

<merge key="storage.policy.default.mount_option.pamconsole" type="bool">true</merge>

<merge key="storage.policy.default.mount_option.exec" type="bool">true</merge>

</match>

</device>

注:如果您的系统的编码是 gb2312、gbk、gb18030或者其它的,请改我们加的那两段中的 utf8的,改为cp936或者 gb2312 ;一步一步的实验,总会行的通的;

3、重启 hal守护程序;

[root@localhost beinan]# /etc/init.d/haldaemon restart

正在关闭 HAL 守护进程: [ 确定 ]

启动 HAL 守护进程: [ 确定 ]

4、插上USB或1394设备;点桌面的计算机就能看到磁盘的图标;

有时可能慢一点出来,是不是挂载了,挂载到哪去了,我们可以用 df -lh 来查看;

[root@localhost beinan]# df -lh

Filesystem 容量 已用 可用 已用% 挂载点

/dev/hda8 11G 5.9G 4.5G 58% /

/dev/shm 236M 0 236M 0% /dev/shm

/dev/sdc5 5.2G 63M 4.9G 2% /media/usbdisk2

/dev/sdc1 4.2G 1.4G 2.8G 34% /media/usbdisk1

/dev/sdb1 988M 3.7M 984M 1% /media/usbdisk

/dev/sda1 56G 22G 35G 39% /media/ieee1394disk

5、是不是权限能让普通用户可写的测试;

如果是fat 或者 fat32的文件格式,我们在 10-storage-policy.fdi 中这个文件中已经定义了mount的option ,比如 user 和rw,用户可读可写;

如果是ntfs的分区,我们设置了mount 的option 的umask=000 ,这样所有的用户都有所有的权限,但ntfs分区只能在 Linux 下可读;没有太大的意义;

如果是ext3、reiserfs、ext2文件系统,如果能让普通用户拥有可读写的能力,查看挂载点到哪里了,执行一下 chmod -R 777 目录名 ;这样所有的用户就可读可写可

执行;而且每个用户的文件相互独立,相互之间保密;中文支持不存在问题,如果出现乱码,可以用export LANG= 来临时设置一下编码;比如export LANG=zh_CN

如果是其它文件格式,一是要支持内核才行;大多FC4 已经支持了,比如hfs文件系统;

五、关于hal配置文件的学习的几点提示;

1、查看 /usr/share/doc/hal-0.5.2/conf

2、查看 hal的包分而在系统的何处,也能打到一点提示的;

[root@localhost beinan]# rpm -ql hal

3、文档在 /usr/share/doc/hal-0.5.2/ 的目录;有配置文件的示例;

4、HAL - Hardware Abstraction Layer (硬件提取层),

这是我直译的,还是硬件抽象层?感觉和windows的硬件管理有点类似;我们能通过lshal|more 来查看;

[root@localhost beinan]# lshal |more

还有一个更为直观的工具; hal-gnome ,能通过apt 或者 yum 获取;安装完成后,有一个更为直观的hal图形界面;

[root@localhost beinan]# hal-device-manager

5、hal配置硬件较为灵活;而且语法也比较简单

我们应该根据 lshal 或者 hal-device-manager 来查看系统的设备;hal 能管理所有的设备;而且结构清晰清了;我也是为了解决问题,看了man 才找到 hal;后来又找到bbbush 兄弟的帖子,通过bbbush兄弟的帖子(一个大大的精华),我却没有发现,浪费了我好多的时间;:(

目前我也只是在实践中即插USB ;1394 移动存储设备而用hal ,更直接的说是为了解决问题而做一些测试和实践;更多的就不懂了:(

如果想指定一个设备以 开头,以结层,和html语法类似;匹配,如果想要把设置更精确的区配,应该在多次匹配;在这里面放上我们对设备所指行的动作,比如是否加载,如果是,就true ,是否关系是逻辑关系bool 型;也就是1和0,通过lshal能得到;另外 string 是字符串,比如mout_root (挂载点) /media ,这也在lshal中可以找到;所有的条件信息,都可以在 lshal 中得到;

一个条件一行,是我们要未系统执行我们的动作的合集;而 是我们要求系统匹配硬件更为精确,应该是交集,比如有些设备,有些参数是一样的,这种情况下要多次匹配;但是说越精确越好;比如移动存储,我们可以找到所有的移动存储的相同信息来 ,这样共性的设备就能动起来了;

我只是说一点点原理,其实系统默认的配置文件足可以让我们的设备动起来;没有必要改动的太多;

后记:为新手而写;和新手弟兄同学,希望能与弟兄们交流;

参考:

1、 《设置 fc3 HAL 的 storage-policy 自动挂载优盘上的 vfat 分区》── bbbush

2、 HAL 官方站: http://freedesktop.org/Software/hal

4、 man fsck-sync

5、 man mount

6、 http://www.ometer.com/hardware.html

7、 http://vrfy.org/projects/hal/hal-spec.html

500) {this.resized=true; this.width=500;}" onmouseover="this.style.cursor='hand'" onclick="{window.open('http://www.linuxsir.org/main/files/usblinuxsir.org1394000.jpg');}" src="http://www.linuxsir.org/main/files/usblinuxsir.org1394000.jpg" onmousewheel="return bbimg(this)" weight="100" 500) {this.resized=true; this.width=500;}" onmouseover="this.style.cursor='hand'" onclick="{window.open('http://www.linuxsir.org/main/files/usblinuxsir.org1394001.jpg');}" src="http://www.linuxsir.org/main/files/usblinuxsir.org1394001.jpg" onmousewheel="return bbimg(this)" weight="100"

《Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍》

《实例解说 fdisk 使用方法》

《在Fedora core 4.0 加载NTFS和FAT32分区详述》

《合理规划您的硬盘分区》

《系统引导过程及硬盘分区结构论述》

《Fedora Core 4.0 HAL配置即插即用移动存储(USB及1394)的实践》

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有