[sisyphus] Lite-20071018 on Asus eeePC/Intel ClassmatePC

Alexander Bokovoy =?iso-8859-1?q?ab_=CE=C1_altlinux=2Eorg?=
Вс Окт 21 21:22:33 MSD 2007


Подвожу итоги двухдневных "битв" за ALT Linux Personal Desktop 4.0 Lite
на двух миниатюрных компьютерах: Asus eeePC (http://eeepc.asus.com) и
Intel ClassmatePC (http://www.classmatepc.com).

0. Все поставилось и более-менее заработало. После ряда костылей,
изготавливать которые вручную никому не пожелаю, поэтому хотелось бы,
чтобы этот опыт оказался реализованным в инсталяторе.

1. Аппаратная часть.
Asus eeePC (Triple-E PC) и Intel ClassmatePC являются представителями
нового семейства устройств, приход которых спровоцирован двумя
факторами: существенное сокращение стоимости комплектующих при
потенциальном многомиллионном производстве (и потреблении). При массовом
производстве стоимость отдельного устройства падает драматически. Asus
ожидал, что розничная цена на Triple-E PC минимальной комплектации будет
порядка 200 долларов, рекомендуемая на Тайване получилась около 360
долларов для второй по мощности модели. Миллионные тиражи звучат
сладкими грезами для бизнесменов, особенно после победного шествия iPod
и iPhone у Apple: миллион-два устройств легко создают прорыв,
достаточный для окупания всей инженерной и производственной
деятельности. Вот только найти бы эти миллион-два-больше покупателей на
конкурентном рынке.

И вот тут приходит на помощь проект One Laptop Per Child. Благодаря
этому проекту не только стало возможным создание свободного устройства
для детей, но и осознание того факта, что в подавляющем большинстве
ситуаций (а Индия+Китай+Африка+Индонезия и так далее при
централизованной закупке даже одного устройства на сотню граждан все
равно будет многомиллионным рынком) компьютер как мы его знаем совсем не
нужен и задачи могут быть решены значительно меньшими усилиями. То есть,
меньше памяти, медленнее процессор, попроще программное обеспечение -- и
все равно эффективность не сильно пострадает. Зато существенно падает
цена (и себестоимость), а значит, расширяется потенциальный круг
потребителей, включая и государственные программы в развивающихся странах.

Определенный успех OLPC на ниве завоевания сознаний госструктур привел к
тому, что рынком "устройств для детей и женщин" заинтересовалась не
только AMD, но и другие лидеры компьютерного рынка. Intel объявила свою
инициативу Classmate PC в 2006, а в 2007 присоединилась к проекту OLPC
-- скорее всего для исправления проблем с маркетингом, после того, как
Николас Негропонте в телевизионном эфире обвинил Intel в попытках
"раздавить" его проект, но может быть и для того, чтобы эффективно
использовать методические и программные наработки интерфейса Sugar,
созданного в рамках OLPC.

Вернемся к оборудованию. Triple-E PC и Classmate PC оба представляют
собой маленькие компьютеры на платформе x86, со встроенной памятью
вместо жесткого диска (в Triple-E это Solid-State-Disk, в Classmate --
NAND флэш-память). В остальном это нормальные системы: Celeron, 256Мб
оперативной памяти, USB порты, сетевые контроллеры (проводной и
беспроводной), батарея с зарядом на 4-5 часов работы. И ставший в
последние годы практически стандартом формат 800x480
жидкокристаллического экрана, который делает достаточно комфортным
использование браузера. Первым его подметили и применили в Nokia, в
линейке интернет-таблеток (Nokia 770, N800, N810), а теперь, похоже, он
будет везде -- Triple-E PC, Classmate PC, Mobile Internet Device от
Intel используют именно его, правда, с разным физическим размером экрана.

Поскольку оборудование достаточно новое, некоторые его компоненты
требуют использование свежих версий ядра Linux, но это уже детали,
которые мы рассмотрим в следующем разделе.

2. Ньюансы оборудования.
Традиционно установка на флэш-память подразумевала, что необходимо
изготовить "прошивку" и использовать специальный загрузчик. С
применением архитектуры x86 ситуация несколько упростилась: флэш-память
видна как "обычный" диск, подключенный по одной из шин (IDE, SATA, USB)
и загрузка с этого диска осуществляется традиционными методами:
необходимо разбить его как обычный жесткий диск на ПК (прописать MBR,
сделать загрузочный раздел активным). Это сильно упрощает ситуацию для
программы установки, поскольку поведение ее не должно сильно отличаться
от обычного ПК. Остается только правильно обнаружить шину, к которой
подключено устройство и озаботиться ее активацией при старте ядра
установленной системы.

Поскольку сами устройства не имеют CD-ROM, то существует несколько
вариантов установки: с использованием сети, с USB-диска, с
USB-дисковода. Последнего у меня не было, так что первым логичным
подходом было преобразовать загрузочный CD-ROM в загрузочную USB-флешку
и попытаться использовать этот способ установки. Для этого был
использован загрузчик extlinux из набора утилит syslinux: содержимое
syslinux.cfg было перенесено в extlinux.conf и флешка, отформатированная
  под ext2fs, была проинициализирована утилитой extlinux. Прелесть
extlinux состоит в том, что после разметки и инициализации флешки больше
не требуется никаких перезапусков этой утилиты: можно менять ядро,
initramfs, конфигурационный файл extlinux.conf и перезагружаться.

Тут меня ждал первый веселый ньюанс: инсталятор в ALT Linux 4.0 пока не
умеет различать системы хранения, подключенные по шине USB и собственную
инсталляционную площадку. Из-за этого при разбивке диска он пытается
после выполнения операций над диском, на который мы устанавливаемся,
перечитать таблицы разделов всех дисковых устройств. Эта попытка
заканчивается неудачей на собственном примонтированном разделе
USB-флешки, установка далее не идет. Проблема осознана и, видимо, будет
исправлена в ближайшем будущем.

Остается устанавливать по сети. В этом случае особых проблем не будет,
разве что возможный недостаток памяти для образа инсталлятора. Проблема
эта исправляется указанием конкретного размера ramdisk:
ramdisk_size=65536 в опциях ядру в extlinux.conf. Использование NFS для
доступа к образу инсталляционного диска позволяет этот дефект обойти
(образ инсталлятора монтируется по NFS), да и экономит место на диске,
на который будет произведена установка, что актуально в случае таких
маленьких устройств. В моем случае на машинах было всего по 2Гб
"встроенного диска".

Итак, Classmate PC и Triple-E PC установились. NAND флеш-память
существенно медленнее, чем Solid-State Disk, но нам терпения не занимать
и где-то минут через 40 системы попытались перезагрузиться. И тут меня
ждало следующее разочарование: Classmate PC не загрузился, поскольку не
нашел корневой раздел. Еще бы: его "диск" расположен на шине USB,
поэтому на раннем этапе загрузки необходимо присутствие драйверов USB, в
том числе и usb_storage. Как оказалось, современный mkinitrd имеет ряд
необоримых преимуществ, одно из которых -- безусловное игнорирование
usb_storage при создании образа initrd. Несколько штрихов и
перезагрузок, в процессе которых выяснилось, что еще требуется ext3
(разумно) и dm_mod (пока непонятно), а то монтирование корневого раздела
по UUID не проходит, и мы получаем классический xdm.

В ALD 4.0 Lite в качестве десктопного окружения используется XFCE. С ним
на машинах с 248Мб ОЗУ (8Мб отдано встроенной графической карте)
остается около 100Мб на пользовательские приложения. Надо сказать, что
OpenOffice.org в такой среде работает и вполне пристойно. Firefox --
тоже, обучающие программы (GCompris и подобные) вообще чувствуют себя
как дома. Вот и всё.

Нет, не всё. Устройства позволяют общаться с миром в беспроводном
режиме, который требует настройки. В случае Asus Triple-E PC это карта
на чипе Atheros (драйвер madwifi), в Intel Classmate PC -- чип rt73 от
Ralink. Для последнего в ALT Linux драйверов нет, пришлось собирать
самостоятельно, вместе с графической утилитой RUtilT для настройки rt73.

Triple-E PC также использует относительно редкий, но популярный у Asus
чип ATL2 от Attansic (100Мбит/с, Attansic(R) L2 ethernet adapter). Он
присутствует в репозитарии, на основе которого сделан ALD 4.0 Lite, но
отсутствует в загрузочном образе инсталлятора. Так что пришлось
пересобирать этот образ (спасибо Сергею Большакову за быструю помощь).

Вот теперь, похоже, все.
-- 
/ Alexander Bokovoy
Samba Team                      http://www.samba.org/
ALT Linux Team                  http://www.altlinux.org/
Midgard Project Ry              http://www.midgard-project.org/




Подробная информация о списке рассылки Sisyphus