Все перечисленное ниже проверено на OpenBSD 5.0 и 5.1. В случае 32х битной системы amd64 нужно заменять на i386
http://www.lissyara.su/articles/openbsd/syntony/installation_openbsd_4.2/
С 2008 года инсталлятор практически не изменился, наверное он вообще никогда не менялся :)
Если при установке выбрать раскладку ru, то инсталлятор сразу пропишет ее в /etc/kdbtype, как и советуют почти во всех хауту. Правда у меня (JB) из за этого были проблемы с xdm и хотя я не уверен в их причине, тем не менее я пошел другим путем - /etc/kbdtype удалил, а в /etc/wsconsctl.conf добавил вот это:
keyboard.encoding=ru # use different keyboard encoding
там же можно указать и клавишу для переключения:
keyboard.map+="keycode 157 = Mode_Lock" # Right Ctrl
далее в /etc/rc.local (что бы консоль могла отображать русские буквы):
wsfontload /usr/share/misc/pcvtfonts/koi8-r-8x16 for cons in 1 2 3 4; do wsconscfg -dF $cons; wsconscfg -t 80x25bf $cons; done unset cons
и если в wsconsctl.conf не был указан keyboard.map, то сюда же надо добавить wsconsctl -w keyboard.map+="keycode 157=Mode_Lock". А можно добавить и туда и туда
Иксы настраиваются как и везде:
Option "XkbModel" "pc105" Option "XkbLayout" "us,ru(winkeys)" Option "XkbOptions" "grp_led:scroll,grp:ctrl_shift_toggle"
Еще надо добавить в .xinitrc или .xsession (в случае логина через xdm) вот это:
export LC_COLLATE=C export LC_CTYPE=ru_RU.KOI8-R export LC_MONETARY=C export LC_NUMERIC=C export LC_TIME=C
Для любителей экспериментов есть возможность использовать в иксах уникодную локаль - http://wiki.openbsd.ru/Русификация_и_UTF-8.html
Каждый интерфейс настраивается в отдельном конфиге /etc/hostname.$interface. Например:
$ cat /etc/hostname.alc0 inet 10.0.0.38 255.255.255.0 10.0.0.255 $ cat /etc/hostname.athn0 nwid SSID_точки_доступа wpakey пассфраза dhcp
Шлюз указывается в /etc/mygate (в случае с dhcp это не нужно):
$ cat /etc/mygate 10.0.0.1
Что бы применить все изменения на лету без перезагрузки достаточно запустить sh /etc/netstart имя_интерфейса
По умолчанию порты отсутствуют, поэтому скачиваем их вручную и распаковываем:
# ftp http://mirror.corbina.net/pub/OpenBSD/`uname -r`/ports.tar.gz # cd /usr # tar zxf /root/ports.tar.gz
Установка и удаление аналогичны портам FreeBSD, единственное что стоит запомнить это скрипт для проверки устаревших установленных портов:
# cd /usr/ports/infrastructure/build/ # ./out-of-date Collecting installed packages: ok Collecting port versions: ok Collecting port signatures: ok Outdated ports: net/wget # 1.12p1 -> 1.13.4 # cd /usr/ports/net/wget # make update
Пакеты ставятся так:
# export PKG_PATH=http://ftp.openbsd.org/pub/OpenBSD/`uname -r`/packages/amd64/ # pkg_add package_name
Для обновления есть ключ -u:
# pkg_add -u package_name
Либо можно обновить все пакеты сразу:
# pkg_add -iu
Что бы не вводить export каждый раз, переменную PKG_PATH можно добавить куда нибудь в .profile, .bash_profile или .zprofile в зависимости от шелла. Можно и в юзерский профиль, а пакеты ставить через sudo
Начиная с 4.9 все сторонние сервисы находятся в /etc/rc.d. Для их запуска в /etc/rc.conf есть параметр pkg_scripts:
pkg_scripts="dbus_daemon"
Разработчики рекомендуют избегать правки непосредственно /etc/rc.conf, внося все изменения в /etc/rc.conf.local, переменные в котором имеют приоритет над переменными в /etc/rc.conf. Это имеет смысл, поскольку /etc/rc.conf может быть перезаписан при обновлении системы. Аналогично, изменения /etc/rc следует выносить в /etc/rc.local. Это же касается файлов /etc/daily, /etc/weekly и /etc/monthly — имена файлов с локальными модификациями получают суффикс .local
Качаем тарбол с исходниками и разворачиваем куда надо:
# ftp -C ftp://mirror.corbina.net/pub/OpenBSD/`uname -r`/sys.tar.gz # cd /usr/src # gzip -cd | tar xvf - /root/sys.tar.gz
Конфиг лежит в /usr/src/sys/arch/amd64/conf. Можно либо отредактировать GENERIC (тут еще нужно обратить внимание на то, что конфиг для многоядерных или многопроцессорных систем GENERIC.MP состоит по сути из трех строчек - двух параметров отвечающих за SMP и вставки содержимого GENERIC), либо скопировать его под другим именем и править уже его:
# cd /usr/src/sys/arch/amd64/conf # cp GENERIC PUFFY # vi PUFFY # config PUFFY # cd ../compile/PUFFY # make clean && make depend && make -j3 # make install # reboot
Для чего это нужно? Например чтобы включить поддержку bluetooth
Описание процесса обновления системы до ветки -stable
Обновление до -current, English
Все манипуляции с микшером делаются с помощью mixerctl, например изменение громкости:
$ mixerctl outputs.master=130,130 outputs.master: 126,126 -> 130,130
На ноутбуках при подключении наушников звук может продолжать идти из колонок. Лечится это так:
$ mixerctl -a | grep output | grep slaves outputs.master.slaves=dac-0:1,line,hp $ mixerctl outputs.master.slaves=dac-0:1,line $ mixerctl outputs.master.mute=on
без второй команды не получится отдельно выключать колонки и наушники, а третья собственно выключает вывод звука на колонки оставляя только наушники. Насчет бескостыльности этого метода я не уверен
Все это можно сохранить в /etc/mixerctl.conf:
$ cat /etc/mixerctl.conf outputs.master=130,130 outputs.master.slaves=dac-0:1,line outputs.master.mute=on
Для управления частотой процессора достаточно раскомментировать запуск apmd в /etc/rc.conf:
apmd_flags="-A"
-A - автоматическое управление частотой в зависимости от нагрузки, -C - максимальное энергосбережение
В ждущий режим (suspend-to-ram) система отправляется командой apm -z или просто zzz. Спящий режим (suspend-to-disk) не поддерживается
Изменение частоты парковки головок жесткого диска
HAL в OpenBSD отсутствует и udisks тоже, поэтому для автомонтирования хотя бы тех же флешек придется сооружать давно забытые костыли. В первую очередь надо поставить hotplug-diskmount и разрешить запуск hotplugd:
# pkg_add hotplug-diskmount hotplug-diskmount-0.5p1: ok # echo "hotplugd_flags=" >> /etc/rc.conf.local # /etc/rc.d/hotplugd start hotplugd(ok) # /usr/local/libexec/hotplug-diskmount init
Потом создать /etc/hotplug/attach с таким содержимым:
#!/bin/sh
DEVCLASS=$1
DEVNAME=$2
case $DEVCLASS in
2)
/usr/local/libexec/hotplug-diskmount attach -u artem -m 700 "$DEVNAME"
;;
esac
разумеется вместо artem подставить свое имя пользователя. И не забыть сделать файл исполняемым - chmod +x /etc/hotplug/attach
Теперь можно вставлять флешку и проверять. По умолчанию все монтируется в /vol/МЕТКА_ТОМА
/* FIXME: мне почему то не помогло - inetd все равно запускался. В качестве воркэраунда можно отредактировать /etc/inetd.conf и закомментировать там все ненужное */