Патч и сборка только одного модуля ядра (Ubuntu 19) - PullRequest
0 голосов
/ 03 февраля 2020

Я пытаюсь go заставить работать мой процессор эффектов Boss GT-1 Guitar в Linux. У меня есть патч, который нужно применить к файлу sound/usb/endpoint.c в исходном коде ядра, и перекомпилировать ядро. Мне удалось сделать это на моей виртуальной машине с Ubuntu 19.10 (полная компиляция ядра, установка нового ядра, загрузка в него).

Теперь я хочу сделать то же самое на моем старом ноутбуке, но полная компиляция ядра требует много времени (~ 12 часов). Я пытаюсь перекомпилировать только один модуль ядра:

$ uname -r
5.3.0-29-generic
$ sudo apt-get install linux-source-5.3.0
$ cd /usr/src/
$ sudo tar -xjf linux-source-5.3.0.tar.bz2
$ cd /usr/src/linux-source-5.3.0/
$ sudo mousepad sound/usb/endpoint.c
< changing contents of file>
$ sudo make oldconfig
$ sudo cp /usr/src/linux-headers-5.3.0-29-generic/Module.symvers ./
$ sudo make modules SUBDIRS=sound/usb
< successfully build 14 modules >
$ sudo cp sound/usb/snd-usb-audio.ko /lib/modules/5.3.0-29-generic/kernel/sound/usb/
$ sudo depmod -a

После перезагрузки и загрузки я подключаю свое устройство и ... ничего. dmesg говорит мне, какая версия модуля неверна:

[  183.884735] usb 1-1: new high-speed USB device number 7 using xhci_hcd
[  184.039756] usb 1-1: New USB device found, idVendor=0582, idProduct=01d6, bcdDevice= 0.00
[  184.039775] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  184.039786] usb 1-1: Product: GT-1
[  184.039799] usb 1-1: Manufacturer: BOSS
[  184.180719] snd_usb_audio: version magic '5.3.13 SMP mod_unload ' should be '5.3.0-29-generic SMP mod_unload '
[  184.181005] snd_usb_audio: version magic '5.3.13 SMP mod_unload ' should be '5.3.0-29-generic SMP mod_unload '
[  184.182263] snd_usb_audio: version magic '5.3.13 SMP mod_unload ' should be '5.3.0-29-generic SMP mod_unload '
[  184.182750] snd_usb_audio: version magic '5.3.13 SMP mod_unload ' should be '5.3.0-29-generic SMP mod_unload '

Как я могу решить эту проблему? Можно ли исправить и сделать только один модуль ядра без перекомпиляции полных исходных текстов ядра?

...