modprobe,

Tematy związane z oprogramowaniem, instalacją, konfiguracją
kitor
Posty: 33
Rejestracja: 23 sierpnia 2009, 12:09
Lokalizacja: Wieluń

modprobe, ładowanie danego modułu przez użytkownika?

Post autor: kitor »

Moja karta telewizyjna, OEM oparta o układ Phillips SAA7134 nie jest poprawnie rozpoznawana przez moduł saa7134. Aby uruchomić kartę muszę wykonać najpierw

Kod: Zaznacz cały

rmmod saa7134
a następnie:

Kod: Zaznacz cały

modprobe saa7134 card=21
Niestety po uaktywnieniu karty przez modprobe od razu pojawia się dźwięk na jej wyjściu, co w moim wypadku jest dość uciążliwe - karta nie jest spięta z kartą dźwiękową, a podłączona bezpośrednio do miksera. Oczywiście po zakończeniu oglądania telewizji również trzeba wyłączyć moduł saa7134 aby nie było słychać ostatnio oglądanego kanału.

Kod: Zaznacz cały

sudo rmmod saa7134
sudo modprobe saa7134 card=21
tvtime
#po zamknięciu tvtime
sudo rmmod saa7134
Można by to ubrać w ładny skrypt, ale cały czas jest tu polecenie sudo, które wymaga oczywiście hasła administratora. I tu kształtuje się pytanie - czy jest jakaś opcja umożliwienia zwykłemu użytkownikowi modprobe/rmmod na danym module bez konieczności korzystania z uprawnień roota?
Awatar użytkownika
ryba84
Beginner
Posty: 340
Rejestracja: 08 lipca 2007, 14:55
Lokalizacja: LDZ

Post autor: ryba84 »

Kod: Zaznacz cały

man sudoers
Awatar użytkownika
ilin
Senior Member
Posty: 2292
Rejestracja: 26 sierpnia 2007, 11:54
Lokalizacja: PRLu

Post autor: ilin »

karta nie jest spięta z kartą dźwiękową, a podłączona bezpośrednio do miksera
Możesz jaśniej wyjaśnić Twoją konfigurację sprzętową?
kitor
Posty: 33
Rejestracja: 23 sierpnia 2009, 12:09
Lokalizacja: Wieluń

Post autor: kitor »

Karta normalnie łączona jest za pomocą zewnętrznego kabelka jack 3.5mm - jack 3.5mm z LineIn karty dźwiękowej. Ja zamiast podpinać do karty mam podpięte do miksera (sprzętowy, Phonic MX202), dzięki czemu mogę dźwięk regulować niezależnie od tego co idzie z karty dźwiękowej ;-)

ryba84

Z tego co zrozumiałem mogę pozwolić użytkownikowi wykonywać polecenie modprobe i rmmod. Z tym że ja chciałbym to ograniczyć do wywołania konkretnego modułu przez te polecenia.
Awatar użytkownika
darkwater
Junior Member
Posty: 828
Rejestracja: 25 stycznia 2007, 14:01
Lokalizacja: Częstochowa

Post autor: darkwater »

kitor, gdybyś przeczytał:

Kod: Zaznacz cały

man sudoers
wiedziałbyś, że można zdefiniować konkretne przywileje dla konkretnych poleceń, wraz z parametrami.
kitor
Posty: 33
Rejestracja: 23 sierpnia 2009, 12:09
Lokalizacja: Wieluń

Post autor: kitor »

Cóż, przyznaję że przejrzałem tylko artykuł na jakilinux.org, nie miałem czasu żeby całego man'a przeczytać. No ale skoro tak mówisz to poszukam.
winnetou

Post autor: winnetou »

Dziękuje...
Awatar użytkownika
ryba84
Beginner
Posty: 340
Rejestracja: 08 lipca 2007, 14:55
Lokalizacja: LDZ

Post autor: ryba84 »

Przejrzyj dokładnie mana i na pewno jest tam możliwość wykonywania konkretnych poleceń z konkretnymi parametrami bez podawania hasła. To linux więc ja uważam, że lepiej jest dać komuś wędkę niż podać rybę na tacy ;)
kitor
Posty: 33
Rejestracja: 23 sierpnia 2009, 12:09
Lokalizacja: Wieluń

Post autor: kitor »

Kod: Zaznacz cały

# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

Defaults        env_reset

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL) ALL
ALL     ALL=NOPASSWD:/sbin/shutdown
%tv ALL=(root) NOPASSWD: /sbin/modprobe saa7134 card=21, /sbin/rmmod saa7134
# Allow members of group sudo to not need a password
# (Note that later entries override this, so you might need to move
# it further down)
%sudo ALL=(ALL) ALL
#
#includedir /etc/sudoers.d
Dodałem grupę "tv", umieściłem siebie w tej grupie, dalej sudo prosi o hasło. Co robię źle?
Awatar użytkownika
ryba84
Beginner
Posty: 340
Rejestracja: 08 lipca 2007, 14:55
Lokalizacja: LDZ

Post autor: ryba84 »

A linijka z grupą tv nie powinna tak wyglądać:

Kod: Zaznacz cały

%tv    ALL = NOPASSWD:/sbin/modprobe saa7134 card=21, /sbin/rmmod saa7134
Mogę się mylić ale nie chce mi się sprawdzać. A i pamiętaj odstęp między %tv i ALL to nie spacja tylko tabulator. Jeśli to nie jest u Ciebie tabulator to popraw bo nie będzie działać.
ODPOWIEDZ