Failed to initialize the NVIDIA GPU

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

Процесс прошёл на удивление быстро:

#"инструкция"
cd /usr/src/
wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.1.8.tar.bz2
tar xfj linux-3.1.8.tar.bz2
rm -rf linux
ln -s /usr/src/linux-3.1.8 /usr/src/linux
cd /usr/src/linux
zcat /proc/config.gz > .config
make oldnoconfig
make menuconfig
make -j3 all
make modules_install
make install
cd /etc/rc.d
mv /boot/vmlinuz /boot/vmlinuz-3.1.8
ln -s /boot/vmlinuz-3.1.8 /boot/vmlinuz
mv /boot/System.map /boot/System.map-3.1.8
ln -s /boot/System.map-3.1.8 /boot/System.map
cp /usr/src/linux/.config /boot/config-3.1.8
rm /boot/config
ln -s /boot/config-3.1.8 /boot/config
mcedit lilo.conf
lilo
reboot

…а главное безболезненно – система загрузилась сразу.

Настал черёд пересобрать драйвера nvidia. В наличии имелся инсталлятор версии 275.09 – он работать отказался сославшись на то, что не может найти исходники ядра. Хорошо – скачал последнюю на данный момент сборку – 290.10, которая установилась без проблем. Но не тут-то было – xOrg не запустился ругнувшись:

NVIDIA: could not open the device file /dev/nvidia0 (Input/output error).
(EE) NVIDIA(0): Failed to initialize the NVIDIA GPU at PCI:1:0:0.  Please
(EE) NVIDIA(0):     check your system's kernel log for additional error
(EE) NVIDIA(0):     messages and refer to Chapter 8: Common Problems in the
(EE) NVIDIA(0):     README for additional information.
(EE) NVIDIA(0): Failed to initialize the NVIDIA graphics device

И пошло-поехало…

  • откатился до 285.05.09 – тоже самое
  • последовательно перепробовал всевозможные опции ядру, которые удалось найти в “этих ваших интернетах” и noacpi и pci=biosirq и vmalloc=XXXm – без результата.
  • перепробовал море разных опций модулю nvidia – без толку

И вот надежда уже погибла, xOrg работает через убогий nouveau и остаётся лишь установить бубунту загрузить старое ядро (и собрать ему старые драйвера nvidia). Поудалял кучу старых инсталляторов и решил скачать (раз пошла такая пьянка) 275.28 и на всякий попробовал их собрать к свежему ядру. И что удивительно – получилось! всё заработало, на первый взгляд система стала шустрее, chrome с полусотней открытых табов больше не вводит иксы в транс. На днях попробую повторить операцию “хватить тупить” на другой машине

“Такой день” (ц)

zoom-слайдер на клавиатуре в linux

После прочтения заметки о “странных кнопках ноутбука” сразу вспомнил о неработающем zoom-слайдере на клавиатуре Microsoft Microsoft® Digital Media Keyboard. Немедленно с помощью showkeys выяснил keycodes событий “слайдер вверх” – 418, слайдер вниз – 419. Перечитав ещё несколько раз заметку понял что мне она больше не поможет – xOrg в принципе не переваривает keycodes выше 255, ситуация казалось бы безвыходная, но оказалось не совсем, нашлось решение в виде evrouter – программы, которая (как видно из названия) “пробрасывает” события одних устройств на другие трансформируя согласно правилам описанным в конфигурационном файле.

После непродолжительных мытарств родился следующий ~/.evrouterrc:

#при нажатии на slider up на клавиатуре - сгенерируй событие "mousewheelup"
"Microsoft Microsoft® Digital Media Keyboard" "/dev/input/event.*" none key/418 "XButton/4"
#при нажатии на slider down на клавиатуре - сгенерируй событие "mousewheeldown
"Microsoft Microsoft® Digital Media Keyboard" "/dev/input/event.*" none key/419 "XButton/5"

Для получения необходимых прав в /dev/input в rc.local была добавлена строка:

# внимание - используйте на свой страх и риск! Слабо представляю какие подсистемы затронет такое наглое вмешательство в /dev
chgrp users /dev/input/event*

В ~/.kde/Autostart добавлен запуск /usr/bin/evrouter /dev/input/event*

Вы можете запускать evrouter через sudo (и не трогать права на /dev), но подозреваю, что с автозапуском могут быть проблемы…

После чего обнаружил что скроллинг работает, да совсем не так, как ожидалось – одно нажатие на слайдер прогручивает активное окно на три строки (как и указано в настройках KDE), но хотелось-то чтобы прокручивалось до тех пор пока слайдер не отпустишь… Снова поиск и снова решение (more…)

Jabber-нотификация в redmine

Просматривая статистику посещений, обратил внимание на то, что многих интересует словосочетание «redmine jabber». Пришла пора удовлетворить спрос. В начале «как обычно» небольшая предыстория о том, «как всё начиналось»:

Несколько лет назад мне удалось внедрить redmine на «производстве», коллеги потихоньку втягиваясь в процесс, затребовали «книгу отзывов и предложений». Одним из первых пожеланий была замена стандартных уведомлений по email на, успевшие уже войти в моду, jabber-уведомления, которые мы используем для нотификации о новых коммитах в svn. Я вооружился тем самым поисковым запросом, о котором упомянул и немедленно нашёл нужной функциональности готовый плагин. Помимо уведомлений, автор обещал нам некие таймеры, которые можно стартовать/останавливать посредством команд боту в чате, тем самым «точно» подсчитывать затраченное на решение задачи время. В теории это казалось очень нужной и удобной игрушкой, на деле же оказалось, что плагин был выпилен для старой версии redmine и с trunk-версией работать по полной программе отказался. Худо-бедно он иногда стартовал какие-то таймеры, иногда присылал какие-то уведомления, от полученных команд иногда впадал в ступор и потом долго игнорировал собеседника, в общем вёл себя непозволительно загадочно и непростительно таинственно, но скиллов для исправления обнаруженных проблем мне не хватало, а автор на открытые тикеты особо не реагировал. Мыши плакали, кололись и продолжали есть кактус до одного смешного стечения обстоятельств: я находился в другом городе, бессовестно тратил отпускное время на прогулки, осмотры достопримечательностей и дивных пейзажей, внезапно получил входящий звонок от коллег. Слёзно просили выручать – что-то мол случилось, трах-бах-тарарах …и всё, нет у нас больше redmine. Немного порассуждав вслух, источник проблемы вроде бы вычислили, каким-то временным образом проблему по телефону решили, но в тот же вечер, добравшись до интернета, плагин я без сожалений выкинул. Случилось следующее — при старте redmine, плагин коннектился к jabber-серверу, а уж затем поднимался сам редмайн, но в тот роковой момент соединение с интернетом пропало, от чего случился обширный exception и redmine умер не приходя в сознание.

***

Тогда стало понятно, что схема со злобным плагином не работает и уведомления надо рассылать внешним по отношению к redmine решением (здесь знатоки rails могли бы долго возражать, но уже поздно). Параллельно с этой проблемой существовали другие. (more…)

27.06.11  |  , ,  | 3 comments

Встаньте в очередь!

Встроенная камера ноутбука уже давненько определялась "через раз", был выработан целый шаманский обряд для её включения, но видимо я чем-то прогневил Великого Байта и последние месяцы камера совсем, что называется "отвалилась". Поэтому "случайно" посетив большой магазин с кучей техники, "случайно" же приобрёл usb-вебкамеру. Вопреки опасениям камера определилась и заработала (в skype) сразу же, без каких-либо танцев с драйверами, настройками, поиском anus-ware решений и т.п. дребеденью непременно сопровождающей подключение «любого» периферийного устройства в linux. Это не может не радовать!

После перезагрузки вдруг перестал работать звук в flash. Недлительное гугление рассказало о какой-то libflashsupport, которая немедленно поможет справиться с недугом, но внутренний голос пробасил что-то вроде «ты же не менял никаких настроек уже несколько недель». Что характерно – звук в amarok, vlc и skype работал исправно, но было замечено что в kmix первой закладкой было устройство под названием "USB Device 0x46d:0×825" вместо обычной "HDA Intel", которая стала второй. Запустил alsamixer – и точно, устройством по-умолчанию стала новоявленная карта, у которой даже и playback-а-то нет. Но видимых настроек у flash-player-а нет, поэтому надо было исправлять ситуацию "системно".

Поскольку уже имелся негативный опыт ковыряния с asound.conf(.asoundrc), то сразу стал искать способ либо переименовать устройства (вроде того, как переименовывают eth* правилами в udev) или определить порядок загрузки драйверов – лишь бы не трогать asound.

И способ нашёлся – в /etc/modprobe.d/sound.conf добавлены следующие правила:

options snd_hda_intel index=0
options snd_usb_audio index=1

После перезагрузки карты выстроились в порядке живой очереди:

$ cat /proc/asound/cards
 0 [Intel          ]: HDA-Intel - HDA Intel
                      HDA Intel at 0xa5100000 irq 41
 1 [U0x46d0x825    ]: USB-Audio - USB Device 0x46d:0x825
                      USB Device 0x46d:0x825 at usb-0000:00:1d.7-5.4, high speed

Amarok. Следующая остановка – eof?

В последнее время практически не слушаю музыку из локальной коллекции по причине описанной ранее. Но иногда запускаю и Amarok. И вот этот самый amarok начал чудить – останавливает проигрывание после каждого файла. Перерыл все настройки на предмет управление playback-ом, по многочисленным советам с разных убунтофорумов попробовал удалять все конфиги, перерыл багтрекер – все найденные баги были пофиксены несколько версий назад, всё безрезультатно, надежды нет и конец близок. Хоть бери да используй другой плеер…

Решение оказалось неожиданным – потребовалось сменить backend у phonon (кто бы мог подумать?!) с mplayer на xine, чтобы плеер перестал проказничать.

“Такой день.” (ц)

09.04.11  |  , ,  | стань первым

Communication problem with “kded”

Экспериментируя с Plasma сильно-сильно уронил KDE. Роковое стечение обстоятельств – как раз перед этим обновил систему (в т.ч. и kde) и не успел рестартнуть сессию. Итого: утомительная многочасовая битва с мельницами, почти полностью утерянные настройки и эта чудо{вищная} заметка.

Симптомы были следующие: kde не стартует под пользователем, но прекрасно запускаются под root-ом.

startkde: Starting up...
Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)
kded(4946): Communication problem with  "kded" , it probably crashed.
Error message was:  "org.freedesktop.DBus.Error.ServiceUnknown" : " "The name org.kde.kded was not provided by any .service files" " 

(4944)/ KStartupInfo::createNewStartupId: creating:  "${HOSTNAME};1283501102;250139;4944_TIME0" : "unnamed app"
startkde: Shutting down...
klauncher: Exiting on signal 1
startkde: Running shutdown scripts...
startkde: Done.

Незамедлительно был сделан вывод: что-то “пришло” в обновлённых пакетах, как назло недоступен slackware.com (нет, ну вы подумайте – всё вот так вот разом, а?). Был перелопачен /etc на предмет разного рода изменений в правах доступа. Затем в /dev/null один за одним полетели файлы из $HOME, /tmp и т.п. Удалил весь $HOME, создал девственно чистый – ничего. Начинала свербить мысль – а может остаться под root-ом…. ?!

Решение как всегда оказалось простым и ожиданным. Позабыл удалить /var/tmp/kdecache-$USER. Уже не первый раз сталкиваюсь и не последний раз забываю начать именно с этого.

P.S.
Вот на кой ляд половина хлама падает в /tmp, а другая в /var/tmp ?

05.12.10  |  ,  | 2 comments

Добавляем действия в контектное меню KDE

Контекстное меню KDEМногие операции вроде “замаунтить флешку”, “скопировать файл” и т.п. ежедневно-рутинные действия я не задумываясь совершаю в консоли (благодаря yakuake она всегда под рукой). Но перед людьми бывает “неудобно” – они видя все эти “магические” манипуляции ещё больше укрепляются в мысли, что “эти ваши линуксы” не для “наших широт”.

Для того чтобы немного размазать негативные впечатления добавил некоторые действия в контекстное меню “проводников”.

Первое что надо сделать: понять ГДЕ необходимо приложить руки.

$ kde4-config --path services
/home/miracle/.kde/share/kde4/services/:/usr/share/kde4/services/

В одной из этих директорий создаём файл my-super-actions.desktop подобного содержания:

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=video/*;
Actions=CompressMovie4Nokia;CompressMovie4HTC;GetSubtitles;
Encoding=UTF-8

[Desktop Action CompressMovie4Nokia]
Name=Compress for Nokia
Icon=phone
Exec=/bin/sh -c 'cd "`dirname "%f"`" \
&& ffmpeg -y -i "`basename "%f"`" -ac 1 -ar 22050 -vcodec mpeg4 -s 176x144 -r 24 \
-b 118k -ab 32k -aspect 11:9 "nokia-`basename "%f" .avi`.mp4" \
&& kdialog --title "Compress Movie" --passivepopup "Movie `basename "%f"` compressed"'

[Desktop Action CompressMovie4HTC]
Name=Compress for HTC
Icon=pda
Exec=/bin/sh -c 'cd "`dirname "%f"`" \
&& ffmpeg -y -i "`basename "%f"`" -s 320x240 -r 22.5 -ac 2 "htc-`basename "%f" .avi`.avi" \
&& kdialog --title "Compress Movie" --passivepopup "Movie `basename "%f"` compressed"'

[Desktop Action GetSubtitles]
Name=Download subtitles
Icon=draw-text
Exec=/bin/sh -c 'cd "`dirname "%f"`" \
&& subtitles `basename "%f"` -l en \
&& kdialog --title "Subtitles" --passivepopup "Subtitles for movie `basename "%f"` downloaded"'

Затем выполняем:

$ kbuildsycoca4

И наблюдаем свежедобавленные пункты в меню “Actions”.

В коде всё наглядно, отдельного упоминания наверное стоит только тот факт, что /bin/sh нужен лишь для того, чтобы запустить более одной команды, как в моём случае – если команда одна, то запуск шелла будет лишним.

Ссылка по теме: Desktop Entry Specification

01.12.10  |   | стань первым

Performance Optimization WordPress Plugins by W3 EDGE