my juick

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. какой-то рваный пост получился. Устал, наверное