Chinaunix首页 | 论坛 | 博客
  • 博客访问: 662758
  • 博文数量: 810
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5025
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-22 11:41
文章分类

全部博文(810)

文章存档

2011年(1)

2008年(809)

我的朋友

分类: LINUX

2008-08-22 11:50:21


UbuntuGutsy开机时出现”failedtoinitializeHAL”的解决办法:

  #mv/etc/rc2.d/S12hal/etc/rc2.d/S13hal
  #mv/etc/rc2.d/S13gdm/etc/rc2.d/S14gdm

  其中第二步视gdm项的启动顺序而定,只要gdm比hal启动级大即可.比如S14gdm的启动级就比S13hal大.以下有启动级的简介.

  问题原因其实是/etc/init.d/rc文件中的一句CONCURRENCY=shell造成的.默认是none.而设为shell之后系统加载将并行启动程序.而concurrency=none则不会.并行启动将会大大节省系统启动的时间.因此很多linux优化的文章中都会介绍这一方法.

  启动项的启动顺序是由/etc/rc(n).d/里各链接名指定的.比如此例中/etc/rc2.d/S12hal就比S13gdm先启动,而相同S值的项目在concurrency=shell的情况下将并行启动.

  回到问题本身.要想让系统正常工作,必须先让dbus在hal之前启动,然后才是gdm。gutsy之前的版本都是这么做的,即使设为shell也没有问题.而升级到gutsy后,hal与dbus处于同一启动级别.因此在concurrency=shell设置下由于hal和dbus同时启动导致hal无法读取dbus.因此只需要将hal的启动级调到dbus之后即可.而为了安全起见,也将gdm的启动级从13调到14,以防止与hal的13冲突. 下载本文示例代码
阅读(192) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~