2009/1/11 Pavel Troller <
patrol@...>:
>> Hi!
>> I've updated to the svn kaffeine and running linux-2.6.28. From now on, I
>> cannot tune my DVB. Kaffeine simply writes
>> ERROR Tuning
>> : Invalid argument
>> Frontend closed
>>
>> In dmesg, the following message appears:
>> Jan 10 19:33:11 arcus kernel: ioctl32(kaffeine:18628): Unknown cmd fd(15) cmd(40086f52){t:'o';sz:8} arg(fffc3d84) on /dev/dvb/adapter0/frontend0
>>
>> I was looking at the source, the ioctl which causes the problem is
>> FE_SET_PROPERTY. Its binary representation seems OK. I've looked to the
>> kernel sources, turned on dvb_core debugging, and I can see, that the ioctl
>> comes properly to dvb_frontend_ioctl (I can see it printed in the debug log)
>> but not to the dvb_frontend_ioctl_properties (not stated in the log).
>> The source seems clear and I don't know, why it doesn't call it and probably
>> comes to the dvb_frontend_ioctl_legacy (which doesn't generate the debug log)
>> and fails there.
>>
>> The kernel is compiled for x86_64, but the kaffeine is still 32-bit binary.
>> Any hints ?
>>
>> With regards, Pavel Troller
>>
>
> Hi!
> Replying to myself, I've found the cause but I'm not sure, how to solve it.
>
> I've found that I was wrong thinking that the ioctl is passed normally. It
> was another one in the sequence. The FE_SET_PROPERTY ioctl was not passed
> by /usr/src/linux/fs/compat_ioctl.c, because it was not entered in its table.
> I thought that it's just a mistake of the developers, that they forgot to add
> it because it's new. So I added all the missing ioctls from
> /usr/src/linux/include/linux/dvb/frontend.h (total of 3) as compatible.
> However, it didn't work either. More debugging showed me that this ioctl is
> getting a different command code on 64bit platform (0x40106f52) and on 32bit
> one (0x40086f52). I've then found that it's because there is a pointer in the
> struct dtv_properties, passed as data area to the ioctl, which has different
> length (32/64bits) on different platforms, making the length part of the
> command code different too, so the command is not recognized by ioctl_compat.c.
>
> And there I stopped. I don't think I have enough knowledges especially in the
> platform peculiarities area to solve this. I think that those ioctls are wrong
> by design, that they contain platform-dependent data, so they cannot be simply
> handled in the compat layer. Maybe I would be able to make a quick hack to make
> things work, but definitely not cleanly enough to be generally accepted.
>
> So, it looks that 32bit kaffeine cannot run on 64bit kernels now. I think it's
> a serious bug on the Linux kernel side. I will forward this mail to the
> appropriate Linux folks too.
>
> With regards, Pavel Troller
>
i just have a question: why do you want to use kaffein 32bit on a
64bit system when you have
a 64bit kaffeine available?
if you don't have a 64bit system i wonder why you're using a 64bit kernel.
it's stupid to have a 32bit system run on a 64bit kernel if you don't
need some particular 32bit
proprietary application. and also in that case is stupid to use a
32bit system on a 64bit kernel.
usually every 64bit distro provides a way to install 32bit proprietary
packages like acrobat reader
or oracle (these are still 2 that don't have a 64bit counterpart, for
now) and run as on 32bit systems.
so i think that if you want to use a 64bit kernel you'd better install
a 64bit system and install kaffeine
64bit binaries and not 32bit ones.
--
dott. ing. beso
------------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It is the best place to buy or sell services for
just about anything Open Source.
http://p.sf.net/sfu/Xq1LFB_______________________________________________
kaffeine-user mailing list
kaffeine-user@...
https://lists.sourceforge.net/lists/listinfo/kaffeine-user