Atualmente estou trabalhando em um projeto em um ambiente do Ubuntu 16.04 e uma câmera de profundidade (um Asus Xtion Pro). O problema é que a minha câmera não está funcionando com o controlador host USB3.0 do Ubuntu, o xhci. Então, eu estou tentando forçar o controlador de host USB2 ehci a gerenciar minhas portas seriais. Mas como meu laptop tem apenas portas USB 3.0, não consigo desativar o modo XHCI Preboot por meio do BIOS. E os drivers que estão sendo construídos no kernel e não como módulos eu não posso apenas desativar o xhci.
Depois de algumas pesquisas no google, encontrei esta discussão sugerindo construir um kernel no qual ambos os drivers ehci e xhci são construídos como módulos para que eu possa escolher qual deles eu gostaria de usar. O problema é que eu sou um novato total no desenvolvimento de kernel ...
Eu encontrei e, sem sucesso, segui este tutorial para criar um novo kernel, mas eu tenho um erro após editar o configuração com este comando:
fakeroot debian/rules editconfigs
As alterações que fiz foram para alternar as opções xHCI HCD (USB 3.0) e EHCI HCD (USB 2.0) em Drivers de dispositivos - > Suporte USB do built-in para o módulo. Pelo que entendi da saída do terminal, não consigo construir o xhci no kernel. Aqui está a saída:
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
Então, minha pergunta é como eu posso mudar meu driver USB (com ou sem uma compilação de kernel)? Não tenho certeza se me fiz claro, mas tudo isso é novo para mim e terei prazer em dar detalhes mais específicos, se necessário.
(Ou se alguém tiver uma solução para fazer o Asus Xtion Pro funcionar com os drivers xHCI (note que é a primeira versão dele que não aceita o patch feito com essa finalidade))
Muito obrigado!