Переключитесь с драйвера xHCI на EHCI в Ubuntu 16.04
В настоящее время я работаю над проектом в среде Ubuntu 16.04 и глубокой камере (Asus Xtion Pro). Проблема в том, что моя камера не работает с хост-контроллером ubuntu USB3.0 xhci. Поэтому я пытаюсь заставить хост-контроллер USB2 ehci вместо этого управлять моими последовательными портами. Но так как мой ноутбук имеет только 3,0 порта USB, я не могу отключить режим предварительной загрузки XHCI через BIOS. И драйверы Thous, встроенные в ядро, а не как модули, я не могу просто отключить xhci.
После некоторых поисков в Google я обнаружил, что это обсуждение предлагает создать ядро, в котором драйверы ehci и xhci собраны в виде модулей, чтобы я мог выбрать, какой из них я хотел бы использовать. Проблема в том, что я новичок в построении ядра...
Я нашел и безуспешно следовал этому руководству, чтобы создать новое ядро, но у меня есть ошибка после редактирования конфигурации с помощью этой команды:
fakeroot debian/rules editconfigs
Внесенные мною изменения были связаны с переключением поддержки xHCI HCD (USB 3.0) и EHCI HCD (USB 2.0) в драйверах устройств -> поддержка USB со встроенного на модуль. Из того, что я понял из вывода терминала, я не могу не встроить xhci в ядро. Вот вывод:
check-config: /tmp/tmp.P1QuAGSbJX/CONFIGS/amd64-config.flavour.generic: loading config
check-config: /home/observator/kerneltestx/linux-hwe-4.10.0/debian.hwe/config/annotations loading annotations
check-config: FAIL (m != y): CONFIG_USB_XHCI_HCD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}> mark<ENFORCED> note<ensures USB 2.0/1.1 probe ordering> flag<REVIEW>
check-config: FAIL (m != y): CONFIG_USB_EHCI_HCD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}> mark<ENFORCED> note<ensures USB 2.0/1.1 probe ordering> flag<REVIEW>
check-config: FAIL (m != y): CONFIG_USB_EHCI_HCD_PLATFORM policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'n', 'i386': 'y', 'ppc64el': 'm'}> mark<ENFORCED> note<Don't use the generic ehci/ohci code on omap, it doesn't work> flag<REVIEW>
check-config: 70/73 checks passed -- exit 1
check-config: /tmp/tmp.P1QuAGSbJX/CONFIGS/amd64-config.flavour.lowlatency: loading config
check-config: /home/observator/kerneltestx/linux-hwe-4.10.0/debian.hwe/config/annotations loading annotations
check-config: FAIL (m != y): CONFIG_USB_EHCI_HCD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}> mark<ENFORCED> note<ensures USB 2.0/1.1 probe ordering> flag<REVIEW>
check-config: FAIL (m != y): CONFIG_USB_EHCI_HCD_PLATFORM policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'n', 'i386': 'y', 'ppc64el': 'm'}> mark<ENFORCED> note<Don't use the generic ehci/ohci code on omap, it doesn't work> flag<REVIEW>
check-config: FAIL (m != y): CONFIG_USB_XHCI_HCD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}> mark<ENFORCED> note<ensures USB 2.0/1.1 probe ordering> flag<REVIEW>
check-config: 70/73 checks passed -- exit 1
check-config: /tmp/tmp.P1QuAGSbJX/CONFIGS/i386-config.flavour.generic: loading config
check-config: /home/observator/kerneltestx/linux-hwe-4.10.0/debian.hwe/config/annotations loading annotations
check-config: FAIL (m != y): CONFIG_USB_EHCI_HCD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}> mark<ENFORCED> note<ensures USB 2.0/1.1 probe ordering> flag<REVIEW>
check-config: FAIL (m != y): CONFIG_USB_XHCI_HCD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}> mark<ENFORCED> note<ensures USB 2.0/1.1 probe ordering> flag<REVIEW>
check-config: FAIL (m != y): CONFIG_USB_EHCI_HCD_PLATFORM policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'n', 'i386': 'y', 'ppc64el': 'm'}> mark<ENFORCED> note<Don't use the generic ehci/ohci code on omap, it doesn't work> flag<REVIEW>
check-config: 70/73 checks passed -- exit 1
check-config: /tmp/tmp.P1QuAGSbJX/CONFIGS/i386-config.flavour.lowlatency: loading config
check-config: /home/observator/kerneltestx/linux-hwe-4.10.0/debian.hwe/config/annotations loading annotations
check-config: FAIL (m != y): CONFIG_USB_EHCI_HCD_PLATFORM policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'n', 'i386': 'y', 'ppc64el': 'm'}> mark<ENFORCED> note<Don't use the generic ehci/ohci code on omap, it doesn't work> flag<REVIEW>
check-config: FAIL (m != y): CONFIG_USB_EHCI_HCD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}> mark<ENFORCED> note<ensures USB 2.0/1.1 probe ordering> flag<REVIEW>
check-config: FAIL (m != y): CONFIG_USB_XHCI_HCD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}> mark<ENFORCED> note<ensures USB 2.0/1.1 probe ordering> flag<REVIEW>
check-config: 70/73 checks passed -- exit 1
check-config: /tmp/tmp.P1QuAGSbJX/CONFIGS/armhf-config.flavour.generic: loading config
check-config: /home/observator/kerneltestx/linux-hwe-4.10.0/debian.hwe/config/annotations loading annotations
check-config: FAIL (m != y): CONFIG_USB_EHCI_HCD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}> mark<ENFORCED> note<ensures USB 2.0/1.1 probe ordering> flag<REVIEW>
check-config: FAIL (m != y): CONFIG_USB_XHCI_HCD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}> mark<ENFORCED> note<ensures USB 2.0/1.1 probe ordering> flag<REVIEW>
check-config: 71/73 checks passed -- exit 1
check-config: /tmp/tmp.P1QuAGSbJX/CONFIGS/armhf-config.flavour.generic-lpae: loading config
check-config: /home/observator/kerneltestx/linux-hwe-4.10.0/debian.hwe/config/annotations loading annotations
check-config: FAIL (m != y): CONFIG_USB_EHCI_HCD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}> mark<ENFORCED> note<ensures USB 2.0/1.1 probe ordering> flag<REVIEW>
check-config: FAIL (m != y): CONFIG_USB_XHCI_HCD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}> mark<ENFORCED> note<ensures USB 2.0/1.1 probe ordering> flag<REVIEW>
check-config: 71/73 checks passed -- exit 1
check-config: /tmp/tmp.P1QuAGSbJX/CONFIGS/arm64-config.flavour.generic: loading config
check-config: /home/observator/kerneltestx/linux-hwe-4.10.0/debian.hwe/config/annotations loading annotations
check-config: FAIL (m != y): CONFIG_USB_EHCI_HCD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}> mark<ENFORCED> note<ensures USB 2.0/1.1 probe ordering> flag<REVIEW>
check-config: FAIL (m != y): CONFIG_USB_XHCI_HCD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}> mark<ENFORCED> note<ensures USB 2.0/1.1 probe ordering> flag<REVIEW>
check-config: 71/73 checks passed -- exit 1
check-config: /tmp/tmp.P1QuAGSbJX/CONFIGS/ppc64el-config.flavour.generic: loading config
check-config: /home/observator/kerneltestx/linux-hwe-4.10.0/debian.hwe/config/annotations loading annotations
check-config: FAIL (m != y): CONFIG_USB_EHCI_HCD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}> mark<ENFORCED> note<ensures USB 2.0/1.1 probe ordering> flag<REVIEW>
check-config: FAIL (m != y): CONFIG_USB_XHCI_HCD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}> mark<ENFORCED> note<ensures USB 2.0/1.1 probe ordering> flag<REVIEW>
check-config: 71/73 checks passed -- exit 1
check-config: /tmp/tmp.P1QuAGSbJX/CONFIGS/s390x-config.flavour.generic: loading config
check-config: /home/observator/kerneltestx/linux-hwe-4.10.0/debian.hwe/config/annotations loading annotations
check-config: 73/73 checks passed -- exit 0
*** ERROR: 8 config-check failures detected
Итак, мой вопрос: как я могу изменить свой драйвер USB (со сборкой ядра или без нее)? Я не уверен, дал ли я ясность, но все это немного ново для меня, и я буду рад предоставить более конкретные детали, если это необходимо.
(Или, если у кого-то есть решение заставить Asus Xtion Pro работать с драйверами xHCI (обратите внимание, что это его первая версия, которая не принимает исправление, сделанное для этой цели))
Большое спасибо!