Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103654019
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-04-05 18:55:43

作者: Inetxper  出自:
  Ubuntu Gutsy开机时出现”failed to initialize HAL”的解决办法:

  # 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冲突.
阅读(501) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~