my juick

2011-08-20

OpenBSD 4.9 on asus eeepc 1000

Далее довольно много буков и по стилю похоже на Как всё началось

Захотелось мне странного: попробовать какую-нибудь операционку из семейства *BSD. Ну я же itJumper, не сидится мне спокойно на настроенном и работающем Debian. Да ещё и в FlossWeekly был выпуск про то, какая FreeBSD вся из себя..
И начал я поиски с прицелом на поставить на нетбук, ибо в виртуалке особо и не распробуешь. Помня, какие проблемы были 2-3 года назад с поддержкой нетбучного железа у разных дистрибутивов GNU/Linux и начитавшись того, какие *BSD отстающие в этом плане, пошёл в Google искать что же лучше всего запускается на моём eee1000. Первым делом отправился на сайт NetBSD красноречевый слоган которого гласит "Of course it runs NetBSD". Найдя даже целую страничку про нетбуки, был несколько разочарован необходимостью дополнительных телодвижений.
Дальше пошёл искать информацию о самой распространённой из *BSD -- FreeBSD. Выяснилось, что с поддержкой wifi (той самой RT2860, с которой были большие проблемы во многих дистрибутивах GNU/Linux), тут тоже не всё гладко.
Далее была, следующая по популярности -- OpenBSD. Вот тут и оказалось всё совсем хорошо. Сайт, правда, вырвиглазный.. Ну да ладно, попробуем.
Сначала надо попробовать это дело в виртуалке, ибо система совершенно не знакомая. Берём установочный образ и ставим в VirtualBox. Приятно порадовал installer. Казалось бы, в Ubuntu довольно простой процесс установки. Так вот, в OpenBSD installer проще некуда! Прямо как устанавливать программы в Windows: next, next, next, ..., finish enter, enter, enter, ..., reboot. Текстовых installer'ов уже давно не боюсь, а даже наоборот, предпочитаю, поэтому первая установка с опциями по умолчанию прошла совершенно спокойно.
Итак, имеем рабочую систему, хоть и в VirtualBox. Теперь осталось всего ничего: понять как с этим работать, ибо с наскоку, с некоторым опытом работы в командной строке в дистрибутивах GNU/Linux, не особо много получилось. Отличается очень многое(не мудрено -- другая ОС, всё-таки): от оболочки(ksh вместо bash) до файловой системы(как в смысле формата, так и в смысле присутствующих директорий).
OpenBSD известна не только изначальной направленностью на безопасность, но и отличной документацией: если в man'ах или ещё где в документации находят ошибку, то это приравнивается по важности чуть ли не к системному уровню ошибки (это на сколько я понял из некоторого количества прочитанных материалов) и исправляется в кратчайшие сроки. Так вот, местный hadbook располагается по адресу http://www.openbsd.org/faq/index.html а товарищ @Dant посоветовал погуглить книжку "Absolute OpenBSD: UNIX for the Practical Paranoid", которая оказалась довольно хорошей вещью, хотя и не прочитана ещё мною до конца.
Первой вещью, которая меня интересовала было "как тут установить что-нибудь?". Выбора два: предварительно собранные пакеты и самостоятельная сборка из портов. Эти пути хорошо описаны в FAQ и даже после беглого просмотра становится понятно что делать. Единственной неприятностью после Debian является малое количество собранных пакетов. Практически всё надо собирать из портов, что несколько затруднительно на не самом быстром ssd в eee1000 и atom n270 (хотя я и тестировал всё сначала в VirtualBox на четырёхядерном Core i5, это было и так понятно даже без опыта сборки некоторых довольно ёмких приложений под Debian). При попытке сборки нескольких программ столкнулся с нехваткой места при разбиении диска по-умолчанию(сам образ был 2х-гиговый -- с прицелом на sd-card в будующем). Пришлось устанавливать систему заново с разбиением диска только на один partition.
В общем, с установкой приложений разобрался, даже поставил привычный bash, emacs, Xorg, fluxbox.. Пора попробовать на реальном железе. Вот тут и кроется первая засада.
Переходя на Debian с Ubuntu(да и не только. Я же itJumper -- много дистрибутивов было перепробовано  на нетбуке и дэсктопе, проблем с созданием загрузочной флэшки не было благодаря unetbootin. Выбираем iso-образ, пишем на флэшку и готово. Тут же совершенно другая система загрузки. Не беда, гуглим. Оказывается, не всё так просто и загрузочной флэшки особо не получится(да, совсем обленился с Debian, где практически всё работает и ничего трогать особо не надо, за исключением нескольких дней после установки). Было перепробовано много вариантов от тупого dd if=install49.iso of=/dev/sdc до попытки использовать образ загрузочной дискеты. Последний вариант был с загрузкой по сети, который тоже не увенчался успехом. В итоге, добрый @Elemir подсказал отличный способ с Qemu и доступом к raw-drive. По этому рецепту(минуя установку Ubuntu на флэшку и установку OpenBSD оттуда) OpenBSD поселилась на 2х-гиговой sd-card(для начала. да и рабочая система была нужна в следующие несколько дней).


Qemu, ещё по опыту предыдущего использования, довольно тормозная система эмуляции, но для лёгкой установки вполне сгодилась. Нюанс: перед тем как радостно набирать # reboot в виртуалке и хостовой системе нужно заменить строку
/dev/wd0a / ffs rw 1 1
на
/dev/sd0a / ffs rw 1 1
в /etc/fstab свежепоставленной системы, например с помощью sed(ибо других привычных редакторов в installer'е я не нашёл):
cd /etc
sed 's/wd0a/sd0a/' fstab > fstab.new; mv fstab.new fstab
иначе система не сможет смонтировать sd-card как корневую файловую систему. Всё, перезагружаемся(загрузка, надо сказать, дольше, нежели у так горячо любимого мною Debian).
И вот теперь время радости: wifi карточка поддерживается, как и обещалось, искаропки. И это первый раз, когда у меня получилось настроить wpa2 wireless соединение из командной строки без помощи чего-либо ещё. То есть читаем man ifconfig про wireless соединение и просто следуем инструкциям(и да, тут man'ы действительно исчерпывающие). В итоге, просто набрав
ifconfig ral0 nwid wpa wpakey wpaprotos wpa2
dhclient ral0
получаем работающее соединение. И никаких танцев вокруг wpa-supplicant, wicd, network-manager, etc.
Далее, хоткей fn+f1(suspend) работает просто замечательно(засыпает мгновенно, просыпается чуток дольше. Но на системе, загруженной с sd-card не стоит этого делать -- при просыпании sd-card как-будто не примонтирована и система просто freezed. Помогает только hard reset), чего не скажешь о простом закрытии крышки(хотя, я бы это всё равно выпилил) и fn+f2(wireless on/off). Поставить что-то из package'й получилось без проблем(ещё бы -- простая распаковка), а вот распаковки портов я так и не дождался(sd-card уж больно медленная) и оборвал где-то в процессе.


На screenshot'е ещё попытки установки внутри вритуалки.
Сегодня пришло время поставить OpenBSD в живую, то есть вместо Debian. Как полагается, backup /home на внешний винт. Далее, чтобы избежать неприятностей, установка Debian на usb-flash со всеми необходимыми пакетами(qemu, Xorg, fluxbox, emacs), вытаскивание install49.iso внутрь установленного Debian и перезагрузка на sd-card для последующей установки OpenBSD.
Маленькое отступление: Debina installer оказался более прихотлив к быстродействию Qemu, поэтому пришлось освоить использование raw-drive из-под VirtualBox вот отсюда: http://www.virtualbox.org/manual/ch09.html#rawdisk.


Установка прошла гладко(по уже накатанной-то дорожке) и пришло время перезагрузки в новую систему. Опять же, по накатанной дорожке, настройка сети не вызвала проблем, распаковка портов прошла довольно быстро(минут 15), компиляция жизненно необходимого screen прошла минут за 7.
В общем, жить можно, будем осваиваться!