LINUX.ORG.RU

Сообщения dmitry_kuzmenko

 

Проблема с динамическим линковщиком.

На пальцах проблема выглядит примерно так:
Имеются закрытые библиотеки без RPATH: libfoo.so, libbar.so и libaaa.so лежат в /opt/megacorp/lib.
libbar зависит от libaaa которая зависит от libfoo.
/opt/megacorp/lib не в системном LD_LIBRARY_PATH.
Наше приложение использует libaaa.so. Перед этим делает следующее:

  • setenv(LD_LIBRARY_PATH += «/opt/megacorp/lib»);
  • dlopen(«foo», RTLD_NOW | RTLD_GLOBAL); // Грузит без ошибок
  • dlopen(«bar», RTLD_NOW | RTLD_GLOBAL); --> тянет зависимостью libaaa.so --> тянет зависимостью libfoo.so --> здесь ld.so ругается что libfoo.so не найдена.

Если задать LD_LIBRARY_PATH += «/opt/megacorp/lib» в шеле, то в приложении dlopen вообще не нужен, всё отлично работает.

Вопросы:

  1. Почему линкер ищет libfoo.so в ФС, когда она же уже загружена?
  2. почему линкер может не находить либу при LD_LIBRARY_PATH заданном через setenv?

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

dmitry_kuzmenko
()

PyQt4 CaptureDeviceTray utility

Наваял на днях утилитку на PyQt4 для отображения текущего состояния микрофона (вкл/выкл запись).

Что мне было нужно:
Во время скайп митингов хочется переключать состояние по горячей клавише. Это решаемо через dbus или amixer + хоткеи вашего DE. Но при этом не видно текущего статуса микрофона. Окно скайп держать на виду не всегда удобно.

Как оно работает:
Помещает в трей иконку с микрофоном. Когда запись отключена, микрфон перечёркнут. Приложение слушает события альзы через pyalsa. Переключать можно помимо описанных выше способов, через dbus интерфейс самого приложения. Примеры команд для переключения:

  • CaptureDeviceTray dbus:
    qdbus org.kde.capturedevice /CaptureDevice org.kde.CaptureDevice.SwitchState
  • kmix dbus:
    qdbus org.kde.kmix /Mixer0 org.kde.KMix.setRecordSource Capture:0 [True|False]
  • amixer command-line:
    amixer sset Capture,0 capture [cap|nocap]

Плюс в том что интерфейс CaptureDeviceTray имеет одну команду switch, что избавляет вас от проверки текущего состояния.

Зависимости:
установленные PyQt4, pyalsa, запущенный dbus.

Установка:
Никакой. Распаковываем куда угодно, запускаем полным путём. Если запускаете через krunner, будет восстановлена при следующем логине.

Настройка:
кладём имя девайса в CaptureDevice.conf. Только один девайс в формате Dev_name:channel#. Имя устройства можно подсмотреть в том-же kmix. У меня там «Capture» и «Capture 2». Соответственно указываю «Capture:0» или «Capture:1». Либо можно посмотреть вывод команды 'amixer scontrols'

В KDE хоткей можно задать в Settings -> Shortcuts and Guestures. Жмём Edit -> New -> Global Shortcut -> DBus command. Во вкладке trigger выставляем хоткей, во вкладке Action:
Remote application: org.kde.capturedevice
Remote object: /CaptureDevice
Function: org.kde.CaptureDevice.SwitchState
Arguments: [пусто]
Жмём Call для проверки.

Это моё первое приложение на питоне, и код выглядит достаточно бессвязно. Написал потому что ничего подобного в сети не нашёл. Если кому-то покажется полезным, пользуйтесь на здоровье.

Выложил пока здесь

dmitry_kuzmenko
()

Веб-камера из мобильника

В наличие 2 мобильника: Samsung i8910 и старенький SonyEricsson K510i. Хочется использовать их в качестве веб-камеры с компа при видеозвонках Skype. У кого есть подобный опыт, в гугле на вскидку что-то ничего не нашёл...

dmitry_kuzmenko
()

Ядро не рестартит систему.

Обнаружил уже на двух машинах: halt шатит систему и рубит питание, reboot шатит систему, потом ядро пишет

[аптайм] Restarting system...

Это уже после Remounting root read-only, то есть здесь должен быть послан ACPI для ресета. Куда копать не знаю, в гугле не смог ничего найти.

В первый раз обнаружил у себя в Gentoo, потом воспроизвёл в Ubuntu 9.04

Немного о себе:

# lspci
00:00.0 Host bridge: Silicon Integrated Systems [SiS] 651 Host (rev 02)
00:01.0 PCI bridge: Silicon Integrated Systems [SiS] Virtual PCI-to-PCI bridge (AGP)
00:02.0 ISA bridge: Silicon Integrated Systems [SiS] SiS962 [MuTIOL Media IO] (rev 25)
00:02.1 SMBus: Silicon Integrated Systems [SiS] SiS961/2 SMBus Controller
00:02.5 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE]
00:02.7 Multimedia audio controller: Silicon Integrated Systems [SiS] AC'97 Sound Controller (rev a0)
00:03.0 USB Controller: Silicon Integrated Systems [SiS] USB 1.1 Controller (rev 0f)
00:03.1 USB Controller: Silicon Integrated Systems [SiS] USB 1.1 Controller (rev 0f)
00:03.3 USB Controller: Silicon Integrated Systems [SiS] USB 2.0 Controller
00:04.0 Ethernet controller: Silicon Integrated Systems [SiS] SiS900 PCI Fast Ethernet (rev 91)
01:00.0 VGA compatible controller: nVidia Corporation NV5 [RIVA TNT2/TNT2 Pro] (rev 15)

# uname -r -p
2.6.27-gentoo-r1 Intel(R) Celeron(R) CPU 2.40GHz

Что ещё имеет смысл показать?

dmitry_kuzmenko
()

На ЛОР есть maillist?

В некоторых тредах проскакивала невнятная информация о maillists на лоре. На сайте я нашёл только RSS, где можно посмотреть подробную информацию обо всех сервисах сайта?

>>>

dmitry_kuzmenko
()

Вопрос о переключалке в КДЕ

Настроил я на ноуте мультимедиа клавиши, проигрыватель чтобы стартовал, громкость регулировалась и т. п. Настраивал следующим образом:

-- Прописал setkeycodes в /etd/conf.d/local.start

-- Прописал keycode в /etc/X11/inetkeys

-- Сделал скриптик выполняющий xmodmap /etc/X11/inetkeys и закинул симлинк на него в ~/.kde/Autostart.

Далее обнаружил, что при "правильной" настройке переключалки KDE (региональные настройки, добавляем раскладки, назначаем клавишу-переключатель, биндим её как хоткей для переключения раскладок) переключение раскладки затирает мультимедиа клавиши. Вопрос как это побороть, не убивая переключалку KDE?

>>>

dmitry_kuzmenko
()

Macromedia мать их flash!

Поиск мне не помог, решил спросить: при просмотре flash звук отстает от изображени более чем на секунду. Не часто, конечно, приходится смотреть флеш, но иногда бывает, и хотелось-бы, чтобы работало нормально.

Вот в такой связке я все это запускаю: ubuntu 6.06 (dapper) konqueror 3.5.3, FireFox 1.5.0.4 flashplugin-nonfree 7.0.63.3 artsd 1.5.3, буфер 8мс

dmitry_kuzmenko
()

Проблемы с печатью pdf

Есть в принтер HP LJ 1100. Работает под cups@kubuntu(Dapper). Настраевал KDE-шным фронтендом. Работает, надо сказать, хорошо, я из-под линухи все печатаю, и удаленно линух тоже печатает. А вот из оффтопика при печати пдф-ок вылазят кракозябры вместо букв, причем как для кириллицы, так и для латинницы.

Что скажете, что показать? Если боян, дайте пжлст ссылку, сам даже не знаю, как об этом google спросить.

dmitry_kuzmenko
()

RSS подписка на новые темы