Выбор дистрибутива Linux для КПК и его установка

Материал из roboforum.ru Wiki
Версия от 08:41, 24 декабря 2007; Digit (обсуждение | вклад) (Установка Familiar Linux на iPaq 4700)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Установка Familiar Linux на iPaq 4700

Автор: LINUX на КПК

Что есть в наличии?

- Устройство HP hx 4700
- Большой компьютер с Linux
- 1GB SD и 128MB SD
- Крэдл или кабель

Установка

Считаем, что у нас есть компьютер с Linux. Нам обязательно понадобятся одна SD карточка больше 128 мегабайт для резервного копирования WinCE и одна CF карточка меньше 512 мегабайт и больше 64 мегабайт. С CF большего размера наблюдаются труднообъяснимые сложности. Не со всеми и не всегда, но бывают. Установка будет произведена на внутреннюю память устройства, так что если произойдет непоправимое, придется нести его в сервис. Вероятность такого исхода крайне мала, главное:

- Убедиться, чтобатарея полностью заряжена, так как 1 цикл полной установки берет примерно 15-20%.
- Убедиться, что все защелки снизу в положении «закрыто».
- Помнить, что кнопка «Record» слева сверху на боковине.
- Кнопка «Reset» на нижнем торце, а на задней стенке - пломба гарантии, очень на нее похожая.

Резервное копирование Windows CE и установка SDG Bootloader

Для того, чтобы работать с памятью устройства на низком уровне, HP сделала для нас «Maintenance-режим», который позволит скопировать содержимое всей памяти наладонника на SD карту. Файл получится размером примерно в 130 мегабайт, так что надо заранее запастись такой картой. Полученный образ Windows CE надо хранить в каком-то очень надежном месте, чтобы вернуть его на место, например, в случае продажи устройства или обращения в сервис-центр (не хотим же мы пугать там людей видом консоли на КПК).

Итак:

- нажимаем одновременно Addressbook, iTask и reset. На экране должно быть видно «v1.01» и логотип HP
- вставляем устройство в крэдл и подключаемся к /dev/ttyUSB0 используя minicom (для этого в minicom надо еще зайти в меню, а пускать его надо с параметром -os. Все получится, но надо запастись терпением, так как все происходит очень медленно)
- Команда d2s скопирует содержимое памяти на SD карту, которую надо заранее вставить в слот. Все, что было на карте будет испорчено и ее придется заново форматировать:

USB>d2s
SD:Waiting for card insert.........
CMD3 for SD, it's OK, ready to get RCA from response.
SD:Detected one card
SD:ready for transfer OK
Total card size=3D680000e=0
SDCARDD2S+,cStoragePlatformType=FF
USB>********************************************************
Store image to SD/MMC card successful.
USB>

Теперь скопируем образ WinCE на большой компьютер (я надеюсь, вы умеете пользоваться командой dd):

# dd if=/dev/sda of=mybackup.img bs=130M count=1

Установим загрузчик, последнюю версию которого надо взять здесь, это файл с расширением rom. Копируем загрузчик на карту (опять с нее все будет стерто):

# dd if=bootldr.rom of=/dev/<sda>

Собственно, все тоже самое будет при восстановлении WinCE. Надо вставить карту, опять нажатьодновременно Addressbook, iTask и reset, а затем следовать возникающим инструкциям на экране без подсветки.

Все! Теперь у нас есть устройство, которое не может работать, но предоставляет интерфейс для манипуляции с содержимым ROM нашего КПК.

Установка собственно Сиcтемы

Для установки Linux нам понадобится только карточка CF, отформатированная под FAT 16, а не под FAT 32. Если у вас большая карточка, лучше всего сделать на ней первый раздел размером 128 мегабайт и отформатировать его на FAT 16. Linux'овый fdisk и mkfs вполне справятся с этой задачей.

На момент написания, последняя доступная версия Familiar -- 0.8.4-3. В скором времени должна выйти стабильная версия, 0.8.4, а пока лучше пользоваться rc3. Нужные нам файлы:

-Заходим на страницу скачивания и скачиваем нужный нам дистрибутив, выбрав в меню testing, 4700 и GPE.
- Создадим у себя на большом компьютере папку ~/4700 и сложим туда все загруженные нами файлы.
- Отформатируем CF на FAT 16, смонтируем ее, скажем, в /media/CF. В /media/CF создадим файл reflash.ctl следующего содержания:

hx4700-kernel zImage - kernel
hx4700-root gpe.jffs2 - root
hx4700-root gpe.jffs2 - root

- Из большого архива bootgpe скопируем home, zImage и gpe, переименовав их так, как у нас написано в reflash.ctl, короткие названия удобнее.
- Вставляем CF и нажимаем Contact+Mail+reset.
- Загрузчик прочитает reflash.ctl и выведет на экран 3 пункта. Навигация вверх-вниз клавишами Contact-Calendar, выбор того, что надо прошивать - iTask.
- После выбора имиджа надо подтвердить само прошивание клавишей Record. Просто надо последовательно прошить kernel, root и home следуя инструкциям на экране.

Сама инсталляция на этом завершается и после перезагрузки будет работать Linux.

Здесь надо сказать несколько слов о jffs2. Это журналируемая файловая система, которая старается как можно меньше портить NAND-Flash КПК, выбирая при циклах записи (в том числе журнала) наименее используемые ячейки. Таким образом, устройство становится менее чувствительным к перезагрузкам без разрушения памяти файлом журнала, как это бывает при использовании Ext3.