[MPlayer-users] Re: mplayer > 1.x doesn't recognizemyradeon cardwith vidix

justin case justin_case at gmx.net
Sat Apr 10 15:38:20 CEST 2004


> > > under mplayer, latest cvs as well as any 1.X-rcX versions, i get with
> > > mplayer -v -vo cvidix file_name.avi:
> > > ------------------------------------------------------------
> > > vidixlib: PROBING: /usr/local/lib/mplayer/vidix/radeon_vid.so
> > > [radeon] Can't find chip
> >
> >
> > I can run it from latest CVS builds fine myself
> > (find the chip which is your issue)
> >
> > as root ran
> > #scanpci
> > ...
> > pci bus 0x0001 cardnum 0x00 function 0x00: vendor 0x1002 device 0x5157
> >  ATI Technologies Inc Radeon RV200 QW [Radeon 7500]
> >
> > I seem to have the same chip as you onboard
> >
> > your mesage comes from vidix/drivers/radeon_vid.c
> > if(err && verbose) printf(RADEON_MSG" Can't find chip\n");
> >
> > so it appears there was an error
> >
> > it was not immediate during pci_scan because you would have seen
> > Error occurred during pci scan:
> >
> > sets err to ENXIO
> > cycles through all the pci devices it found
> > - need to check (should be at least 1)
> >
> > checks if vendor matches VENDOR_ATI or 0x1002
> > - need to check (must be true for your card)
> >
> > if yes checks if device_id matches one in list ati_card_ids
> > - need to check yours if it is in the list libdha/pci_ids.h
> >
> > #define DEVICE_ATI_RADEON_RV200_QW                      0x5157
> > /*Radeon RV200 QW [Radeon 7500]*/
> >
> > this part never succeded or you would see
> >  found chip message
> >
> > please can you do some debugging?
> >
> > good luck
>
> ok, lets start:
>
> lspci brings up
> pci bus 0x0001 cardnum 0x00 function 0x00: vendor 0x1002 device 0x5157
>  ATI Radeon 7500 QW
>
> and in libdha/pci_ids.h i can find a matching entry in both my mplayer
> versions:
> #define DEVICE_ATI_RADEON_RV200_QW                      0x5157
> /*Radeon RV200 QW [Radeon 7500]*/
>
> since you wrote that radeon_vid.c should be responsible for detecting the
> chip i placed the 0.92 version of it into the according location of the
> 1.0pre3 directory and ran make;make install again and i still get the same
> error-message.
>
> well, i then did "strace mplayer -vo vesa:vidix file.avi". (the output is
> underneath my post)
> first thing to notice is that it fails to find /dev/dhahelper wich is
> connected to vidix, i just don't know how. my 0.92 version finds the chip
> while producing the exact the same error-message about the missing
> /dev/dhahelper, so it might not be important.
>
> ..but the way the hardware is detected might have changed, right? so i
> installed the svgalibhelper as instructed on the mplayer readme
> (http://www.mplayerhq.hu/DOCS/HTML/en/devices.html under
> 2.3.1.2.12. VIDIX)
> but still i don't get /dev/dhahelper, but some /dev/svga devices. strange.
> do _you_ actually have /dev/dhahelper, or is it working without it in your
> system?
>
> well, for now i don't have any furhter ideas. i guess i will try to figue
> more about the dhahelper itself, but i guess it will lead to nothing.
>
> do you have any more ideas?
>
> regards,
> /jc
>
>
> -here's the strace-output:----------------------------------
> ...
> open("/usr/lib/libdha.so.0.1", O_RDONLY) = 8
> read(8,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\324\0"..., 1024) =
> 1024
> fstat64(8, {st_mode=S_IFREG|0755, st_size=285769, ...}) = 0
> old_mmap(NULL, 236480, PROT_READ|PROT_EXEC, MAP_PRIVATE, 8, 0) =
> 0x411c2000
> mprotect(0x411ef000, 52160, PROT_NONE)  = 0
> old_mmap(0x411ef000, 53248, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED, 8,
> 0x2c000) = 0x411ef000
> close(8)                                = 0
> open("/dev/dhahelper", O_RDWR|O_LARGEFILE) = -1 ENOENT (No such file or
> directory)
> iopl(0x3)                               = 0
> iopl(0)                                 = 0
> munmap(0x4011f000, 13356)               = 0
> munmap(0x411c2000, 236480)              = 0
> open("/usr/local/lib/mplayer/vidix/mach64_vid.so", O_RDONLY) = 8
> read(8,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200\n\0"..., 1024)
> = 1024
> fstat64(8, {st_mode=S_IFREG|0755, st_size=14720, ...}) = 0
> old_mmap(NULL, 13700, PROT_READ|PROT_EXEC, MAP_PRIVATE, 8, 0) = 0x4011f000
> mprotect(0x40122000, 1412, PROT_NONE)   = 0
> old_mmap(0x40122000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 8,
> 0x3000) = 0x40122000
> close(8)                                = 0
> open("/usr/lib/libdha.so.0.1", O_RDONLY) = 8
> read(8,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\324\0"..., 1024) =
> 1024
> fstat64(8, {st_mode=S_IFREG|0755, st_size=285769, ...}) = 0
> old_mmap(NULL, 236480, PROT_READ|PROT_EXEC, MAP_PRIVATE, 8, 0) =
> 0x411c2000
> mprotect(0x411ef000, 52160, PROT_NONE)  = 0
> old_mmap(0x411ef000, 53248, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED, 8,
> 0x2c000) = 0x411ef000
> close(8)                                = 0
> open("/dev/dhahelper", O_RDWR|O_LARGEFILE) = -1 ENOENT (No such file or
> directory)
> iopl(0x3)                               = 0
> iopl(0)                                 = 0
> munmap(0x4011f000, 13700)               = 0
> munmap(0x411c2000, 236480)              = 0
> open("/usr/local/lib/mplayer/vidix/mga_crtc2_vid.so", O_RDONLY) = 8
> read(8,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\t\0\000"..., 1024)
> = 1024
> fstat64(8, {st_mode=S_IFREG|0755, st_size=12992, ...}) = 0
> old_mmap(NULL, 16076, PROT_READ|PROT_EXEC, MAP_PRIVATE, 8, 0) = 0x4011f000
> mprotect(0x40122000, 3788, PROT_NONE)   = 0
> old_mmap(0x40122000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 8,
> 0x2000) = 0x40122000
> close(8)                                = 0
> open("/usr/lib/libdha.so.0.1", O_RDONLY) = 8
> read(8,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\324\0"..., 1024) =
> 1024
> fstat64(8, {st_mode=S_IFREG|0755, st_size=285769, ...}) = 0
> old_mmap(NULL, 236480, PROT_READ|PROT_EXEC, MAP_PRIVATE, 8, 0) =
> 0x411c2000
> mprotect(0x411ef000, 52160, PROT_NONE)  = 0
> old_mmap(0x411ef000, 53248, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED, 8,
> 0x2c000) = 0x411ef000
> close(8)                                = 0
> open("/dev/dhahelper", O_RDWR|O_LARGEFILE) = -1 ENOENT (No such file or
> directory)
> iopl(0x3)                               = 0
> iopl(0)                                 = 0
> munmap(0x4011f000, 16076)               = 0
> munmap(0x411c2000, 236480)              = 0
> open("/usr/local/lib/mplayer/vidix/mga_vid.so", O_RDONLY) = 8
> read(8,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\t\0\000"..., 1024)
> = 1024
> fstat64(8, {st_mode=S_IFREG|0755, st_size=12160, ...}) = 0
> old_mmap(NULL, 15148, PROT_READ|PROT_EXEC, MAP_PRIVATE, 8, 0) = 0x4011f000
> mprotect(0x40122000, 2860, PROT_NONE)   = 0
> old_mmap(0x40122000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 8,
> 0x2000) = 0x40122000
> close(8)                                = 0
> open("/usr/lib/libdha.so.0.1", O_RDONLY) = 8
> read(8,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\324\0"..., 1024) =
> 1024
> fstat64(8, {st_mode=S_IFREG|0755, st_size=285769, ...}) = 0
> old_mmap(NULL, 236480, PROT_READ|PROT_EXEC, MAP_PRIVATE, 8, 0) =
> 0x411c2000
> mprotect(0x411ef000, 52160, PROT_NONE)  = 0
> old_mmap(0x411ef000, 53248, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED, 8,
> 0x2c000) = 0x411ef000
> close(8)                                = 0
> open("/dev/dhahelper", O_RDWR|O_LARGEFILE) = -1 ENOENT (No such file or
> directory)
> iopl(0x3)                               = 0
> iopl(0)                                 = 0
> munmap(0x4011f000, 15148)               = 0
> munmap(0x411c2000, 236480)              = 0
> open("/usr/local/lib/mplayer/vidix/nvidia_vid.so", O_RDONLY) = 8
> read(8,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\n\0\000"..., 1024)
> = 1024
> fstat64(8, {st_mode=S_IFREG|0755, st_size=11808, ...}) = 0
> old_mmap(NULL, 14628, PROT_READ|PROT_EXEC, MAP_PRIVATE, 8, 0) = 0x4011f000
> mprotect(0x40122000, 2340, PROT_NONE)   = 0
> old_mmap(0x40122000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 8,
> 0x2000) = 0x40122000
> close(8)                                = 0
> open("/usr/lib/libdha.so.0.1", O_RDONLY) = 8
> read(8,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\324\0"..., 1024) =
> 1024
> fstat64(8, {st_mode=S_IFREG|0755, st_size=285769, ...}) = 0
> old_mmap(NULL, 236480, PROT_READ|PROT_EXEC, MAP_PRIVATE, 8, 0) =
> 0x411c2000
> mprotect(0x411ef000, 52160, PROT_NONE)  = 0
> old_mmap(0x411ef000, 53248, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED, 8,
> 0x2c000) = 0x411ef000
> close(8)                                = 0
> open("/dev/dhahelper", O_RDWR|O_LARGEFILE) = -1 ENOENT (No such file or
> directory)
> iopl(0x3)                               = 0
> iopl(0)                                 = 0
> munmap(0x4011f000, 14628)               = 0
> munmap(0x411c2000, 236480)              = 0
> open("/usr/local/lib/mplayer/vidix/pm3_vid.so", O_RDONLY) = 8
> read(8,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\t\0\000"..., 1024)
> = 1024
> fstat64(8, {st_mode=S_IFREG|0755, st_size=8736, ...}) = 0
> old_mmap(NULL, 11876, PROT_READ|PROT_EXEC, MAP_PRIVATE, 8, 0) = 0x4011f000
> mprotect(0x40121000, 3684, PROT_NONE)   = 0
> old_mmap(0x40121000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 8,
> 0x1000) = 0x40121000
> close(8)                                = 0
> open("/usr/lib/libdha.so.0.1", O_RDONLY) = 8
> read(8,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\324\0"..., 1024) =
> 1024
> fstat64(8, {st_mode=S_IFREG|0755, st_size=285769, ...}) = 0
> old_mmap(NULL, 236480, PROT_READ|PROT_EXEC, MAP_PRIVATE, 8, 0) =
> 0x411c2000
> mprotect(0x411ef000, 52160, PROT_NONE)  = 0
> old_mmap(0x411ef000, 53248, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED, 8,
> 0x2c000) = 0x411ef000
> close(8)                                = 0
> open("/dev/dhahelper", O_RDWR|O_LARGEFILE) = -1 ENOENT (No such file or
> directory)
> iopl(0x3)                               = 0
> iopl(0)                                 = 0
> munmap(0x4011f000, 11876)               = 0
> munmap(0x411c2000, 236480)              = 0
> open("/usr/local/lib/mplayer/vidix/radeon_vid.so", O_RDONLY) = 8
> read(8, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\16\0\000"...,
> 1024) = 1024
> fstat64(8, {st_mode=S_IFREG|0755, st_size=20576, ...}) = 0
> old_mmap(NULL, 24348, PROT_READ|PROT_EXEC, MAP_PRIVATE, 8, 0) = 0x4011f000
> mprotect(0x40124000, 3868, PROT_NONE)   = 0
> old_mmap(0x40124000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 8,
> 0x4000) = 0x40124000
> close(8)                                = 0
> open("/usr/lib/libdha.so.0.1", O_RDONLY) = 8
> read(8,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\324\0"..., 1024) =
> 1024
> fstat64(8, {st_mode=S_IFREG|0755, st_size=285769, ...}) = 0
> old_mmap(NULL, 236480, PROT_READ|PROT_EXEC, MAP_PRIVATE, 8, 0) =
> 0x411c2000
> mprotect(0x411ef000, 52160, PROT_NONE)  = 0
> old_mmap(0x411ef000, 53248, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED, 8,
> 0x2c000) = 0x411ef000
> close(8)                                = 0
> open("/dev/dhahelper", O_RDWR|O_LARGEFILE) = -1 ENOENT (No such file or
> directory)
> iopl(0x3)                               = 0
> iopl(0)                                 = 0
> munmap(0x4011f000, 24348)               = 0
> munmap(0x411c2000, 236480)              = 0
> open("/usr/local/lib/mplayer/vidix/rage128_vid.so", O_RDONLY) = 8
> read(8,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\r\0\000"..., 1024)
> = 1024
> fstat64(8, {st_mode=S_IFREG|0755, st_size=19584, ...}) = 0
> old_mmap(NULL, 19260, PROT_READ|PROT_EXEC, MAP_PRIVATE, 8, 0) = 0x4011f000
> mprotect(0x40123000, 2876, PROT_NONE)   = 0
> old_mmap(0x40123000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 8,
> 0x4000) = 0x40123000
> close(8)                                = 0
> open("/usr/lib/libdha.so.0.1", O_RDONLY) = 8
> read(8,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\324\0"..., 1024) =
> 1024
> fstat64(8, {st_mode=S_IFREG|0755, st_size=285769, ...}) = 0
> old_mmap(NULL, 236480, PROT_READ|PROT_EXEC, MAP_PRIVATE, 8, 0) =
> 0x411c2000
> mprotect(0x411ef000, 52160, PROT_NONE)  = 0
> old_mmap(0x411ef000, 53248, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED, 8,
> 0x2c000) = 0x411ef000
> close(8)                                = 0
> open("/dev/dhahelper", O_RDWR|O_LARGEFILE) = -1 ENOENT (No such file or
> directory)
> iopl(0x3)                               = 0
> iopl(0)                                 = 0
> munmap(0x4011f000, 19260)               = 0
> munmap(0x411c2000, 236480)              = 0
> open("/usr/local/lib/mplayer/vidix/sis_vid.so", O_RDONLY) = 8
> read(8,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\f\0"..., 1024)
> = 1024
> fstat64(8, {st_mode=S_IFREG|0755, st_size=29012, ...}) = 0
> old_mmap(NULL, 32096, PROT_READ|PROT_EXEC, MAP_PRIVATE, 8, 0) = 0x4011f000
> mprotect(0x40126000, 3424, PROT_NONE)   = 0
> old_mmap(0x411ef000, 53248, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED, 8,
> 0x2c000) = 0x411ef000
> close(8)                                = 0
> open("/dev/dhahelper", O_RDWR|O_LARGEFILE) = -1 ENOENT (No such file or
> directory)
> iopl(0x3)                               = 0
> iopl(0)                                 = 0
> munmap(0x4011f000, 24348)               = 0
> munmap(0x411c2000, 236480)              = 0
> open("/usr/local/lib/mplayer/vidix/rage128_vid.so", O_RDONLY) = 8
> read(8,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\r\0\000"..., 1024)
> = 1024
> fstat64(8, {st_mode=S_IFREG|0755, st_size=19584, ...}) = 0
> old_mmap(NULL, 19260, PROT_READ|PROT_EXEC, MAP_PRIVATE, 8, 0) = 0x4011f000
> mprotect(0x40123000, 2876, PROT_NONE)   = 0
> old_mmap(0x40123000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 8,
> 0x4000) = 0x40123000
> close(8)                                = 0
> open("/usr/lib/libdha.so.0.1", O_RDONLY) = 8
> read(8,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\324\0"..., 1024) =
> 1024
> fstat64(8, {st_mode=S_IFREG|0755, st_size=285769, ...}) = 0
> old_mmap(NULL, 236480, PROT_READ|PROT_EXEC, MAP_PRIVATE, 8, 0) =
> 0x411c2000
> mprotect(0x411ef000, 52160, PROT_NONE)  = 0
> old_mmap(0x411ef000, 53248, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED, 8,
> 0x2c000) = 0x411ef000
> close(8)                                = 0
> open("/dev/dhahelper", O_RDWR|O_LARGEFILE) = -1 ENOENT (No such file or
> directory)
> iopl(0x3)                               = 0
> iopl(0)                                 = 0
> munmap(0x4011f000, 19260)               = 0
> munmap(0x411c2000, 236480)              = 0
> open("/usr/local/lib/mplayer/vidix/sis_vid.so", O_RDONLY) = 8
> read(8,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\f\0"..., 1024)
> = 1024
> fstat64(8, {st_mode=S_IFREG|0755, st_size=29012, ...}) = 0
> old_mmap(NULL, 32096, PROT_READ|PROT_EXEC, MAP_PRIVATE, 8, 0) = 0x4011f000
> mprotect(0x40126000, 3424, PROT_NONE)   = 0
> fstat64(8, {st_mode=S_IFREG|0755, st_size=285769, ...}) = 0
> old_mmap(NULL, 236480, PROT_READ|PROT_EXEC, MAP_PRIVATE, 8, 0) =
> 0x411c2000
> mprotect(0x411ef000, 52160, PROT_NONE)  = 0
> old_mmap(0x411ef000, 53248, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED, 8,
> 0x2c000) = 0x411ef000
> close(8)                                = 0
> open("/dev/dhahelper", O_RDWR|O_LARGEFILE) = -1 ENOENT (No such file or
> directory)
> iopl(0x3)                               = 0
> iopl(0)                                 = 0
> munmap(0x4011f000, 19260)               = 0
> munmap(0x411c2000, 236480)              = 0
> open("/usr/local/lib/mplayer/vidix/sis_vid.so", O_RDONLY) = 8
> read(8,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\f\0"..., 1024)
> = 1024
> fstat64(8, {st_mode=S_IFREG|0755, st_size=29012, ...}) = 0
> old_mmap(NULL, 32096, PROT_READ|PROT_EXEC, MAP_PRIVATE, 8, 0) = 0x4011f000
> mprotect(0x40126000, 3424, PROT_NONE)   = 0
> old_mmap(0x40126000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 8,
> 0x6000) = 0x40126000
> close(8)                                = 0
> open("/usr/lib/libdha.so.0.1", O_RDONLY) = 8
> read(8,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\324\0"..., 1024) =
> 1024
> fstat64(8, {st_mode=S_IFREG|0755, st_size=285769, ...}) = 0
> old_mmap(NULL, 236480, PROT_READ|PROT_EXEC, MAP_PRIVATE, 8, 0) =
> 0x411c2000
> mprotect(0x411ef000, 52160, PROT_NONE)  = 0
> old_mmap(0x411ef000, 53248, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED, 8,
> 0x2c000) = 0x411ef000
> close(8)                                = 0
> open("/dev/dhahelper", O_RDWR|O_LARGEFILE) = -1 ENOENT (No such file or
> directory)
> iopl(0x3)                               = 0
> iopl(0)                                 = 0
> munmap(0x4011f000, 32096)               = 0
> munmap(0x411c2000, 236480)              = 0
> open("/usr/local/lib/mplayer/vidix/radeon_vid.o", O_RDONLY) = 8
> read(8,
> "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\1\0\3\0\1\0\0\0\0\0\0\0"..., 1024)
> = 1024
> close(8)                                = 0
> getdents64(0x7, 0x8563710, 0x1000, 0x2) = 0
> close(7)                                = 0
> write(1, "vosub_vidix: Couldn\'t find worki"..., 48) = 48
> open("/dev/mem", O_RDWR|O_LARGEFILE)    = 7
> close(7)                                = 0
> write(2, "Error opening/initializing the s"..., 64Error
> opening/initializing
> the selected video_out (-vo) device.
> ------------------------------------------------------------

in the /libdha directory of the source tree the readme says:
There are different ways to access the hardware, normally only ROOT can do
that.
With root privileges libdha will finely run, but there are some others ways
to use it as a normal user:
1, set the SUID bit on the binary (in this way it runs with root priviliges)
2, use svgalib kernel helper
3, use dhahelper (not yet finished)

i wonder why mplayer calls it, if it is not even existing yet?





More information about the MPlayer-users mailing list