![]() |
|
Модераторы: powerfox, ZeeLax |
![]()
|
|
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: нет Всего: 135 |
Здравствуйте.
Столкнулся с такой проблемой: Есть программа (моя), которой для работы требуется доступ к драйверам ATI (ATI-streams - это типа CUDA, только ATI-specific). Если я логинюсь локально или захожу с помощью putty по ssh (оба варианта делаю под root), то программа запускается и работает. Если захожу с помощью VNC (я использую встроенный в OpenSuSe 11.3 tightVNC), то программа запускается, но функции ATI-streams возвращают ошибки (в частности calDeviceGetCount возвращает 0). Если же я запускаю программу под sudo, то всё работает как надо. Странно при этом то, что если ввести whoami, то выводится root root. Вопрос (скорее теоретический, т.к. я уже знаю, что с sudo всё ОК) - почему я вижу в терминале # в конце строки приглашения, whoami говорит, что я под root, а программа, судя по всему, запускается с правами не-root'а ? Спасибо. -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 113 Всего: 317 |
borisbn, для решения вопроса было бы неплохо знать как ты настроил свой VNC.
-------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: нет Всего: 135 |
bilbobagginz, ОК.
1) В Yast'е выбрал Network Services/Remote Administration(VNC)/Allow RemoteAdministration 2) Там же в настройках Firewall'а добавил в Allowed Services VNC 3) Запустив один раз vncserver в каталоге ~/.vnc появился файл xstartup. Я его подредактировал след. образом
т.е. фактически викинул всё, что там было и добвал только startkde Все эти действия производил из-под root'а -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: нет Всего: 196 |
запусти свою программу из-под strace. будет выдан лог системных вызовов. там ты, скорее всего, сможешь определить, на чем именно запарывается библиотека. Возможно, где-то какие-то права не так стоят или не нравятся переменные среды...
кстати, работать из-под рута - дурной тон. рекомендую правильно настроить права у своего пользователя (может для работы с этими ati-streams следует входить в определенную группу). |
|||
|
||||
| borisbn |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: нет Всего: 135 |
bsa, спасибо. Сделал.
Я запустил сначала strace my_prog, а затем strace sudo my_prog Если резюмировать в чём отличие созданных логов, то - во-первых, во втором логе присутствует куча обращений к /etc типа таких
и т.п. Затем идёт
затем чтение /etc/nsswitch.conf, /etc/sudoers и много ещё чего, и перед запуском моей программы идёт
- во-вторых (если начать сравнивать непосредственно с вызова моей программы (execve("my_prog")), то отличие всего одно: в первом логе все библиотеки сначала пытаются открыть в usr/lib64/mpi/gcc/openmpi/lib64/, и при неудаче открывают в /usr/lib64/
а во втором сразу открывают
больше нет ни одного отличия. Странно... насколько я знаю (могу ошибаться, конечно) в линуксе нет super-администратора. Есть root - царь и бог и все остальные. А странно то, что находясь в удалённой сессии я имею права root (я могу сделать reboot, тот же sudo меня не спрашивает пароль), но sudo каким-то образом повышает привилегии... Повторю, что вопрос решён (буду запускать из-под sudo), но хочется докопаться... из принципа ))) Это сообщение отредактировал(а) borisbn - 1.6.2012, 09:58 -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||||||||
|
|||||||||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 113 Всего: 317 |
в общем проблема такова:
твоя программа (а-ля CUDA) узнает ресурсы графики посредством запросов к системе Иксов. Когда бегущий Иксовый сервер бежит с реальной (железной) картой и реальным дисплеем, то запросы дают список CUDA-способных карт. и есть ответ. но когда ты запускаешь vnc с виртуальной конфигурацией (т.е. через xstartup), то бежит там Икс сервер с виртуальной картой, которая (видимо) не способна к CUDA. strace - это крутой низкоуровневый инструмент. думаю что в данном случае он тебе не даст нужного ответа (ты получишь столько ненужной информации, что нужную там не сможешь увидеть). судя по самоучителю, ты ДО того вызова, который ты указал, должен был запустить clGetPlatformIDs(). как ты его запустил (с какими параметрами) ? -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: нет Всего: 135 |
из-под sudo способна, а без - нет ?
В понедельник обязательно посмотрю. Спасибо. -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: нет Всего: 135 |
bilbobagginz, это не OpenCL'ный проект, поэтому там нет никакого clGetPlatformIDs(). Проект построен на низкоуровневом API от ATI. Функция calDeviceGetCount как раз из этого API.
Похоже, что из-под sudo моей программе дают "правильный" Икс сервер, а без оного - Икс сервер с виртуальной картой. Чудеса... Я ж и так под root'ом -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: нет Всего: 135 |
Чтобы подвести черту...
Мне тут посоветовали выкинуть vncserver и поставить x11vnc. Во-первых, заработало на порядок быстрее Во-вторых, ушла проблема с sudo -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
![]()
|
| Правила форума "Linux/UNIX: Oбщие вопросы" | |
|
|
В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу). В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим. Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | *NIX системы: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |