После того, как я устроился на работу адинистратором одного веб-проекта, появилась необходимость иногда что-то делать, находясь вне дома/офиса. Так как основной задачей в таких ситуациях было зайти на сервер по 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. Почему? — Потому, что он мне нравится. К тому же, у него хорошая вики (естественно, то, чего не было там, но обнаружилось во время настройки, было добавлено в соответствующую статью).
Сначала нужно записать дистрибутив на флешку, так как у нетбука, естественно, нету привода, читающего диски. Так как у арча гибридные диски, то делается всё максимально просто:
Где 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):
Следует упомянуть один нюанс: в винтах WD экономичных серий (к коим относится и Scorpio Blue, который установлен в моей модели) есть такая особенность: из-за фирменной технологии экономии энергии, очень быстро растёт значение SMART Load_Cycle_Count, отключение этой самой технологии не помогло, поэтому я его включил, но логи вынес в tmpfs (единственным эффективным решением было отключить APM, но для ноутбука это не лучшее решение).
Для того, чтобы была полноценная поддержка трёхмерной графики и нормального энергосбережения, нужно установить проприетарный драйвер nVidia
Кстати, это мой первый случай, когда ядро нормально подхватило родное разрешение экрана. Для чего прописал параметр vga=0x034d ядру.
Для нормальной поддержки ACPI и работы «горячих клавиш» нужно загрузить модуль eeepc_laptop
Возможно, для работы нужно указать параметр ядра acpi_osi=Linux. В результате, в /boot/grub/menu.lst у меня следущая запись для загрузки ядра
Для нормальной работы Wi-Fi нужно установить модуль rtl8192 из AUR и загрузить модуль r8192se_pci.
Для корректной работы горячих клавиш есть специальный пакет в AUR, который называется acpi-eeepc-generic, установить acpid и прописать в /etc/conf.d/acpi-eeepc-generic.conf
И раскомментировать, исправив значение на «yes»
Плюс нужно прописать следующее
После чего можно запускать acpid.
Теперь будем думать об энергосбережении. Уже давно в ядре Linux есть поддержка laptop mode, который позволяет более экономично использовать жёсткий диск. Для управления данным режимом в арче есть пакет laptop-mode-tools. Впоследствии LMT эволюционировали в централизованный комплекс управлением энергосбережения. После установки нужно добавить в файле /etc/rc.conf в массив DAEMONS laptop-mode.
Процессоры Intel Atom поддерживают технологию «Super Hybrid Engine» для уменьшения потребления энергии. Для включения нужно отредактировать следующий параметр в файле /etc/laptop-mode/conf.d/eee-superhe.conf
В результате, можно будет переключать решим вручную при помощи Fn+Space
Затем включим управление питанием Wi-Fi. Для этого в файле /etc/laptop-mode/conf.d/wireless-power.conf нужно указать следующий параметр.
Теперь настроим жёсткий диск. Сделаем так, чтобы при питании от сети он работал всегда, а при питании от батареи переходил в экономичный режим. Для этого в /etc/laptop-mode/laptop-mode.conf пропишем следующие параметры:
Только обнаружилась одна проблема: не работает hibernate при помощи стандартных для archlinux pm-utils. Для поддержки suspend to disk установим uswsusp-git из AUR. Затем его нужно настроить: в файле /etc/suspend.conf нужно прописать устройство, с которого возобновлять работу. Так как у меня это /dev/sda1, то запись выглядит так:
Теперь нужно добавить в /etc/mkinitcpio.conf хук uresume перед filesystems и пересобрать initramfs:
Теперь теперь систему можно отправить в 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
Так как при логине автоматически выполняется содержимое ~/.xinitrc, и я хочу пользоваться преимуществами ssh-agent, то добавим в этот файл следующую строку.
Но есть нюанс. Так как awesome требует cairo-xcb, которого нету в официальных репозитариях, то и awesome выкинули. Его можно установить из AUR, но лучше добавить репозатарий archlinuxfr. Для этого в /etc/pacman.conf нужно добавить следующую запись.
И можно ставить awesome.
Если нужно установить какие-нибудь дополнительные библиотеки для awesome, то они тоже есть в AUR.
Для быстрого переключения сетей будем использовать NetworkManager. Устанавливается он просто, для управления им воспользуемся network-manager-applet, для хранения ключей к беспроводным сетям установим gnome-keyring. Для управления bluetooth воспользуемся gnome-bluetooth. Так как я использую 3G-модем, то дополнительно требуются modemmanager и usb_modeswitch. После этого, массив DAEMONS в /etc/rc.conf выглядит так:
Теперь пара слов про настройку пользовательского окружения.
У 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. Ниже можно видеть скриншоты (кликабельно).
![](https://habrastorage.org/r/w1560/cropped/33160782/2e34322d/6fbf1626/b0feeb3d.png)
Стоит отметить, что в вышенаписанном нету всяких действий, стандартно выполняемых при обычной установке. Данным текстом хотелось заострить внимание на мелочах, применимых к конкретному ноутбуку и которые могут быть полезны.
Полезные ссылки:
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
В результате, остановился на «непонятном недоразумении» 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. Ниже можно видеть скриншоты (кликабельно).
![](https://habrastorage.org/cropped/af93fdcb/8fa9d617/a551e56c/477801f8.png)
![](https://habrastorage.org/cropped/b481738d/22691ad3/879b7319/b8e9aa79.png)
![](https://habrastorage.org/cropped/33160782/2e34322d/6fbf1626/b0feeb3d.png)
Стоит отметить, что в вышенаписанном нету всяких действий, стандартно выполняемых при обычной установке. Данным текстом хотелось заострить внимание на мелочах, применимых к конкретному ноутбуку и которые могут быть полезны.
Полезные ссылки:
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