Power & Source of Big Ideas

How to install or enable the cdc_acm module

Moderators: chensy, FATechsupport


I need to use an Arduino MKRzero via USB with the Nano Pi S2. When run the command lsusb, the board appears:

Code: Select all

Bus 001 Device 014: ID 2341:804f Arduino SA

however when I open the Arduino IDE the serial port is not listed. So I decided to run dmesg | grep Arduino -C 3

The output was:

Code: Select all

[  591.600000] usb 1-1.6: new full-speed USB device number 10 using nxp-ehci
[  591.704000] usb 1-1.6: New USB device found, idVendor=2341, idProduct=804f
[  591.708000] usb 1-1.6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  591.716000] usb 1-1.6: Product: Arduino MKRZero
[  591.720000] usb 1-1.6: Manufacturer: Arduino LLC
[  591.724000] usb 1-1.6: SerialNumber: 96EC4246514D3937394A2020FF101010
[  722.388000] usb 1-1.6: USB disconnect, device number 10
[  759.452000] usb 1-1.6: new full-speed USB device number 11 using nxp-ehci

And according to this site: http://chrisstrelioff.ws/sandbox/2015/12/08/arduino_on_ubuntu_14_04_without_the_arduino_ide.html

I supposed to get something like:

Code: Select all

$ dmesg | grep Arduino -C 3
[ 6433.058276] usb 2-2: new full-speed USB device number 4 using xhci_hcd
[ 6433.077095] usb 2-2: New USB device found, idVendor=2341, idProduct=0043
[ 6433.077104] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[ 6433.077110] usb 2-2: Manufacturer: Arduino (www.arduino.cc)
[ 6433.077114] usb 2-2: SerialNumber: 75439333335351105031
[ 6433.077340] usb 2-2: ep 0x82 - rounding interval to 1024 microframes, ep desc says 2040 microframes
[b][ 6433.106521] cdc_acm 2-2:1.0: ttyACM0: USB ACM device[/b]

So I run the following command

Code: Select all

root@NanoPi2:~# modprobe cdc_acm
modprobe: FATAL: Module cdc_acm not found.

root@NanoPi2:~# rmmod cdc_acm
rmmod: ERROR: Module cdc_acm is not currently loaded

So my question is how do I load that module or how can i solve de issue?

Thanks in advance
Sounds familiar to using a Teensy board on my old mini2440 system.

I think all that was required was
(1.58 KiB) Downloaded 234 times
Rename it 49-teensy.rules

This gets placed in /lib/udev/rules

It would need modifying. Are you sure there is not a suitable udev rule floating around somewhere?

Good luck!
Hello Dave,

Thanks a lot for your suggestions. However I'm no able to make it work.

I edit the rules with the following name: 98-mkrzero.rules and nothing happened.

Code: Select all

ATTRS{idVendor}=="2341", ATTRS{idProduct}=="804f", ENV{ID_MM_DEVICE_IGNORE}="1"
ATTRS{idVendor}=="2341", ATTRS{idProduct}=="804f", ENV{MTP_NO_PROBE}="1"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="804f", MODE:="0666"
KERNEL=="ttyAMA1", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="804f", MODE:="0666"

I replace the ttyACM* for the ttyAMA* at the beginning, later to ttyAMA1 and when I opened the Arduino IDE the board was mapped to the ttyAMA1, so I was thinking that it worked. My bad, when I open the Arduino console, I was getting nothing, the board was programmed with a simple "Hello world!".

later checking at the /dev/ I noticed that the ttyAMA0 is the only one that is not in the dialup group but in the tty, and also with different access permissions.

I added my users to both groups and change the permissions and still not working.

I'm running out of ideas.
Looking again I see it goes in /lib/udev/rules.d not rules. You probably picked up that error.

I just fired up the old mini2440 with the Teensy 2 board and I get:

crw-rw-rw- 1 root dialout 166, 0 Jan 1 13:00 ttyACM0

and for the rules file:

-rw-r--r-- 1 root root 1982 Feb 28 2015 49-teensy.rules

I can't find or remember any other changes I had to make.
Are you sure there is no serial number?


I ran two Teensy 2 boards and in the Teensy software I had to change the serial (number) so that I could talk specifically to one device.
Just realised that there was something else. There was a selection in my kernelconfig for serial USB which needed to be enabled and re-compiled.

Perhaps investigate whether or not you need to do that.
If you ever found a fix for this it would be very helpful to share it. I've tried recompiling the kernel with it and still running into a wall.
I'm also in need of the cdc-acm driver. This is often enabled by default for linux kernels.

Who is online

In total there are 4 users online :: 0 registered, 0 hidden and 4 guests (based on users active over the past 5 minutes)
Most users ever online was 5185 on Wed Jan 22, 2020 1:44 pm

Users browsing this forum: No registered users and 4 guests