[RESOLVED] Proxmark3 on Ubuntu - failed to validate module [cdc_acm]

Hello old friends. After all these years I recently FINALLY picked up a “Mo-lock NFC” to convert my motorcycle to an NFC ignition and broke out the ol’ proxmark3 but I’m having an issue and it’s been so long I can’t remember how to fix it.

Environment

I’m running up-to-date Pop_OS! (an Ubuntu derivative) and have a Proxmark3 Easy with the Iceman firmware I picked up here a while back. The firmware is likely quite old, but it DID work. The note I have with the device says it is on Iceman v4.9237-1270-g6547867 firmware, and I have no reason to think I’ve updated the firmware but forgot to update that note, so I am presuming that is accurate.

$ proxmark3 --version
Client: Iceman/master/v4.15864-149-gda3fff58f 2022-12-18 12:17:56 a3d49350c compiled with GCC 11.3.0 OS:Linux ARCH:x86_64

I have verified that all dependencies are installed, ModemManager is not installed.

The Issue

When I plug the device in, the OS does not assign it a tty device name. It detects the device, but then fails to validate the module:

$ cat /dev/tty
tty        tty16      tty24      tty32      tty40      tty49      tty57      tty8       ttyS14     ttyS22     ttyS30
tty0       tty17      tty25      tty33      tty41      tty5       tty58      tty9       ttyS15     ttyS23     ttyS31
tty1       tty18      tty26      tty34      tty42      tty50      tty59      ttyprintk  ttyS16     ttyS24     ttyS4
tty10      tty19      tty27      tty35      tty43      tty51      tty6       ttyS0      ttyS17     ttyS25     ttyS5
tty11      tty2       tty28      tty36      tty44      tty52      tty60      ttyS1      ttyS18     ttyS26     ttyS6
tty12      tty20      tty29      tty37      tty45      tty53      tty61      ttyS10     ttyS19     ttyS27     ttyS7
tty13      tty21      tty3       tty38      tty46      tty54      tty62      ttyS11     ttyS2      ttyS28     ttyS8
tty14      tty22      tty30      tty39      tty47      tty55      tty63      ttyS12     ttyS20     ttyS29     ttyS9
tty15      tty23      tty31      tty4       tty48      tty56      tty7       ttyS13     ttyS21     ttyS3   
$ sudo dmesg | grep -i usb
<snip>
[1786364.313660] usb 1-1: new full-speed USB device number 121 using xhci_hcd
[1786366.205639] usb 1-1: new full-speed USB device number 122 using xhci_hcd
[1786366.356534] usb 1-1: New USB device found, idVendor=9ac4, idProduct=4b8f, bcdDevice= 1.00
[1786366.356540] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[1786366.356543] usb 1-1: Product: proxmark3
[1786366.356546] usb 1-1: Manufacturer: proxmark.org
[1786366.356548] usb 1-1: SerialNumber: iceman

But you’ll notice the missing ACM acknowledgement or device ID.

Expand that out a little and I see:

$ sudo dmesg | grep -i usb -b5
<snip>
250305:[1786364.313660] usb 1-1: new full-speed USB device number 121 using xhci_hcd
250383:[1786366.205639] usb 1-1: new full-speed USB device number 122 using xhci_hcd
250461:[1786366.356534] usb 1-1: New USB device found, idVendor=9ac4, idProduct=4b8f, bcdDevice= 1.00
250556:[1786366.356540] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
250639:[1786366.356543] usb 1-1: Product: proxmark3
250684:[1786366.356546] usb 1-1: Manufacturer: proxmark.org
250737:[1786366.356548] usb 1-1: SerialNumber: iceman
250784-[1786366.367882] BPF: 	 type_id=86 bits_offset=32
250834-[1786366.367890] BPF:  
250858-[1786366.367892] BPF: Invalid name
250893-[1786366.367894] BPF: 
250916-[1786366.367896] failed to validate module [cdc_acm] BTF: -22

I’m not quite sure where to go from here. Suggestions?

1 Like

Make sure your system is updated, and reboot. Looks like it isn’t able to load cdc_acm, which is usually due to a mismatch between updated kernel modules and the actively running kernel version.

EDIT: Saw you say it was up-to-date, hopefully it just needs the reboot then. That’s the only cause I can think of with that error, and I’ve had it happen to me before.

2 Likes

Is it a firmware mismatch? The note for the firmware and what the client version says is different. Are you able to pull the latest release and flash the bottom first, then the full image?

1 Like

right! That’s likely the issue. Thanks. I’ll give it a shot when I get some time and let you know.

1 Like

That, and plugging the proxmark into a different USB port did it. For some reason it wasn’t getting mounted at /dev/tty*** until I plugged it into a different port, then I was able to flash and update. Cheers!

3 Likes

Oh shoot! Didn’t think about the USB port. Glad you got it working again!

I’m 99.9% sure I tried other USB ports on the laptop before, so I’m sure it was the firmware but figured I’d mention it for posterity if someone finds this later.

2 Likes