Posts Tagged ‘ Gentoo

Package ‘x11-proto/printproto-1.0.5’ NOT merged due to file collisions.

Ха! Прикол сегодня с Gentoo забавный приключился 🙂
Решил обновиться, делаю как всегда:

laptop ~ # eix-sync
laptop ~ # emerge -uavDN world

Все вроде потихоньку собирается …. а потом на тебе! Ошибочка!

'/var/tmp/portage/x11-proto/printproto-1.0.5/image//usr/include/X11/extensions'
make[1]: Leaving directory `/var/tmp/portage/x11-proto/printproto-1.0.5/work/printproto-1.0.5_build'
>>> Completed installing printproto-1.0.5 into /var/tmp/portage/x11-proto/printproto-1.0.5/image/

ecompressdir: bzip2 -9 /usr/share/man

>>> Installing (11 of 76) x11-proto/printproto-1.0.5
* checking 5 files for package collisions
* This package will overwrite one or more files that may belong to other
* packages (see list below). You can use a command such as `portageq
* owners / ` to identify the installed package that owns a
* file. If portageq reports that only one package owns a file then do
* NOT file a bug report. A bug report is only useful if it identifies at
* least two or more packages that are known to install the same file(s).
* If a collision occurs and you can not explain where the file came from
* then you should simply ignore the collision since there is not enough
* information to determine if a real problem exists. Please do NOT file
* a bug report at http://bugs.gentoo.org unless you report exactly which
* two packages install the same file(s). Once again, please do NOT file
* a bug report unless you have completely understood the above message.
*
* Detected file collision(s):
*
*   /usr/share/man/man7/Xprint.7.bz2
*
* Searching all installed packages for file collisions...
*
* Press Ctrl-C to Stop
*
* app-doc/xorg-docs-1.4-r1
*   /usr/share/man/man7/Xprint.7.bz2
*
* Package '
x11-proto/printproto-1.0.5' NOT merged due to file
* collisions. If necessary, refer to your elog messages for the whole
* content of the above message.

>>> Failed to install x11-proto/printproto-1.0.5, Log file:

>>>  '
/var/tmp/portage/x11-proto/printproto-1.0.5/temp/build.log'

* Regenerating GNU info directory index...
* Processed 186 info files.

* IMPORTANT: 3 config files in '
/etc' need updating.
* See the CONFIGURATION FILES section of the emerge
* man page to learn how to update config files.
* After world updates, it is important to remove obsolete packages with
* emerge --depclean. Refer to `man emerge` for more information.
laptop ~ #

Почти что русским языком написано что матерщина изза некоего пакета xorg-docs. Но вот тут и начинается самое интересное!

laptop ~ # eix xorg-docs
No matches found.
laptop ~ # equery depends xorg-docs
[ Searching for packages depending on xorg-docs... ]
laptop ~ #

Во как оказывается … eix про такой пакетик вообще ничего не знает! Вот так чудеса!
Зато поиск emerge выдает все как надо 🙂

laptop ~ # emerge --search xorg-docs
Searching...
[ Results for search key : xorg-docs ]
[ Applications found : 1 ]

*  app-doc/xorg-docs
Latest version installed: 1.4-r1
Homepage:      http://xorg.freedesktop.org/
Description:   X.Org docs
License:       xorg-docs

laptop ~ # emerge --unmerge app-doc/xorg-docs
* This action can remove important packages! In order to be safer, use
* `emerge -pv --depclean ` to check for reverse dependencies before
* removing packages.

app-doc/xorg-docs
selected: 1.4-r1
protected: none
omitted: none

All selected packages: app-doc/xorg-docs-1.4-r1

>>> 'Selected' packages are slated for removal.
>>> 'Protected' and 'omitted' packages will not be removed.

>>> Waiting 5 seconds before starting...
>>> (Control-C to abort)...
>>> Unmerging in:  5 4 3 2 1
>>> Unmerging app-doc/xorg-docs-1.4-r1...

* GNU info directory index is up-to-date.

* IMPORTANT: 3 config files in '/etc' need updating.
* See the CONFIGURATION FILES section of the emerge
* man page to learn how to update config files.
laptop ~ #

Ну вот так вот 🙂 Собственно после удаления пакета xorg-docs обновление пошло нормально.

Gentoo — после обновления ядра отвалилась Web Camera

Итак, проблемка … Юзал себе тихо и спокойно ядрышко linux-2.6.30-gentoo-r8 и горя не знал. Но черт дернул обновиться до linux-2.6.32-gentoo-r7. Обновление то прошло успешно … ядро собрал и поставил как полагается, а вот через пару недель вылезла грабля с вебкамерой. Я то ею нечасто пользуюсь. Только иногда Skype в балуюсь … както незаметил даже что она перестала работать 🙂 А в старом ядре работала без проблем … Полез опять конфигурить ядро… Но на удивление, все опции стоят также как и раньше. Уточню что ноут у меня Dell Inspiron 1420 со встроенной камерой OmniVision 2640. Чтобы убедится в правильности нового конфига, сделал вот так:

laptop src # grep -i '\(uvc\|v4l\|ov\)' linux-2.6.30-gentoo-r8/.config
# Sun Nov  1 10:36:58 2009
CONFIG_X86_CMOV=y
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
CONFIG_CPU_FREQ_GOV_USERSPACE=m
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
CONFIG_CPU_IDLE_GOV_LADDER=y
CONFIG_CPU_IDLE_GOV_MENU=y
# CONFIG_PCI_IOV is not set
# CONFIG_ATA_OVER_ETH is not set
CONFIG_VIDEO_V4L2_COMMON=m
CONFIG_VIDEO_ALLOW_V4L1=y
CONFIG_VIDEO_V4L1_COMPAT=y
CONFIG_VIDEO_V4L2=m
CONFIG_VIDEO_V4L1=m
CONFIG_V4L_USB_DRIVERS=y
CONFIG_VIDEO_OVCAMCHIP=m
# CONFIG_USB_OV511 is not set
# CONFIG_PROVE_LOCKING is not set
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
# CONFIG_DEBUG_STACKOVERFLOW is not set
laptop src # grep -i '\(uvc\|v4l\|ov\)' linux-2.6.32-gentoo-r7/.config
# GCOV-based kernel profiling
CONFIG_X86_CMOV=y
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
CONFIG_CPU_FREQ_GOV_USERSPACE=m
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
CONFIG_CPU_IDLE_GOV_LADDER=y
CONFIG_CPU_IDLE_GOV_MENU=y
# CONFIG_PCI_IOV is not set
# CONFIG_ATA_OVER_ETH is not set
CONFIG_VIDEO_V4L2_COMMON=m
CONFIG_VIDEO_ALLOW_V4L1=y
CONFIG_VIDEO_V4L1_COMPAT=y
CONFIG_VIDEO_V4L2=m
CONFIG_VIDEO_V4L1=m
CONFIG_V4L_USB_DRIVERS=y
CONFIG_VIDEO_OVCAMCHIP=m
# CONFIG_USB_OV511 is not set
# CONFIG_PROVE_LOCKING is not set
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
# CONFIG_DEBUG_STACKOVERFLOW is not set
laptop src #

Тоесть просто сравнил нужные для работы камеры опции старого и нового ядра. Ну какбы все по прежнему. Изменений в конфиге нет, а камера таки не работает. И вполне понятно — ведь устройства /dev/video0 таки нету!

Вобщем, покопавшись немного по разным форумам, рецепта не нашел, зато чтото меня навело на мысль проверить директорию /dev/v4l/ И там, о чудо, нашелся нужный мне девайс video0 🙂

laptop src # ls -l /dev/v4l/
итого 0
drwxr-xr-x 2 root root     60 Май 11  2010 by-id
drwxr-xr-x 2 root root     60 Май 11  2010 by-path
crw-rw---- 1 root video 81, 0 Май 11  2010 video0
laptop src #

Сделал для него симлинк в /dev

laptop ~ # ln -s /dev/v4l/video0 /dev/video0
laptop ~ # ls -l /dev/video0
lrwxrwxrwx 1 root root 15 Май 10 22:45 /dev/video0 -> /dev/v4l/video0
laptop ~ #

И вуаля … камера заработала в Skype!

Но осталась еще одна засада — оказывается также отвалился и микрофон! Короче с камерой победа … с микрофоном еще копаюсь 🙂

Добавлено на следующий день:
Ха! Разобрался и с микрофончиком 🙂 Оказывается всего то надо было правильно выставить настроечки через gnome-volume-control.

Вот как надо было выставить чтобы заработало 🙂 Сначала включаем интегрированный в крышку микрофон (тот что возле камеры)

Потом достаточно выставить уровень записи побольше 🙂 У меня так:

После этого у меня микрофон завелся и работает как надо! Чего и вам желаю ….

Автомаунт samba-шар в зависимости от сети

В силу мобильности своей электронно — вычислительной железки (владею ноутбуком Dell Inspiron 1420) приходится втыкаться в разного рода сети. Восновном рабочую и домашнюю. В зависимости от того куда воткнулся — нужно монтировать те или иные сетевые диски. Например на работе сетка 10.0.1.0/24, а дома — 192.168.13.0/24. Адрес и там и там получаю по DHCP. Соответственно и samba-сервера и шары и параметры монтирования совсем уж разные. Привести монтирование сетевых ресурсов к общему знаменателю неполучилось както 🙂 (может нешарю???) В итоге родилась мысль написать некий скриптик который при загрузке будет определять в какой сети я нахожусь и монтировать автоматом шары этой сетки.
Алгоритм примерно такой:

  • Получили адрес: Если это адрес домашней сети -> мотировать домашние samba-диски
  • Если это адрес из рабочей сети -> монтировать рабочие samba-диски
  • Если адрес не получили -> ничего не монтировать!

Задача совсем несложная для тех кто хоть чуток розбирается в bash. Вот что накалякал я:

#!/bin/bash
## // script for avtomount my home samba shares
## // writed by black_13 *31.01.2010*
IM_HOME=`ifconfig eth0 |grep 192.168.13`
IM_WORK=`ifconfig eth0 |grep 10.0.1`
if [[ -z ${IM_HOME} ]]; then
  echo 'Im not home! Nothing to mount from network :)'
else
  mountpoint -q /media/samba || mount.cifs //black/public /media/samba/ -o credentials=/root/.smb
  mountpoint -q /media/privat || mount.cifs //black/private /media/privat/ -o credentials=/root/.smb
fi
if [[ -z ${IM_WORK} ]]; then
  echo 'Im not in Work! Nothing to mount from network :)'
else
  mountpoint -q /media/samba || mount.cifs //server.work/DiskP /media/samba/ -o credentials=/root/.smb_work
  mountpoint -q /media/master || mount.cifs //samba.work/master /media/master/ -o credentials=/root/.smb_work
fi

Авторизационные данныя для доступа к шарам содержатся в файлах /root/.smb и /root/.smb_work для дома и работы соответственно. Формат содержания предельно прост:

laptop ~ # cat /root/.smb
username=home_user
password=my_passw_home
laptop ~ #

Немножко о логике скрипта, хоть все понятно и непосвященным 🙂
Если переменная IM_HOME содержит ip с сетки 192.168.13 — значит я дома и монтируем мои домашние шары. Если же она ничего не содержит — то просто выводим «Im not home! Nothing to mount from network :)» Со вторым случаем тоже самое. Если переменная IM_WORK не пуста — то монтируем диски с работы. Иначе выводим что велено echo.

Для старта этого скриптика при старте системы …. в Gentoo надо в конфиг /etc/conf.d/local.start добавить такое:

laptop ~ # cat /etc/conf.d/local.start
# /etc/conf.d/local.start
# This is a good place to load any misc programs
# on startup (use &>/dev/null to hide output)
### for avtomount samba shares if i'm home or work ###
/root/bin/home_samba_avtomount.sh
laptop ~ #

Ну вот и все 🙂 Теперь если я включаю ноут в домашней сети — получаю подмонтированные домашние сетевые диски. Если же сеть окажется рабочей — получаю примонтированными рабочие самбовые шары. Очень удобно. Кстати повесить срабатывание скрипта лучше на поднятие интерфейса — тоесть по if-up. Такчто если охота — то так и сделайте.
Ну вот и все. Рукам даем свободу от ввода километровых команд, а мозгам отдых и силы на будущие открытия. Наслаждаемся 😉

Настройка urxvt

Linux есть Linux! И без консоли в нем ну никак не выживеш. Когото это пугает, когото наоборот — хлебом не корми, дай в консоли посидеть. Чтоже за консольные эмуляторы для X11 предлагает нам Linux? Их много, я бы даже сказал — очень много. Сам их перепробовал около десятка … от xterm до konsole но понравился больше всего rxvt-unicode. Как видно из названия, он поддерживает Unicode, а также XFT. Вот собственно и все чем он отличается от своего родителя — rxvt. Примечательна в нем возможность покрутить очень много настроек. Использую даную прогу как в Gentoo  так и в Debian. Собственно о настройке этого прекрасного x11 terminal-эмулятора и хотел сказать несколько слов.

Ну во-первых — установка:

  • Для Debian выглядит так:
# apt-get install rxvt-unicode
  • Для Gentoo тоже неособо сложно, за исключением того что следует обратить внимание на USE флаги 😉
# emerge -av x11-terms/rxvt-unicode

У меня, к примеру, собран вот так:

laptop ~ # eix rxvt-unicode
[I] x11-terms/rxvt-unicode
Available versions:  9.06-r3 ~9.07 {afterimage iso14755 perl truetype vanilla wcwidth xterm-color}
Installed versions:  9.06-r3(15:15:42 10.01.2010)(perl truetype vanilla -afterimage -iso14755 -wcwidth -xterm-color)
Homepage:            http://software.schmorp.de/pkg/rxvt-unicode.html
Description:         rxvt clone with xft and unicode support

laptop ~ #

Этого вполне хватает для псевдопрозрачности и поддержки перловых модулей 🙂 Только не забываем как установить обоину на рабочий стол, говорю это скорее для себя, так как использую fluxbox на работе. В fluxbox это делается командочкой:

fbsetbg /_path_to_picture_

В Gentoo использую e16, тут проще — есть специальная настройка в менюшке 🙂

Во-вторых — настройка! Что нам предлагает man страница? Насколько я понял, (и проверил на практике в последствии) конфигурировать вид терминала можно как с помощью конфига $HOME/.Xdefaults так и запуская сам терминал с нужными ключами. Оба метода являются вполне приемлемыми и рабочими. Итак, моя настройка в gentoo несколько странная. Почему то я заюзал одновременно оба метода … в итоге часть настроек у меня в конфиге и также некоторые опции передаю в виде ключей при запуске. Почему так сложилось — уже не помню, настраивал очень давно. Вот что в $HOME/.Xdefaults

black@laptop ~ $ cat .Xdefaults
urxvt*saveLines: 2024
urxvt*transparent: true
urxvt*shading: 40
urxvt*background: Black
urxvt*foreground: Grey
urxvt*scrollBar: false
urxvt*cursorColor: Grey
urxvt*tintColor: Black
urxvt*blurRadius: 3
urxvt*font:-*-terminus-medium-*-*-*-14-*-*-*-*-*-*-r
urxvt*geometry: 155x62
urxvt*cursorBlink: true
URxvt.tabbed.tabbar-fg: 7
URxvt.tabbed.tabbar-bg: 0
URxvt.tabbed.tab-fg:    0
URxvt.tabbed.tab-bg:    8
black@laptop ~ $

И запускаю я его используя hotkeys Win+T  командой

 urxvt -vb -pe tabbed

В итоге получаю псевдопрозрачный терминал с поддержкой tab-ов примерно такого вида:

Вчера настраивал в Debian с нуля 🙂 Решил все что мне нужно прописать в $HOME/.Xdefaults Вот что получилось:

black@black:~$ cat .Xdefaults
URxvt*font: -*-terminus-medium-r-*-*-16-*-*-*-*-*-*-u
URxvt*background: black
URxvt*foreground: grey
URxvt*cursorColor: grey
URxvt*transparent: true
URxvt*tintColor: black
URxvt*shading: 70
URxvt*scrollBar: false
URxvt*cursorBlink: true
URxvt*pointerBlank: true
URxvt*pointerBlankDelay: 13
URxvt.perl-ext-common: default,tabbed
URxvt.tabbed.tabbar-fg: 6
URxvt.tabbed.tabbar-bg: 0
URxvt.tabbed.tab-fg: 0
URxvt.tabbed.tab-bg: 7
black@black:~$

Запускаю уже без какихлибо ключиков! Выглядит терминал с данным конфигом примерно так:

Помоему получилось красиво 🙂 Что означают каждая из опций, понятно и просто прочитав их. Думаю коментарии излишни 🙂 Юзаем, наслаждаемся 🙂

Gentoo & tmpfs — ускоряем сборку пакетов

Не секрет что сборка пакетов в Gentoo — это каааайф! Ну да, что еще нужно настощему гентушнику? Конечно же полночи пялиться в монитор на красиво бегущие букавки кода при сборке очередного «очень нужного» пакета 🙂 Но иногда приходят мысли и о ускорении этого процесса. Тут мне хотелось бы коснуться производительности дисковой подсистемы — конечно же это основной тормоз подавляющего большинства компов. И как не крути, а винчестер используется тоже неслабо при сборке, особенно больших пакетов. У меня, например, Gentoo стоит на ноуте — производительность HDD, конечно же, оставляет желать лучшего, особенно если сравнивать со скоростью работы RAM памяти. «Причем тут одно к другому?» — может спросить ктото, но ответ тут очень прост —  tmpfs! Вот кто нам поможет превратить часть нашей шустрой оперативной памяти в «жесткий диск». RAM-ы же у нас достаточно? Нетакли 🙂 ? У меня на ноуте 2G — если верить conky постоянно запущеному на ноуте, то даже не припомню когда последний раз больше 1G использовалось …. такчтоооо ….. приступая к очередной «большой сборке» я делаю так:

# mount -t tmpfs tmpfs -o size=850M,nr_inodes=1M /var/tmp/portage

В итоге получаю 850MB оперативной памяти использованой как раздел и примонтированной в /var/tmp/portage В инете проводили некоторые исследования по этому поводу — говорят что такой вот финт сокращает время сборки больших пакетов до 10%

Также отдаю 256MB оперативки «под разтерзание» общесистемным темпам. Делается это записью в /etc/fstab вот такого содержания:

laptop ~ # grep tmp /etc/fstab
tmpfs        /tmp        tmpfs    size=256M,mode=0777        0    0
laptop ~ #

Ну какбы все! Наслаждаемся тем что наш HDD уже не занимается возней с временными файликами 🙂