当前位置:操作系统 > Unix/Linux >>

使用udev

介绍了在arch中使用udev的一些技巧。

  关于udev的信息可以在下列地址中找到:

  http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev-FAQ

  http://bbs.archlinux.org/viewtopic.php?t=5702&start=0

  As of initscripts 0.7,Arch现在有官方的Udev支持。Arch下的Udev需要以下条件:

  initscripts v 0.7或更新版本

  pacman -Qs initscripts

  2.6内核

  uname -r

  转到Udev需做好几步工作。

  更改内核启动行

  Arch默认会mount devfs,你必须加上"devfs=nomount",告诉它不要这样做:

  GRUB: /boot/grub/menu.lst

  kernel (hd0,0)/vmlinuz26 root=/dev/discs/disc0/part3 devfs=nomount vga=773 ro

  LILO: /etc/lilo.conf

  boot=/dev/discs/disc0/disc append="devfs=nomount"

  (don't forget to run /sbin/lilo afterwards)

  安装udev软件包

  pacman -S udev

  修改/etc/fstab

  sysfs要被注释掉,"usbdevfs"需要改为"usbfs"(两个在一行中)。改完后,看起来就像这样了:

  #sysfs /sys sysfs defaults 0 0

  usbfs /proc/bus/usb usbfs defaults 0 0

  重启

  修改权限及规则

  Udev使用的规则集位于/etc/udev/*,如果你修改过,别忘了为这些文件在pacman.conf中加入NoUpgrade规则。

  简单一点的方法就是建立自己的规则和权限文件。对于设备,Udev是根据其找到的第一个符合的规则来管理的。在你自己的文件名上加上"00-"(是数字0,不是字母o)前缀,你的规则就会是第一个被发现。文件名必须以.rules或.permissions结束,否则就会被忽略。

  permissions文件的例子(/etc/udev/permissions.d/00-myrules.permissions):

  # audio devices

  dsp*:root:users:0660

  audio*:root:users:0660

  midi*:root:users:0660

  mixer*:root:users:0660

  sequencer*:root:users:0660

  sound/*:root:users:0660

  snd/*:root:users:0660

  beep:root:users:0660

  admm*:root:users:0660

  adsp*:root:users:0660

  aload*:root:users:0660

  amidi*:root:users:0660

  dmfm*:root:users:0660

  dmmidi*:root:users:0660

  sndstat:root:users:0660

  # disk devices for having access to audioripping and burning

  

  hdc:root:users:660

  hdd:root:users:660

  # v4l devices for tv and radio cards

  video*:root:users:0660

  radio*:root:users:0660

  winradio*:root:users:0660

  vtx*:root:users:0660

  vbi*:root:users:0660

  video/*:root:users:0660

  vttuner:root:users:0660

  v4l/*:root:users:0660

  # scsi devices, for scsi scanners or cd writers

  sg*:root:users:0660

  pg*:root:users:0660

  cdwriter:root:users:0660

  其他需注意的:

  声卡

  即使你已设置了正确的权限,但系统还是不出声,试试以root身份运行alsaconf,这将在modprobe.conf中加入alias。然后运行alsamixer,查一下是不是什么”特别“的功能,如3D环绕是打开的;再检查一下音量。最后,在rc.conf的modules中加入:

  snd-card-0 snd-pcm-oss

  这样应该就可以了。

  光驱

  如果要抓轨或烧录,你必须改变“真正的”设备(hd*)权限。仅仅改变符号连接的权限是不行的。

  调制解调器

  如果pppd是以root粘滞位运行的,就不需要设置权限。

  打印机

  什么都不需要改。CUPS是以root身份运行的。

  硬盘和USB闪存

  硬盘和USB闪存在fstab中通常都有入口,如果在fstab中设置了"users"用户组,那就没问题了。

  USB扫描仪

  不需修改。大多数扫描仪的应用程序都是使用libusb,并不需与设备节点打交道。你只需设置好hotplug就行了。如果之前可以工作,那么在udev下也可以正常工作。

  Symlinking设备(我不明白)

  这儿只有一个例子,但也能很清楚地说明其如何工作的了。将这个加入到/etc/udev/rules.d/00-myrules.rules:

  # cdrom/cdrw links

  KERNEL="hdc", SYMLINK="dvd"

  KERNEL="hdd", SYMLINK="cdrom cdrecorder"

  #important for modem users, change to ttyS1 if serial port 2 is used

  KERNEL="ttyS0", SYMLINK="modem"

  检查symlimks是否正常工作,不行的话,就重启udev:

  /etc/./start_udev

  mount /dev/pts

  mount /dev/shm

  有关规则的更多信息参见:http://www.reactivated.net/udevrules.php
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,