thinkpad-osd & acpi_ibm - BBS

Ursula avatar
By Ursula
at 2005-09-27T08:35

Table of Contents

(重貼一次,在 google 上貼的似乎不見了 @@)

現在的硬體廠商幾乎都是綁著 Windows出售筆記型電腦,出廠的時候通常都會有一些方
便的快速鍵(如調整螢幕亮度、音量等),按下去的同時也多半會有osd(on screen
display)提示顯示在螢幕上,方便使用者知悉目前按鍵狀況,比如說 IBM Thinkpad 都
會有一些音量大小按鍵(如 X, T series),或是有 home/mail/search/favorites 等快
速鍵(如 A, S, I series),可惜的是這些都是由軟體控制,因此有些可能有可能會被
FreeBSD支援,有些可能就沒有支援。自 FreeBSD-5 之後,acpi(4)已有顯著的改進,
自freebsd-5.4 以後 cpufreq 架構出來,進而有了 powerd(8) 等電源控制的工具開發
出來,搭配這些,在筆記型電腦上使用 FreeBSD 比起以前更便利。不過這篇文章我把
重點放在 thinkpad osd 上面。

提到 Thinkpad OSD 之前,我們來看一些歷史,acpi_ibm(4): ACPI extra drivers
最初是由渡邊尊紀(Takanori Watanabe)所撰寫,後來大部份的code再由 Markus
Brueffer 重新撰寫(*1),2005/05/31 由 Brueffer 在 freebsd-acpi mailing
list 中徵求測試,而 acpi_ibm(4) 改進的特點有:

(1) 重新在 sysctl tree 中定位
hw.acpi.ibm,並且重新命名部份的 sysctls(目前的sysctls 為
dev.acpi_ibm)
(2) 支援更多熱鍵 (音量, Fn+Home/End: 調整螢幕亮度,
Fn+PgUP: LED, Access IBM 鍵)
(3) 增加 acpi events 支援
(4) 可以改變音量、靜音、螢幕亮度、還有 thinkpad led
light(其他部份 sysctls 為唯讀)
(5) 支援讀取風扇狀態及速度(但是不能更動 sysctls)
(6) 支援最多8個溫度感測器

prerequisite:
FreeBSD 6.0以上或 current

I. 安裝設定

1. 首先載入acpi_ibm.ko,或是直接寫入核心設定檔中:

device acpi_ibm

如果要使用動態核心模組的話,請使用

#kldload acpi_ibm.ko

或是寫入 /boot/loader.conf 加入

acpi_ibm_load="YES"

載入之後 dmesg 會出現 acpi_ibm0: <IBM ThinkPad ACPI Extras> on acpi0

2. 從 ports 安裝 deskutils/tpb

怎麼從 ports 安裝,請看 handbook
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ports-using.html

3. 設定 .tpbrc

% cp /usr/local/etc/tpbrc.default ~/.tpbrc
% vi ~/.tpbrc
我的設定為(有更動過的,其餘為預設):

# THINKPAD 鍵,我設定為開啟出 aterm
THINKPAD /usr/local/bin/aterm -title console
# Fn 鍵,因為在我的 X31 上面, Fn+F3
仍然無作用,因此我自行設定
# 按下 Fn 強制將螢幕關閉(在 X 底下)
fn /usr/X11R6/bin/xset dpms force off
# 顯示字型,可以用 xfontsel 自行選擇
OSDFONT -*-terminal-*-*-*-*-*-*-*-*-*-*-*-*
# 顯示的顏色,你可以從 ports 安裝 xcolors
去選擇顏色名稱
OSDCOLOR Green
# osd position 顯示的位置
OSDPOS MIDDLE
# 對齊方向
OSDALIGN CENTER

(請自行依照需求設定,參考 tpbrc.default
裡頭的說明)

II. acpi_ibm.ko

接下來我們實際來測試看看(以 IBM Thinkpad X31為例,”/*
*/” 內為我的註解)

# sysctl -a | grep ibm
dev.acpi_ibm.0.%desc: IBM ThinkPad ACPI Extras
/*以下表示在這個 sysctl 所使用的是 acpi_ibm(4)
的驅動程式*/
dev.acpi_ibm.0.%driver: acpi_ibm
dev.acpi_ibm.0.%location: handle=\_SB_.PCI0.LPC_.EC__.HKEY
/* plug and play information*/
dev.acpi_ibm.0.%pnpinfo: _HID=IBM0068 _UID=0
dev.acpi_ibm.0.%parent: acpi0
dev.acpi_ibm.0.initialmask: 2060
/* 目前有的 mask ,請 man acpi_ibm(4)*/
dev.acpi_ibm.0.availmask: 2524
dev.acpi_ibm.0.events: 0
dev.acpi_ibm.0.eventmask: 2060
/* 熱鍵,這個 sysctl 也是唯讀的 */
dev.acpi_ibm.0.hotkey: 2448
/* LCD 螢幕亮度,可調整,共有 8 個階段可調整:0, 14,
28, 42, 57, 71, 85, 100% */
dev.acpi_ibm.0.lcd_brightness: 4
/* 音量控制,具有15個階段可以調整,0, 7, 14, 21, 28, 35,
42, 50, 57, 64, 71, 78, 85, 92, 100% */
dev.acpi_ibm.0.volume: 9
/* 靜音 */
dev.acpi_ibm.0.mute: 0
/* 螢幕上方的 LED 小燈 */
dev.acpi_ibm.0.thinklight: 0
/* 藍芽模組,我這臺沒有藍芽 */
dev.acpi_ibm.0.bluetooth: 0
/* 無線網路模組 */
dev.acpi_ibm.0.wlan: 1
/* 散熱風扇速度,0 是關掉,最大是7,唯讀的 sysctl */
dev.acpi_ibm.0.fan_speed: 0
/*
風扇狀態,為有或無,這邊並不是表示風扇的開或關,請注意*/
dev.acpi_ibm.0.fan: 1
/* 內建的溫度感測器,最多支援 8 個感測器,分別為
cpu,mini pci
模組,硬碟,顯示晶片(GPU),內建電池,ultrabay 電池,
內建電池,ultrabay 電池的溫度,單位是攝氏。 */
dev.acpi_ibm.0.thermal: 52 -1 61 47 38 -1 34 -1


使用:
/usr/local/bin/tpb
for example:

tpb --osd=on --verbose

有圖有真相:
http://psilotum.twbbs.org/images/tpb.png

註記:
在 thinkpad
部份機種鍵盤上方向鍵旁邊有兩個鍵,在原本設計中,為瀏覽網頁能看前一頁及後一頁,但只侷限於
IBM PRELOAD_OS,如果要啟用,可以在 X 啟動後,使用
xmodmap(1)修改,或者你也可以改成你想要的快速鍵。以下範例為
page up / page down

xmodmap -e "keycode 233 = Page_Down"
xmodmap -e "keycode 234 = Page_Up"

Reference:
1) Markus 於 May 31, 2005 在 freebsd-acpi/mobile mailing-list
所發佈的信及其討論串
http://lists.freebsd.org/pipermail/freebsd-acpi/2005-May/001567.html
http://lists.freebsd.org/pipermail/freebsd-acpi/2005-June/001608.html

--
Tags: BBS

All Comments

重開機後

Hedwig avatar
By Hedwig
at 2005-09-27T01:16
我是用 RHEL AS 4 最近剛架的本來一切都正常 ! 好不容易把版都開好了 ! 但是不小心再新增一個版時直接在 分類看版區給他新增一個版 ! 結果之前開的版就通通不見 ! 進精華區也是 ! 雖然都還沒文章 at 但開版開了好久 ! 不知有沒有辦法解決 接著更神的又來了 ! 我把機器重 ...

安裝x window(xorg)的問題

Iris avatar
By Iris
at 2005-09-26T21:46
因為我startx時會出現: unable to open /dev/agpgart (no such file or directory) 所以我就去/dev找有無agpgart,結果是沒有, 看很多文件說只要kernel裡有device agp這一行就可以了, 可是我的kernel有這一行阿, 但是為什麼 ...

samba 3.0.20

Sierra Rose avatar
By Sierra Rose
at 2005-09-26T12:22
在FreeBSD/amd64上遇到一個小問題。 5.3-R用ports安裝,在執行的時候smbd會有錯誤訊息 /var/log/samba/log.smbd [2005/09/25 14:10:39, 0] lib/fault.c:fault_report(37) INTERNAL ERROR: Si ...

cacti執行之後 tmp 出現大量紀錄檔如何解決?

William avatar
By William
at 2005-09-26T01:40
今天看到 cacti 這一個流量管理軟體 想說來安裝看看 之後安裝之後 目前發現 /tmp 裡面一直有 sess_04e0daf019de21b5a188889f93b54402 sess_fd9d6e1ba7a35d852c3bcfd12a05b8c4 sess_4fa871b0313bcf58 ...

關於mknod

Isla avatar
By Isla
at 2005-09-25T23:15
※ 引述《hangchen (hang)》之銘言: : 我的情況如下: : os: freebsd 5.4 release : 顯示晶片是intel 915G : 我想裝xorg 6.8.2 : 在我弄好/etc/X11/xorg.conf 後, : 想要startx, : 出現 : (EE) GARTIni ...