16 июля, 2007

IBM ThinkPad ACPI, Linux

thinkpad-acpi - это Linux драйвер для ноутбуков IBM и Lenovo ThinkPad, который позволяет управлять различными возможностями, доступными через ACPI каркас:

  • комбинации Fn (функциональных) клавиш
  • включение/выключение bluetooth
  • переключатель видеовыхода и его расширенный контроль
  • включение/выключение лампочки на LCD-дисплее (ThinkLight)
  • управление доком (docking, undocking)
  • извлечение UltraBay
  • CMOS контроль
  • управление светодиодами (LED)
  • ACPI звуковые сигналы
  • температурные сенсоры
  • вывод состояния встроенного контроллера регистров
  • контроль яркости LCD дисплея
  • управление громкостью
  • конрроль и мониторинг кулера: скорость вентилятора, включение/выключение
  • включение/выключение WAN

procfs интерфейс создает директорию /proc/acpi/ibm. Для каждой поддерживаемой возможности создается файл.

Bluetooth

эта фича позволяет нам управлять состоянием устройства bluetooth во внутреннем CDC слоте ноутбука:
echo enable > /proc/acpi/ibm/bluetooth
echo disable > /proc/acpi/ibm/bluetooth
включаем/выключаем bluetooth устройство соответственно

Контроль видео выхода

Video output control:
echo lcd_enable > /proc/acpi/ibm/video
echo lcd_disable > /proc/acpi/ibm/video
echo crt_enable > /proc/acpi/ibm/video
echo crt_disable > /proc/acpi/ibm/video
echo dvi_enable > /proc/acpi/ibm/video
echo dvi_disable > /proc/acpi/ibm/video
я думаю тут все понятно
echo auto_enable > /proc/acpi/ibm/video
echo auto_disable > /proc/acpi/ibm/video
echo expand_toggle > /proc/acpi/ibm/video
echo video_switch > /proc/acpi/ibm/video #имитирует Fn-F7
cat /proc/acpi/ibm/video #чтение текущего состояния каждого устройства
ThinkLight

чтобы включить/выключить лампочку LCD монитора пользуем:
echo on > /proc/acpi/ibm/light
echo off > /proc/acpi/ibm/light
Docking / undocking
echo dock > /proc/acpi/ibm/dock
echo undock > /proc/acpi/ibm/dock
Извлечение UltraBay

Извлечение устройства UltraBay
echo eject > /proc/acpi/ibm/dock

если необходимо горячее извленчение UlrtaBay (CD/DVD-ROM) переводим ноутбук в спящий режим и просто извлекаем устройство

Управление светодиодами (LED control)
echo '<индекс> on' >/proc/acpi/ibm/led
echo '<индекс> off' >/proc/acpi/ibm/led
echo '<индекс> blink' >/proc/acpi/ibm/led
Индексы:
0 - питание
1 - аккумулятор (оранжевый)
2 - аккумулятор (зеленый)
3 - UltraBase
4 - UltraBay
7 - ожидание

ACPI звуки
echo <индекс> >/proc/acpi/ibm/beep
0 - остановить все звуки (но испольховать 17 для остановки 16)
2 - два сигнала, пауза, тройной сигнал ("низкий заряд аккумулятора")
3 - одиночный звуковой сигнал
4 - высокий, переходящий в низкий-сжатый ("недоступно")
5 - один сигнал
6 - очень высокий, переходящий в высокий-сжатый сигнал ("подключение/отключение зарядного устройства")
7 - высокий-сжатый сигнал
9 - три коротких сигнала
10 - очень длинный звуковой сигнал
12 - низкий-сжатый
15 - три высоких сжатых сигнала, повторяющиеся постоянно, останавливается 0 "нулем"
16 - один средний сигнала, повторяющиеся постоянно, останавливается 17
17 - остановить 16

Температурные сенсоры

Экспериментальная ACPI возможность /proc/acpi/ibm/thermal
Описание читать здесь

Контролируем яркость LCD-дисплея
echo up >/proc/acpi/ibm/brightness
echo down >/proc/acpi/ibm/brightness
echo 'level <уровень>' >/proc/acpi/ibm/brightness
Уровень может меняться от 0 до 7

Управление громкостью звука
echo up >/proc/acpi/ibm/volume
echo down >/proc/acpi/ibm/volume
echo mute >/proc/acpi/ibm/volume #приглушить звук
echo 'level < уровень>' >/proc/acpi/ibm/volume
Диапозон level меняется от 0 до 15

Управление и мониторинг кулера (вентилятора)
echo enable >/proc/acpi/ibm/fan
echo disable >/proc/acpi/ibm/fan
echo 'level ' > /proc/acpi/ibm/fan
где level число от 0 (выключение) до 7 (максимальная скорость) или одно из слов auto и full-speed
также можно задать точную скорость вращения вентилятора
echo 'speed <скорость>' > /proc/acpi/ibm/fan
скорость speed может изменяться в пределах ~3700-7350 об/сек
P.S. Lenovo (IBM) будет выпускать ноутбуки с Linux от Novell

Комментариев нет: