То есть кнопка «вправо» находится в области, занимаемой numpad'ом, что, поверьте мне, очень неудобно (в основном из-за огромного RgtCtrl, который я постоянно нажимаю вместо стрелочки влево). Даже на EeePC сделали лучше:
Думаю, теперь я таки перейду на hjkl в vim'е ☺
В остальном дизайн и сборка, к счастью, претензий не вызывают, так что перейдём наконец к теме поста — установке и последующей настройке моего любимого Debian.
Замечу, что в данном ноутбуке используется процессор Intel Core i3, а значит, лучше всего использовать Debian, собранный под amd64. Надеюсь, читатели этого блога в состоянии сами установить систему (если нет — замечательная инструкция virens'а вам в помощь).
Сначала я попытался поставить Squeeze, но после установки наткнулся на неприятный баг: внешние колонки ноутбука продолжают играть даже когда воткнуты наушники. Мириться с этим никак нельзя, тем более что в LiveCD Ubuntu 10.10, оказавшемся под рукой, всё работало. Признаюсь, я не стал долго ковыряться и просто поставил Wheezy, в котором, к счастью, всё работало из коробки.
Впрочем, даже в Wheezy с ходу не заработали некоторые вещи, в частности:
- веб-камера выдавала перевёрнутое изображение;
wicd-curses
не видел мою Wi-Fi-точку;- из Fn-клавиш работали только три: Fn+F5/Fn+F6, регулирующие яркость монитора, и Fn+F7, которая монитор выключала;
pm-suspend
иpm-hibernate
вроде как работали, но не выключали машину;- противно пищал PC speaker (он не настоящий, конечно же, просто эмуляция).
lspci
SD Bridge внушает надежду.Ну-с, проблемы перечислены — вперёд, на барикады! ☺
К счастью, для камеры и suspend'а решения приведены в Linux Laptop Wiki. Для полноты поста я размещу здесь вольный пересказ этих рецептов.
Веб-камера
Починить это раз и навсегда (слегка поправив какой-нибудь конфиг), к сожалению, не получится. Единственный выход — все приложения, использующие веб-камеру, запускать с библиотекойv4l1compat.so
. Для начала ставим соответствующий пакетик:$ sudo aptitude install libv4l-0
После этого все приложения, использующие веб-камеру, следует запускать следующим образом (на примере MPlayer'а):LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so mplayer tv://
Для удобства можно создать алиас — библиотека не нарушает работоспособность программы, так что можно подгружать её даже в тех случаях, когда веб-камера вам не нужна.Suspend и hibernate
Как гласит Linux Laptop Wiki, питание не выключается из-за неотключенных USB-устройств. Чинится всё написанием скриптов, которые перед засыпанием отключают устройства, а потом подключают обратно, но тут всплывает неприятный баг: машинка успешно засыпает и просыпается, но в точках монтирования флешек становится пусто. Почему так и как это исправить, я ещё не понял. Stay tuned.В общем, сделать нужно следующее:
- ставим любимый пакетик для suspend/hibernate. Я пользуюсь
pm-utils
:$ sudo aptitude install pm-utils - создаём конфиг с модулями, которые нужно выгружать перед suspend'ом:
и пихаем в него вот что:$ sudoedit /etc/pm/config.d/modules
Не забываем разрешить утилитам читать его:SUSPEND_MODULES="usb_storage mac80211 cfg80211 btusb bluetooth ahci libahci sdhci_pci sdhci led_class ath9k ath9k_common ath rfcomm sco bnep l2cap asus_laptop ehci_hcd"$ sudo chmod a+r /etc/pm/config/d/modules - создаём скриптик, который будет отключать и подключать устройства:
и помещаем в него следующее:$ sudoedit /etc/pm/sleep.d/10_unbindusb#!/bin/bash
function unbind_usb {
for driver in ehci ohci uhci; do
cd "/sys/bus/pci/drivers/${driver}_hcd";
ids=$(ls | grep :);
echo $ids > /tmp/DISABLED_$driver;
for id in $ids; do
echo "Unbinding $id";
echo -n "$id" > unbind;
disabled="$disabled $id";
done;
done;
}
function bind_usb {
for driver in ehci ohci uhci; do
cd "/sys/bus/pci/drivers/${driver}_hcd";
for id in $(cat /tmp/DISABLED_$driver); do
echo "Binding $id";
echo -n "$id" > bind;
done;
rm /tmp/DISABLED_$driver;
done;
}
case "$1" in
hibernate|suspend)
unbind_usb;
;;
thaw|resume)
bind_usb;
unbind_usb;
bind_usb;
;;
*)
exit 1;
;;
esac;
exit 0;
- даём скрипту необходимые права:$ sudo chmod u=rwx,go=rx /etc/pm/sleep.d/10_unbindusb
pm-suspend
(от рута, конечно же). Не забывайте также о hibernate и suspend-hybrid.Если после просыпания у вас не определяются USB-устройства, перезагрузите модуль
ehci_hcd
:$ sudo rmmod ehci_hcd
$ sudo modprobe ehci_hcd
UPD 14.02.2012: даже после вышеприведённых инструкций машинка иногда не просыпалась (точнее, просыпалась, но на этапе загрузки образа уходила в ребут). Только что поставил
linux-image-3.2.0-1-amd64
— шесть циклов hibernate пройдены на «ура» (причём в одном из случаев система засыпала от AC, а просыпалась от аккумулятора; в ещё одном случае было наоборот; во всех остальных — AC).Wi-Fi
Беспроводная сеть была чуть ли не самой простой проблемой из всех. Следать нужно следующее:- поставить менеджер сетевых соединений wicd (помимо curses-клиента существуют также gtk и cli):$ sudo aptitude install wicd wicd-curses
- прописать в
/etc/network/interfaces
беспроводной интерфейс:
В конец файла нужно дописать следующее:$ sudoedit /etc/network/interfacesallow-hotplug wlan0
iface wlan0 inet manual - прописать
wlan0
в настройках wicd, для чего в curses-интерфейсе (запускаемом с помощью командыwicd-curses
) нужно нажать P (это большая английская буква P) и тут же в поле Wireless Interface написать заветное «wlan0» (без кавычек) - жмакнуть F10, чтобы сохранить настройки
Кстати говоря, Fn+F2 работает из коробки, только лампочка на передней панели, показывающая состояние Wi-Fi, не работает. Меня, впрочем, это мало волнует, поэтому я (пока что) не разбирался, почему так. UPD: за лампочки отвечает модуль
asus_laptop
. Не знаю, что там у меня случилось во время написания статьи, но сейчас, спустя неделю, модуль загружается сам, так что лампочки в порядке.Fn-клавиши
Сразу после установки работали только клавиши, регулирующие яркость монитора, и Fn+F2, отключающая/включающая Wi-Fi. Мне очень сильно не хватало возможности регулировать громкость звука (и вообще выключать его), так что пришлось отлавливать события acpi и писать обработчики. На самом деле это не так сложно, как может показаться. Следуйте инструкции:- создаём файлы, задающие события, на которые мы хотим реагировать (надеюсь, вы уже запомнили команду
sudoedit
, потому что на этот раз я просто покажу содержимое файлов, не расписывая процесс их создания):$ cat /etc/acpi/events/volume_mute
event=hotkey ATK0100:00 00000032
action=/etc/acpi/volume_mute.sh$ cat /etc/acpi/events/volume_up
event=hotkey ATK0100:00 00000030
action=/etc/acpi/volume_up.sh
Если какой-то из Fn-хоткеев у вас работать не будет, запустите$ cat /etc/acpi/events/volume_down
event=hotkey ATK0100:00 00000031
action=/etc/acpi/volume_down.shacpi_listen
, понажимайте хоткей и посмотрите, соответствует ли вывод строке «event» (обратите внимание, что acpi присваивает событиям последовательные номера — их включать в строку event нельзя) - создаём обработчики:$ cat /etc/acpi/volume_mute.sh
#!/bin/sh
amixer sset 'Master' toggle$ cat /etc/acpi/volume_up.sh
#!/bin/sh
amixer sset 'Master' 2+$ cat /etc/acpi/volume_down.sh
#/bin/sh
amixer sset 'Master' 2- - заставляем
acpid
перечитать настройки:$ sudo pkill -SIGHUP acpid
PC speaker
«Пищалка» в данном ноуте детская, не настоящая даже — вместо взрослого PC speaker'а ноутбук пищит колонками. Отключается это тоже по-детски: достаточно открытьalsamixer
(выполнив в терминале одноимённую команду), выбрать ползунок Beep и выключить его (нажав m).Как видим, ни одной серьёзной проблемы — все вещи настраиваются парой изменений в конфигах. И кто после этого посмеет сказать, что Linux не готов для потребителя? ☺
Копируете статью — поставьте ссылку!
5 комментариев:
ссылка на инструкцию virens'а - на редактирование поста?
Упс… Спасибо, GalS — пофикшено!
>>Правда, в TTY спикер все равно будет эмулироваться — как это побороть, я не знаю.
alsamixer, там будет PCM, убавляете в ноль, и не надо шаманства с xset=)
goblinyara, PCM — это, так сказать, «общесистемный» регулятор. Если убрать его в ноль, звук пропадёт во всей системе. Но все равно спасибо — пока проверял PCM, заметил Beep. Mute'им этот регулятор — и «пищалка» замолкает даже в TTY. Спасибо!
Знатный пост, баянщики и графоманы одобряют :-)
Про acpi_listen - это не панацея, надо сказать. У меня на ноутбуке оно вообще нифига не слышит (никаких выхлопов на нажатие спецклавиш). Тем не менее, Яркость, ВайФай и переключение на внешний монитор работают. Ни разу не из коробки, между прочим.
Про вайфай - тебе крупно повезло, отец, что в ядре поддерживается radio frequency kill switch (rf_kill). Это была большая боль в пояснице, ибо найти это в конфигах ядра было делом непростым (см. ту же ссылку).
И да, спасибо за ссылку на мой старый пост по дебиану. Забавно, но это до сих пор один из самых посещаемых постов по статистике....
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.