HPC.ru lite - Все форумы
Форум: КПК и смартфоны на Linux: Zaurus, планшеты Nokia, прочее
Тема: OpenBSD + Linux на С3200

[Ответить]
FinnDinn [03.01.2007 09:26] OpenBSD + Linux на С3200:
Благодаря уважаемому pivanet недавно стал заврозаводчиком, и, поскольку он
меня неоднократно в разговоре побуждал к написанию чего-либо полезного, решил
написать вот такое. Просьба сильно не бить, если данный процесс где-то
уже описывался. Этот текстик можно, наверное, приобщить к wiki, если
сочтете полезным.

1. Стартовые условия.
Читаемая завром SD карточка

Компьютер с кардридером - очень вероятно, что придется часто
перекидывать конфиг файлы в синглмоуде на Завре с компа.

"Родная" прошивка (например, с trisoft.de) - с 2.6 линуксами работать точно
не будет, с 2.4 неродными - еще предстоит проверить
Описание по "родной" разметки диска (с того же trisoft.de)

Сама OpenBSD
Качаем с ftp://ftp.openbsd.org/pub/OpenBSD/4.0/zaurus/ файлы:
INSTALL.zaurus - родная инструкция по установке, стоит почитать
zbsdmod.o, bsd.rd - файлы для загрузки через Линукс
openbsd40_arm.ipk - пекедж, содержащий указанные выше загрузчики, бут лоадер
base40, etc40 - обязательные пакеты с самой ос
x* и прочие пакеты, если нужны, по вкусу

2. Чего хотим добиться
Мультибут OpenBSD 4.0 + Linux
Linux будет использоваться для передачи файлов с Завра/на Завр, т.к.
в OpenBSD 4.0 sd ридер не работает совсем, а CF-устройства не работают
почти (по крайней мере, 100% из имеющихся у меня CF устройств, а именно
единственной карточки Planex GW-CF11X, не поддерживается )

3. Установка BSD на диск
Зашиваем родной Linux (NAND restore) - с неродными возможны проблемы, инсталяция
писалась товарищами из OpenBSD с прицелом именно на родной.

Загружаемся в сингл юзер (d+b)
Запускаем fdisk
Партиционируем диск, как сказано в инструкции по родному лейауту диска
Для C3200 - два партишена под родные "системные" /hdd1 и /hdd2 в 20 блоков длинной
Третий партишн (должен быть MSDOS) делаем не очень большим, в дальнейшем
через него будут передаваться файлы, например +256M

Создаем файловые системы на этих разделах:
mk2efs /dev/hda1
mk2efs /dev/hda2
mk2efs /dev/hda3
Создаем их без журналирования (то есть в ext2), чтобы избежать дальнейших
проблем с fsck. Третий тоже делаем в ext2, а не msdos.
Не dos-овским его делаем для доступности из синглмоуда и из бсд (которая,
хотя и должна оттуда читать при инсталляции, но по слухам этого не делает).
После установки можно будет при желании обратно загнать его в fat.

Создаем четвертый праймари партишн, с id a6 (OpenBSD) на оставшееся пространство.

На hda1 и hda2 переносим файлы из "родной" инсталяции (директории .sys, чтоб
в дальнейшем не было проблем с Линуксом).

Монтируем завровый рут:
mount /dev/mtdblock2 /mnt/cf

Тут нам надо исправить скрипт /home/etc/rc.d/rc.rofilesys, чтобы, во-первых
монтировал hdd1 и hdd2 в ext2, а не ext3, и во-вторых hdd3 монтировал тоже
как ext2, а не msdos.
Как сказано в инструкции от OpenBSD, in these cases below we avoid using
vi because Linux quality is of such high caliber that vi locks up the console.
Консоль он действительно лочит, поэтому просто переписываем этот файл на SD
карточку, правим скрипт на компе и переписываем обратно. Можно, конечно,
пойти путем OpenBSDшников и отредактировать его sed-ом.
В файле монтирование hdd1 и hdd2 в ext2 задается переменной LINUXFMT; чтобы убрать
msdos монтирование, нужно найти все вызовы маунта с параметром vfat и убрать
оный с опциями.
Если в будущем будут ошибки типа "hdd1 error!!", то дело в этом скрипте.

Все файлы от инсталяции OpenBSD копируем на /dev/hda3
После этого обязательно вынимаем SD карточку из слота и выполняем:
insmod zbsdmod.o
cp bsd.rd /proc/zboot

Серыми буквами на голубом фоне (вспоминаем FreeBSD 4) пойдет текст
о проубинге устройств.
Когда предложат Install, upgrade или shell, выбираем I
После нескольких очевидных вопросов инсталлятора (хотим ли ставиться,
куда савиться и тп) и ответа "n" на вопрос о том, что мы не хотим
использовать весь диск под OpenBSD местный fdisk предложит
перепартиционировать диск. Мы тут уже все сделали, единственное,
стоит включить флаг активности на нашем партишене:
e 4
flag 1
w
Следующим шагом будет лейблинг диска. Для простоты имеет смысл для
начала создать один здоровый рут, а своп уже подключать из файла, если
понадобится (и если будет работать).
В бсд рутовый раздел это всегда "a" поэтому выбираем:
(изменить раздел) m
(какой раздел) a
(тип фс) 4.2BSD
(маунтпоинт) /
(записаться) w
Теперь хороший момент запомнить, как из BSD будут называться ваши Линукс
разделы (p). Обычно это будут i,j,k или где-то в этом районе.
Раздел c - в бсд системах раздел, описывающий диск целиком.
Выходим q

Таймзона для Москвы называется Europe/Moscow, другие можно поискать в списке.

Настройку сети можно пока проигнорировать (у меня не было сетевых
устройств).

Далее выбираем пакеты, которые хотим поставить и пишем done.
Начнется копирование файлов, после которого предложат ввести halt.
В этом месте экран в нижней части немного подглючивает, нужно просто
ввести "halt", нажать enter и через какое-то время нажать enter
еще раз.

После ребута вы должны попасть либо в Линукс, либо в OpenBSD через ее
бутлоадер (который у меня не установился или я проглядел где эта
установка происходит).
Первый случай фиксится установкой пекеджа openbsd40_arm.ipk и
последующим ребутом.

Бутлоадер работает не совсем очевидным образом:
По таймауту он должен загрузить BSD (активный партишн). Такой же
результат будет если написать ему boot
Чтобы попасть в линукс ему следует написать reboot, в этом
случае загрузка продолжится.

4. Настройка железа
Никакое железо BSD не поддерживает, поэтому проблемы нет, поскольку
настраивать нечего. По крайней мере, из имеющегося у меня
SD ридер не работает, на проубе приводит к panic если в него
вставлена карточка.
Компактфлеш WiFi Planex GW-CF11X не работает, как и другие подобные ему
устройства, если верить мейлинг листам, потому, что не поддерживается
динамическая загрузка по для wi девайсов.

Чтобы подключить наш hda3 (через который теперь и будет осуществляться
общение с внешним миром), вспоминаем, какой буквой назывались наши линукс
партишены при лейблинге и приставляем нужную к названию нашего диска,
например mount /dev/wd0k /mnt

5. Дополнительный софт
Кроме билданья софта собственноручно и с портсов (не проверял), доступны
бинарные пекеджи тут ftp://ftp.openbsd.org/pub/OpenBSD/4.0/packages/arm
Добавлять при помощи pkg_add, например:
pkg_add icewm-1.2.26.tgz
Serge_RUS [03.01.2007 20:07] :
И вот зачем оно, не работающее? И так что-ли мало полуработающих прошивок?...
FinnDinn [03.01.2007 20:56] :
Зачем - это другой вопрос, тут уже наверное каждому свое.
До OpenBSD я дошел после OpenZaurus и PdaXRom, которые несколько расстроили.
Из преимуществ лично для меня:
- OpenBSD на завре это тот же самый дистрибьюшн, что и на PC. Не многим это нужно, но для меня существенный плюс. Из линов мне известна только попытка портировать Gentoo, и то, я не уверен, что Gentoo для Zaurus не задумывалось как тотальное обрезание оригинального Gentoo
- То, что это BSD, хотя и извращенная. Опять же, это не многим важно, но есть люди, которым приятнее иметь дело с BSD, чем с Лином.

Кстати насчет нерабочести - намертво не работает только SD слот. С WiFi карточкой мне не повезло с моделью, поддерживаемых CF WiFi достаточно много. USB ethernet с подозрительным названием Evco, подключенный через HostUSB кабель работает отлично. Так что с нерабочестью железа я погорячился.

В планах - скачать старый pdaxrom и сделать мультибут OpenBSD current с ним.
FinnDinn [04.01.2007 06:45] :
Кстати вот интересное:
http://openbsd.org/images/newrack.jpg
Комментариев к картинке не нашел, видимо, это серверная OpenBSDшников (картинка доступна с главной страницы).
В правой стойке над ХП и под Саном лежит два Завра C3x00.
На сайте написано, что вся разработка под Zaurus у них ведется на самих Заврах без кросскомпайлинга. На ftp в snapshots они примерно ежедневно выкладывают билд карента и пекеджей.
Похоже юзают эти два Завра как серверы, на которых по крону пускают билд.
dbdg [17.01.2007 18:03] :
немного оффтопа

http://www.opennet.ru/opennews/art.shtml?num=9539
в FreeBSD7 обещают поддержку arm

Возможно в семейтве BSD систем под завр будет пополнение , может с драйверами там будет по-проще.
dbdg [02.04.2007 17:29] :
Неужели случилось чудо =)
и одним минусом стало меньше

http://www.oesf.org/forums/index.php?showtopic=23517

And here it is! The moment we've all been waiting for:

$ dmesg
OpenBSD 4.1-current

pxammc0 at pxaip0: MMC/SD/SDIO controller
sdmmc0 at pxammc0
scsibus0 at sdmmc0: 2 targets
sd0 at scsibus0 targ 1 lun 0: <SD/MMC, Drive #01, > SCSI2 0/direct fixed
sd0: 14MB, 14 cyl, 64 head, 32 sec, 512 bytes/sec, 29120 sec total

Now OpenBSD based Z's can utilize the on board sd slot!
hrhr [03.04.2007 14:11] :
нормально obsd работает на завре, правда собирать весьма долго, т.к. не провайдят кроссдев для опенбсд....
cxz [03.04.2007 15:09] :
кто нибудь её уже ставил? скиньте образ
[Ответить]