tbsdtv / media_build

GNU General Public License v2.0
32 stars 30 forks source link

Compilation fails with kernel-5.19.0 #56

Closed pchristyUK closed 1 year ago

pchristyUK commented 2 years ago
`/home/MyBuilds/Build/TBS-CC/media_build/v4l/mceusb.c: In function 'mceusb_dev_probe': /home/MyBuilds/Build/TBS-CC/media_build/v4l/mceusb.c:1754:16: error: too many arguments to function 'usb_maxpacket' 1754 maxp = usb_maxpacket(dev, pipe, usb_pipeout(pipe)); ^~~~~ In file included from /home/MyBuilds/Build/TBS-CC/media_build/v4l/mceusb.c:29: ./include/linux/usb.h:1972:19: note: declared here 1972 static inline u16 usb_maxpacket(struct usb_device *udev, int pipe) ^~~~~ make[3]: [scripts/Makefile.build:249: /home/MyBuilds/Build/TBS-CC/media_build/v4l/mceusb.o] Error 1 make[3]: Waiting for unfinished jobs.... make[2]: [Makefile:1843: /home/MyBuilds/Build/TBS-CC/media_build/v4l] Error 2 make[2]: Leaving directory '/usr/src/linux-5.19' make[1]: [Makefile:53: default] Error 2 make[1]: Leaving directory '/home/MyBuilds/Build/TBS-CC/media_build/v4l' make: *** [Makefile:26: all] Error 2 build failed at ./build line 554 `

Pete

crazycat69 commented 2 years ago

5.19 kernel not supported yet in official media_build

pchristyUK commented 2 years ago

Unfortunately usb_maxpacket appears in more than one file. Also, the build script automatically downloads the latest version, which overwrites any edits made to the offending files. I'm not sufficiently adept at programming to fix this. I'm guessing generating a patch file or two, and patching after the download has completed might work, but its getting above my pay-grade! 😉

No doubt when 5.20/6.0 appears in a few weeks time, we'll have to go through all this again!

Not being a programmer, and only having a very basic knowledge of the process, I don't really understand why the whole tree has to be recompiled, instead of just adding in the TBS drivers.

My board is an internal PCI board, and all the errors seem to be associated with USB, which I'm not using, which makes this doubly frustrating.

But thanks for your input and suggestion. If I can figure out a way to apply it without it getting overwritten, I will revisit this, but hopefully the upstream will get fixed by then anyway.

Shame the TBS drivers aren't incorporated into the kernel, which would solve a lot of problems...

-- Pete @.***

On 25/08/2022 20:04, doron1 wrote:

Seems like API for usb_maxpacket was changed for 5.19, third argument is now superfluous (just remove it).

— Reply to this email directly, view it on GitHub https://github.com/tbsdtv/media_build/issues/56#issuecomment-1227651522, or unsubscribe https://github.com/notifications/unsubscribe-auth/AM5LGQTTEFED67PNYJC5WJLV267TPANCNFSM55KLXEOQ. You are receiving this because you authored the thread.Message ID: @.***>

doron1 commented 2 years ago

Sorry, right after posting I noticed that the reference to usb_maxpacket comes from a different kernel routine and not directly from the TBS code. That reference was corrected in 5.19 (see e.g. here) following the API change. So it might be that the media build process is pulling the wrong code into the compilation.

alanswanson commented 2 years ago

@pchristyUK You don't have to build the entirety of V4L/DVB tree aka allyesconfig from the build example. For my TBS6205 card and Pulse8 CEC adapter I use the following minimal config copied to the _mediabuild/v4l/.config file and also edited _mediabuild/v4l/.version for the kernel version you're targeting. Compiled cleanly for me on 5.19.

CONFIG_RATIONAL=y
CONFIG_NET=y
CONFIG_FB_CFB_COPYAREA=m
CONFIG_PNP=y
CONFIG_FIREWIRE=m
CONFIG_MMU=y
CONFIG_TTY=y
CONFIG_GENERIC_ALLOCATOR=y
CONFIG_DMA_SHARED_BUFFER=y
CONFIG_HAS_DMA=y
CONFIG_CRC32=y
CONFIG_SYSFS=y
CONFIG_I2C_MUX=m
CONFIG_HAVE_CLK=y
CONFIG_SND_PCM=m
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_REGMAP_I2C=y
CONFIG_I2C=y
CONFIG_PCI_MSI=y
CONFIG_ACPI=y
CONFIG_NEW_LEDS=y
CONFIG_FONT_8x16=y
CONFIG_MODULES=y
CONFIG_FB_CFB_FILLRECT=m
CONFIG_ISA_DMA_API=y
CONFIG_FW_LOADER=y
CONFIG_LEDS_CLASS=y
CONFIG_PCI=y
CONFIG_VIRT_TO_BUS=y
CONFIG_I2C_ALGOBIT=m
CONFIG_INPUT_EVDEV=y
CONFIG_COMMON_CLK=y
CONFIG_FONT_SUPPORT=m
CONFIG_USB=y
CONFIG_FB=m
CONFIG_FB_CFB_IMAGEBLIT=m
CONFIG_HDMI=y
CONFIG_SND=y
CONFIG_HAS_IOMEM=y
CONFIG_INET=y
CONFIG_BITREVERSE=y
CONFIG_X86=y
CONFIG_SERIO=y
CONFIG_INPUT=y
CONFIG_REGMAP=y
CONFIG_USB_ACM=m
CONFIG_DEBUG_FS=y
CONFIG_MEDIA_SUPPORT=m
CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
CONFIG_CEC_CORE=m
CONFIG_MEDIA_CEC_SUPPORT=y
CONFIG_USB_PULSE8_CEC=m
CONFIG_DVB_CORE=m
CONFIG_DVB_NET=y
CONFIG_DVB_MAX_ADAPTERS=48
CONFIG_DVB_DYNAMIC_MINORS=y
CONFIG_MEDIA_PCI_SUPPORT=y
CONFIG_DVB_TBSECP3=m
CONFIG_DVB_PLATFORM_DRIVERS=y
CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_TUNER=m
CONFIG_MEDIA_TUNER_SIMPLE=m
CONFIG_MEDIA_TUNER_SI2157=m
CONFIG_DVB_SI2168=m
CONFIG_DVB_TAS2101=m
CONFIG_MISC_DEVICES=y
CONFIG_ALTERA_STAPL=m

For the above I removed the commented out entries from original.

pchristyUK commented 2 years ago

Thanks for this! I've given it a try, but must have done something wrong! My board is a TBS 6281SE. I couldn't find anything specific in your config that referred to the board type, so I thought I would just give it a whirls "as is" and see what happened. As you say, it built without error, but when I ran "make install" it seems it may have overwritten something vital, as when I rebooted my xserver refused to start! I re-installed the original modules package, and everything works again now.

I'm running Slackware64-current, and using the "CrazyCat" build system, as the official TBS one doesn't like the version of libpcre2-posix that Slackware uses (TBS wants so.2, Slackware uses so.3).

I had to run "make" directly instead of using the "build" script, as "build" automatically downloads all the latest versions and overwrites any edits I may have made.

"Make" appeared to complete correctly, and everything looked OK at that point, but "make install" clearly over-wrote something it shouldn't have done. Not sure how or why!

Oh, the joys of life on the bleeding edge....! ;)

-- Pete @.***

On 29/08/2022 15:20, Alan Swanson wrote:

@pchristyUK https://github.com/pchristyUK You don't have to build the entirety of V4L/DVB tree aka /allyesconfig/ from the build example. For my TBS6205 card and Pulse8 CEC adapter I use the following minimal config copied to the /media_build/v4l/.config/ file and also edited /media_build/v4l/.version/ for the kernel version you're targeting. Compiled cleanly for me on 5.19.

|CONFIG_RATIONAL=y CONFIG_NET=y CONFIG_FB_CFB_COPYAREA=m CONFIG_PNP=y CONFIG_FIREWIRE=m CONFIG_MMU=y CONFIG_TTY=y CONFIG_GENERIC_ALLOCATOR=y CONFIG_DMA_SHARED_BUFFER=y CONFIG_HAS_DMA=y CONFIG_CRC32=y CONFIG_SYSFS=y CONFIG_I2C_MUX=m CONFIG_HAVE_CLK=y CONFIG_SND_PCM=m CONFIG_USB_ARCH_HAS_HCD=y CONFIG_REGMAP_I2C=y CONFIG_I2C=y CONFIG_PCI_MSI=y CONFIG_ACPI=y CONFIG_NEW_LEDS=y CONFIG_FONT_8x16=y CONFIG_MODULES=y CONFIG_FB_CFB_FILLRECT=m CONFIG_ISA_DMA_API=y CONFIG_FW_LOADER=y CONFIG_LEDS_CLASS=y CONFIG_PCI=y CONFIG_VIRT_TO_BUS=y CONFIG_I2C_ALGOBIT=m CONFIG_INPUT_EVDEV=y CONFIG_COMMON_CLK=y CONFIG_FONT_SUPPORT=m CONFIG_USB=y CONFIG_FB=m CONFIG_FB_CFB_IMAGEBLIT=m CONFIG_HDMI=y CONFIG_SND=y CONFIG_HAS_IOMEM=y CONFIG_INET=y CONFIG_BITREVERSE=y CONFIG_X86=y CONFIG_SERIO=y CONFIG_INPUT=y CONFIG_REGMAP=y CONFIG_USB_ACM=m CONFIG_DEBUG_FS=y CONFIG_MEDIA_SUPPORT=m CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y CONFIG_CEC_CORE=m CONFIG_MEDIA_CEC_SUPPORT=y CONFIG_USB_PULSE8_CEC=m CONFIG_DVB_CORE=m CONFIG_DVB_NET=y CONFIG_DVB_MAX_ADAPTERS=48 CONFIG_DVB_DYNAMIC_MINORS=y CONFIG_MEDIA_PCI_SUPPORT=y CONFIG_DVB_TBSECP3=m CONFIG_DVB_PLATFORM_DRIVERS=y CONFIG_MEDIA_SUBDRV_AUTOSELECT=y CONFIG_MEDIA_ATTACH=y CONFIG_MEDIA_TUNER=m CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_SI2157=m CONFIG_DVB_SI2168=m CONFIG_DVB_TAS2101=m CONFIG_MISC_DEVICES=y CONFIG_ALTERA_STAPL=m |

For the above I removed the commented out entries from original.

— Reply to this email directly, view it on GitHub https://github.com/tbsdtv/media_build/issues/56#issuecomment-1230378834, or unsubscribe https://github.com/notifications/unsubscribe-auth/AM5LGQRXRBGLCWQAD75VCM3V3TBJZANCNFSM55KLXEOQ. You are receiving this because you were mentioned.Message ID: @.***>

ich777 commented 2 years ago

@alanswanson where did you get the minimal build instructions for your TBS card, or is this .config for all TBS cards/adapters and your Pulse8 CEC adapter?

alanswanson commented 2 years ago

@ich777 The config is just for cards using a Si2157 tuner, a Si2168 demodulator and a TBSECP3 pcie bridge such as in my TBS6205 card. It's been years since I created it and cannot quite remember but I think from a default config created by media_build I just manually commented out the unused drivers and tested.

ich777 commented 1 year ago

@crazycat69 is there somewhere a config or information how to compile the drivers for TBS cards only or is it this repository over her: https://github.com/tbsdtv/linux-tbs-drivers

crazycat69 commented 1 year ago

make menuconfig

ben-abolins commented 1 year ago

Hello,

I adapted various earlier instructions to stop compiling the TM6000 modules. This seems to be working for Ubuntu 22.10 linux 5.19.

I reckon it would be a good idea for TBS to distribute a config file list like Alan Swanson has done above. This would reduce the possible things that could go wrong and also speed up the compilation.

Good luck all.

Ben

!/bin/bash

sudo apt install patchutils libproc-processtable-perl git cd ~ sudo rm -r media sudo rm -r media_build git clone https://github.com/tbsdtv/media_build.git git clone --depth=1 https://github.com/tbsdtv/linux_media.git -b latest ./media cd media_build make dir DIR=../media make allyesconfig make stagingconfig

For next two lines there are supposed to be * after CONFIG., RC. and IR., but they don't seem to show up in the Github comments

sed -i -r 's/(^CONFIG._RC.=)./\1n/g' v4l/.config sed -i -r 's/(^CONFIG._IR.=)./\1n/g' v4l/.config sed -i -r 's/(^CONFIG_VIDEO_TM6000=)./\1n/g' v4l/.config sed -i -r 's/(^CONFIG_VIDEO_TM6000_DVB=)./\1n/g' v4l/.config sed -i -r 's/(^CONFIG_VIDEO_TM6000_ALSA=)./\1n/g' v4l/.config make -j$(nproc) sudo rm -r -f /lib/modules/$(uname -r)/updates/extra sudo make install wget http://www.tbsdtv.com/download/document/linux/tbs-tuner-firmwares_v1.0.tar.bz2 sudo tar jxvf tbs-tuner-firmwares_v1.0.tar.bz2 -C /lib/firmware/

ich777 commented 1 year ago

@ben-abolins on what Kernel are you exactly? Build fails for me on Kernel 5.19.14 and 5.19.17

@crazycat69 do you think this will ever be fixed by the people over at media_build? BTW is there somewhere a list of all TBS chips to build only for them instead of build everything and maybe strip out the USB Tuners?

ben-abolins commented 1 year ago

I used Linux 5.19.0-23-generic #24-Ubuntu SMP PREEMPT_DYNAMIC Fri Oct 14 15:39:57 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

The build failed until I excluded a bunch of modules shown above. The latest ones to break the build were TM6000. If you are trying to use my script note you will have to add in some * because they disappear in the comments.

Ben

ich777 commented 1 year ago

The build failed until I excluded a bunch of modules shown above. The latest ones to break the build were TM6000. If you are trying to use my script note you will have to add in some * because they disappear in the comments.

Yes, I read that and also included them, BTW you should format such things as CODE then it will not disappear (select the part and press CTRL+E).

ben-abolins commented 1 year ago

Aha, thank you for the advice about GitHub editing, it should be obvious to all that I am an end user and not a coder. Thanks

pchristyUK commented 1 year ago

@ben-abolins: You and me both! Its a shame there isn't an option to only build the drivers required for a specific board/chipset, rather than having to build everything - including broken drivers! I think CC is based in Ukraine, so probably has more important things to worry about at the moment. In any case, the issue is not with his build method, but with the upstream drivers. The upstream drivers are here: https://git.linuxtv.org/media_build.git but haven't been updated in ages. Interestingly, the info indicates that they are for "legacy" kernels! I wonder where the ones for current kernels are? The developer seems to be Hans Verkuil, but there appears to be no way of contacting him. Alan Swanson seems to have come closest to success, but I wonder how he managed to find the necessary details of which devices were necessary to configure for his board - or was it just trial and error? If the latter, it must have taken ages!

-- Pete

ich777 commented 1 year ago

The upstream drivers are here: https://git.linuxtv.org/media_build.git but haven't been updated in ages. Interestingly, the info indicates that they are for "legacy" kernels! I wonder where the ones for current kernels are?

Look at the stage branch here.

pchristyUK commented 1 year ago

Well, that at least indicates that development is still taking place! Perhaps he's just forgotten to pull those into the media_build.git. I found his email in one of the commits and have dropped him a line. Hopefully it will provoke a response...

pchristyUK commented 1 year ago

Update: I've had a very quick reply from Hans Verkuil who informs me that "The media_build system is no longer maintained, it is dead." Apparently it was taking up too much time for to little gain. I have asked if there is an alternative, so we will see what happens. He also tells me that he has updated the media_build.git README and pulled the files! So now what do we do?

pchristyUK commented 1 year ago

Woo! Hoo! I've finally got it to build! Bear with me, as this is a bit long. Here's what I did: git clone https://github.com/tbsdtv/media_build.git cd media_build ./build ### and wait for the build to crash edit v4l/.config ###see following notes make -j8 sudo make install Editing v4l.config: Before editing v4l/.config/ run the build script and wait for it to crash. This will update everything that needs updating. Note the .o file that causes it to crash, then edit v4l/.config to unconfig it. For some reason, I couldn't get any of the make (menu)config options to work, so I did it with a text editor, searching for the offending option then commenting it out. Save the new .config file. Now run 'make -j8' (or whatever number of cores you have). DO NOT run 'build' again, as it will over-write the changes you have made. If it crashes again, comment out the next .o file that is causing the issue. Rinse and repeat until it builds without errors! Finally, run 'sudo make install'. You will probably have to reboot to enable the system to pick up the new modules.

In my case, I had to 'unconfig' streamzap, mceusb, ati-remote, TM6000 (more than one IIRC) and a few instances of xbox. I wasn't sure which 'TM6000' or 'xbox' was causing the issue, but I don't need any of them, so I 'unconfig'd' the lot.

It finally built without errors, and I have a working DVB setup again! Phew!

I attach my config file here. If anyone knows how to make that a patch file, and incorporate it in the build script, that would make life much easier!

-- Pete v4l_config.txt

Paco125689 commented 1 year ago

Thank @pchristyUK and following your instructions I have my tv card working with Linux fedora 6.0.8-300.fc37.x86_64

pchristyUK commented 1 year ago

Glad it worked for you! :)

jansohn commented 1 year ago

5.19 kernel not supported yet in official media_build

Upstream was actually abandoned: https://git.linuxtv.org/media_build.git/commit/?id=67539ba78bf2c2f0f5cf46a1cab412e6487cbaec

Are there any alternatives which can be used? Switching from kernel 6.0 to 6.1 makes the (trimmed) build fail for me.

alanswanson commented 1 year ago

We already know that thanks to pchristyUK queries (see four comments prior).

If you configure, build and patch your own kernel then it's relatively straightforward from tbs/linux_media git to copy to your kernels drivers/media directory;

Was running TBS6205 on kernel 6.1 a day after its release. If I have time over next few weeks I'll write a fuller procedure.

However this goes back to the old https://github.com/tbsdtv/linux_media/issues/87 issue. Failure to upstream causes pain.

jansohn commented 1 year ago

We already know that thanks to pchristyUK queries (see four comments prior).

Oh wow, you're right. I completely overlooked that post.

If you configure, build and patch your own kernel then it's relatively straightforward from tbs/linux_media git to copy to your kernels drivers/media directory;

I've set up DKMS to build the necessary modules for my TBS card with every kernel upgrade. I hope I can stay with that procedure and don't need to go down that road with a custom kernel.

I need to look at this closer myself but maybe someone can already explain what that abandoned media_build repo actually provided? Because a lot of those modules already seem to be included in the vanilla kernel.

pchristyUK commented 1 year ago

Just a note to add to this: Once you have a working v4l/.config file, save it somewhere safe! Then you can copy it back and save yourself a lot of time when updating!

You may still need to comment out something else, but at least all the ones you already know don't work will be eliminated from the build!

-- Pete

jansohn commented 1 year ago

I've set up DKMS to build the necessary modules for my TBS card with every kernel upgrade. I hope I can stay with that procedure and don't need to go down that road with a custom kernel.

In case someone is interested. I was able to fix compilation with kernel 6.1 by patching the following two files:

Relevant upstream commits:

Patch

diff --git a/drivers/media/dvb-frontends/m88rs6060.c b/drivers/media/dvb-frontends/m88rs6060.c
index 94aa542dd..205746663 100644
--- a/drivers/media/dvb-frontends/m88rs6060.c
+++ b/drivers/media/dvb-frontends/m88rs6060.c
@@ -3447,8 +3447,7 @@ static struct m88rs6060_base*match_base(struct i2c_adapter*i2c,u8 adr)
                        return p;
        return NULL;
 }
-static int m88rs6060_probe(struct i2c_client *client,
-                          const struct i2c_device_id *id)
+static int m88rs6060_probe(struct i2c_client *client)
 {
        struct m88rs6060_cfg *cfg = client->dev.platform_data;
        struct m88rs6060_dev *dev;
@@ -3563,7 +3562,7 @@ static int m88rs6060_probe(struct i2c_client *client,
        return ret;
 }

-static int m88rs6060_remove(struct i2c_client *client)
+static void m88rs6060_remove(struct i2c_client *client)
 {
        struct m88rs6060_dev *dev = i2c_get_clientdata(client);

@@ -3581,7 +3580,6 @@ static int m88rs6060_remove(struct i2c_client *client)
        dev->fe.demodulator_priv = NULL;

        kfree(dev);
-       return 0;
 }

 static const struct i2c_device_id m88rs6060_id_table[] = {
@@ -3595,7 +3593,7 @@ static struct i2c_driver m88rs6060_driver = {
        .driver = {
                   .name = "m88rs6060",
                   },
-       .probe = m88rs6060_probe,
+       .probe_new = m88rs6060_probe,
        .remove = m88rs6060_remove,
        .id_table = m88rs6060_id_table,
 };
diff --git a/drivers/media/tuners/m88rs6000t.c b/drivers/media/tuners/m88rs6000t.c
index 8647c50b6..7d172a5a6 100644
--- a/drivers/media/tuners/m88rs6000t.c
+++ b/drivers/media/tuners/m88rs6000t.c
@@ -573,8 +573,7 @@ static const struct dvb_tuner_ops m88rs6000t_tuner_ops = {
        .get_rf_strength = m88rs6000t_get_rf_strength,
 };

-static int m88rs6000t_probe(struct i2c_client *client,
-               const struct i2c_device_id *id)
+static int m88rs6000t_probe(struct i2c_client *client)
 {
        struct m88rs6000t_config *cfg = client->dev.platform_data;
        struct dvb_frontend *fe = cfg->fe;
@@ -697,7 +696,7 @@ static int m88rs6000t_probe(struct i2c_client *client,
        return ret;
 }

-static int m88rs6000t_remove(struct i2c_client *client)
+static void m88rs6000t_remove(struct i2c_client *client)
 {
        struct m88rs6000t_dev *dev = i2c_get_clientdata(client);
        struct dvb_frontend *fe = dev->cfg.fe;
@@ -707,8 +706,6 @@ static int m88rs6000t_remove(struct i2c_client *client)
        memset(&fe->ops.tuner_ops, 0, sizeof(struct dvb_tuner_ops));
        fe->tuner_priv = NULL;
        kfree(dev);
-
-       return 0;
 }

 static const struct i2c_device_id m88rs6000t_id[] = {
@@ -721,7 +718,7 @@ static struct i2c_driver m88rs6000t_driver = {
        .driver = {
                .name   = "m88rs6000t",
        },
-       .probe          = m88rs6000t_probe,
+       .probe_new      = m88rs6000t_probe,
        .remove         = m88rs6000t_remove,
        .id_table       = m88rs6000t_id,
 };
pchristyUK commented 1 year ago

Thanks for the update, but its come too late for me! After spending hours trying to get the drivers to compile on kernel-6.x.x, I gave up, chucked the TBS card in the bin and bought a Hauppauge one! That worked immediately after installing it, without the need for any drivers or firmware adding to my Slackware system. Good-bye TBS!

NeySlim commented 1 year ago

I've set up DKMS to build the necessary modules for my TBS card with every kernel upgrade. I hope I can stay with that procedure and don't need to go down that road with a custom kernel.

In case someone is interested. I was able to fix compilation with kernel 6.1 by patching the following two files:

  • drivers/media/dvb-frontends/m88rs6060.c
  • drivers/media/tuners/m88rs6000t.c

Thanks for providing patch example. I couldn't manage to apply it to other tuners unfortunatly. Would you help me ? same problem with frontends: si2183.c si2168.c and tuner: si2157.c

the only error I can't get rid of is this one in tuner:

media_build/v4l/si2157.c: In function 'si2157_probe':
media_build/v4l/si2157.c:913:21: error: 'id' undeclared (first use in this function); did you mean 'ida'?
  913 |  dev->part_id = (u8)id->driver_data;
      |                     ^~
      |                     ida

Edit: commenting the line made the driver build !

tmn505 commented 1 year ago

Unfortunately the issue will persist as upstream has abandoned 'media_build' system: https://lore.kernel.org/linux-media/32288c08-3220-25ce-36e2-7c98ff81a264@xs4all.nl So it will be increasingly difficult to use newer kernels.

kafisc1 commented 1 year ago

Woo! Hoo! I've finally got it to build! Bear with me, as this is a bit long. Here's what I did: git clone https://github.com/tbsdtv/media_build.git cd media_build ./build ### and wait for the build to crash edit v4l/.config ###see following notes make -j8 sudo make install Editing v4l.config: Before editing v4l/.config/ run the build script and wait for it to crash. This will update everything that needs updating. Note the .o file that causes it to crash, then edit v4l/.config to unconfig it. For some reason, I couldn't get any of the make (menu)config options to work, so I did it with a text editor, searching for the offending option then commenting it out. Save the new .config file. Now run 'make -j8' (or whatever number of cores you have). DO NOT run 'build' again, as it will over-write the changes you have made. If it crashes again, comment out the next .o file that is causing the issue. Rinse and repeat until it builds without errors! Finally, run 'sudo make install'. You will probably have to reboot to enable the system to pick up the new modules.

In my case, I had to 'unconfig' streamzap, mceusb, ati-remote, TM6000 (more than one IIRC) and a few instances of xbox. I wasn't sure which 'TM6000' or 'xbox' was causing the issue, but I don't need any of them, so I 'unconfig'd' the lot.

It finally built without errors, and I have a working DVB setup again! Phew!

I attach my config file here. If anyone knows how to make that a patch file, and incorporate it in the build script, that would make life much easier!

-- Pete v4l_config.txt

Thank you for your help. Worked for me for Proxmox 7.3-6 on Kernel 6.1.10-1-pve with a TBS6209 Octa DVB-C card. I've attached my v4l.config for anyone who is interested. v4l.config.txt

crazycat69 commented 1 year ago

Updated, now compatible with 4.14 - 6.2

ich777 commented 1 year ago

@crazycat69 thank you, working perfectly fine and can confirm that it compiles fine against Kernel 6.1.20

I think this can be closed...