Персональный | |
Использование ACPI во FreeBSD 6.2 на ThinkPad T42
01.05.2007
Прежде всего, для нормальной поддержки ACPI нужно загрузить два модуля,
указав их в acpi_video_load="YES" acpi_ibm_load="YES"
Первый модуль нужен для того, чтобы после просыпания нормально работало
видео, а второй чтобы Надо заметить, что если эти модули собрать статически в ядрето они не будут работать. Скорее всего, это специфика модулей acpi.device acpi_video device acpi_ibm Модулю acpi_video нужно разрешить сбрасывать видео после просыпания: sysctl hw.acpi.reset_video=1 Если засыпание было вызвано в X Window, то сначала делается переключение из графики в текстовую консоль, а уже затем происходит собственно засыпание. Это переключение можно запретить с помощью однако при просыпании на экране ничего не будет видно и нужно вручную переключиться в текстовый режим, а затем обратно в X Window.sysctl hw.syscons.sc_no_suspend_vtswitch=1
Для того, чтобы некоторые устройства нормально работали после просыпания,
их нужно сначала выключить в скрипте Скрипт# kldunload usb /etc/rc.d/netif stop iwi0 /etc/rc.d/moused stop /usr/local/bin/radeontool light off logger -t $subsystem suspend at `date +'%Y%m%d %H:%M:%S'` /etc/rc.resume делает обратную процедуру:
# kldload usb /usr/local/bin/radeontool light on /etc/rc.d/moused start /etc/rc.d/netif start iwi0 logger -t $subsystem resumed at `date +'%Y%m%d %H:%M:%S'`
Явное выключение подсветки LCD нужно потому, что, по-видимому, BIOS
при засыпании сам этого не делает, и из-за этого в спящем режиме
быстрее расходуется батарея. Программа
Однако скрипт и разрешить генерацию событий по нажатию Fn-клавиш:sysctl hw.acpi.sleep_button_state=NONE Эти события будут обрабатываться демономsysctl dev.acpi_ibm.0.events=1 devd .
Для клавиши Fn-F4 в файл /etc/devd.conf нужно добавить описание
того, что нужно запускать при её нажатии (код 0x04):
notify 10 { match "system" "ACPI"; match "subsystem" "IBM"; match "notify" "0x04"; action "/usr/sbin/acpiconf -s 3"; }; Аналогично можно добавить выключение и включение экрана при нажатии клавиши Fn-F3: notify 10 { match "system" "ACPI"; match "subsystem" "IBM"; match "notify" "0x03"; action "/etc/local/backlight"; }; Скрипт /etc/local/backlight: #!/bin/sh radeontool=/usr/local/bin/radeontool on="The radeon backlight looks on" if [ "`$radeontool light`" = "$on" ]; then $radeontool light off else $radeontool light on fi При закрывании ноутбука можно настроить переход в спящий режим по аналогии с обработкой клавиши Fn-F4. Я же предпочёл только полное выключение LCD: notify 10 { match "system" "ACPI"; match "subsystem" "Lid"; match "notify" "0x00"; action "/usr/local/bin/radeontool light off"; }; notify 10 { match "system" "ACPI"; match "subsystem" "Lid"; match "notify" "0x01"; action "/usr/local/bin/radeontool light on"; }; И в заключение, несколько рекомендаций по увеличению времени работы при питании от батареи:
(C) Игорь Сысоев |