The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Использование ACPI во FreeBSD 6.2 на ThinkPad T42 (acpi freebsd hardware notebook)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: acpi, freebsd, hardware, notebook,  (найти похожие документы)
From: Игорь Сысоев <http://sysoev.ru>; Date: Sun, 16 Feb 2008 17:02:14 +0000 (UTC) Subject: Использование ACPI во FreeBSD 6.2 на ThinkPad T42 Оригинал: http://www.sysoev.ru/freebsd/t42_acpi.html Прежде всего, для нормальной поддержки ACPI нужно загрузить два модуля, указав их в /boot/loader.conf: acpi_video_load="YES" acpi_ibm_load="YES" Первый модуль нужен для того, чтобы после просыпания нормально работало видео, а второй -- чтобы devd мог обрабатывать события при нажатии Fn-клавиш. Надо заметить, что если эти модули собрать статически в ядре device acpi_video device acpi_ibm то они не будут работать. Скорее всего, это специфика модулей acpi. Модулю acpi_video нужно разрешить сбрасывать видео после просыпания: sysctl hw.acpi.reset_video=1 Если засыпание было вызвано в X Window, то сначала делается переключение из графики в текстовую консоль, а уже затем происходит собственно засыпание. Это переключение можно запретить с помощью sysctl hw.syscons.sc_no_suspend_vtswitch=1 однако при просыпании на экране ничего не будет видно и нужно вручную переключиться в текстовый режим, а затем обратно в X Window. Для того, чтобы некоторые устройства нормально работали после просыпания, их нужно сначала выключить в скрипте /etc/rc.suspend, а затем включить снова в скрипте /etc/rc.resume. В мой /etc/rc.suspend я добавил отключение wifi, мыши и полное отключение подсветки LCD: # kldunload usb /etc/rc.d/wpa_supplicant stop iwi0 /sbin/ifconfig iwi0 down /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 /sbin/ifconfig iwi0 up /etc/rc.d/wpa_supplicant start iwi0 logger -t $subsystem resumed at `date +'%Y%m%d %H:%M:%S'` Явное выключение подсветки LCD нужно потому, что, по-видимому, BIOS при засыпании сам этого не делает, и из-за этого в спящем режиме быстрее расходуется батарея. Программа radeontool берётся из порта sysutils/radeontool. Однако скрипт /etc/rc.suspend запускается только в том случае, если засыпание было вызвано командой acpiconf -s 3, а по клавише Fn-F4 он не запускается. Поэтому нужно отменить действие этой клавиши sysctl hw.acpi.sleep_button_state=NONE и разрешить генерацию событий по нажатию Fn-клавиш: 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"; }; И в заключение, несколько рекомендаций по увеличению времени работы при питании от батареи: собрать в ядре модуль device cpufreq или загрузить его в /boot/loader.conf: cpufreq_load="YES" разрешить запуск powerd в /etc/rc.conf: powerd_enable="YES" powerd_flags="-a adaptive -b adaptive" разрешить динамическое изменение частоты видео-чипа в /etc/X11/xorg.conf: Section "Device" VendorName "ATI Technologies Inc" Driver "ati" Option "DynamicClocks" "on" ... EndSection уменьшить частоту переключения процессов с 1000Hz до 100Hz в ядре options HZ=100 (C) Игорь Сысоев http://sysoev.ru

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

Обсуждение [ RSS ]
  • 1, UNIXoid (??), 03:41, 23/01/2009 [ответить]  
  • +/
    а возможно как-нибудь сделать отключение винта (sleep)? по аналогии с линухом:
    hdparm -S242 /dev/hda
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру