Pull to refresh

Настройка Archlinux на ASUS Eee 1201NL

Reading time 7 min
Views 9K
После того, как я устроился на работу адинистратором одного веб-проекта, появилась необходимость иногда что-то делать, находясь вне дома/офиса. Так как основной задачей в таких ситуациях было зайти на сервер по SSH и в браузере проверить результат действий, то решил остановить выбор на нетбуке. Но очень не хотелось распространённго разрешения 600px по вертикали. И всё-таки хотелось использовать нетбук не только для SSH, но и для прочих приятностей, вроде просмотра фильмов. Естественно, планировалось работать под Linux, поэтому требовалась нормальная поддержка оборудования.

В результате, остановился на «непонятном недоразумении» ASUS Eee PC 1201NL. Это такой своеобразный нетбук. Очень своеобразный.
Во-первых у него диагональ аж 12", что неприлично много для устройств этого класса.
Во-вторых, разрешение экрана 1366x768, что очень неплохо, но мелковато, если не настраивать более крупное значение DPI.
В-третьих он на базе платформы nVidia ION, что даёт хорошую производительность для подобных устройств. Недостатком является малое время работы — часа 4 со включенным bluetooth/wi-fi, если запустить какую-нибудь требовательную программу (например, игру Neverwinter Nights), то время снизится ещё сильнее.

Можно сделать вывод, что, по сути, данное решение является полноценным недорогим маленьким ноутбуком. Хоть и на базе процессора Intel Atom.

Стоит отметить, что я считаю совершенно неудобным стандартный мышкоориентированный интерфейс распространённых DE (KDE, Gnome, XFCE, etc), поэтому настроил awesome с идеей «по одной задаче на тег», что, на мой взгляд, оптимально для небольшого экрана.

В качестве дистрибутива был выбран archlinux. Почему? — Потому, что он мне нравится. К тому же, у него хорошая вики (естественно, то, чего не было там, но обнаружилось во время настройки, было добавлено в соответствующую статью).

Сначала нужно записать дистрибутив на флешку, так как у нетбука, естественно, нету привода, читающего диски. Так как у арча гибридные диски, то делается всё максимально просто:

dd if=archlinux-2010.05-core-i686.iso of=/dev/sdb

Где archlinux-2010.05-core-i686 — образ диска (есть один нюанс — установка с образа netinstall висла при закачке пакетов, поэтому выбрал образ с core, в последствии проблема с зависаниями при закачке больших объёмов информации была решена выставлением MTU=750)
/dev/sdb — имя нашего диска в системе (есть другой нюанс, нужно указывать не /dev/sdb1, а именно /dev/sdb). Внимание! Вся информация с данного диска исчезнет и его придётся потом рзабивать заново.

Разбивка и установка довольно тривиальна. Было создано три раздела:
/dev/sda1 — swap (3 гигабайта, ибо потом докупил ещё памяти, до сих пор не вижу в этом жизненной необходимости)
/dev/sda2 — / (23 гигабайта)
/dev/sda3 — /home (всё остальное, 204 гигабайта)

После увеличения объёма ОЗУ до трёх гигабайт, решил использовать в tmpfs следующие папки (идёт запись прямо из /etc/fstab):

tmpfs /var/log tmpfs defaults,noexec,nosuid,nodev,mode=755 0 0
tmpfs /var/lock tmpfs defaults,noexec,nosuid,nodev,mode=755 0 0
tmpfs /var/run tmpfs defaults,noexec,nosuid,nodev,mode=755 0 0
tmpfs /tmp tmpfs defaults 0 0

Следует упомянуть один нюанс: в винтах WD экономичных серий (к коим относится и Scorpio Blue, который установлен в моей модели) есть такая особенность: из-за фирменной технологии экономии энергии, очень быстро растёт значение SMART Load_Cycle_Count, отключение этой самой технологии не помогло, поэтому я его включил, но логи вынес в tmpfs (единственным эффективным решением было отключить APM, но для ноутбука это не лучшее решение).

Для того, чтобы была полноценная поддержка трёхмерной графики и нормального энергосбережения, нужно установить проприетарный драйвер nVidia
Кстати, это мой первый случай, когда ядро нормально подхватило родное разрешение экрана. Для чего прописал параметр vga=0x034d ядру.

Для нормальной поддержки ACPI и работы «горячих клавиш» нужно загрузить модуль eeepc_laptop

modprobe eeepc_laptop

Возможно, для работы нужно указать параметр ядра acpi_osi=Linux. В результате, в /boot/grub/menu.lst у меня следущая запись для загрузки ядра

kernel /boot/vmlinuz26 root=/dev/sda2 ro quiet acpi_osi=Linux vga=0x034d

Для нормальной работы Wi-Fi нужно установить модуль rtl8192 из AUR и загрузить модуль r8192se_pci.

Для корректной работы горячих клавиш есть специальный пакет в AUR, который называется acpi-eeepc-generic, установить acpid и прописать в /etc/conf.d/acpi-eeepc-generic.conf

EEEPC_MODEL="1201N"

И раскомментировать, исправив значение на «yes»

#EEEPC_CONF_DONE="no"

Плюс нужно прописать следующее

WIFI_DRIVERS=("r8192se_pci")

После чего можно запускать acpid.

Теперь будем думать об энергосбережении. Уже давно в ядре Linux есть поддержка laptop mode, который позволяет более экономично использовать жёсткий диск. Для управления данным режимом в арче есть пакет laptop-mode-tools. Впоследствии LMT эволюционировали в централизованный комплекс управлением энергосбережения. После установки нужно добавить в файле /etc/rc.conf в массив DAEMONS laptop-mode.

DAEMONS=(...laptop-mode...)

Процессоры Intel Atom поддерживают технологию «Super Hybrid Engine» для уменьшения потребления энергии. Для включения нужно отредактировать следующий параметр в файле /etc/laptop-mode/conf.d/eee-superhe.conf

CONTROL_SUPERHE=1

В результате, можно будет переключать решим вручную при помощи Fn+Space

Затем включим управление питанием Wi-Fi. Для этого в файле /etc/laptop-mode/conf.d/wireless-power.conf нужно указать следующий параметр.

CONTROL_WIRELESS_POWER_SAVING=1

Теперь настроим жёсткий диск. Сделаем так, чтобы при питании от сети он работал всегда, а при питании от батареи переходил в экономичный режим. Для этого в /etc/laptop-mode/laptop-mode.conf пропишем следующие параметры:

#
# Should laptop mode tools control the hard drive power management settings?
#
# Set to 0 to disable
CONTROL_HD_POWERMGMT=1

#
# Power management for HD (hdparm -B values)
#
BATT_HD_POWERMGMT=64
LM_AC_HD_POWERMGMT=255
NOLM_AC_HD_POWERMGMT=255

Только обнаружилась одна проблема: не работает hibernate при помощи стандартных для archlinux pm-utils. Для поддержки suspend to disk установим uswsusp-git из AUR. Затем его нужно настроить: в файле /etc/suspend.conf нужно прописать устройство, с которого возобновлять работу. Так как у меня это /dev/sda1, то запись выглядит так:

resume device = /dev/sda1

Теперь нужно добавить в /etc/mkinitcpio.conf хук uresume перед filesystems и пересобрать initramfs:

mkinitcpio -p kernel26

Теперь теперь систему можно отправить в hibernate при помощи команды s2disk, и, что немаловажно, при загрузке она выходит из этого режима. При закрытии крышки система уходит в suspend2ram, я пробовал s2disk, но смысла немного, так как suspend2ram требует совсем немного энергии (процентов 10-15 батреии за день), а из из suspend2ram ноутбук выходит за пару секунд, что очень удобно.

В результате мы получили систему, которая уже работает, но пока ещё не имеет удобного пользовательского интерфейса. Займёмся и им.

В качестве менеджера логина будем использовать slim, а в качестве wm — awesome. Раньше я стартовал X-сервер из /etc/inittab, но, после обновления consolekit до версии 0.4.3 и добавления в его зависимости dbus, этот способ перестал корректно работать. Поэтому будем использвоать slim. Для автоматического запуска нужно его добавить в /etc/rc.conf в массив DAEMONS, а в /etc/slim.conf нужно задать следующую команду login_cmd

login_cmd exec ck-launch-session dbus-launch /bin/bash -login ~/.xinitrc %session> ~/.xsession-errors 2>&1

Так как при логине автоматически выполняется содержимое ~/.xinitrc, и я хочу пользоваться преимуществами ssh-agent, то добавим в этот файл следующую строку.

exec ssh-agent awesome

Но есть нюанс. Так как awesome требует cairo-xcb, которого нету в официальных репозитариях, то и awesome выкинули. Его можно установить из AUR, но лучше добавить репозатарий archlinuxfr. Для этого в /etc/pacman.conf нужно добавить следующую запись.

[archlinuxfr]
Server = http://repo.archlinux.fr/i686

И можно ставить awesome.

pacman -Sy awesome

Если нужно установить какие-нибудь дополнительные библиотеки для awesome, то они тоже есть в AUR.

Для быстрого переключения сетей будем использовать NetworkManager. Устанавливается он просто, для управления им воспользуемся network-manager-applet, для хранения ключей к беспроводным сетям установим gnome-keyring. Для управления bluetooth воспользуемся gnome-bluetooth. Так как я использую 3G-модем, то дополнительно требуются modemmanager и usb_modeswitch. После этого, массив DAEMONS в /etc/rc.conf выглядит так:

DAEMONS=(syslog-ng preload dbus networkmanager acpid @laptop-mode @alsa @bluetooth @ntpd slim)

Теперь пара слов про настройку пользовательского окружения.

У awesome хорошая wiki, поэтому распишу только про нюансы настройки. Сам конфиг можно взять по адресу github.com/Shtsh/awesome

Я использовал для работы с тегами shify, чтобы те теги, которые не нужны, не отображались. Для мониторинга использовалась библиотека vicious. Используется тема strict. Соответственно, если всё это не установлено, то и конфиг не заработает. Естественно, всё это доступно в AUR.

Теги настраивались следующим образом:
1 — для XTerm
2 — Веб-браузеры (основной — chromium)
3 — Pidgin
4 — Skype
5 — Почта (thunderbird)
6 — Просмотр изображений (GQview)
7 — Музыка (deadbeef)
9 — LibreOffice

Единственной проблемой является thunderbird. На слабом атоме он ощущается каким-то неповоротливым. Но по функционалу подобрать альтернативу пока не получилось.

По тегам можно переключаться по Win+номер, запуск программ через меню или при помощи Win+R. Все окна либо развёрнуты, либо используется тайлинг.

В конце конфига автоматически запускаются pidgin, thunderbird, deadbeef, skype, быстрый запуск libreoffice, nm-applet, bluetooth-applet.

В качестве файлового менеджера используется mc. Тема GTK+ axis, шрифты Droid Sans. Ниже можно видеть скриншоты (кликабельно).



Стоит отметить, что в вышенаписанном нету всяких действий, стандартно выполняемых при обычной установке. Данным текстом хотелось заострить внимание на мелочах, применимых к конкретному ноутбуку и которые могут быть полезны.

Полезные ссылки:
wiki.archlinux.org/index.php/Asus_Eee_PC_1201NL
wiki.archlinux.org/index.php/Laptop_mode
wiki.archlinux.org/index.php/NetworkManager
wiki.archlinux.org/index.php/Bluetooth
wiki.archlinux.org/index.php/Slim
awesome.naquadah.org/wiki/Main_Page
Tags:
Hubs:
+36
Comments 23
Comments Comments 23

Articles