おきしみみ (oxij) wrote,
おきしみみ
oxij

как испортить свой Asus Eee PC 1000

С самого начала. 28 декабря принес домой Asus Eee PC 1000 с Xandros Linux на борту. В тот же день снёс оттуда всю ересь и поставил Debian GNU/Linux Lenny. Полезная ссылка #1 (дебьян вики по триЁ). Фотокарточка есть тут. Сегодня будут только скриншоты.

Самой железкой доволен. С выключенным вайфайем, блутузом, на частоте 800Мхз (очевидная расшифровка — Мухозвук, 800 штук — минимальная, 1600 — потолок), и с минимальной подсветкой живет от батарейки обещанные 8 часов.
Внутри там Intel Atom, все дела, вообщем кому интересно — сам найдет описание внутренностей железки. Я нашёл. Но перечисления списка чипсетов (жутко полезное сакральное знание при конфигурировании ядра) — не нашел. Потому привожу тут всё что наковырял.

Итак у меня:
* Материнская плата: чипсет Intel 945GME.
* Встроенное видео работает с модулем i915. Фреймбуфер пока работает только через VESA. В будующих версиях ядра (> 2.6.28) должна появиться поддержка в intelfb, но пока, увы, её там нет.
* Аудио: 82801G (ICH7 Family) модуль ядра Intel HD Audio (snd_hda_intel), где-то внутри закопан чипсет Realtek, без поддержки парсера его кодека звук через встроенные в дно бука колонки только шипит, в наушниках переодически срывается в мусор.
* Веб-камера: Chicony Electronics, uvcvideo, работает через v4l комфартабилити.
* Ethernet: Attansic Technology L1 Gigabit (а в описаниях на быдлосайтах написано про 100 мегабит), модуль atl1e.
* Вай-фай: RaLink RT2860, модуль rt2860sta. В текущем ядре нет. Нужно компилять отдельно.
* Блютус: не знаю что там, но работает через btusb.
* Кардридер: тоже работает через USB. usb_storage его понимает.
Вроде всё.

После установки дебиана eeepc-инсталлером получается на удивление работоспособная система.


Встроенные хранилища — на 8Гб и на 32Гб я порезал на кусочки следующим образом:
1) 8Гб
* sda1 = 8Гб-16Мб, /
* sda3 = 8Мб, какая-то биосовская рековери хрень
* sda4 = 8Мб, кеш Boot Boosterа (без понятия как это работает, но что-то там кешируется)
2) Весь 32Гб занят /home'ом.

И на / и на /home в качестве файловой системы jfs. Тысячу лет использую её на стационарном компьютере и вообще считаю, что она недооценена. Единственный её минус — уже созданную фс в размере уменьшать и нельзя, а хитрый parted не умеет.

Но вернёмся к железу. Все хардварные клавиши работают. Три из них обрабатываются биосом, остальные отданы на совесть пользователя.
Две кнопки регулировки подсветки регулируют подсветку не зависимо от моего желания (подсветка на них реагирует даже без запущенной ОС), а закрытие крышки ноутбука приводит к выключению экрана.
Далее, при разных состояниях включённости вайфая хардварная кнопка «wlan» генерирует разные события (коды 10 и 11). Зачем так сделано — не знаю. Может драйвера альтернативной ОС иначе не понимают.
Об этих особенностях тоже вроде все.

Теперь что же сделал я. Не в хронологическом, но логическом порядке.

1) Взял ядро 2.6.28 и поправил в исходниках модуль eeepc_laptop так, чтобы он нормально включал и выключал блютус, а не просто делал вид.
2) Сконфигурировал ядро. О! Сколько времени я тут убил на эксперименты.
Выяснено, что модуль eeepc_laptop, модули сетевых карт, камеры, блютуса (короче, всего, что можно включать-выключать), и PCI(E) hotplugи надо делать подключаемыми, а не вкомпиливать в ядро. С первым просто непонятно, что за хрень, с остальными — ради хотплажной радости, последние два (pci_hotplug и pciehp) — иначе придётся вкомпиливать аргументы, с которыми надо их modprobeить, прямо в ядро, а это — головная боль.
3) Скомпилил. Тут тоже поимел много радости. Например я теперь точно знаю почему дебиановский kernel-package надо переписать к чёртовой матери. Компилировать что-нибудь столь же большое, как ядро на триЁ — нервов и батарейки не хватит. Оно часа 4 компилируется с разогнанным процессором. Вообщем, SSD хорош для «быстро найди мне мой кусок файла» и плох для «давай запишем 900 мегабайт». Потому я пытался кросскомпилить на своём сервере. Об этом я тоже писал, но всё оказалось не столь радужно.
Вы знали, что нормально кроссскомпилить kernel-headers пакет за один проход вообще невозможно даже чисто теоретически? Потому что сначала надо скомпилить всё полезное для хоста (хотя бы чтобы проверить, что все в принципе компилится), а потом собрать заголовки для таргета. А пакет с заголовками содержит исполняемые файлы, нужные для проверок этих самых заголовков на таргете. Итого всё нужно скомпилить два раза. Один раз — ядро для таргета, тулзы для хоста, второй — всё для таргета. А так пока никто не умеет.
Потому я занехал компилять i386 на x86_64 и компиляю ядро для атома в триЁ на десктопном P4. Да помогут мне боги.
4) Установил ядро. Можно начинать танцевать.
5) Настроил sysctl:
vm.dirty_writeback_centisecs = 1500
vm.swappiness = 1
Первое, чтобы беречь SSD, второе — просто на всякий случай.
6) Написал скрипты, которые делают вещи типа
eeepc-wireless on
eeepc-cpu powersave
и т.п. при помощи магии sysfs.
7) Переписал все обработчики acpi.
Вообще я написал отдельного демона для того чтобы хендлить последовательности нажатий на клавиши. Например: жмём на кнопку «power» один раз, видим OSD «Shutdown: Halt» если 5 секунд больше на неё не жмём, то машина халтится, если жмём второй раз подряд, то видим на экране «Shutdown: Reboot», третий раз — «Cancel action».





Да, у меня там есть ещё пункт «Suspend: 2 RAM», и оно даже нормально работает. Был ещё хибернейт на диск, но я его убрал. Жалко отрезать кусок под своп (хотя можно извратиться и этого не делать), но хибернейтится оно ужасно долго, а суспенд туда-обратно происходит в течении 10 секунд.
Освободившаяся кнопка «sleep» (Fn+F1) теперь у меня овладевает рубильником вайфая, а бывший рубильник вайфая (Fn+F2) рулит блютузом.
8) Настроил фреймбуфер. Кавайный splashy при загрузке, кавайная консоль вне иксов.
9) Настроил X.org. Вернее почти не настраивал. Тачпад подхватился сам. Я про него в конфиге вообще ничего не писал, а он даже распознаёт два и три пальца.
Тык одним пальцем — левый клик.
Тык двумя пальцами — средний клик.
Тык тремя — правый клик.
Таскать двумя пальцами — скроллинг. etc.

Тыкать в линки двумя пальцами (а в картинки тремя) в фаерфоксе очень нравится.
10) Поставил hg, git, svn, cvs, bazaar... gcc, ghc, python, perl....
11) Собрал xmonad, поставил conky.
12) Собрал mplayer.
13) Подключил сервер с онямэ по NFS.
14) Видео 800x600 на атоме не лагает, а 640x480 нормально работает и во фреймбуфере.
15) ????? афывафлывалыфлвадыфжвпаоыфвдопра
16) Вот. Мне просто хотелось, чтобы пунктов было именно 16.

И это первый пост в ЖЖ с триЁ.
А gajim всё ленюсь сюда поставить, потому что что-то не хочется разносить хистори по двум машинам. А почта на IMAP-сервере, ей все равно, её читаю.

Да, ну и последнее, как можно было заметить, hostname=rakka. Серых крыльев у девайса пока не выросло. Ждём.


Вот вам ещё кавайный скриншот напоследок
Tags: eee (rakka), linux, screenshot
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 10 comments