Eu estou executando Debian Jessie no meu Hummingboard, um ARM SBC baseado em iMX6.
root@torpedo:~# uname -a
Linux torpedo 4.11.4-cubox #2 SMP Tue Jun 13 14:51:52 CEST 2017 armv7l GNU/Linux
Ele tem um slot PCI Express mini, que eu pretendo usar para um cartão UART de 4 portas. eu tenho um cartão de sistemas Diamond que usa o chip EXAR XR17V354 UART .
Sendo um otimista, liguei o cartão e inicializei, esperando pelo melhor.
Parece que o cartão é reconhecido:
root@torpedo:~# lspci -v
00:00.0 PCI bridge: Synopsys, Inc. Device abcd (rev 01) (prog-if 00 [Normal deco de])
Flags: bus master, fast devsel, latency 0
Memory at 01000000 (32-bit, non-prefetchable) [size=1M]
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
Memory behind bridge: 01100000-011fffff
[virtual] Expansion ROM at 01200000 [disabled] [size=64K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+
Capabilities: [70] Express Root Port (Slot-), MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Virtual Channel
Kernel driver in use: pcieport
01:00.0 Serial controller: Exar Corp. Device 0354 (rev 03) (prog-if 02 [16550])
Flags: fast devsel, IRQ 334
Memory at 01100000 (32-bit, non-prefetchable) [size=16K]
Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [78] Power Management version 3
Capabilities: [80] Express Endpoint, MSI 01
Capabilities: [100] Virtual Channel
Contudo, dmesg contém nenhuma menção de ttys criados no momento da inicialização, além dos GPIO associados ao Hummingboard, que sempre estiveram lá.
O fornecedor (Diamond) fornece um driver personalizado, que eu baixei e criei a partir da fonte. Quando eu carrego o .ko , dmesg diz:
[ 640.564446] DSMPESER4MDriver: loading out-of-tree module taints kernel.
[ 640.565123] The init fun get called
[ 640.565199] pci 0000:01:00.0: enabling device (0140 -> 0142)
[ 640.565359] DS-MPE-SER4M driver loaded
E / var / log / messages diz:
root@torpedo:~# tail -f /var/log/messages
...
Apr 17 15:48:50 torpedo kernel: DSMPESER4MDriver: loading out-of-tree module taints kernel.
Apr 17 15:48:50 torpedo kernel: The init fun get called
Apr 17 15:48:50 torpedo kernel: pci 0000:01:00.0: enabling device (0140 -> 0142)
Apr 17 15:48:50 torpedo kernel: DS-MPE-SER4M driver loaded
Algumas questões:
- Como corrijo o "carregamento do módulo de manchas do módulo fora da árvore"? (não é um problema técnico - ver comentário)
- Como eu uso mknod para criar o / dev / tty arquivos para este driver?
- Como faço para configurar o módulo para carregar no momento da inicialização?