Здесь будут шапка и навигация. Вернуться на сайт.

 

Установка и настройка Slackware на Eee PC

Интро

В данной статье будет рассматриваться установка дистрибутива Linux Slackware 12.0 на Eee PC 900. Статья рассчитана на читателей, уже знакомых с Linux, умеющих обращаться с gcc и конфигурировать ядро. В установке самой системы нет каких-либо особых сложностей, однако, целый набор граблей различного калибра встречается на этапе настройки железа ноутбука. Вооружившись гуглом, конечно, можно разрешить все проблемы, но зачастую требуется потратить немало сил только на то, чтобы понять, о чем вообще спрашивать поисковик, и где конкретно собака зарыта. Так как подводных камней действительно много, способы решения разные, то данная статья будет носить больше обзорный и объяснительный характер, нежели будет похожей на пошаговое руководство. Ну и стандартно: автор не несет никакой ответственности, все делайте на свой страх и риск.

Установка

Устанавливать систему можно абсолютно разными способами, и все зависит от того, какую конфигурацию Вы хотите получить. На Eeepc 900 стоит две флешки: на 4Гб, быстрая для операций чтения/записи, на которой изначально стоит ОС. Вторая, на 16(8)Гб, обычно используется под пользовательские данные и имеет в два раза меньшую скорость. Автор выбрал следующую схему установки. Флешка 4Гб форматируется ext2 и на нее устанавливается Slackware. Флешка 16Гб разбивается на разделы, один из которых, больший, ext2 для дополнительного софта, а оставшееся форматируется в fat32 для установки WinXP (опционально). Отвлекаясь от темы скажу, что XP на медленной флешке работает вполне приемлемо, и каких-то особых критичных тормозов не замечается. Итак, примем, что изначально на ноутбуке стоит Xandros. Тогда из-под него под рутом с помощью fdisk можно разбить на разделы вторую флешку. То, что она используется Xandros'ом как директория /home, не критично: после перезагрузки, не сумев ее примонтировать, он создаст новую со всем нужным содержимым, но уже в корневой папке (да, система резервирования там неубиваемая :). Далее предлагается начать установку Slackware, и для этого существует множество способов. Если есть внешний CD/DVD привод, то все тривиально и неинтересно. У автора статьи такого устройства не было, поэтому здесь будет описан другой путь. С помощью еще живого Xandros на ext2 раздел «большой» флешки по сети с настольного компьютера можно скопировать дистрибутив для установки (по SMB, NFS — кто как привык). Затем, в кладовых ftp нашего дистрибутива можно найти файл usbboot.img ~26Мб ростом, представляющий собой образ мини-linux, который используется Slackware при установке и ремонте системы. Соответственно, отправив его на внешнюю пустую флешку с помощью утилиты dd (man dd) и загрузившись с нее, можно переразбить раздел с предустановленным Xandros, отформатировать его, а затем и запустить установку. Здесь несколько слов нужно сказать о том, какими устройствами представляются флешки. Если в Xandros это были sda и sdb, то в установщике Slackware (ровно как и в уже установленной системе) их будет видно через hdc и hdd соответственно. Это зависит от того, через какой интерфейс linux видит устройства — SCSI или ATA. Через SCSI флешки работают несколько быстрее, поэтому, после установки нужно будет это переконфигурировать. Однако, вернемся к нашим баранам. На форумах часто приходится слышать, что люди боятся переразбивать флешку 4Гб на другие разделы, ибо там находятся какие-то «критично важные для работы BIOS разделы». Так вот, переразбивать можно, нужно, и ничего необходимого для работы от этого не испортится. Если интересно, для чего предназначены дополнительные разделы, можно почитать обсуждение на форуме:

http://forum.eeeuser.com/viewtopic.php?id=779 И еще один момент. На флешке 4Гб, помимо основного большого раздела, я советую сделать еще один размером в районе 30Мб. На него можно будет отправить опять тот самый usbboot.img, получив ремонтный мини-дистрибутив linux на случай каких-либо поломок системы (наш ответ неубиваемому Xandros). Итак, Вы разбили диск. Как запустить установку? Набирайте setup в консоли установщика Slackware, и затем указывайте в нем путь до файлов дистрибутива. Внимание! Ничего самому монтировать не надо! Установщик сам все сделает, нужно лишь правильно указать устройство и директорию.

При установке советую выбирать все предлагаемые пакеты, несмотря на то, что хочется сделать систему более компактной. По собственному опыту скажу, что потом приходится все равно доустанавливать недостающее. Особенно это касается компиляторов и других средств разработки — компилировать придется, и придется много, а использовать для этих целей настольный компьютер довольно хлопотно. Так или иначе, на доступные 4Гб система влезает, да еще и остается достаточно свободного места. Тем более, любую «распухшую» директорию потом легко можно будет перемонтировать куда-нибудь на флешку 16Гб.

Настройка

Перенесемся к тому моменту, когда установка уже окончена, система загружена и ждет настройки иксов. Встроенная видеокарта на нашем ноутбуке называется Intel 915G. В дистрибутиве Slackware 2D-драйвер уже присутствует в xorg, поэтому в xorg.conf можно смело прописывать Driver «intel» и устанавливать нужный ModeLine. Вообще, чтобы самому не изобретать велосипед, рекомендую взять конфигурацию xorg из дистрибутива Xandros (как, разве Вы его не забекапили перед сносом? :). Тачпад и клавиатура должны заработать сами собой. Итак, после startx все должно завестись, и система станет более-менее удобна для дальнейшей настройки.

Что дальше? Дальше советую сразу поставить загрузчик grub взамен lilo. Помимо общего удобства работы с ним, переход с представления флешек /dev/hdc на /dev/sda будет проще. К тому же, говорят, в новых дистрибутивах Slackware grub уже идет по-умолчанию. Не буду описывать установку — там все тривиально и описано во многих руководствах, grub видит ноутбучные флешки под своими именами hd0 и hd1 и с этим никаких проблем нет. Однако, упомяну заодно, что для загрузки Windows со второй 16Гб флешки необходимо в конфиге дополнительно прописать следующие команды:

map (hd0) (hd1) 
map (hd1) (hd0)

Иначе это творение всем известной корпорации грузиться отказывается. Далее советую пересобрать ядро для введения в строй всего остального оборудования. У меня нет каких-либо особых оснований чтобы не использовать стандартное, однако я решил взять последнее с kernel.org — на тот момент это было 2.6.25.10. Придумывать с нуля свой конфиг — довольно невеселое занятие, поэтому я нашел себе, как говорят, «рыбу» на одном из форумов, а Вам предлагаю свою config.tar.gz. Я не претендую на то, что в этом конфиге все настроено абсолютно правильно, но, по крайней мере, все присутствующее eee`шное железо с ним работает. У меня в конфиге отсутствуют драйвера ATA, но зато есть SCSI. Это значит, что новое ядро уже будет видеть внутренние флешки как sd*, вместо hd*. Поэтому нужно соответственно переписать fstab, а в grub новое ядро грузить уже с параметром root=/dev/sda1. Перед всеми этими манипуляциями рекомендую уже установить и проверить ремонтный мини-дистрибутив, про который я писал в начале статьи — наверняка понадобится :).

Пожалуй, настроим звук. Используемая карточка называется Intel HD audio, поддержка которой уже присутствует в предлагаемым мной конфиге, поэтому, покрутив alsamixer, можно ожидать появления звука. Здесь все гладко, за исключением одного нюанса. Драйвер должен работать обязательно в виде модуля, и этот модуль необходимо выгружать в скриптах выключения компьютера. Иначе ноутбук не выключается полностью, остается гореть зеленая лампочка питания. Это связано, как говорят, с каким-то зависанием этого драйвера. Быть может, в следующих версиях исправят, а пока берем скрипт выключения /etc/rc.d/rc.0 и вписываем строчку rmmod snd_hda_intel куда Вам покажется более уместно. Я вписал перед комментарием «#Kill all processes.». Проверьте — ноутбук должен выключаться полностью.

Настроим сеть LAN. Карточка называется Atheros L2 (ранее Attansic L2). Драйвера к ней непосредственно в ядре я не обнаружил, однако гугл предложил это: http://people.redhat.com/csnook/atl2/ Компилируется без проблем, однако полученный модуль atl2.ko сам устанавливаться не умеет, поэтому копируем и прописываем его вручную. Чтобы он грузился автоматически, когда требуется интерфейс eth0, надо в /etc/modprobe.d/aliases вписать строчку alias eth0 atl2

Настроим wi-fi. Чип зовется Atheros AR5007, и путей вдохнуть в него жизнь имеется два. Первый зовется NDISwrapper — штука, которая эмулирует API Windows и NDIS (Network Driver Interface Specification) API в ядре Linux. Это позволяет грузить Windows-драйвера wi-fi напрямую. Обычно этот путь используется тогда, когда драйверов под linux производитель не выпускает, а спецификация железа закрыта. В нашем же случае есть второй путь — драйвера madwifi. Эти драйвера специально для чипов Atheros и сами являются опенсорс, однако для своих нужд используют проприетарный Hardware Abstraction Layer (HAL), который доступен в бинарном виде. Остановимся на последнем варианте. Не спешите грузить с сайта madwifi.org последнюю версию тарболлов — для нашей карточки все не так просто. В настоящее время (29.07.08) поддержка ее осуществляется только пропатченной версией оригинальных madwifi драйверов. Сам патч и его обсуждение можно найти http://madwifi.org/ticket/1679 , но лучше скачать уже готовую пропатченную версию, которая называется madwifi-ng-r2756+ar5007 (см. гугл). Данная версия компилируется и ставится без проблем, однако на ядрах выше 2.6.24 присутствует один нюанс. В dmesg валится куча ошибок о невозможности зарегистрировать чего-то там в sysctl. Судя по всему, в ядре опять чего-то перекроили, и драйвер оказалася с ним плохо совместим. Поэтому на madwifi-ng-r2756+ar5007 рекомендую взгромоздить еще один патчик http://madwifi.org/changeset/2814 , после применения которого все становится тихо и мирно :) Не смотрите, что он для другого чипа — вполне подходит и для нашего. Да, чуть не забыл. Когда будете пытаться оживить беспроводную сеть по мануалу madwifi не забудьте в БИОСе включить саму беспроводную карточку — синий светодиод должен гореть.

Не-не, не надо начинать возмущаться по поводу того, что теперь придется лазать в БИОС для включения и отключения вай-фай и остального. Сейчас, сейчас все будет :) Итак, настройка ACPI. ACPI - Advanced Configuration and Power Interface - современный интерфейс конфигурирования и управления энергопотреблением. То есть это то, что позволит управлять питанием вай-фай, камеры, а заодно и получать события от нажатия кнопок Fn, кнопки выключения питания и закрытия крышки ноутбука. Несмотря на то, что в ядре уже присутствует некая поддержка ACPI для ASUS, она не обеспечивает всего того, чего хотелось бы: от нее работать будут только события нажатия power button и закрытия крышки. Поэтому отправимся в очередной раз за драйверами, теперь — в гости к самой ASUS, которая выложила у себя все необходимые исходники: http://dlsvr02.asus.com/pub/ASUS/EeePC/701/ASUS_ACPI_071126.rar В результате трудов компилятора над этими сорцами появляется модуль asus_acpi.ko, который можно установить в систему, предварительно выкинув из ядра стандартную поддержку ACPI. А можно сделать и по-другому. Все исходники по сути состоят только из файла asus_acpi.c, который имеется и в исходниках ядра. Проще всего… заменить этот файл в ядре на новый, и тогда ACPI можно вкомпилить прямо в bzImage, без всяких там модулей. Просто и сердито. Да, и как обычно, один нюанс. Скорее всего при компиляции этого файла с новым ядром вылезет ошибка про «acpi_bus_generate_event». Откройте файл и замените все включения acpi_bus_generate_event на acpi_bus_generate_proc_event. Ну… переименовали, что уж тут поделаешь… После загрузки проверим поддержку ACPI, например, помигав синим светодиодом с помощью команд:

echo 1 > /proc/acpi/asus/wlan 
echo 0 > /proc/acpi/asus/wlan

Хоткеи поддерживаются с помощью вызова соответствующих скриптов, а то, что они станут делать — в Вашей власти. Все самое вкусное лежит в папке /etc/acpi/. Если вдруг еще не лежит, то нужно взять все скрипты, например, из того-же Xandros. Вкратце: в директории /etc/acpi/events лежат файлы, определяющие, какие скрипты и при каком событии вызывать, а в /etc/acpi/ обычно непосредственно сами скрипты. Тут и обработка Fn клавиш, и power button, и т.д. Мой пример настройки можно взять отсюда: acpi.tar.gz. Включение-отключение вай-фай на ходу — еще одни грабли. Wi-fi чип имеет интерфейс pci, а подавая/снимая с него питание через /proc/acpi/asus/wlan мы фактически делаем горячее подключение/отключение устройства. В связи с этим в ядре linux нужно включить поддержку «PCI Express Hotplug driver», причем в виде модуля. А в скрипте включения вай-фай перед выполнением команды echo 1 > /proc/acpi/asus/wlan нужно произвести следующие действия:

rmmod pciehp 
sleep 1 
# pciehp_force may be unnecessary; Xandros did it. 
modprobe pciehp pciehp_force=1 
sleep 1

(далее идет загрузка модулей самой карточки) У автора только после данных манипуляций фай-фай стал включаться «горячим включением» с помощью хоткея. До этого требовалось перезагружать систему, предварительно включив питание чипа (синий светодиод), либо держать его включенным постоянно.

Что у нас осталось? А, камера. Абсолютно не знаю, куда ее приспособить, но делом чести было заставить ее работать. ;) Все как обычно… Драйвера в ядре нет, сам по себе драйвер существует, называется uvcvideo, брать отсюда http://linux-uvc.berlios.de/ Ставится без граблей и бубнов. Из софта пробовал fswebcam, которая работает, но чисто случайно оказалась прогой консольной… Да, с веб-камерой, оказывается, из консоли тоже можно работать :) Умеет, что ценно, правильно выставлять разрешение, сохранять фото в jpg и делать подпись даты. Правда, с авто настройкой яркости у нее явно проблемы. Второй программой, с которой я знакомился, была wxcam. Эта имеет GUI, умеет снимать видео и накладывать разные эффекты.

Ну и последнее, для ярых фанатов TuxRacer и compiz. Настроим 3D. Драйвер 2D уже есть в нашем дистрибутиве, однако для 3D нужно что-нибудь посерьезнее. Например, убедиться, что в конфиге ядра выбрано все, касающееся нашего видеочипа intel 915G. Поставить Mesa, совместимую с уже установленной версией xorg. Вписать в секции «Module» в конфиге xorg.conf все нужные расширения:

Load       "glx"   
Load       "dri"

не забыть в конце этого же файла

Section "DRI" 
    Mode    0666 
EndSection

(пустая строка в конце файла обязательна) И… все. При счастливом стечении обстоятельств. У автора же статьи данная настройка шла каким-то особым, жестоким образом, и потребовала аж пересборки иксов и всей его свиты :) Мораль из этого такая. Если в логе иксов после установки Mesa вылезают ошибки типа «Undefined symbol» в каком-нибудь модуле, то надо просто найти более старую, совместимую версию Mesa. PS: Если кто-то захочет обновить 2D драйвер для иксов, то называется он xf86-video-intel.

После всего не забываем отключить все логи, которые чаще остальных терзают флешку, отключить pcmcia в /etc/rc.d/rc.M для ускорения загрузки и поиграть с изменением частоты процессора.

И еще пара маленьких советов по поводу Slackware, которые могут сэкономить уйму гугло-времени. Если у кого проблемы с русскими буквами в konqueror в обзоре сети smb, то смотреть тут http://kde.ru/forum/viewtopic.php?p=4716&sid=a1268287424f4caee8db57ec76c779ff

Если русификация системы не в utf-8, ядро новее 2.6.24, то для получения русского в консоли гуглить, помимо стандартных мануалов, про vt.default_utf8=0.

При желании настроить и использовать ждущий режим ноутбука, советую обратить внимание на pm-suspend.

 
slackware/главная.txt · Последние изменения: 09.10.10 20:54 (внешнее изменение)