Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Mam aplikację graficzną napisaną w Qt, która ma być uruchamiana wraz ze środowiskiem graficznym, obecnie jest to gnome, docelowo pewnie będzie coś lżejszego, problem polega na tym, że ma być ona uruchamiana wraz ze startem środowiska graficznego. Dodatkowo z uwagi na fakt, że obsługuje także czynności , do których są wymagane prawa roota, dobrze było, aby uruchamiało się ją z tymi prawami. I teraz pytanie jak to najsensowiej zrobić?
Lub też czy jest możliwość, aby uruchamiać ją na prawach użytkownika, a wykonywanie czynności, do których są potrzebna prawa roota móc realizować z tej aplikacji uruchomionej jako zwykły użytkownik dodając te polecenia do pliku sudoers. I jeszcze jedna sprawa, z uwagi na fakt, że będzie ona działała jako całoekreanowe okno i nie będzie jej docelowemu użytkownikowi zamknąć i dostać się do reszty systemu, jak najlepiej to zrobić, aby nie obciążać dodatkowo komputera wymaganiami śrdodwiska graficznego, myślałem aby zainstalować fluxa i na nim ją odpalać. Na wszystkie sugestie jestem otwarty. Z góry dzięki za pomoc.
Ostatnio edytowany przez diabolic (2012-02-15 16:43:17)
Offline
Pełnoekranowa aplikacja bez możliwości dostania się do reszty systemu? To po co w ogóle środowisko graficzne na tej sesji?
Np.
xinit /bin/qemu
Będzie działać chyba nawet bezpieczniej (bo nie da się tego zminimalizować, a poza tym oprócz tego nic tam nie ma)
Należy podać absolutną ścieżkę, bo inaczej coś u mnie nie wchodzi.
A może i dodać do?
/etc/xdg/autostart/
W tej lokacji mam na prtzykład uruchamianie klienta wicd na sesji każdego użytkownika:
np. cat /etc/xdg/autostart/wicd-tray.desktop
[Desktop Entry] Categories=Application;Network; Exec=wicd-gtk GenericName=Network Manager Icon=wicd-gtk Icon[en_US]=wicd-gtk Name=Wicd Network Manager Tray Name[en_US]=Wicd Network Manager Tray Comment=Display network connection status in the system tray Comment[en_US]=Display network connection status in the system tray Terminal=false Type=Application Version=1.0 X-GNOME-Autostart-enabled=true X-KDE-autostart-after=panel
Ostatnio edytowany przez NIC (2012-02-15 17:32:02)
Offline
Jutro popróbuję twoje rozwiązania, dziś już niestety nie mogę bo dostałem to dzisiaj w robocie do ogarnięcia, a wcześniej się się tym ktoś inny zajmował i tak już było ;| Nie miałem nawet kiedy do wujka google zajrzeć co i jak to można rozwiązać.
Offline
Niestety nie działa to tak jak powinno ;/
Offline
A jak działa i w czym tkwi różnica?
Offline
ważne aby się odpaliła z prawami roota bo jak się odpala normalnie to działa
Offline
A nie odwrotnie? :)
Z tego co mi wiadomo to xinit odpalisz z roota i bez. Więc wszystko jest w porządku?
Offline
to sprawdzałem, ale przy odpalaniu przez samo xinit nie działa touchscreen i okno na wyświetlaczu jest nieproporcjonalne ;/
najgorzej że dostałem to wczoraj i już za wielkiej kombinacji nie mogę się podjąć bo czas goni ;/
Ostatnio edytowany przez diabolic (2012-02-16 13:07:09)
Offline
Sesję X masz nieskonfigurowaną więc. Jeśli w nowej sesji uruchomiłbyś GNOME/Fluxbox winno być tak samo. Chyba że użyjesz istniejącej. Używasz jakiegoś menadżera logowania do tego?
Bodajże takie coś:
echo "applikacja_diabolica" > /etc/X11/Sessions/diabolic_app
np.
echo "exec /bin/ck-launch-session startfluxbox" > /etc/X11/Sessions/fluxbox # uruchomi fluxboksa
PS. Jeśli to ma być aplikacja jak we wrocławskich automatach biletowych MPK to najlepiej walnąć statyczny /etc/X11/xorg.conf i w inicie uruchomić z funkcją respawn ową sesję X (xinit /path/app) {w przypadku jeden sesji pewnie konfig może nawet potrzebny specjalnie nie jest, ale lepiej mieć znane warunki}
http://www.tuwroclaw.com/pliki/duze_zdjecia/wiadomosci/biletomatautobus.jpg (<-- to jest na LXDE :) )
Ostatnio edytowany przez NIC (2012-02-16 13:17:29)
Offline
domyślnie jest tutaj gdm, ta aplikacja ma działac na takiej samej zasadzie co podałeś ;)
Ostatnio edytowany przez diabolic (2012-02-16 13:22:58)
Offline
Możesz to trochę jaśniej opisać bo nie ogarniam ;|
Offline
1. Przyjmijmy że Twoja aplikacja nazywa się "bluetoothizer" i znajduje się pod lokację /bin/bluetoothizer.
2. Upewnij się że Twój system jest podobny do mojego tj. masz takie katalogi jak:
ls /etc/X11
ls /etc/xdg
ls /etc/xdg/autostart
ls /etc/X11/Sessions
3. Wypróbuj:
echo "exec /bin/bluetoothizer" > /etc/X11/Sessions/MyBluetoothizer
4. Wyloguj/Reset. Przy logowaniu wybierz sesję "MyBluetoothizer"
5. Spełnia moje oczekiwania. Jeśli coś nie zadziałało piszę na forum.
I ta aplikacja ma tak działać za menadżerem logowania?
Ostatnio edytowany przez NIC (2012-02-16 15:06:37)
Offline
Nie ma katalogu /etc/X11/Sessions
za to jest Xsession.d
Offline
Spróbuj tego:
http://ubuntuforums.org/showthread.php?t=2920
Tudzież podpatrz te pliki tam lub w tym Xsession.d, w końcu jakąś sesję graficzną tam masz.
Offline
Zrobiłem jak w linku aplikacja się uruchamia i dalej obraz jest przesunięty, na gnomie bardzo dobrze go wyświetalało co najgorsze nie mam do niego specyfikacji i nie wiem jaką ma właściwą rozdzielczość i odświeżanie.
Według mnie najlepsza opcją byłoby aby gnome uruchamiał ta aplikację z sudo to wtedy wsztstko dobrze działa. Tylko coś nie chce z nim uruchamiać
Ostatnio edytowany przez diabolic (2012-02-16 17:31:00)
Offline
Rozwiążanie z xinit jest dobre, niestety okazało się że ta płyta embedded ma grafikę GMA500 i jest problem ze sterownkami do niej ;| przez to obraz jest rozwalony
Offline
Możliwe że najnowszy kernel 3.2 lub 3.3 i najnowszy sterownik od Intela działają poprawnie. Coś tam poprawiali. Jakie wersje masz? Aktualne to kernel 3.3-rc3 i sterownik 2.16.0 lub nowszy.
Zależnie co to robi... jeszcze jest VESA lub FB :)
Offline
Kernel z gałęzi stable czyli 2.6.32, niestety nie będę miał czasu przetestować z nowym kernelem bo czas goni i powróciliśmy do poprzedniego systemu
Offline
Pozwolę sobie więc na małą dygresję: właśnie dlatego warto synchronizować się do ostatnich wersji, raz na rok wystarczy (w moim systemie przeważają "pakiety" z 2009, troszkę jest z 2010, a reszta to początek 2011 - więc da się)
PS. Temat wyczerpany?
Offline
Temat wyczerpany. Odnośnie dygresji to też raczej staram się być na świeżo z pakietami, lecz niestety w tym przypadku wymuszone jest naciskiem na stabilność i dodatkowo deadline za parę dni. Za pomoc wielkie dzieki
Offline
Strony: 1
Time (s) | Query |
---|---|
0.00011 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00148 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.188.101.251' WHERE u.id=1 |
0.00095 | UPDATE punbb_online SET logged=1732961583 WHERE ident='18.188.101.251' |
0.00051 | SELECT * FROM punbb_online WHERE logged<1732961283 |
0.00071 | DELETE FROM punbb_online WHERE ident='18.223.237.218' |
0.00061 | DELETE FROM punbb_online WHERE ident='3.135.204.43' |
0.00059 | DELETE FROM punbb_online WHERE ident='3.142.212.119' |
0.00020 | SELECT topic_id FROM punbb_posts WHERE id=195059 |
0.00024 | SELECT id FROM punbb_posts WHERE topic_id=20681 ORDER BY posted |
0.00029 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=20681 AND t.moved_to IS NULL |
0.00042 | SELECT search_for, replace_with FROM punbb_censoring |
0.00113 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=20681 ORDER BY p.id LIMIT 0,25 |
0.00123 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=20681 |
Total query time: 0.00851 s |