After having bought a brand new Acer Aspire A514-55 I soon noticed that I was missing some vital functions. Bluetooth, webcam and audio. I tested it against a few different Linux distros – Ubuntu-based and Arch based. On a few, the audio worked out of the box, but webcam and Bluetooth never worked. So I decided to nail down the problems using Deepin 20.8. Mostly because I like the interface, and it still runs on a 5.xx kernel, for which I’d found a modified c-file for the uvc_driver that made the webcam working after making my own small adjustments to.

Before starting to work on the Deepin solution I tested the laptop on a couple of Arch-based versions like Garuda and Manjaro with kernel 6.2, without any luck with the webcam and Bluetooth.
The two devices not recognized out of the box are:
Bus 003 Device 002: ID 0408:4033 Quanta Computer, Inc. (webcam)
Bus 003 Device 003: ID 04ca:3804 Lite-On Technology Corp. (Bluetooth)
Deepin 20.8 solution:
- Running kernel 5.18.17-amd64-desktop-community-hwe
- I installed the correct header files – linux-headers-5.18.17-amd64-desktop-community-hwe and then libelf-dev and build-essential to give me some missing tools.
- Unpacking the source with ‘tar zxvf inux-5.18.17.tar.gz’
- Then I modified the files in drivers/bluetooth and drivers/media/usb/uvc to enable the devices I was missing.
- You can download the two files: btusb.c and uvc_driver.c at the bottom
- In linux-5.18.17, run ‘make mrproper’ and ‘make clean* to clean the source tree for old configs
- To save you a lot of work I have prepared a .config you can use to compile the new kernel with all the new functions. You can get it from here:
- I’ve tweaked it to also include support for Soundwire and Thunderbolt 4.
- To prevent the new kernel from getting the same name as the running (original) kernel (and overwriting it), give it a dedicated local version by editing .config
- The section to modify is CONFIG_LOCALVERSION=»»
- Mine looks like this CONFIG_LOCALVERSION=»-amd64-desktop-community-hwe-blix»
- Next, start the compilation with ‘make -j$(nproc)’ (will use all available cores to speed up the compilation
- After a successful compilation:
‘sudo make modules_install’
‘sudo make install’
‘reboot’ - The new kernel will boot by default