sc0710
sc0710 copied to clipboard
videobuf_vmalloc Deprecated
Videobuf has long been deprecated, and now Arch kernel 6.4 has removed the videobuf_vmalloc module that this project depends on. CONFIG_VIDEOBUF_VMALLOC=m on line 5844
I just noticed when trying to run make load
:
root@elgato:~/sc0710# make load
make -C /lib/modules/5.15.0-78-generic/build M=/root/sc0710 modules
make[1]: Entering directory '/usr/src/linux-headers-5.15.0-78-generic'
make[1]: Leaving directory '/usr/src/linux-headers-5.15.0-78-generic'
sudo dmesg -c >/dev/null
sudo cp /dev/null /var/log/debug
#sudo modprobe videobuf2-core
sudo modprobe videobuf2-common
sudo modprobe videodev
#sudo modprobe videobuf-dma-sg
sudo modprobe videobuf-vmalloc
sudo insmod ./sc0710.ko \
thread_dma_poll_interval_ms=2 \
dma_status=0
insmod: ERROR: could not insert module ./sc0710.ko: Unknown symbol in module
make: *** [Makefile:26: load] Error 1
I'm hoping someone can beat me to forcing this to upgrade as I only have maybe an hour a week to devote to hacking drivers in Linux. But I'm looking at this as a challenge accepted moment.
Try changing videobuf-vmalloc
to videobuf2-vmalloc
That's not how this works unfortunately. Videobuf2 and videobuf are incompatible and you can't just quickly swap it out. It requires a not insignificant amount of rewriting the driver. Here's something that describes a few of these differences.
I have a lot going on with work, I can’t look at this anytime soon. This is one of many pet projects for me, just the reality of life.
I acknowledge the ongoing discussion, I’m just in no position to work on it. If you need the driver to work, use a kernel it was developed against. My last update added support for a recent Ubuntu distribution, detail are probably in the commits.
- Steve
On Tue, Sep 19, 2023 at 03:43 Josh @.***> wrote:
That's not how this works unfortunately. Videobuf2 and videobuf are incompatible and you can't just quickly swap it out. It requires a not insignificant amount of rewriting the driver.
— Reply to this email directly, view it on GitHub https://github.com/stoth68000/sc0710/issues/17#issuecomment-1724991240, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEEERBCVBLHREAMSD5GLQVDX3FEKPANCNFSM6AAAAAA4NKPCCA . You are receiving this because you are subscribed to this thread.Message ID: @.***>
Try changing
videobuf-vmalloc
tovideobuf2-vmalloc
I looked at that, and based on the structures, of 1 and 2
They aren't drop in replacements. Steve, I feel where you're coming from with the lot of work going on if I had 120 hours to devote to this I could most likely update it myself, but with the changes to the queue system alone. With small amounts of work here and there, it would most likely take me a few months to move the queue to the non-deprecated system, let alone the malloc and the buffer.
Steve, I feel where you're coming from with the lot of work going on if I had 120 hours to devote to this I could most likely update it myself, but with the changes to the queue system alone. With small amounts of work here and there, it would most likely take me a few months to move the queue to the non-deprecated system, let alone the malloc and the buffer.
Indeed, it's just volunteer work, very low priority for me right now.
We do what we can - when we can.
-- Steven Toth - Kernel Labs http://www.kernellabs.com +1.646.355.8490
I'm looking through the headers and the c code and at least it seems that most of it is already using video for linux 2 implementations. So it's not a full rewrite.
Thanks for the answer and article Josh and looking further into this Peter. I'm new to V4L and kernel modules myself and wanted to help since I just started using this Elgato and am happy with it, but I am disappointed in the lack of official Linux support, which encouraged me to start digging myself lately, which brought me here. Impressed and grateful for what you've already done Steve.
If you want, here's an example of a rewrite I found. sh_vou videobuf2 rewrite. Kinda gives an idea of the work required. Doesn't look too bad, but would also require a decent understanding of the kernel and V4L2, which I unfortunately don't know much about. Maybe if I have time...