Обновление systemd

По любому это уже баян, но поскольку сам я не нагуглил, то просто оставлю эту заметку здесь. У меня был systemd 204-r11 из systemd-love и стал 208-r2 из gentoo Сначала мне пришлось убрать static-libs(-)? из RDEPEND в udev-208.ebuild (что за ... это есть до сих пор не пойму учитывая что он stable и systemd-208-r2 тоже)

# echo "virtual/udev -static-libs" >> /etc/portage/package.use/using
# echo "sys-fs/lvm2 -static-libs -static" >> /etc/portage/package.use/using
# emerge -avu sys-apps/systemd
# emerge -a1v sys-fs/lvm2
# genkernel --udev --lvm initramfs

Python2 debian

update-alternatives --install /usr/bin/python2 python2 /usr/bin/python2.6 10
update-alternatives --install /usr/bin/python2 python2 /usr/bin/python2.7 20
update-alternatives --display python2

gnome 3 переключение раскладки клавиатуры

gsettings set org.gnome.settings-daemon.plugins.keyboard active false
И настройки в xorg.conf.d
Section "InputClass"
        Identifier "Keyboard Defaults"
        MatchProduct "HID Keyboard Device|AT Translated Set 2 keyboard"
        MatchIsKeyboard "yes"
        Option      "XkbLayout" "us,ru(winkeys)"
        Option      "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll,lv3:ralt_switch,misc:typo"
        Driver "evdev"
EndSection
Имхо так правильнее - я слишком часто меняю DE чтобы в каждом настраивать раскладки клавы отдельно.

Ubuntu Server 12.04 iso boot grub2

Захотелось флешку с несколькими linux'ами сразу. Разметил, отформатировал, поставил grub2.

grub2-install --root-directory=/mnt/usbdir /dev/sdb1

Debian и SystemRescueCd без проблем завелись, но мне захотелось ещё UbuntuServer туда и тут начались проблемы...

Если кто знает более правильное решение - напишите в комментариях, потому как я довольно грубо пропатчил initrd.

План действий был примерно таков:

# mkdir tmp
# mv initrd-ubuntu.gz  tmp/
# cd tmp
# gunzip initrd-ubuntu.gz
# mkdir tmp2
# cd tmp2
# cpio -id < ../initrd-ubuntu
# vim init
# find . | cpio --create --format='newc' > ../newinitrd
# cd ..
# gzip newinitrd
# mv -i newinitrd.gz /mnt/usbdir/

Для пущей информативности приведу часть конфига grub'а

menuentry 'Ubuntu Server 12.04 (64-bit)' {
 set isofile="/ubuntu-12.04.2-server-amd64.iso"
 loopback loop $isofile
 linux (loop)/install/vmlinuz file=/cdrom/preseed/ubuntu-server.seed iso-scan/filename=$isofile quiet noeject noprompt splash --
 initrd /newinitrd.gz
}

Ну и конечно что поменялось в init файле после редактирования.

@@ -10,6 +10,11 @@
 mount /sys
 /lib/debian-installer/start-udev
 
+mkdir -p /media/flash
+mount /dev/disk/by-uuid/E13C-7500 /media/flash
+mkdir /cdrom
+mount -o loop,ro -t iso9660 /media/flash/ubuntu-12.04.2-server-amd64.iso /cdrom
+
 init='/bin/busybox init'
 for i in $(cat /proc/cmdline); do
        case $i in
Где /dev/disk/by-uuid/E13C-7500 конечно путь к флешке.

P.S.: это не указание как правильно делать, а просто указание на потенциальную возможность так делать.

Ссылки:
http://www.thegeekstuff.com/2009/07/how-to-view-modify-and-recreate-initrd-img/ http://www.pendrivelinux.com/install-grub2-on-usb-from-ubuntu-linux/ https://help.ubuntu.com/community/Grub2/ISOBoot/Examples#Utility_Menuentries http://askubuntu.com/questions/128995/grub2-loopback-booting-ubuntu-server-iso

Xmpppy

Тупейший скриптик отсылки сообщений в jabber - не помню откуда взял и что допиливал, но иногда вещь нужная....

xmpppy_send

#!/usr/bin/env python
#-*- coding: utf-8 -*-

import xmpp,os,sys,ConfigParser

config = ConfigParser.ConfigParser()
config.read(os.path.dirname( sys.argv[0] )+"/xmpppy_send.ini")

xmpp_jid = config.get('from','jid')
xmpp_pwd = config.get('from','pwd')

to = sys.argv[1]
msg = sys.argv[3]
subject = sys.argv[2]

jid = xmpp.protocol.JID(xmpp_jid)
client = xmpp.Client(jid.getDomain(),debug=[])
client.connect()
client.auth(jid.getNode(),str(xmpp_pwd),resource='xmpppy')
client.send(xmpp.protocol.Message(to,msg,"chat",subject))
client.disconnect()
xmpppy_send.ini

[from]
jid: your@jid.example.com
pwd: PaSSw564ORD
[to]

ZFS раздел в gentoo

Решил поиграться с ZFS - сделал это самым надёжным образом, сделал пул с партициями и по накидал туда нужных данных без бекапов ;) Надёжный метод - рекомендую. Пока настраивал наступил несколько раз на грабли, самое смешное что забыл добавить сервис в автозагрузку, не повторяйте чужих ошибок.

rc-update add zfs boot

Ещё непонятный перл вышел с zpool.cache, почему то его не оказалось там где его ожидает /etc/init.d/zfs пришлось гулить, правда ушло секунд пять, ситуация исправляется так:
zpool import -o cachefile=/etc/zfs/zpool.cache -R /mnt zfs

Был ещё непонятный для меня момент, что этот самый ключ -R не вносит изменений в постоянные опции пула, ручками опять же установил точку монтирования
zfs set mountpoint=/mnt/zfs zfs

Но в общем и целом доволен, особенно порадовали фичи компрессии на лету и дедупликация. Но как корневую фс использовать пака не буду - не вижу смысла, для этого. К тому же недавней установки дома на винт с разбивкой gpt/lvm хватило, может быть в другой раз под настроение.

Мультимониторная конфигурация на интегрированном интеле

Долго бороздил просторы интернета по теме неизвестно зачем, нужно было начать с прочтения man intel.

Но всё же оставлю в качестве заметки конфиги и кое какие пояснения, вдруг у кого man не работает ;)

/etc/X11/xorg.conf

Section "Monitor"
  Identifier     "Monitor0"
EndSection

Section "Monitor"
  Identifier     "Monitor1"
  Option         "RightOf" "Monitor0" 
  Option       "PreferredMode" "1600x900"
EndSection

Section "Device"
        Identifier "Intel Integrated"
        Driver "intel"
        Option "monitor-VGA1" "Monitor0"
        Option "monitor-HDMI1" "Monitor1"
EndSection

Section "ServerFlags"
  Option    "Xinerama" "true"
EndSection

Section "Screen"
  Identifier          "VGA1"
  Device              "Intel Integrated"
  Monitor             "Monitor0"
  DefaultDepth       24
  SubSection "Display"
    Modes           "1280x1024"
    ViewPort            0 0
    Virtual          2880 1024 
  EndSubSection
EndSection

Section "Screen"
  Identifier         "HDMI1"
  Device             "Intel Integrated"
  Monitor            "Monitor1"
  DefaultDepth       24
  SubSection "Display"
    Modes          "1600x900"
  EndSubsection
EndSection

Section "ServerLayout"
  Identifier         "Xinerama2m"
  Screen 0 "VGA1"
  Screen 1 "HDMI1" RightOf "VGA1"
  Option "Xinerama" "true"
EndSection
Что-то тут явно лишнее, но самым интересным было выяснить про строчки
        Option "monitor-VGA1" "Monitor0"
        Option "monitor-HDMI1" "Monitor1"

Сделать это просто xrandr -q В выводе будут эти самые <type> из man intel перед которыми надо прописать monitor- и вписать как опции в секцию Device.

Ну и поначалу это работало у меня просто запуском строчки
xrandr --output HDMI1 --mode 1600x900 --right-of VGA1