Настройка драйвера веб-камеры для AcerAspire A315-44P под Ubuntu 24.04.2 LTS
1. Веб-камера реализована как устройство USB (см. вывод команды терминала lsusb):
Bus 001 Device 003: ID 0408:4033 Quanta Computer, Inc. ACER HD User FacingОперационной системой Ubuntu 24.04.2 LTS не определяется как веб-камера.
2. Ссылки на решение:
Патч на гитхабе Торвальдса:
https://github.com/torvalds/linux/pull/843Патч на гитхабе разработчика патча:
https://github.com/Giuliano69/uvc_driver-for-Quanta-HD-User-Facing-0x0408-0x4035-3. Как применил патч:
3.1 скачал по последней ссылке файл compile_module.sh, сразу убрал проверку на ОС и версию, попытался его выполнить sh compile_module.sh, но получил ошибки. Стал разбираться, выполнять команды по порядку.
Убрал:
#!/bin/bash
#Test linux distribution and version
#
#source /etc/os-release
#if [ "$ID" != "ubuntu" ]; then
# echo "Sorry, this script works only for Ubuntu distribution"
# exit
#fi
#
#if [ "$VERSION_ID" != "22.04" ]; then
# echo "Sorry, this script works only for Ubuntu 22.04 LTS"
# exit
#fi
3.2 Выполнил в терминале общее обновление пакетов:
sudo apt update # update package list
sudo apt upgrade # upgrade packages
sudo apt install build-essential -y # install tools needed for module compilation
И продолжил по тексту файла:
#get driver code to compile a patch it
cd ~ # change to your home directory
3.3 Попытка создать директорию с исходниками ядра командой ниже не удалась, вывод был что-то типа "E: добавьте в файл source.lst URI debian-source". Вылечилось через параметры апдейтера программ, вызов в терминале: software-properties-gtk потом установил галочку Source Code, ввёл пароль рута и нажал кнопку Reload. После этого команда
apt-get source linux-modules-extra-$(uname -r) #download in your home, the kernel source file version that match your used kernel
создала каталог ~/linux-hwe-6.11-6.11.0 ,в котором лежат все исходники текущего ядра.
3.4 Далее выполнил следующие команды из файла:
cd ~/linux-*/drivers/media/usb/uvc # change to the currently created uvc directory
mv uvc_driver.c uvc_driver.old # rename/backup the uvc driver soruce file, that need to be updated
wget https://raw.githubusercontent.com/Giuliano69/uvc_driver-for-Quanta-HD-User-Facing-0x0408-0x4035-/main/uvc_driver.c # download the updated driver source file
Но скачанный файл uvc_driver.c оказался бесполезным, т.к. сильно отличается от текущей версии, не стал компилироваться - полезли ошибки. Поэтому скопировал обратно uvc_driver.old в uvc_driver.c, и добавил в него описание моей камеры сразу после описания камеры 4035:
/* Quanta ACER HD User Facing 4033 - Experimental !! */
{ .match_flags = USB_DEVICE_ID_MATCH_DEVICE |
USB_DEVICE_ID_MATCH_INT_INFO,
.idVendor = 0x0408,
.idProduct = 0x4033,
.bInterfaceClass = USB_CLASS_VIDEO,
.bInterfaceSubClass = 1,
.bInterfaceProtocol = UVC_PC_PROTOCOL_15,
.driver_info = (kernel_ulong_t) &
(const struct uvc_device_info){
.uvc_version = 0x010a,
} },
# На самом деле просто скопировал описание 4035 и заменил 4035 на 4033.
3.5 После этого скомпилировал новый файл и установил командами ниже, находясь в той же директории ~/linux-hwe-6.11-6.11.0/drivers/
media/usb/uvc
#compile and install
make -j4 -C /lib/modules/$(uname -r)/build M=$(pwd) modules # complie the updated video modules for your kernel version
sudo cp uvcvideo.ko /lib/modules/$(uname -r)/kernel/drivers/media/usb/uvc/ #copy compiled video driver module to system directory
sudo depmod -a #создаёт файл зависимостей модулей
sudo rmmod uvcvideo #удаляет старый модуль веб-камеры
sudo modprobe uvcvideo # добавляет новый модуль веб-камеры
reboot #reboot to check your camera is working
4. Камеру проверял приложением Cheese (sudo apt-get install cheese), запись на микрофон проверял через команду arecord temp.wav и воспроизведение aplay temp.wav. Утилиты arecord и aplay - встроенные. Чтобы микрофон заработал, нужно было выбрать в настройках звука в разделе "Input" устройство "Digital Microphone - Family 17h/19h HD Audio Controller". После этого всё заработало в Яндекс Телемост в Firefox без дополнительных настроек.