Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DVB extension - unknown symbol errors + potentially adding other products #566

Open
SniperAsh6 opened this issue Dec 24, 2024 · 22 comments
Open

Comments

@SniperAsh6
Copy link

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?

@frezbo
Copy link
Member

frezbo commented Dec 24, 2024

This is a community extension, might be helpful to reach out to the maintainer mentioned in the maintainers file

@samip5
Copy link
Contributor

samip5 commented Dec 27, 2024

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.

@SniperAsh6
Copy link
Author

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

@samip5

This comment was marked as outdated.

@samip5
Copy link
Contributor

samip5 commented Dec 28, 2024

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.

@frezbo
Copy link
Member

frezbo commented Dec 28, 2024

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?

@samip5
Copy link
Contributor

samip5 commented Dec 28, 2024

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. 🤦

@samip5
Copy link
Contributor

samip5 commented Dec 28, 2024

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)

@frezbo
Copy link
Member

frezbo commented Dec 28, 2024

have to dig more to see which module provides them and add those

@samip5
Copy link
Contributor

samip5 commented Dec 28, 2024

Yeah, found them by this nice utility: https://elixir.bootlin.com/linux/v6.11.3/A/ident/snd_pcm_new :)

Related PR: #575

@samip5
Copy link
Contributor

samip5 commented Dec 28, 2024

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.

@SniperAsh6
Copy link
Author

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

@samip5
Copy link
Contributor

samip5 commented Dec 31, 2024

@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

@SniperAsh6
Copy link
Author

@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
Copy link
Contributor

samip5 commented Jan 5, 2025

@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.

@SniperAsh6
Copy link
Author

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

@samip5
Copy link
Contributor

samip5 commented Jan 7, 2025

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

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?

@samip5
Copy link
Contributor

samip5 commented Jan 7, 2025

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)

@SniperAsh6
Copy link
Author

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?

@samip5
Copy link
Contributor

samip5 commented Jan 7, 2025

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.

@SniperAsh6
Copy link
Author

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

@samip5
Copy link
Contributor

samip5 commented Jan 7, 2025

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants