Как пересобрать ядро 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
- Скачайте исходники ядра на сайте https://www.kernel.org
- Убедитесь в наличии свободного места (от 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 |