Thread (6 messages) 6 messages, 2 authors, 2012-08-16

Adding the cp210x module to the NAO kernel

From: Ankur Sinha <hidden>
Date: 2012-08-15 06:24:47

Hi folks,

I'm using the NAO[1] for my research. It uses a linux 2.6.29.6-rt24
kernel[2] which they seem to have customized to their needs. I need to
use a NavChip[3] IMU(inertial measurement unit) with the NAO. The
NavChip works out of the box with my Fedora 17
kernel(3.5.1-1.fc17.x86_64). This is what dmesg says when I plug it in:
[71406.521154] usb 2-1.5: new full-speed USB device number 6 using ehci_hcd
[71406.607360] usb 2-1.5: New USB device found, idVendor=10c4, idProduct=ea60
[71406.607367] usb 2-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[71406.607372] usb 2-1.5: Product: CP2102 USB to UART Bridge Controller
[71406.607376] usb 2-1.5: Manufacturer: Silicon Labs
[71406.607379] usb 2-1.5: SerialNumber: 0001
[71406.772438] usbcore: registered new interface driver cp210x
[71406.772468] USB Serial support registered for cp210x
[71406.772513] cp210x 2-1.5:1.0: cp210x converter detected
[71406.845220] usb 2-1.5: reset full-speed USB device number 6 using ehci_hcd
[71406.931690] usb 2-1.5: cp210x converter now attached to ttyUSB0
[ankur at ankur 2.6.29.6-rt24-aldebaran-rt]$
However, when I plug it into the NAO, it isn't detected. I looked up,
and the kernel they use doesn't seem to have the cp210x module that is
required for the NavChip (I think?). 

The NavChip's processor is an AMD Geode[1] which is x86 compatible
according to wiki.

Can you please tell me how I can add the required module to the NAO's
kernel?

I already tried something, but this is my first brush with kernel
compilation, so it was probably wrong:


I built the cp210x module using the NAO kernel tree:

[ankur at ankur aldebaran-linux-aldebaran-66f8749]$ pwd
/home/ankur/Documents/work/code/NAO/OS/aldebaran-linux-aldebaran-66f8749
[ankur at ankur aldebaran-linux-aldebaran-66f8749]$ file drivers/usb/serial/cp210x.ko
drivers/usb/serial/cp210x.ko: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), BuildID[sha1]=0x61274b6a395ca0bbb45729b87283f361c04b396f, not stripped
[ankur at ankur aldebaran-linux-aldebaran-66f8749]$
I placed this into the drivers/usb/serial directory in the NAO system,
but it didn't work (no surprise there!). It gave me an error:

"Invalid module format" when I tried modprobe or insmod.

The /var/log/messages had this:
"no version for struct_module found: kernel tainted".

Any hints please? It's probably something simple, just not simple enough
for a kernel newbie :)

This is the set of modules they ship their kernel with:
[ankur at ankur 2.6.29.6-rt24-aldebaran-rt]$ pwd
/run/media/ankur/OpenNao-system/lib/modules/2.6.29.6-rt24-aldebaran-rt
[ankur at ankur 2.6.29.6-rt24-aldebaran-rt]$ ll
total 409
lrwxrwxrwx. 1 root root     93 Jun  4 01:23 build -> /opennao-geode/tmp/portage/ald-kernel/opennao-kernel-2.6.29-r41/work/linux-2.6.29-opennao-r41
drwxr-xr-x. 5 root root   1024 Jun  4 01:23 kernel
-rw-r--r--. 1 root root  59429 Aug 14 11:01 modules.alias
-rw-r--r--. 1 root root  49998 Aug 14 11:01 modules.alias.bin
-rw-r--r--. 1 root root     69 Aug 14 11:01 modules.ccwmap
-rw-r--r--. 1 root root  11117 Aug 14 11:01 modules.dep
-rw-r--r--. 1 root root  13279 Aug 14 11:01 modules.dep.bin
-rw-r--r--. 1 root root     73 Aug 14 11:01 modules.ieee1394map
-rw-r--r--. 1 root root    141 Aug 14 11:01 modules.inputmap
-rw-r--r--. 1 root root     81 Aug 14 11:01 modules.isapnpmap
-rw-r--r--. 1 root root     74 Aug 14 11:01 modules.ofmap
-rw-r--r--. 1 root root    937 Jun  3 17:25 modules.order
-rw-r--r--. 1 root root   2829 Aug 14 11:01 modules.pcimap
-rw-r--r--. 1 root root     85 Aug 14 11:01 modules.seriomap
-rw-r--r--. 1 root root  25281 Aug 14 11:01 modules.symbols
-rw-r--r--. 1 root root  36981 Aug 14 11:01 modules.symbols.bin
-rw-r--r--. 1 root root 199651 Aug 14 11:01 modules.usbmap
lrwxrwxrwx. 1 root root     93 Jun  4 01:23 source -> /opennao-geode/tmp/portage/ald-kernel/opennao-kernel-2.6.29-r41/work/linux-2.6.29-opennao-r41
drwxr-xr-x. 5 root root   1024 Jun  4 01:23 updates
[ankur at ankur 2.6.29.6-rt24-aldebaran-rt]$ find . -name "*.ko" -not -name "cp210x.ko" -print
./updates/compat/compat.ko
./updates/compat/compat_firmware_class.ko
./updates/net/wireless/cfg80211.ko
./updates/net/mac80211/mac80211.ko
./updates/net/rfkill/rfkill_backport.ko
./updates/drivers/misc/eeprom/eeprom_93cx6.ko
./updates/drivers/net/wireless/rt2x00/rt2x00pci.ko
./updates/drivers/net/wireless/rt2x00/rt2800lib.ko
./updates/drivers/net/wireless/rt2x00/rt2400pci.ko
./updates/drivers/net/wireless/rt2x00/rt61pci.ko
./updates/drivers/net/wireless/rt2x00/rt2x00usb.ko
./updates/drivers/net/wireless/rt2x00/rt2800pci.ko
./updates/drivers/net/wireless/rt2x00/rt2x00lib.ko
./updates/drivers/net/wireless/rt2x00/rt2500usb.ko
./updates/drivers/net/wireless/rt2x00/rt2800usb.ko
./updates/drivers/net/wireless/rt2x00/rt73usb.ko
./updates/drivers/net/wireless/rt2x00/rt2500pci.ko
./updates/drivers/net/wireless/zd1211rw/zd1211rw.ko
./kernel/net/wireless/cfg80211.ko
./kernel/net/mac80211/mac80211.ko
./kernel/net/bluetooth/sco.ko
./kernel/net/bluetooth/hidp/hidp.ko
./kernel/net/bluetooth/l2cap.ko
./kernel/net/bluetooth/bnep/bnep.ko
./kernel/net/bluetooth/rfcomm/rfcomm.ko
./kernel/lib/cimarron/cimarron.ko
./kernel/lib/crc-itu-t.ko
./kernel/drivers/staging/rt2870/rt3070sta.ko
./kernel/drivers/misc/eeprom/eeprom_93cx6.ko
./kernel/drivers/usb/class/cdc-acm.ko
./kernel/drivers/usb/serial/usbserial.ko
./kernel/drivers/usb/serial/ftdi_sio.ko
./kernel/drivers/hid/hid.ko
./kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko
./kernel/drivers/net/wireless/rtl818x/rtl8187.ko
./kernel/drivers/hwmon/lm90.ko
./kernel/drivers/scsi/scsi_wait_scan.ko
./kernel/drivers/media/video/lxv4l2/lxv4l2.ko
./kernel/drivers/i2c/busses/scx200_acb.ko
./kernel/drivers/i2c/busses/i2c-serial.ko
./kernel/drivers/bluetooth/btusb.ko
./kernel/drivers/bluetooth/bfusb.ko
./kernel/drivers/bluetooth/bcm203x.ko
./kernel/drivers/bluetooth/hci_vhci.ko
[ankur at ankur 2.6.29.6-rt24-aldebaran-rt]$

Please let me know if you need any more info, and I'll provide it. 

The kernel goes on a USB flash drive that needs to be inserted into the
NAO to make it boot. They provide a utility that formats the flash drive
as such:
[ankur at ankur ~]$ cd /run/media/ankur/
[ankur at ankur ankur]$ ll
total 5
drwxr-xr-x.  7 root root 4096 Aug  6 22:28 OpenNao-data
drwxr-xr-x. 17 root root 1024 Aug 14 10:50 OpenNao-system
[ankur at ankur ankur]$ mount | egrep OpenNao
/dev/sdb1 on /run/media/ankur/OpenNao-system type ext3 (rw,nosuid,nodev,relatime,seclabel,data=ordered,uhelper=udisks2)
/dev/sdb2 on /run/media/ankur/OpenNao-data type ext3 (rw,nosuid,nodev,relatime,seclabel,data=ordered,uhelper=udisks2)
[ankur at ankur ankur]$
[1] http://en.wikipedia.org/wiki/Nao_(robot)
[2] https://github.com/aldebaran/linux-aldebaran/
[3] http://www.intersense.com/pages/16/16/
[4] http://en.wikipedia.org/wiki/Geode_(processor)

-- 
Thanks, 
Warm regards,
Ankur: "FranciscoD"

Please only print if necessary. 

Looking to contribute to Fedora? Look here: https://fedoraproject.org/wiki/Fedora_Join_SIG

http://fedoraproject.org/wiki/User:Ankursinha
http://dodoincfedora.wordpress.com/

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 490 bytes
Desc: This is a digitally signed message part
Url : http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20120815/680472f4/attachment.bin 
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help