HP True Vision HD webcam quality decreased in Alma 8, still bad in9

Hi to the AlmaLinux community!

I have been happily using AlmaLinux 8.5 on a HP laptop for about six months, and the webcam was fine - with the right quality, as expected.
At some point, the software was updated to 8-6 but I don’t remember precisely when.

Less than 10 days ago, something impacted the quality of the webcam, which became poor : somehow pixelated and darker, making it very unpleasant to use, for instance with Skype.

I checked that with Cheese: same issue.

As I was planning to move to AlmaLinux 9 anyway, I waited before posting and upgraded AlmaLinux today, thinking it may re-baseline everything and solve the issue.

So AlmaLinux 9 is beautiful, great user experience, and I can’t wait to explore it more!

However, for the HP True Vision HD cam, same quality issue.

I really have no idea about what could be the cause of that, but the only thing is that I noticed recently enough that the document scanner app (the standard one) started to identify the HP webcam as a potential scanner, which wasn’t the case before (I could only see my printer/scanner when I connected it).

As a matter of extra info: I am running RHEL 8.6 on exactly the same type of computer, and there, the webcam quality is still as expected.

What could be done here please?

Cheers,

Alex

Maybe the webcam firmware changed. Search for the PCI ID’s and see if other people reported similar problems.

Hi @sams_daughter,

Thanks for the reply!

Well, I can’t find the device with lspci, but it was found with lsusb.

The device id is USB 05c8:03ef.

I have checked it on the website https://linux-hardware.org, and the camera is said to be supported by the kernel (support confirmed until 5-18 and the current version installed on my AlmaLinux 9 is 5’-14). The camera is “detected”, but neither in “working” nor “failed” status.

Not sure, what can be the cause here, as the issue appeared while still in Alma 8-6 and before that, everything worked smoothly. The laptop with AlmaLinux is updated daily.

Apparently no reports about that issue on this site or elsewhere, but I noticed on my computer that there is a Gstream package (libav) that can’t be installed. Could it be caused by that missing package?

You may report the problem directly to the kernel developers. If the problem is related to open source code, then they may be able to help, but if the problem is with a closed source binary blob then you won’t get far.

Another quick fix to try, is to find the exact module/driver that the kernel loads for your webcam and look for any parameters it may support, give them a try and see if they fix your problem. Sometimes a particular hardware revision may contain quirks and the drivers overcome them with specific parameters.

Alternatively, you may install Fedora, which comes with the latest kernel and firmware blobs. This may either confirm there is a bug in the latest kernel or may fix your problem thus confirm that your problem was already reported and fixed. In the second case, you will need to find the right person who has appropriate access and beg them to backport the fix to RHEL kernels.

Hi @sams_daughter, many thanks for the quick response.

It would probably be helpful to reach out directly to kernel developers but I am a bit wary to waste their time if I missed (messed) something basic along the way :upside_down_face: (as I am rather new to Linux).

And what would be the path to find out what about the Gstreamer package ? Because the one I mentioned (libav) was visible on the sofware repo GUI, but now it can’t be seen anymore.

Any thoughts about what to do about that one please?

I believe that gstreamer1-libav is the package that adds libav support to gstreamer.

I think libav is an abandoned project… maybe I’m wrong?

Hi @sams_daughter,

Well, I don’t know if it’s abandoned…if that’s the case, this might be “recent” enough.

Could I ask a bit of a suggestion about how to find out, on my RHEL 8-6 laptop, what is the package / kernel used by the Hp true vision, as it works fine on this one?

How to find the kernel module responsive for a USB device? That is a good question…

To find the kernel module for a PCI device, it is easy with lspci -v but with USB devices it is a bit more complicated. Follow these steps:

  1. Find the device ID with lsusb -v, in your case
    you mentioned above that its 05c8:03ef.

  2. Run modprobe and grep for that specific
    device ID: modprobe -c | grep -i 05c8.03ef

Note that my modprobe command has a regex dot between the two parts of the device ID, this is intentional. The output should give you the actual kernel module.

Here is an example from my system, searching for the kernel module of a USB wifi dongle:

# lsusb -v |grep -i asus
Bus 003 Device 002: ID 0b05:179d ASUSTek Computer, Inc. USB-N53 802.11abgn Network Adapter [Ralink RT3572]

# modprobe -c |grep -i 0b05.179d
alias usb:v0B05p179Dd*dc*dsc*dp*ic*isc*ip*in* rt2800usb

In my case, the kernel module is rt2800usb.

1 Like

Many thanks @sams_daughter !

Will try that today (btw, lucky you to use Asus a dongle, I’ve been also a keen user of Asus laptops and it worked well: :smile: )

Hi again @sams_daughter,

So I took a bit of time, as was trying to figure out this thing, but it’s not there yet (but with a little hint, things should improve ;-))

Firstly, here are the commands you suggested (I am just not putting the option ‘-v’ for lsusb, seems to produce a different output on my laptop)

A)
[root@localhost ~]# lsusb | grep -i Foxlink
Bus 001 Device 002: ID 05c8:03ef Cheng Uei Precision Industry Co., Ltd (Foxlink) HP True Vision HD Camera

B)
[root@localhost ~]# modprobe -c | grep -i 05c8
alias usb:v05C8p0403ddcdscdpic0Eisc01ip00in* uvcvideo

C)
[root@localhost ~]# modprobe -c | grep -i 05c8.03ef
[no output]

Two things here:

  • when doing B) & C), the product Id of the HP (Foxlink) doesn’t appear, but there is another one interacting with uvcvideo (am I correctly understanding this?)
  • I tried to run a live USB, Debian-based distro, there was an even bigger issue with the camera (large green and purple stripes), but the same behaviour occur on my two similar laptops, including the one running RHEL 8-6 where the webcam works fine.

So based on the info from linux-hardware.org, the proper kernel module should be this one:
Cheng Uei Precision Industry (Foxlink) HP True Vision HD Camera

This leads us to the Linux git (impressive :-D):

However, and this is where it looks a bit newbie like, but how do you install such driver please?

It must be such an obvious matter for experienced devs that I haven’t found it in the admin-documentation (sorry if i overlooked it), then I’ve been on Github documentation and of course did an internet search.

I guess it should be something similar to what is described here:
GitHub - libuvc/libuvc: a cross-platform library for USB video devices?

Basically, I have so far:

Many thanks !