If you want to use an Arduino with your Radxa Rock Pro Kernel 3.18 you will need to build some kernel modules by hand. Here is a short howto. Strangely this didn’t work directly on the Radxa Rock Pro so I had to cross compile on a Ubuntu 14.10 system:
1 2 3 4 5 6 7 8 |
sudo apt-get install git build-essential gcc-arm-linux-gnueabihf lzop libncurses5-dev libssl-dev bc git clone -b v3.18-rc5 --depth 1 git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git cd linux-stable wget http://rockchip.fr/radxa/linux/rockchip_defconfig -O arch/arm/configs/rockchip_defconfig export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabihf- make rockchip_defconfig make menuconfig |
Navigate to Device Drivers -> USB Support -> USB Serial Converter Support -> and select USB FTDI Single Port Serial Driver with „m“ and save to .config
1 2 3 |
make prepare make modules_prepare make M=drivers/usb/serial/ |
Transfer the kernel model to your radxa with a method of your choice and and test them:
1 |
sudo insmod usbserial.ko |
If everything works you can install the modules permanently:
1 2 3 |
sudo mkdir -p /lib/modules/$(uname -r)/kernel/usb/serial sudo mv *.ko /lib/modules/3.18.0-rc5+/kernel/usb/serial sudo depmod -a |
then you can load the kernel modules with:
1 |
sudo modprobe ftdi_sio |
and/or add them permanently to /etc/modules:
1 |
sudo nano |
Troubleshooting:
You may get an error like:
1 |
insmod: ERROR: could not insert module ftdi_sio.ko: Invalid module format |
with dmesg you see:
1 2 |
sudo dmesg usbserial: version magic '3.18.0-rc5 SMP mod_unload ARMv7 p2v8 ' should be '3.18.0-rc5+ SMP mod_unload ARMv7 p2v8 ' |
or you can get more information about the module with:
1 |
modinfo ftdi_sio.ko |
filename: /home/phoenix/ftdi_sio.ko
license: GPL
description: USB FTDI Serial Converters Driver
author: Greg Kroah-Hartman <@.>, Bill Ryder <@.>, Kuba Ober <@.>, Andreas Mohr, Johan Hovold <@.>
alias: usb:v0403pD012d*dc*dsc*dp*ic*isc*ip*in*
depends: usbserial
vermagic: 3.19.0-rc5+ SMP mod_unload ARMv7 p2v8
parm: ndi_latency_timer:NDI device latency timer override (int)
In my case you can see the problem was that the default kernel is only:
1 2 |
uname -r 3.18.0-rc5+ |
So I should have gotten an older source…