
Webcam
First I must inform you about the fact that this webcam comes with at least two different device numbers:
Webcam: ID 0408:4033 Quanta Computer, Inc. ACER HD User Facing (mine)
Webcam: ID 0408:4035 Quanta Computer, Inc. ACER HD User Facing
This important to know, since if you’ve got the latter, the modified source code for the kernel module can be used directly. If you got the same as I, the 4033 variant, you’ve to edit the file uvc_driver.c before compiling it.
First, let’s add some tools before getting the modified uvc-code:
‘sudo apt install libelf-dev dpkg-dev libssl-dev bison bc flex build-essential‘
The module source is available as a git-project: https://github.com/Kvalme/uvc
You can download it by ‘git clone https://github.com/Kvalme/uvc.git‘
To be able to use this code, having the 4033-variant of the webcam, edit the uvc_driver.c file with your favourite editor, find the line containing .idProduct = 0x4035, and change it to .idProduct = 0x4033,
Save the file.
Now we can follow the described procedure:
‘make‘
To test your new module, run ‘sudo rmmod uvcvideo; sudo insmod ./uvcvideo.ko‘
Using ‘cheese’ or any other webcam program, you should now have an active camera.
To replace the original module with the new one and allow it to work automatically after reboot, you first need to compress uvcvideo.ko to uvcvideo.ko.zst using this command: ‘zstd uvcvideo.ko‘
Next, we need to copy it into the right spot depending on your running kernel version with this command: ‘sudo cp uvcvideo.ko.zst /usr/lib/modules/$(uname -r)/kernel/drivers/media/usb/uvc/‘
Bluetooth:
This procedure will make your ID 04ca:3804 Lite-On Technology Corp. Wireless_Device working with kernel 6.5 (and probably other 6.x kernel versions as well) on Ubuntu 23.10.
First we need to get some more tools:
‘sudo apt-get install libncurses-dev gawk flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf llvm‘
Next, we need to get the full kernel source for the running kernel:
1. Edit /etc/apt/sources.list. Add these lines to it:
deb-src http://archive.ubuntu.com/ubuntu mantic main
deb-src http://archive.ubuntu.com/ubuntu mantic-updates
2. ‘sudo apt update; apt-get source linux-image-unsigned-$(uname -r)’
3. After the obove process is finished – ‘cd linux-6.5.0/drivers/bluetooth/‘
4. With your editor, open btusb.c
I did it the easy way this time and just changed the line containing { USB_DEVICE(0x04ca, 0x3801), .driver_info = BTUSB_MEDIATEK | to { USB_DEVICE(0x04ca, 0x3804), .driver_info = BTUSB_MEDIATEK |
5. Standing in above dir, run ‘sudo make -C /lib/modules/$(uname -r)/build M=$(pwd) modules‘
6. After the compilation has finished (compiles all the bluetooth modules, but you’re going to use only the btusb.ko) you’ve to compress the btusb.ko with ‘zstd btusb.ko‘
7. Final step – move the modified module into place to work after reboot:
‘sudo cp btusb.ko.zst /usr/lib/modules/$(uname -r)/kernel/drivers/bluetooth/‘
Reboot and enjoy!