DVB extension - unknown symbol errors + potentially adding other products
I'm hoping to use a dualHD from Hauppauge (USB tuner) with Talos and hoped the new DVB extension would enable that but attempting to use it results in a whole host of Unknown symbol errors ultimately resulting in an error loading the module
Only a snippet of errors but they're variants of
cx2341x: Unknown symbol v4l2_ctrl_handler_init_class (err -2)
cx2341x: Unknown symbol v4l2_ctrl_query_fill (err -2)
cx2341x: Unknown symbol v4l2_ctrl_handler_setup (err -2)
cx2341x: Unknown symbol __v4l2_ctrl_grab (err -2)
cx2341x: Unknown symbol v4l2_ctrl_new_custom (err -2)
cx2341x: Unknown symbol v4l2_ctrl_new_std_menu (err -2)
cx2341x: Unknown symbol v4l2_ctrl_get_menu (err -2)
cx2341x: Unknown symbol v4l2_ctrl_activate (err -2)
cx2341x: Unknown symbol v4l2_ctrl_new_std (err -2)
cx2341x: Unknown symbol v4l2_ctrl_g_ctrl (err -2)
cx2341x: Unknown symbol v4l2_ctrl_handler_free (err -2)
cx2341x: Unknown symbol v4l2_ctrl_cluster (err -2)
...
[talos] controller failed {"component": "controller-runtime", "controller": "runtime.KernelModuleSpecController", "error": "error loading module \"cx23885\": load cx23885 failed: no such file or directory"}
Any pointers would be appreciated please but I expect I'm barking up the wrong tree with using a product the extension doesn't support anyway and so would it be something which could be added to the extension or should it be one in its own right?
This is a community extension, might be helpful to reach out to the maintainer mentioned in the maintainers file
I'm able to reproduce as it does indeed seem like not everything needed was loaded/included.
Those errors seem to be mostly v4l2 related, so my guess is that the extension is missing some of the needed modules or it just might need more modules to be added to machine config to load them.
EDIT: I really wish I could just add another extension that I had built myself but it will reject it due to the unavailable key so to test this properly I need to compile the whole kernel.
Thank you both.
I'm not sure I can but please let me know if I can help @samip5. I've been looking more at the PR for the extension to see what's included and it looks like the firmware for one version of the dualHD tuner was included but I have the newer one (2040:8265) which wasn't. Would it be possible to add that as well please? It's available from https://github.com/CoreELEC/dvb-firmware/blob/master/firmware/dvb-demod-si2168-d60-01.fw
Reference: https://www.linuxtv.org/wiki/index.php/Hauppauge_WinTV-dualHD
I may have located the problem. DVB is one of those where the order of modules to load matter, and it's missing the file that says which order it should be done.
https://github.com/siderolabs/extensions/pull/574
It seems that the modules.dep does exist, so I'm confused as to why it couldn't do the thing.. I'm somewhat confused.
It seems that the modules.dep does exist, so I'm confused as to why it couldn't do the thing.. I'm somewhat confused.
did you include the v4l extension too https://github.com/siderolabs/extensions/tree/main/drivers/v4l-uvc?
It seems that the modules.dep does exist, so I'm confused as to why it couldn't do the thing.. I'm somewhat confused.
did you include the v4l extension too https://github.com/siderolabs/extensions/tree/main/drivers/v4l-uvc?
I did not. 🤦
Okay after including v4l-uvc, now it's complaining about other things..
10.0.105.35: kern: warning: [2024-12-28T12:42:33.326028045Z]: cx23885: Unknown symbol snd_pcm_new (err -2)
10.0.105.35: kern: warning: [2024-12-28T12:42:33.384066045Z]: cx23885: Unknown symbol tda18271_attach (err -2)
10.0.105.35: kern: warning: [2024-12-28T12:42:33.445877045Z]: cx23885: Unknown symbol snd_card_register (err -2)
10.0.105.35: kern: warning: [2024-12-28T12:42:33.509582045Z]: cx23885: Unknown symbol snd_card_free (err -2)
10.0.105.35: kern: warning: [2024-12-28T12:42:33.509686045Z]: cx23885: Unknown symbol snd_card_new (err -2)
10.0.105.35: kern: warning: [2024-12-28T12:42:33.509720045Z]: cx23885: Unknown symbol snd_pcm_hw_constraint_pow2 (err -2)
10.0.105.35: kern: warning: [2024-12-28T12:42:33.509728045Z]: cx23885: Unknown symbol snd_pcm_set_ops (err -2)
10.0.105.35: kern: warning: [2024-12-28T12:42:33.509805045Z]: cx23885: Unknown symbol snd_pcm_period_elapsed (err -2)
have to dig more to see which module provides them and add those
Yeah, found them by this nice utility: https://elixir.bootlin.com/linux/v6.11.3/A/ident/snd_pcm_new :)
Related PR: https://github.com/siderolabs/extensions/pull/575
Would it be possible to add that as well please?
The firmware missing shouldn't make it completely not work, as it should still be recognized and use the firmware on the card instead.
Would it be possible to add that as well please?
The firmware missing shouldn't make it completely not work, as it should still be recognized and use the firmware on the card instead.
Ok, thank you. Happy to see how it is with your new changes and go from there
@SniperAsh6 If you want to test drive, you can use something like this to generate new ISO:
docker run --rm -t -v $PWD/_out:/out ghcr.io/siderolabs/imager:v1.9.1 iso --arch amd64 --system-extension-image registry.skysolutions.fi/library/talos/dvb-cx23885:v1.9.1
@samip5 Sorry for the late reply. I don't think I've got a good way of testing it like this I'm afraid so I may have to wait until it's merged to test but thank you
@samip5 Sorry for the late reply. I don't think I've got a good way of testing it like this I'm afraid so I may have to wait until it's merged to test but thank you
You can test more easilly by going to https://factory.kryptonian.dev and choosing 1.9.2 and my dvb extension when it lists the extensions as it does list mine too.
You can test more easilly by going to https://factory.kryptonian.dev and choosing 1.9.2 and my dvb extension when it lists the extensions as it does list mine too.
Thank you. I've just upgraded to this but looking at dmesg the dualHD doesn't seem to get picked up and /dev/dvb doesn't exist. All I get from the extension is that it seems to load successfully with cx23885: cx23885 driver version 0.0.4 loaded but that's about it
You can test more easilly by going to https://factory.kryptonian.dev and choosing 1.9.2 and my dvb extension when it lists the extensions as it does list mine too.
Thank you. I've just upgraded to this but looking at dmesg the dualHD doesn't seem to get picked up and
/dev/dvbdoesn't exist. All I get from the extension is that it seems to load successfully withcx23885: cx23885 driver version 0.0.4 loadedbut that's about it
So the issue is that your tuner doesn't seem to use CX23885, but instead uses em28xx more than likely which is not built if you look here: https://github.com/siderolabs/pkgs/blob/0ab2427a8415d3f29cd4f52e3afd51f701aa5848/kernel/build/config-amd64 for em28xx. According to https://www.linuxtv.org/wiki/index.php/Hauppauge_WinTV-dualHD, which one is it?
However, I cannot properly test with an device I don't have, so it's up to the user who has the tuner, unless someone wants to send me one for that purpose. (contact information can be found on my link in Github profile)
So the issue is that your tuner doesn't seem to use CX23885, but instead uses em28xx more than likely which is not built if you look here: https://github.com/siderolabs/pkgs/blob/0ab2427a8415d3f29cd4f52e3afd51f701aa5848/kernel/build/config-amd64 for em28xx. According to https://www.linuxtv.org/wiki/index.php/Hauppauge_WinTV-dualHD, which one is it?
It's 2040:8265 the version I've got so that would appear to be the issue as I can see on my host in proxmox that the tuner entries all come from em28xx. Is it something you'd mind adding to your extension? I know it's a bit in the dark with not having the device yourself to test but with all the work you've done so far I think it should be close?
Is it something you'd mind adding to your extension?
It should be a separate extension that's specific to your tuner. The idea I had with this was that there would be an "base" dvb extension and device specific ones pull their needed ones.
Device specific extensions would end up being a maintenance nightmare over time wouldn't they? Inline with other extensions would vendor grouped make more sense to save too much being thrown into one without having to have too many?
I really appreciate the time and effort you've spent here as it's not an area I'm confident in so will struggle to do it anywhere near as well as you have
Without the tuner, I'm not comfortable with spending the needed compute on compiling kernel and things for this. This would require a new PR to pkgs (which would need to enable the building of the module) and then to extensions to include the module.
@frezbo I'd appreciate your guidance on how best to proceed here please
@frezbo I'd appreciate your guidance on how best to proceed here please
we don't have an easy way to test this and these extensions will be maintained on best effort community support. Unless there's a way for us test this in CI
@frezbo I'd appreciate your guidance on how best to proceed here please
we don't have an easy way to test this and these extensions will be maintained on best effort community support. Unless there's a way for us test this in CI
Sorry, I mean from a perspective of adding to the existing extension to cover more devices or duplicating for each device. I think the additions are relatively small
@frezbo I'd appreciate your guidance on how best to proceed here please
we don't have an easy way to test this and these extensions will be maintained on best effort community support. Unless there's a way for us test this in CI
Sorry, I mean from a perspective of adding to the existing extension to cover more devices or duplicating for each device. I think the additions are relatively small
probably just add create new one since this extension has a specific name
This issue is stale because it has been open 180 days with no activity. Remove stale label or comment or this will be closed in 7 days.
This issue was closed because it has been stalled for 7 days with no activity.