Как пересобрать ядро Linux для увеличения количества одновременно используемых USB устройств в Linux

Проверить с каким количеством одновременно используемых USB устройств скомпилировано ваше ядро можно выполнив в консоли:

su –
uname –a
Видим:
Linux debian10-64-1 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux

modprobe vhci-hcd
modprobe usbip-core
modprobe usbip-host
cat /sys/devices/platform/vhci_hcd.0/status

Видим:
hub port sta spd dev sockfd local_busid
hs 0000 004 000 00000000 000000 0-0
... (все строки статуса)

(Часть пути ".../vhci_hcd/..." в вашей ОС может иметь вид ".../vhci_hcd.0/..." и т.п. в зависимости от количества хост контроллеров)

ls /sys/devices/platform/ | grep vh
Видим:
vhci_hcd.0
... (все найденные контроллеры)

Это 4 виртуальных контроллера по 8 USB устройств => 32 USB устройства.

Подготовка к сборке ядра Linux

  1. Скачайте исходники ядра на сайте https://www.kernel.org
  2. Убедитесь в наличии свободного места (от 30ГБ)
apt install build-essential git gcc make bc fakeroot dpkg-dev libncurses5-dev libelf-dev libssl-dev bison flex bc rsync
mkdir ~/kernel; cd ~/kernel
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.10.41.tar.xz
tar -xaf ./linux-5.10.41.tar.xz
cp /boot/config-4.19.0-16-amd64 ~/kernel/linux-5.10.41/.config
cd ~/kernel/linux-5.10.41
nano .config

Меняем:

CONFIG_USBIP_VHCI_HC_PORTS=15
CONFIG_USBIP_VHCI_NR_HCS=8
Убрать из .config строки с:
CONFIG_SYSTEM_TRUSTED_KEYRING
CONFIG_SYSTEM_TRUSTED_KEYS

Компилируем (долго, 3-15 часов):

make deb-pkg LOCALVERSION=-usb120 KDEB_PKGVERSION=$(make kernelversion)-1

По завершении:

ls ../*.deb
dpkg -i ../*.deb
reboot

Проверяем:

uname -a
ls /sys/devices/platform/ | grep vh
modprobe vhci-hcd
modprobe usbip-core
modprobe usbip-host
cat /sys/devices/platform/vhci_hcd.0/status