Ubuntu 7.10 Gutsy on IBM ThinkPad T40

지금 사용하고 있는 노트북이 ThinkPad T40 모델이다. 14인치 1400×1050 해상도에 풀사이즈 키보드. 적당히 얇고 넓다. 상당히 만족스럽다.
리눅스에서의 드라이버 지원도 훌륭해서 대부분의 부가 기능을 사용 할 수 있다. 이전에 쓰던 삼성 Sense 820 모델도 괜찮았지만, 4년 넘게 쓰다보니 밑판이 발열로 인해 휘고, 급기야 밑판 플라스틱이 삭아서 부스러지기 시작했다. 하지만 이건, 생산년월이 2003년 11월이니까 한 4년정도 됐는데 배터리 수명이 1/3 정도로 줄어든것 말고는 아주 멀쩡하다.

각설하고, 지난달에 우분투가 판올림 됐다. 7.10 베타버전이 나오자마자 업데이트 했는데 음, 7.04 feisty 때는 fn+brightness 키가 오동작 했는데 이젠 제대로 잘 동작한다. fn+볼륨 키도 잘 동작하고. 음… 근데 fn+brightness 키로 밝기 조정은 잘 되는데 그놈 brightness 애플릿하고 연동이 안되네? 그리고 이상하게 배터리가 연결되어 있음에도 불구하고 gnome-power-manager가 전원이  AC 어댑터밖에 없는 걸로 인식한다. 심지어 AC 어댑터를 뽑고 배터리로 동작을 시켜도 AC 어댑터가 연결되어 있다고 인식을 한다. laptop_mode 로 동작을 안 시켜서 그런가?

/etc/default/acpi-support 를 열어서

ENABLE_LAPTOP_MODE=true

옵션을 줬다. acpid를 랩탑 모드로 동작을 시키면 될것 같았는데 여전히 hald가 배터리를 인식못한다. 일단 랩탑 모드로 동작하는게 맞는것 같으니 그대로 두자.

끄응… 뭐냐… 장치 인식이 잘 안되나 싶어서 hald 를 재시작했다. 헉, 이젠 모든걸 제대로 인식 한다. fn+brightness 키와 그놈 brightness 애플릿과도 연동되고 gnome-power-manager도 배터리와 AC 어댑터 모두 인식한다. 골때린다…

그래, 베타 버전이니까 그런걸거야. 정식 버전이 나오면 고쳐져 있겠지. 그러나 정식 버전이 나온지 2, 3주가 지난 지금도 여전히 이 현상은 고쳐지지 않았다. 구글링을 해보니 비슷한 현상이 여러 종류의 노트북에서 보고 되고 있다. 7.10 gutsy 의 hald 가 문제가 있다는 얘기가 많다. 그런가? 아닌데… hald 재 시작하면 모든게 제대로 인식되지 않는가? 적어도 ThinkPad T40 시스템에서 hald는 문제가 없다. 그러면 뭐가 문제인가. init.d 스크립트가 아무래도 수상하다. hald 를 재시작 하니 장치들이 제대로 인식되는 걸로 봐서 hald 보다 나중에 실행되는 init.d 스크립트가 장치 인식과 관련이 있는것 같다.

일단, 현재 runlevel 이 뭐냐…

(1) iam312@contrabass:~$ runlevel
N 2

음… 우분투는 2군. /etc/rc2.d 로 가보자.

이 문제와 관련 있어 보이는 것들은 추려보니 S12hal, S20hotkey-setup, S50acpid, S99acpi-support, S99laptop-mode

음… acpid가 hald보다 우선 순위가 낮은게 수상하다. 일단 hald 보다 먼저 실행되게 10으로 높이자.

(1) iam312@contrabass:/etc/rc2.d$ sudo mv S50acpid S10acpid

리부팅하고 오니, 오… gnome-power-manager 가 전원을 제대로 인식을 한다. acpid 가 처음부터 S50 이었던건 아닐테고, 아마도 시스템->관리->서비스 에서 acpid, apmd 를 껐다 켰다 하다가 우선순위가 변경된듯 하다. 그럼 fn+brightness는? 끄응… 이건 여전히 gnome brightness 애플릿하고 연동이 안된다. 근데 여전히 hald 를 재 시작하면 fn+brightness 키와 그놈 brightness 애플릿과 연동이 되는거다.

hald 를 verbose 모드로 띄우고 /var/log/debug 로그를 살펴봤다.

hald 를 디버깅 모드로 띄우기 위해서는 /etc/default/hal 를 열어서

DAEMON_OPTS=–verbose=yes

를 적어준다

hald 재시작

(1) iam312@contrabass:/etc/init.d$ sudo ./hal restart

(1) iam312@contrabass:/etc/init.d$ tail -f /var/log/debug
:
:
Nov 19 23:53:54 contrabass NetworkManager: <debug> [1195484034.028325] nm_hal_device_added(): New device added (hal udi is ‘/org/freedesktop/Hal/devices/acpi_brightness’).
:
:

응? 전에 안보이던게 보인다! 이거군!!! 역시 새로 인식되는 장치가 더 있던 것이다.
이 문제와 관련 있어 보이는 것들은 S10acpid, S12hal, S20hotkey-setup, S99acpi-support, S99laptop-mode

hal 뒤에 실행되는 넘들을 하나씩 까보자.
S20hotkey-setup 을 열어서 한줄씩 읽어나갔다.
응?

:
:
do_thinkpad () {
    . /usr/share/hotkey-setup/ibm.hk
    modprobe thinkpad-acpi
:
:

찾았다!!! thinkpad-acpi 커널모듈을 집어넣고 있다. 이것도 hald 보다 먼저 실행되야 하는 스크립트다.

(1) iam312@contrabass:/etc/rc2.d$ sudo mv S20hotkey-setup S11hotkey-setup

리부팅하고 오니, 오… fn+brightness 키와 그놈 brightness 애플릿이 연동된다! gnome-power-manager 에서 AC, Battery 별로 LCD 밝기 설정 옵션도 생겼다.

그럼 다음으로 suspend, hibernation 모두 잘 되나? 오오~ 잘되는군!!!
어… 아니다. 자는건 잘되는데 깨어날때 wifi 장치를 깨워주질 못해서 무선네트웍이 먹통이 된다. 다시 구글링을 해 보니 /etc/default/acpi-support 에

MODULES=”iwl4965 iwlwifi_mac80211 cfg80211″
 
 를 추가 하라고 한다. http://www.thinkwiki.org/wiki/Installing_Ubuntu_7.10_(Gutsy_Gibbon)_on_a_ThinkPad_T61 참고.
 
하지만 저건 T60 모델의 경우고 내 T40의 wifi 장치는 iwl4965 드라이버를 사용하는 모델이 아니다. 그래서 iwl4965를 ipw2200 로 변경해 줬다.
 

MODULES=”ipw2200 iwlwifi_mac80211 cfg80211″

 
 
 그리고 suspend 했다가 깨워도 보고, hibernation 했다가 깨워도 보고 했는데 오오~ 잘 깨어나서 네트웍을 새로 잡는다. 좋아!!!

vga 칩이 ATI Technologies Inc Radeon RV250 [Mobility FireGL 9000] (rev 02) 인데 이 9000 모델은 ATI에서 리눅스용 드라이버를 안 만든다. 그래서 오픈소스 드라이버를 써야 하는데 덕분에 그놈에서 compiz나 beryl 같은 눈깔사탕을 사용할 수가 없다. 오픈소스 드라이버로도 compiz-fusion 을 사용할 수 있다. 약간의 수정을 좀 해야 한다(http://wiki.compiz-fusion.org/Hardware/Blacklist 참고. 추가로 /etc/X11/xorg.conf의 DefaultDepth 값을 16으로 낮출 필요도 때에 따라 있다. compiz를 띄우고 나서도 몇가지 손을 볼게 있는데 따로 정리를 해야 겠다.). 좀 아쉽긴 하지만, 가벼운게 좋아서 XFce 를 쓰던 나인데 뭐 그닥 큰 문제는 아니다. wifi 장치가 켜 져 있는데 LED 가 안들어 오는거랑, fn+space 키가 안먹는거 정도가 남았는데 이건 다음에 하기로 하자.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중