[Grml] Re: Normal user not permitted for pci scan

T mlist4suntong at yahoo.com
Sun Oct 8 16:42:47 CEST 2006


On Sun, 08 Oct 2006 01:56:26 +0200, Michael Prokop wrote:

>> when I tried to use the xvidix driver for mplayer, I get
>> "Error occurred during pci scan: Operation not permitted" error for 
>> normal user, but root is ok....
> 
> Hm, you are not member of the 'video' group.
> Try adding yourself to the video-group.
> 
> Assuming that this does *not* fix your problem:

That's very considerate of you. thanks a lot.

No, adding myself to the 'video' group doesn't help. 

$ id
uid=...(tong) gid=44(video) groups=4(adm),5(tty),6(disk),8(mail),9(news),10(uucp),20(dialout),21(fax),22(voice),24(cdrom),25(floppy),26(tape),27(sudo),29(audio),30(dip),33(www-data),44(video),60(games)...

And here is the compiled info to your questions:

Yes, using multiple -v produced more debug info, but no, still not enough
for our situation:

 CommandLine: '-v' '-v' '-v' '-v' '-dr' '-vo' 'xvidix' ...
 [...]
 No vidix driver name provided, probing available ones (-v option for details)!
 vosub_vidix: vidix_preinit((null)) was called
 vidixlib: PROBING: /usr/lib/mplayer/vidix/mga_vid.so
 [mga] probe
 [mga] Error occurred during pci scan: Operation not permitted
 vidixlib: PROBING: /usr/lib/mplayer/vidix/mach64_vid.so
 [mach64] Error occurred during pci scan: Operation not permitted
 vidixlib: PROBING: /usr/lib/mplayer/vidix/rage128_vid.so
 [rage128] Error occurred during pci scan: Operation not permitted
 [...]

Using 'strace -f -eopen -o /tmp/mplayer mplayer -dr -vo xvidix ...' wouldn't
reveal much more than that:

 [...]
 10538 open("test.mpg", O_RDONLY|O_LARGEFILE) = 3
 10538 open("./", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 4
 10538 open("/home/tong/.mplayer/sub/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = -1 ENOENT (No such file or directory)
 10538 open("/home/tong/.Xauthority", O_RDONLY) = 5
 10538 open("/usr/lib/mplayer/vidix/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 5
 10538 open("/usr/lib/mplayer/vidix/mga_vid.so", O_RDONLY) = 6
 10538 open("/etc/ld.so.cache", O_RDONLY) = 6
 10538 open("/usr/lib/libdha.so.1.0", O_RDONLY) = 6
 10538 open("/dev/dhahelper", O_RDWR|O_LARGEFILE) = -1 ENOENT (No such file or directory)
 10538 open("/usr/lib/mplayer/vidix/mach64_vid.so", O_RDONLY) = 6
 10538 open("/etc/ld.so.cache", O_RDONLY) = 6
 [...]

Using 'strace -f -o /tmp/mplayer mplayer -dr -vo xvidix ...' didn't
seem to have told me much more than that either, until I compare the
result with what was logged while playing in root. Then I found:

 [...]
 10541 open("/usr/lib/mplayer/vidix/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 5
 10541 fstat64(5, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
 10541 fcntl64(5, F_SETFD, FD_CLOEXEC)   = 0
 10541 getdents64(5, /* 13 entries */, 4096) = 464
 10541 futex(0xb77a9070, FUTEX_WAKE, 2147483647) = 0
 10541 open("/usr/lib/mplayer/vidix/mga_vid.so", O_RDONLY) = 6
				    ^^^^^^^^^^
 10541 read(6, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\7\0"..., 512) = 512
 10541 fstat64(6, {st_mode=S_IFREG|0644, st_size=10500, ...}) = 0
 10541 mmap2(NULL, 13836, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 6, 0) = 0xb5fcb000
 10541 mmap2(0xb5fce000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 6, 0x2) = 0xb5fce000
 10541 close(6)                          = 0
 10541 open("/etc/ld.so.cache", O_RDONLY) = 6
		  ^^^^^^^^^^^
 10541 fstat64(6, {st_mode=S_IFREG|0644, st_size=67617, ...}) = 0
 10541 mmap2(NULL, 67617, PROT_READ, MAP_PRIVATE, 6, 0) = 0xb5fba000
 10541 close(6)                          = 0
 10541 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
 10541 open("/usr/lib/libdha.so.1.0", O_RDONLY) = 6
		      ^^^^^^^^^^^
 10541 read(6, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\324"..., 512) = 512
 10541 fstat64(6, {st_mode=S_IFREG|0644, st_size=224000, ...}) = 0
 10541 mmap2(NULL, 222872, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 6, 0) = 0xb5f83000
 10541 mmap2(0xb5fad000, 53248, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 6, 0x2a) = 0xb5fad000
 10541 close(6)                          = 0
 10541 munmap(0xb5fba000, 67617)         = 0
 10541 open("/dev/dhahelper", O_RDWR|O_LARGEFILE) = -1 ENOENT (No such file or directory)
		^^^^^^^^^^^
 10541 iopl(0x3)                         = -1 EPERM (Operation not permitted)
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ There !!!
 10541 write(1, "[mga] Error occurred during pci "..., 62) = 62
 10541 munmap(0xb5fcb000, 13836)         = 0
 10541 munmap(0xb5f83000, 222872)        = 0
 10541 open("/usr/lib/mplayer/vidix/mach64_vid.so", O_RDONLY) = 6
 [...]
 10541 open("/dev/dhahelper", O_RDWR|O_LARGEFILE) = -1 ENOENT (No such file or directory)
 10541 iopl(0x3)                         = -1 EPERM (Operation not permitted)
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ There !!!
 10541 write(1, "[radeon] Error occurred during p"..., 65) = 65
 10541 munmap(0xb7fb2000, 27900)         = 0
 10541 munmap(0xb5f87000, 222872)        = 0
 [...]

Compare with what root get:

 [...]
 10751 iopl(0x3)                         = 0
 10751 iopl(0)                           = 0
 10751 write(1, "[radeon] Found chip: RV280 [Rade"..., 44) = 44
 10751 uname({sys="Linux", node="cxmr.dyndns.org", ...}) = 0
 10751 socket(PF_FILE, SOCK_STREAM, 0)   = 6
 [...]

So, what's about the "iopl(0x3)"?

thanks






More information about the Grml mailing list