my juick

2011-10-12

usefull environment on Debian 6 Squeeze

Продолжаем настраивать недавно поставлнный Debian.
  • tools
    • xterm
Так как установка была изначально минималистичная, то в качестве терминала используется xterm. А у xterm есть неприятность в обработки Meta(LAlt) клавиши(что больше всего чувствуется при работе в emacs): сразу после запуска сочетания типа M-a M-e(переход в начало/конец строки) не обрабатываются(вставляются кракозябры). Лечится через C- -> meta sends escape, что не очень удобно делать каждый раз после запуска. Конечно, при использовании screen/tmux это отходит на второй план, ибо один раз multiplexor запустил и другого xterm особо не надо запускать, но бывает необходимость в новом окне.
Так вот наконец-то переборол лень и нашёл как это полечить: добавляем строку
Xterm*metaSendsEscape: true
в ~/.Xdefaults и запускаем
$ xrdb -merge ~/.Xdefaults
чтобы изменения вступили в силу. Теперь M-a M-e работает как ожидается. Также можно изменить размер шрифта по умолчанию, ибо маловат он: добавляем в тот же файл
XTerm*font: -misc-fixed-medium-*-*-*-*-*-*-*-*-90-iso10646-*
и обновляем настройки.
    • apt-file
Кстати говоря, нетбук не знал про команду xrdb, в отличие от десктопа. Что это за зверь поможет узнать apt-file (показывает какому пакету принадлежит файл). Устанавливается через
# aptitude install apt-file
Затем нужно обновить базу файлов:
$ apt-file update # обновит локальную для пользователя базу. можно использовать system-wide, если запускать от root
Затем ищем нужный пакет
$ apt-file find xrdb
и получаем x11-xserver-utils
  • synergy
В подкасте FLOSS Weekly рассказывали про довольно полезную утилиту synergy. Хотел ещё на OpenBSD попробовать, но не срослось(собрать из исходников): других проблем хватало. А в Debian она есть в репозитории -- чего бы не попробовать наконец? Скажу сразу: как говорили в подкасте "it's awesome!", реально!
Установка проста(как и многое в Debian :)):
# aptitude install synergy
Конфигурация заставила чуток порыться в интернете на предмет готовых конфигов. В итоге получился следующий конфиг:
section: screens
  newDesktop:
  eee1000:
end

section: aliases
  newDesktop:
    192.168.1.6
  eee1000:
    192.168.1.5
end

section: links
  newDesktop:
    left = eee1000

  eee1000:
    right = newDesktop
end

section: options
  screenSaverSync = false
end

Важно указать в "section: links" оба экрана, ибо иначе не заработает. Дальше просто создаём ~/.synergy.conf и запускаем(в моём случае сервером служит newDesktop) сервер и клиент:
ilya@newDesktop [~]$ synergys --config ~/.synergy.conf
ilya@eee1000 [~]$ synergyc --restart 192.168.1.6
И радуемся жизни. Почти. Переключение расладок у меня настроено на right alt, что не особо дружит с synergy: при курсоре на клиенте расладка переключается на сервере. Лечится это, похоже, сменой клавиши переключения раскладки, либо не достаточно гуглил :(
  • vsftpd
Ставится, опять же, элементарно:
# aptitude install vsftpd
Настраивается(для простого домашнего использования) так же элементарно:
разрешаем локальным пользователям входить(анонимам скажем нет) и подниматься не выше своего домашнего каталога в файле /etc/vsftpd.conf. В итоге, почти не изменённый конфиг(только разрешённые опции, без комментариев):

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
За большим в man 5 vsftpd.conf. Перезапускаем сервер и готово
# /etc/init.d/vsftpd restart
  • lighttpd + mercurial
Держать свой webserver довольно полезно бывает (мало-ли чего проверить надо, или вдруг стукнет webdev'ом побаловаться :)), а если ещё и mercurial repositories сервить у себя (хотя, после анонса unlimited private repositories, да ещё и с git это не особо актуально)... В общем, полезное это дело.
Ставим пакетики
# aptitude install lighttpd php5-cgi
Идём в конфиги и разрешаем userdir и cgi
# cd /etc/lighttpd/conf-enable 
# ln -s ../conf-available/10-cgi.conf
# ln -s ../conf-available/10-userdir.conf
Редактируем настройки того, что будет запускаться под cgi: разрешаем .py и .php.
Добавляем файл атентификации (для mercurial web server):
# cd /etc/lighttpd# touch lighttpd.auth.plain 
# chmod 640 lighttpd.auth.plain
# chown root:www-data lighttpd.auth.plain 
# echo "user:password" >> lighttpd.auth.plain
И, наконец, редактируем настройки самого сервера: весь конфиг на github.
Да, не забываем создать папочку /var/www/hg с файликами hgweb.config и hgwebdir.cgi и каталогом самих репозиториев. Более подробно это описано здесь.
Ну и конечно, нельзя забывать про права доступа для группы(хотябы) www-data, ибо и сам неоднократно напарывался на это. А каталог с репозиториями вообще лучше сделать собственностью www-data:
[/var/www/] # chown -R www-data:www-data hg
Перезапускаем lighttpd и радуемся :)

Потом ещё можно настроить dyndns (или что больше предпочтительно) и доступаться до репозиториев откуда угодно.

Ну вот минимум полезностей и есть. Дальше будем ещё что-нибудь настраивать, ибо всего за раз не настроишь.

2011-09-04

Debian 6 Squeeze on asus eeepc 1000

В nный раз ставлю Debian на нетбук и вот решил таки записать процесс установки и настройки.
По установке, собственно, сказать особо нечего, ибо процесс довольно тривиальный. Загрузочная флэшка из образа netinstall создаётся unetbootinом, загружается и устанавливается(инсталлер довольно интуитивен). Единственное, что несколько напрягает -- нет поддержки(по крайней мере в моём образе) wireless-адаптера(тот самый проблемный rt2860). Поэтому пришлось откопать eth-шнурок и цепляться к роутеру. Альтернатива могла быть в виде HTC с расшариванием wifi-connection, но зачем?
А вот настройку уже стоит описать на будущее(надеюсь, уже не понадобится), чтоб не ползать по сети в поисках.
  • rt2860
После перзагрузки первым делом надо поднять нормальную сеть. Идём в Debian wiki и прописываем репозиторий в /etc/apt/sources.list. Ставим firmware, wicd, поднимаем wlan0 и радуемся сети.
Теперь можно плюхнуться в любимое кресло и продолжить настройку.
  • console
Для начала настроим .bashrc. Для root'а утащим .bashrc конфиг из OpenBSD(предыдущий пост, с небольшими изменениями), ибо больше особо и не надо.
#
# color prompt
#

Color_Off='
\[\033[0m\]'       # Text Reset

# Regular Colors
Black='
\[\033[0;30m\]'        # Black
Red='\[\033[0;31m\]'          # Red
Green='\[\033[0;32m\]'        # Green
Yellow='\[\033[0;33m\]'       # Yellow
Blue='\[\033[0;34m\]'         # Blue
Purple='\[\033[0;35m\]'       # Purple
Cyan='\[\033[0;36m\]'         # Cyan
White='\[\033[0;37m\]'        # White

# Bold
BBlack='
\[\033[1;30m\]'       # Black
BRed='\[\033[1;31m\]'         # Red
BGreen='\[\033[1;32m\]'       # Green
BYellow='\[\033[1;33m\]'      # Yellow
BBlue='\[\033[1;34m\]'        # Blue
BPurple='\[\033[1;35m\]'      # Purple
BCyan='\[\033[1;36m\]'        # Cyan
BWhite='\[\033[1;37m\]'       # White

# color prompt
PS1="${BRed}\u@${BGreen}\h${BRed} [${BBlue}\W${BRed}]# ${White}"

#
# environment
#

export PAGER=less

#
# aliases
#

alias ls="ls --color"
alias less="less -R"
Ну и must have:  screen && emacs && mc && htop
# aptitude install screen emacs23-nox mc htop
И, конечно, синхронизация времени:
# aptitude install ntpdate
# crontab -e
и добавить
@daily /usr/sbin/ntpdate 0.pool.ntp.org
  • acpi support
pm-utils и fancontrol должны быть уже установлены, если была выбрана категория for laptops при установке. Для начала настроим fancontrol: запускаем
# pwmconfig
и подбираем уровень шума. Мой /etc/fancontrol:
# Configuration file generated by pwmconfig, changes will be lost
INTERVAL=10
DEVPATH=hwmon0= hwmon1=devices/platform/eeepc
DEVNAME=hwmon0=acpitz hwmon1=eeepc
FCTEMPS=hwmon1/pwm1=hwmon0/temp1_input
FCFANS= hwmon1/pwm1=hwmon1/fan1_input
MINTEMP=hwmon1/pwm1=57
MAXTEMP=hwmon1/pwm1=63
MINSTART=hwmon1/pwm1=45
MINSTOP=hwmon1/pwm1=30
MINPWM=hwmon1/pwm1=28
MAXPWM=hwmon1/pwm1=225
Теперь перезапускаем демона
# /etc/init.d/fancontrol restart
и "enjoy the silence".
Теперь настроим acpi: надо поставить eeepc-acpi-scripts и aosd-cat. Причём eeepc-acpi заменят уже установленный acpi-support.
# aptitude install eeepc-acpi-scripts aosd-cat
 Чтобы заработали всплывающие уведомления нужно разрешить их в /etc/default/eeepc-acpi-scripts и создать файл ~/.Xauthority:
$ touch ~/.Xauthority
и конфиг (зелёным выделено то, что изменено относительно стандартного конфига):
ENABLE_OSD='yes'
OSD_FONT='DejaVuSans 36'
ENABLE_OSD_BRIGHTNESS='no'
SOUND_LABEL=
SOUND_SWITCH=
SOUND_SWITCH_EXCLUSIVE=
SOUND_PREFER_MASTER=yes
SOUND_VOLUME_STEP=
DETAILED_SOUND_INFO=no
VGA_ON='--auto'
LVDS_OFF='--off'
SUSPEND_METHOD=pm-suspend
SUSPEND_OPTIONS=--quirk-s3-bios
LOCK_SCREEN_ON_SUSPEND='yes'
LID_CLOSE_ACTION=
BLUETOOTH_FALLBACK_TO_HCITOOL='yes'
SOFTBTN1_ACTION='handle_blank_screen'
SOFTBTN2_ACTION='NONE'
SOFTBTN3_ACTION='handle_camera_toggle'
SOFTBTN4_ACTION='handle_bluetooth_toggle'
SOFTBTNSHE_ACTION='handle_shengine'
FnF_TOUCHPAD='handle_touchpad_toggle'
FnF_RESCHANGE='NONE'
FnF_BACKLIGHTOFF='handle_blank_screen'
FnF_VGATOGGLE='handle_vga_toggle'
FnF_TASKMGR='NONE'
FnF_MUTE='handle_mute_toggle'
FnF_VOLUMEDOWN='handle_volume_down'
FnF_VOLUMEUP='handle_volume_up'
PWR_CLOCK_AC=0
PWR_CLOCK_BATTERY=2
DEFAULT_SHENGINE_CONFIG=auto

Пришло время поднять Xы:
  • Xorg
Ставим базу:
# aptitude install xserver-xorg-video-intel xserver-xorg-input-synaptics xinit xterm
Получаем дефолтный конфиг
# X -configure
# cp xorg.conf.new /etc/X11/xorg.conf
И при попытке запуска xinit получаем ошибку no screens found. Пойдя по пути наименьшего сопротивления, перезагружаемся и получаем рабочие Xы (плюс нормальное разрешение консоли).
 Добавляем поддержку touchpad'а. Итоговый xorg.conf для eee pc 1000:
Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
        InputDevice    "synaptics"
EndSection

Section "Files"
        ModulePath   "/usr/lib/xorg/modules"
        FontPath     "/usr/share/fonts/X11/misc"
        FontPath     "/usr/share/fonts/X11/cyrillic"
        FontPath     "/usr/share/fonts/X11/100dpi/:unscaled"
        FontPath     "/usr/share/fonts/X11/75dpi/:unscaled"
        FontPath     "/usr/share/fonts/X11/Type1"
        FontPath     "/usr/share/fonts/X11/100dpi"
        FontPath     "/usr/share/fonts/X11/75dpi"
        FontPath     "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
        FontPath     "built-ins"
EndSection

Section "Module"
        Load  "glx"
        Load  "dbe"
        Load  "dri"
        Load  "extmod"
        Load  "dri2"
        Load  "record"
        Load  "synaptics"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/input/mice"
        Option      "ZAxisMapping" "4 5 6 7"
EndSection


Section "InputDevice"
   Identifier  "synaptics"
   Driver      "synaptics"
   Option      "Device"                 "/dev/psaux"
   Option      "Protocol"               "auto-dev"
   Option      "PalmDetect"             "0"
   Option      "SHMConfig"              "true"
   Option      "SendCoreEvents"         "yes"
   Option      "RBCornerButton"         "0"
   Option      "RTCornerButtom"         "0"
   Option      "TapButton1"             "1"
   Option      "TapButton2"             "3" // right-click by two fingers
   Option      "TapButton3"             "2" // middle-click by three fingers
   Option      "AccelFactor"            "0.0320"
   Option      "MaxSpeed"               "0.72"
   Option      "MinSpeed"               "0.6"
   Option      "Emulate3Buttons"        "true"
   Option      "TouchPadOff"            "0"
   Option      "LBCornerButton"         "2"
   # Option      "LeftEdge"                     "60"
   # Option      "RightEdge"            "1070"
   # Option      "TopEdge"              "90"
   # Option      "BottomEdge"           "680"
   Option      "VertTwoFingerScroll"    "1"
   Option      "HorizTwoFingerScroll"   "1"
   Option      "HorizScrollDelta"       "20"
   Option      "VertScrollDelta"        "20"
   Option      "LockedDrags"            "1"
   # Option      "CoastingSpeed"                "0.13"
   # Option      "CircularScrolling"            "1"
   # Option      "CircScrollTrigger"            "8"     # 8=Top Left Corner
EndSection


Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: : integer, : float, : "True"/"False",
        ### : "String", : " Hz/kHz/MHz"
        ### [arg]: arg optional
        #Option     "AccelMethod"               # []
        #Option     "DRI"                       # []
        #Option     "ColorKey"                  #
        #Option     "VideoKey"                  #
        #Option     "FallbackDebug"             # []
        #Option     "Tiling"                    # []
        #Option     "Shadow"                    # []
        #Option     "SwapbuffersWait"           # []
        #Option     "XvMC"                      # []
        #Option     "XvPreferOverlay"           # []
        #Option     "DebugFlushBatches"         # []
        #Option     "DebugFlushCaches"          # []
        #Option     "DebugWait"                 # []
        Identifier  "Card0"
        Driver      "intel"
        VendorName  "Intel Corporation"
        BoardName   "Mobile 945GME Express Integrated Graphics Controller"
        BusID       "PCI:0:2:0"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        DefaultDepth    24
        SubSection "Display"
                Viewport   0 0
                Depth     24
        EndSubSection
EndSection
Ставим проверенный временем fluxbox и добавляем его в ~/.xinitrc:
exec startfluxbox
Вытаскиваем из backup конфиги и получаем привычное окружение.
В этот раз решил пойти на эксперимент и попробовать ещё раз wmii.

Так как в wmii нет systemtray, надо доставить stalonetray. И ещё индикатор раскладок xxkb:
# aptitude install stalonetray xxkb
Конфиг для xxkb:
XXkb.mainwindow.enable: no
XXkb.mainwindow.in_tray: no
XXkb.mainwindow.appicon: yes

XXkb.group.base: 1
XXkb.group.alt: 2

XXkb.mainwindow.image.1: en48.xpm
XXkb.mainwindow.image.2: ru48.xpm

XXkb.mainwindow.geometry: 48x48-50+5
! fluxbox
! XXkb.button.geometry: 15x15-50+5
! wmii
XXkb.button.geometry: 15x15-10+0
XXkb.app_list.wm_class_name.ignore: stalonetray

Так же понадобится screenlocker:
# aptitude install xautolock xtrlock
Из конфигов fluxbox вытаскивам строку
xautolock -secure -time 3 -locker "xtrlock" &
и добавляем в ~/.wmii/wmiirc для блокировки экрана через 3 минуты бездействия. xtrlock рисует замочек вместо указателя мыши в заблокированном режиме, а вот весь остальной экран видно.
Так. Вроде, основу установили-настроили. Теперь самое страшное.
  • шифрование /home
Когда я первый раз это дело настраивал, пользовался статьёй, которая теперь осталась только в google cache: вот тут. Собственно, её же опять и воспользуемся.
Ставим необходимые пакеты
# aptitude install cryptsetup mdadm lvm2
На /home у меня отведён целый диск(в eee1000 их два: 8G системный и 32G под данные, который у меня /home). Готовим шифрованный раздел:
# cd ~
# cryptsetup luksFormat /dev/sdb1 // обратить внимание на "Are you sure? (Type __uppercase__ yes):"
# cryptsetup luksDump /dev/sdb1 > slashhome
# cryptsetup luksOpen /dev/sdb1 luks // открываем раздел
# mkfs.ext4 -L home /dev/mapper/luks // создаём файловую систему
редактируем /etc/crypttab:
luks /dev/disk/by-uuid/<здесь UUID из /root/slashhome> none luks
редактируем /etc/fstab:
/dev/mapper/luks /home ext4 defaults 0 0
тестируем файловую полученный результат:
# cd /mnt
# /etc/init.d/cryptdisks restart // вводим пароль, когда спросит
# mount /dev/mapper/luks tmp/
# cd tmp/
# touch test
Вот и всё. Можно перемонтировать(или перезагрузиться и оно само смонтируется куда надо) на /home и наинать заливать backup, дабы получить домашний каталог как до эксперементов.
Теперь точно всё с базовой системой. Оставщийся прикладной софт уже устанавливается исходя из потребностей.

2011-09-01

farewell OpenBSD!

Прошло около 2х недель моего плотного общения с этой замечательной операционной системой. Но, придётся с ней проститься -- на нетбуке она не особо прижилась. Что так и не так:
Не знаю как точно это описать, но OpenBSD мне понравилась. Чувствуется, что это именно операционная система, а не ядро и окружение. Стабильна как скала(если ui повис, то ничем, кроме reset не уронишь :)). Порадовало наличие httpd и ftpd прямо искаропки: прочитал man(за что так же огромнейшее спасибо девелоперам. с документацией тут всё просто отлично), поправил пару строк в конфиге и вот оно. Вспомнил былые времена с kde 3.5.10(да, переключение раскладок тоже :) c-a-k конечно, не подарок, но работает). Очень порадовала скорость apm -s (suspend) и выход из него(даже wifi-connection восстанавливается).
Огорчила поддержка файловых систем: 4.2bsd довольно медленна. noatime && softdep ситуацию не спасают. koi-8 это вообще о чём? Конечно, "работает -- не трогай", но как-то.. промолчу. Всё теже роблемы захвата звукового устройства. Про староватый софт.. ну, в debian stable тоже не последней свежести. Не сильно напрягает.
Что я успел сделать за 2 недели:
  • ввиду того, что из коробки терминалы отказывались корректно реагировать на home || end, получил привычку пользовать c-e, c-a, a-f, a-b
  • поставил bash(ну просто намного привычнее, а копаться с ksh было лениво :))
  • поборол лень и настроил ~/.bashrc from scratch:
#
# color prompt
#

Color_Off='\[\033[0m\]'       # Text Reset

# Regular Colors
Black='
\[\033[0;30m\]'        # Black
Red='\[\033[0;31m\]'          # Red
Green='\[\033[0;32m\]'        # Green
Yellow='\[\033[0;33m\]'       # Yellow
Blue='\[\033[0;34m\]'         # Blue
Purple='\[\033[0;35m\]'       # Purple
Cyan='\[\033[0;36m\]'         # Cyan
White='\[\033[0;37m\]'        # White

# Bold
BBlack='
\[\033[1;30m\]'       # Black
BRed='\[\033[1;31m\]'         # Red
BGreen='\[\033[1;32m\]'       # Green
BYellow='\[\033[1;33m\]'      # Yellow
BBlue='\[\033[1;34m\]'        # Blue
BPurple='\[\033[1;35m\]'      # Purple
BCyan='\[\033[1;36m\]'        # Cyan
BWhite='\[\033[1;37m\]'       # White

# git integration
get_git_info()
{
    local GITINFO=$(git branch 2>/dev/null | grep -e ^* | sed 's/\*\ //')
    if [[ "$GITINFO" ]]; then
        echo -e " ($GITINFO-$(git log -n1 --pretty=format:%h)) ";
    fi;
}

# color prompt with git info (if any)
PS1="${BWhite}\u@${BGreen}\h${BWhite} [${BBlue}\W${BWhite}]\$(get_git_info)\$ ${White}"

#
# environment
#

export PAGER=less

#
# aliases
#

alias ls="/usr/local/bin/colorls -GF" # pkg add -iv colorls
alias less="less -R"
  •  попытался сделать что-то с энергосбережением:
apm -C // что-то типа automatic cpufreq scale
apm -H // high performance
apm -L // low performance
и добавить в /etc/rc.conf флаг -C в apmd_flags
  •  так как ни KDE ни GNOME не видели батарейку, а получить внезапное отключение как-то не хочется, допилил свой велосипед https://github.com/ilardm/battery
  • так как backup /home был сделан на ext4 внешний диск и у OpenBSD проблемы с поддержкой файловых систем, пришлось поднять(громко сказано, но именно поднять, а не установить и настроить) ftpd:
echo ilya >> /etc/ftpchroot
/usr/libexec/ftpd -DlUS
enjoy :)
  • подписался на пару листов рассылки
Ну и что-то ещё по мелочам.
А ухожу я обратно на debian по причинам не приемлимой производительности и так же не ахти какой длительности автономной работы.
Farewell OpenBSD

P.S. какой-то рваный пост получился. Устал, наверное

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.
В общем, жить можно, будем осваиваться!

2011-04-22

Emacs org-mode

Когда-то давным-давно хотел написать про замечательную штуку в emacs, после которой не любить этот текстовый редактор просто нельзя: org-mode.
Это на столько удобный способ организации заметок, мыслей, TODO'шек, расписания и много чего ещё, при том ещё и в виде простого plain-text'а(для внешнего мира), что все остальные развесистые приложения для какого-то GTD просто "ненужно"(С).
В общем, собирался-собирался, да за меня уже всё и написали.  При том, ещё и практически в том формате, в котором собирался я. Так что "я просто оставлю это здесь"(С) на память.