LinuxSir.cn,穿越时空的Linuxsir!

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

gentoo系统全局移除hal [附xorg-server_with_udev ebuild]-附件更新

[复制链接]
发表于 2010-3-24 16:14:48 | 显示全部楼层 |阅读模式
经过几天的测试和努力,终于将Gentoo系统中的HAL移除了,目前可以保证系统各方面运行正常,唯一的缺点是:由于xorg-server还没有发布1.8,当前1.7版本还不支持udev的输入设备热插拨功能。以下是移除hal过程中的注意事项:
     1、U盘、硬盘的windows分区、光驱的自动挂载使用devicekit-disks代替。U盘和光驱可以在普通用户环境中自动挂载,但windows分区则必须安装polkit-gnome才能正常挂载,并且不是自动挂载,还要通过polkit的验证,输入root用户密码。
     当然,要实现上述功能,还有一点就是[color="Red"]emerge gvfs要增加gdu支持并禁用hal功能,即:
USE=“gdu -hal” emerge gvfs

     2、安装xorg-server:
                             
USE=“-hal” emerge xorg-server

     之后要编辑/etc/X11/xorg.conf,并[color="red"]在原来的基础上添加关于鼠标和键盘的内容。当然,此时仍然可以使用evdev作为驱动。[color="Navy"]安装完下面提供的xorg-server ebuild后,xorg.conf中关于鼠标和键盘的内容可以注释掉了。
     3、最关键的是系统运行服务的改变:
   
#rc-update del hal default
     #rc-update add consolekit default

     因为之前存在hal服务的时候,系统在启动过程中会自动启动consolekit服务,因此,如果系统服务没有consolekit的,则要手动添加。如果不然,将会遇到gdm启动后,一没有登录用户列表、二所有gdm按钮失效的问题,只能通过再次启动gdm解决。但加入consolekit服务后,此问题即可解决。
    4、编辑/etc/conf.d/xdm,将
NEED_HALD="auto"
改为
NEED_HALD="no"

至此,全局移除hal工作完成,系统工作正常,可以在/etc/make.conf中全局禁用hal了。
     至于为什么要移除hal,我的出发点很简单:1、hal的代码已经不再被维护了;2、用于取代hal部分功能的devicekit-{power,disks}已经足够成熟;3、可以减少系统服务启动项,尤其是hald的启动时间明显较长。

[color="RoyalBlue"] 根据3楼的提醒,本人制作了包含libudev补丁的xorg-server ebuild。本ebuild默认启用udev,并移除hal的USE,强制禁用hal支持。见附件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2010-3-24 16:56:53 | 显示全部楼层
试着照做看看,xorg 1.6不知道会不会活不成,完成再回来报告。
回复 支持 反对

使用道具 举报

发表于 2010-3-24 18:02:35 | 显示全部楼层
看看这里:http://aur.archlinux.org/packages.php?ID=32428

使用udev作为xorg-server后端,也就是xorg-server1.8做的。一样支持自动识别

consolekit还需要额外启动吗,arch里面没有这个服务,也正常阿,gdm自己支持consolekit的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-24 19:46:06 | 显示全部楼层
系统不同,服务依赖不同。
回复 支持 反对

使用道具 举报

发表于 2010-3-24 21:12:04 | 显示全部楼层
前些时间,我也剔除hal了。
很简单,就是把USE里-hal,然后emerge -avquND world。就可以了。
系统大都正常,就是挂在usb盘显示Not Authorized
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-24 21:24:16 | 显示全部楼层
Post by lingyunxs;2077584
前些时间,我也剔除hal了。
很简单,就是把USE里-hal,然后emerge -avquND world。就可以了。
系统大都正常,就是挂在usb盘显示Not Authorized


所以要安装polkit-gnome
回复 支持 反对

使用道具 举报

发表于 2010-3-24 22:15:38 | 显示全部楼层
感谢楼主分享,hal已经快过时了么?还是等xorg-server 1.8出来再说。
回复 支持 反对

使用道具 举报

发表于 2010-3-24 23:06:40 | 显示全部楼层
楼主,还不能emerge -C hal吧?
回复 支持 反对

使用道具 举报

发表于 2010-3-25 00:34:32 | 显示全部楼层
$ equery d hal
* These packages depend on hal:
app-emulation/virtualbox-ose-3.1.4 (hal ? sys-apps/hal)
gnome-base/gnome-applets-2.28.0 (hal ? >=sys-apps/hal-0.5.3)
gnome-base/gnome-vfs-2.24.2-r1 (hal ? >=sys-apps/hal-0.5.7)
gnome-base/gvfs-1.4.3 (>=sys-apps/hal-0.5.10)
gnome-extra/gnome-power-manager-2.28.3 (hal ? >=sys-apps/hal-0.5.9)
media-gfx/gimp-2.6.8 (hal ? sys-apps/hal)
media-libs/libgphoto2-2.4.8-r1 (hal ? >=sys-apps/hal-0.5)
media-sound/pulseaudio-0.9.21.2-r1 (hal ? >=sys-apps/hal-0.5.11)
media-sound/rhythmbox-0.12.6 (>=sys-apps/hal-0.5)
sys-fs/ntfs3g-2010.3.6 (hal ? sys-apps/hal)
x11-base/xorg-server-1.7.6 (hal ? sys-apps/hal)

里面有gvfs和rhythmbox依赖于hal,不过好象是误报
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-25 08:39:58 | 显示全部楼层
1、用equery查询的依赖关系,是系统中已安装的软件中有哪些可能依赖于某个软件,并不代表那些软件在实际系统中真的依赖该软件。如果您用的是portage-2.2(早期的是否可以我不清楚),则可以emerge -pv --depclean hal来查询,hal是否可以从系统中安全移除。
2、我所指的可以全局移除只代表gnome or gnome-light桌面环境,至于其他桌面环境是否有办法可以安全移除hal,我没有试验过。
回复 支持 反对

使用道具 举报

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

本版积分规则

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