Consegui fazê-lo funcionar. Aqui está como eu fiz:
Primeiro, eu peguei o código-fonte do kernel do fabricante e baixei para uma máquina Ubuntu 12.04 em uma pasta que eu chamei de kernel no desktopEm segundo lugar, eu baixei a fonte do driver do exar ( link ) e coloquei na VM em uma pasta eu chamei exar na área de trabalho.
Em seguida, eu compilei usando o gcc-arm-linux-gnueabihf na VM
sudo apt-get install gcc-arm-linux-gnueabihf
Faça o arquivo de configuração para compilação cruzada
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx6_rev_sa01_defconfig
Build Kernel (etapa opcional, poderia copiar o kernel da imagem do iMX6)
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage
Cross compile o driver
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -C /home/ubuntu/Desktop/kernel/ M=/home/ubuntu/Desktop/exar/ modules
Depois copiei o diretório exar para o destino e concluí a instalação
tar -xzvf exar.tgz
cd exar
cp xr17v35x.ko /lib/modules/3.0.35/kernel/drivers/misc/.
cd /lib/modules/3.0.35/kernel/drivers/misc/.
insmod xr17v35x.ko
Por fim, verifiquei que o driver estava registrado e as portas estavam listadas.
lsmod
ls -l /dev/ttyXR*
as portas / dev / ttyXR0 a XR7 estavam disponíveis e funcionais.
Depois de fazer uma reinicialização, parece que o driver não persiste. Como patch eu adicionei um script de configuração serial em /etc/rc3.d/S50SerialPortSetup
#! /bin/sh
cd /lib/modules/3.0.35/kernel/drivers/misc/.
insmod xr17v35x.ko
Eu também faço alguns comandos stty para inicializar as portas para o meu aplicativo específico.