본문 바로가기

Skills/mY Technutz

HAL 데몬 사용하기 (Simple)

Redhat 6버젼 이부후터 kudzu 와 /etc/sysconfig/hw.conf 가 없어짐에 따라

하드웨어 정보를 확인하는 부분에 대해서 애먹는 사람들이 꽤나 많아졌더라..

그래서 간략하게 hal 설명과 사용법좀 날려볼까 한다.

일단 Kernel 2.6 버젼부터 HAL 데몬은 사용되기 시작했고,

이녀석은 좀더 정확하고 유연하게 장치에 대해서 동적으로 인식 할 수 있도록 

도와주기 위해서 도입되기 시작되었다.

( Hardware Abstraction Layer 의 약자이다. )

일단 이녀석이 하는일들은 많은데 가장 간단한걸 예로 들자면,

USB 를 꽂았을때 자동으로 마운트 시켜주는 가장 큰 역할을 한다. ㅋ

아 설명 안하려고 했는데 또 주저리주저리 씨부려쌌다...

그냥 명령어들만 보도록 하자.

가장 익혀둬야 하는 커맨드는 바로 lshal 이다.

이녀석은 Hardware 의 정보들을 복합적으로 다양하게 보관하고 있다.

기존의 hw.conf 를 뒤지지 말고 lshal 을 이용해 보면 된다.

[root@node2 ~]# lshal  | grep net
udi = '/org/freedesktop/Hal/devices/net_computer_loopback'
  info.capabilities = {'net', 'net.loopback'} (string list)
  info.category = 'net.loopback'  (string)
  info.subsystem = 'net'  (string)
  info.udi = '/org/freedesktop/Hal/devices/net_computer_loopback'  (string)
  linux.subsystem = 'net'  (string)
  linux.sysfs_path = '/sys/devices/virtual/net/lo'  (string)
  net.address = '00:00:00:00:00:00'  (string)
  net.arp_proto_hw_id = 772  (0x304)  (int)
  net.interface = 'lo'  (string)
  net.linux.ifindex = 1  (0x1)  (int)
  net.originating_device = '/org/freedesktop/Hal/devices/computer'  (string)
  net.physical_device = '/org/freedesktop/Hal/devices/computer'  (string)
  info.product = '82545EM Gigabit Ethernet Controller (Copper)'  (string)
  pci.product = '82545EM Gigabit Ethernet Controller (Copper)'  (string)
[root@node2 ~]#

이것은 사실 hal-device 를 옵션주지 않고 보았을때와 동일한 결과를 수행한다.

다음은 방금 언급한 hal-device 이다. 이것은 hal 에 기록되어 있는 정보들을

추가 및 삭제 할 수 있게 해주는 커맨드이다.

root@node2~ ]# hal-device -r net_00_0c_29_64_82_bf
removed: /org/freedesktop/Hal/devices/net_00_0c_29_64_82_bf

이렇게 쉽게 삭제된다.

추가는 -a 옵션을 주면 된다.

이제 인터페이스 이름을 변경하고자 할때의 방법이다.

root@node2~ ]# hal-set-property --udi /org/freedesktop/Hal/devices/net_00_0c_29_64_82_bf --key net.interface --string "eth4"
root@node2~ ]#

HAL 데몬의 특징은 구지 재시작하거나 하지 않아도 자동으로 정보를 가져오고

갱신한다는 특징이 있다.

참고로 일부 하드웨어의경우 모듈을 Reload 해주어야만 적용되는 경우도 있다.

더이상 쓰는건 귀찮으니 끝~