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 просто "ненужно"(С).
В общем, собирался-собирался, да за меня уже всё и написали.  При том, ещё и практически в том формате, в котором собирался я. Так что "я просто оставлю это здесь"(С) на память.

2011-01-31

how to update tattoo


Как известно обладателям HTC Tattoo, это самый дешёвый девайс на android(на момент его выхода) и от mainstream'а он далёк. соответственно обновлений с Android 1.6 не планировалось. Чего уж там. С обновлением для флагмана HTC Hero сколько тянули..
Через несколько месяцев после приобретения сего девайса, появилось желание залить на него свежую версию Android, но все мои поиски не привели ни к чему. Так и остался я со стандартной прошивкой. прошло время и я уже привык к ограничениям 1.6, но вот добрый человек подсказал линк на кастомную прошивку с относительно свежей версией Andoid. Так как дело было во время сессии, с прошивкой я не спешил — не очень то и хочется получить кирпич в то время, когда телефон нужен несколько больше, чем обычно.
Но вот, сессия закончилась и можно обновиться. Здесь я приведу свои действия для обновления. Что получаем в итоге:
  • Andoid 2.2.1
  • весьма быстрый интерфейс(ожидал тормоза, ибо железо не особо быстрое)
  • обычное, для многих не официальных прошивок, отсутствие камеры и FM-тюнера
  • присутствие всех default Google applications
(Не)большое предупреждение: если кто решится действовать по данной иструкции — имейте ввиду — шанс получить кирпич всегда присутствует. Так же данная инструкция не претендует на полноту описания всех действий. В общем: я никакой ответственности за Ваши действия не несу. Вы всё делаете на свой страх и риск.
Ближе к делу. Использовались следующие материалы:
Если нет аккаунта на xda-developers — срочно идём и регистрируемся, ибо файлики оттуда гостям не дают.
Итак, исходные данные:
  • стоковый HTC Tattoo с прошивкой 1.6
  • desktop с Debian squeeze Linux

    1. Для начала, понадобится Android SDK.
      Для удобства. добавим его в $PATH. Отредактируем в ~/.bashrc строку с этой самой PATH, чтобы она приняла вид:
      PATH="$PATH://android-sdk-linux_86/tools/://android-sdk-linux_86/platform-tools/"
      На всякий случай. скачаем Andoid SDK для версии 1.6:
      Говорим
      $ android
      идём в Available Packages и качаем нужный SDK
    2. Теперь танцы с бубном вокруг udev:
      Создаём файлик /etc/udev/rules.d/99-android.rules со следующим содержимым:
      SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666"
      И перезапускаем udev:
      # udevadm control —reload-rules
    3. теперь можно подключать наш девайс. При подключении нужно проследить чтобы он не вышел в режим mass-storage device и в настройках включить режим отладки (искать пункт Settings->applications->development)
      Дальше надо проверить, видит ли наш девайс adb. Говрим
      $ adb kill-server
      $ adb devices
      Если девайс отображается знаками вопроса — идём в Google искать решение (скорее всего, не хватает прав на запись в девайс. Вариантов решений много и связаны они с конфигурацией udev, которая может отличаться в зависимости от версии оного)
    4. Получаем root'a на Tattoo. Для этого идём в раздел 1.3 в FAQ, качаем и распаковываем архив Tattoo.rar. Далее, выполняем все инструкции из раздела 1.5 (мне хватило простого копирования команд)
      Не выходя из shell, выполняем инструкции из раздела 2.3
      И перезагружаемся.
      На всякий случай, проверим, получили ли мы root'a: опять подключаемся к девайсу в adb shell. Если приглашение командной строки # – всё хорошо. Если нет — Google нам в помощь.
    5. Теперь сама прошивка. Думаю, стоит отметить, что все данные/настройки после прошивки пропадают. Если с календарём и контактами всё хорошо(у нас же есть Google-accaunt, на который всё автоматически backup'ится), то с SMS и всякими текстовыми заметками всё плохо. Лично я использую SMSbackup+ для backup'a моих SMS в GMail ящик и Catch для синхронизации заметок(такой evernote для бедных). Всё остальное backup'ится на карточку памяти, либо «не нужно» (с). Да, содержимое карточки должно остаться на месте(по крайней мере, у меня осталось, но backup не повредит :) )
      Итак, качаем прошивку ROM Multilanguage: Version 9.16, Google Apps (нам нужна версия для CyanogenMod 6 Tiny) и новый Android Market (ссылка в разделе FAQ на страничке прошивки и зовётся New Market patch)
      Всё это заливаем на карточку нашего девайса и выключаем его.
      Теперь включаем, зажимая кнопку понижения громкости и красную трубку.
      Идём в раздел Wipe и выполняем первые два пункта.
      Возвращаемся обратно, нажимая всё ту же кнопку понижения громкости.
      Выбираем Flash zip from sdcard и прошиваем сначала наш ROM, потом Google Apps, потом Market Patch
    6. Ну вот и всё. Перезагружаемся (первая загрузка достаточно долгая) и радуемся загрузчику CyanogenMod.
Стандартная процедура login'a в Google Accaunt и вытягивания контактов и календаря, установка SMSBackup+ и восстановление SMS и девайс начинает возвращаться к исходному виду. Да. стандартаня клавиатура мне не особо понравилась — клавиши уж больно мелкие, а словаря для русской раскладки нету и исправлять оно не умеет. Поставил SlideIT keyboard (у неё с русским всё на много лучше, но вот размеры по вертикали напрягают), может ещё что найду.
В общем, после 2х дней использования, нареканий нет. ATK теперь принципиально не нужен, ибо GC здесь работает на ура. JIT не включал. Из приятностей — есть system-wide EQ, так что необходимость в сторонних audio-player'ах отпала сама собой. Также отличная штука Quiet Hours – отключение всех сигналов в определённый период времени, как правило, на ночь. Приложений в маркете стало заметно больше. Жаль, конечно, что камера отсутствует. Она была не фонтан, но запечатлеть некоторые моменты, всё же, иногда хочется.

2011-01-08

2 months eee uptime


Как же это я пропустил и не запостил свой рекордный uptime? Вот исправляюсь.
Uptime нетбука. Как-то он у меня изначально используется не по назначению(что не мешает получать такие аптаймы) - вместо основного компьютера, ибо desktop слабее. Был. Теперь, проапгрейдил desktop, и всё вернулось на круги своя.