Yes! That's it!
In retrospect, it seems silly. I suspected that the compiled in ivtv
code was executing before the file system could be mounted, but was
sufficiently unaware of the nuts and bolts as to not latch onto it. I
had compiled my ivtv code into the kernel, rather than as a module. I
just recompiled the kernel with ivtv as a module, and recompiled the
latest ivtv release (1.0.2), and now it's working.
I will make a short entry in the wiki about this so others don't have
the same problem.
It's my recommendation that the mainline ivtv code be modified to delay
load the firmware as you mentioned earlier, or that the ivtv options be
modified to exclude compiling into the kernel (ie a module only
option). Please let me know if plans such as this are in the works, as
if so, I'll mention it in my update of the wiki. Otherwise please
consider this thread resolved
Thanks again,
Mike
PS to Robert Harris: Thanks for posting. As you can probably tell by
now, this wasn't actually about Slackware at all, but about kernel
version 2.6.22 and above (which I'd upgraded to in my Slackware 12.0
system).
Hans Verkuil wrote:
I would move the command to the end of the file, certainly after udev was
initialized. Check afterwards what the contents is of the
/proc/sys/kernel/hotplug is and if it still points to the correct script.
However, I gather from your mail that you are using ivtv compiled into the
kernel instead of as a module. That will not work at all unless you start
using the ivtv from the bleeding edge v4l-dvb repository at
www.linuxtv.org/hg/v4l-dvb. ivtv from 2.6.22 and 23 load the firmware if
compiled in the kernel since it's initialized too early and udev is not
yet running. In the v4l-dvb repository I changed ivtv so it postpones the
firmware load until the first usage. So I suspect that's the whole
problem.
Regards,
Hans
Alas, still no joy. I put hotplug in /usr/sbin and made sure it was
executable. Attached is my rc.S file. You can see the command
I
installed at the top of the file, right after it mounts /proc.<br>
<br>
I still get the same symptoms as in the first post. It's looking for
the firmware and not finding it.<br>
<br>
I have a question about the kernel version of the driver. Is it
trying
to load ivtv before the scripts are launching? Do I need to do
something with initrd to make this work?<br>
<br>
I suppose it's possible I've done something quite bone-headed somewhere
along the line that I've just missed, but I just can't imagine what it
could be. <br>
<br>
Thanks for helping me.<br>
<br>
Mike<br>
</font><br>
Hans Verkuil wrote:
<blockquote cite="mid:[EMAIL PROTECTED]" type="cite">
<pre wrap="">On Monday 27 August 2007 03:49:37 Mike Kehrli wrote:
</pre>
<blockquote type="cite">
<pre wrap="">Hi Hans,
Thanks for your post. I'm feeling quite noobish, but don't know how
to execute the script you gave me. I put it in rc.S and had it
execute along with udev, but that made no change. I'm afraid I'm
sufficiently ignorant of the mechanism involved here that I don't
know how to use the script you gave me.
How do you use it?
I didn't respond right away, as I had received an email from Sander
Sweers that looked like it would undercut the need for it, by getting
udev doing the job, which I think is the correct final answer to the
problem. But I still have lifeless cards, and I'm stubornly refusing
to downgrade things just to get the cards going again.
Thanks,
Mike
Hans Verkuil wrote:
On Sunday 26 August 2007 00:55:48 Mike Kehrli wrote:
I'm using 5 hauppauge pvr-150 cards on a newly installed Slackware
12.0 system. I then upgraded the kernel from 2.6.21.5-smp that comes
with the distro to 2.6.22.4-smp, in order to take advantage of the
completion of the migration of the ivtv drivers to the mainline
kernel (very well done to all involved with that!).
Slackware 12.0 has dropped the hotplug mechanism that I've
previously used to install the firmware. There is no longer a
firmware.agent file, that gives the correct firmware directory to put
the firmware files. I've now spent several days trying to get the
firmware to load. I've gone as far as putting the files in all
possible directories, creating the directories if needed, including:
/lib/firmware
/lib/firmware/2.6.22.4-smp
/usr/local/lib/firmware
/lib/modules (i used both the old and new naming conventions
in
this dir) /usr/lib/hotplug/firmware
I'm sure I'm missing something dumb here. But I'm not a noob.
I've
had these cards running with several previous linux kernel versions
and driver versions. In fact getting the drivers to work is pretty
quick for me now. However, I've been writing software for
controlling the cards, and I'm getting tired of upgrading my software
everytime another step is made towards migrating the driver to the
kernel, and want to be able to finalize that portion of my code. So
want to use the kernel version of the driver.
Where does it look for the firmware when there is no hotplug
mechanism? The wiki says it looks in /lib/modules, but it's not
finding them there.
Attached is dmesg
ivtv version: 1.0.1
no module options
I've followed the directions in the General Purpose (Main) Howto at
ivtvdriver.org
Thanks for looking at this for me,
Mike Kehrli
Hi Mike,
I think it is possible nowadays to do it completely with udev rules,
but I never looked into that. I'm still using a little hotplug script
that does the loading, which I've attached.
Hope this helps,
Hans
</pre>
</blockquote>
<pre wrap=""><!---->
You put the firmware in /lib/modules, the hotplug script in /usr/sbin
and add this command: 'echo /usr/sbin/hotplug
</pre>
<blockquote type="cite">
<pre wrap="">/proc/sys/kernel/hotplug' somewhere in your /etc/init.d
scripts. I
</pre>
</blockquote>
<pre wrap=""><!---->think there is a 'local' script in there that you
can use for something
like this. As long as it is run before you load ivtv.
Regards,
Hans
</pre>
</blockquote>
</body>
</html>
_______________________________________________
ivtv-users mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-users