Do I need to install FTDI Kernel Module for TX2 and Teensy 3.2 (Arduino)?

I am trying to let Jetson TX2 communicate with Teensy 3.2. However it could not detect Teensy as ttyACM* or ttyUSB*.

I attempted to build FTDI Kernel Module but it still does not detect the Teensy 3.2. (when I called dmesg. There is no ttyACM*

nvidia@tegra-ubuntu:/lib/modules$ lsusb
...
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
[b]Bus 001 Device 003: ID 16c0:0483 Van Ooijen Technische Informatica Teensyduino Serial
[/b]Bus 001 Device 002: ID 2109:2812 VIA Labs, Inc. VL812 Hub
...
nvidia@tegra-ubuntu:/lib/modules$ lsmod
Module                  Size  Used by
uvcvideo               87200  0
videobuf2_vmalloc       6454  1 uvcvideo
fuse                   89120  2
bnep                   15477  2
xt_conntrack            3659  1
bluetooth             552900  7 bnep
bcmdhd               7637079  0
pci_tegra              72709  0
bluedroid_pm           13874  0
nvidia@tegra-ubuntu:/lib/modules/4.4.15-jetson-car-1.0/kernel/drivers/usb/serial$ ls -l
total 808
-rw-r--r-- 1 root root 288784 Mar 30 19:29 ch341.ko
-rw-r--r-- 1 root root 533048 Mar 30 19:29 ftdi_sio.ko

All help would be greatly appreciated.

Thank you!

More information on what USB says about the device would help. What is the output of:

sudo lsusb -d 16c0:0483 -vvv

Here is the output:

nvidia@tegra-ubuntu:/etc/udev/rules.d$ sudo lsusb -d 16c0:0483 -vvv
[sudo] password for nvidia: 

Bus 001 Device 005: ID 16c0:0483 Van Ooijen Technische Informatica Teensyduino Serial
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.01
  bDeviceClass            2 Communications
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x16c0 Van Ooijen Technische Informatica
  idProduct          0x0483 Teensyduino Serial
  bcdDevice            2.00
  iManufacturer           1 Teensyduino
  iProduct                2 USB Serial
  iSerial                 3 2481500
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           67
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         2 Communications
      bInterfaceSubClass      2 Abstract (modem)
      bInterfaceProtocol      1 AT-commands (v.25ter)
      iInterface              0 
      CDC Header:
        bcdCDC               1.10
      CDC Call Management:
        bmCapabilities       0x01
          call management
        bDataInterface          1
      CDC ACM:
        bmCapabilities       0x06
          sends break
          line coding and serial state
      CDC Union:
        bMasterInterface        0
        bSlaveInterface         1 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0010  1x 16 bytes
        bInterval              64
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
Device Status:     0x0000
  (Bus Powered)

I see this:

bDeviceClass            2 Communications
...
bInterfaceClass         2 Communications
bInterfaceSubClass      2 Abstract (modem)
bInterfaceProtocol      1 AT-commands (v.25ter)

It looks like this is an old fashioned modem and not a serial UART (it isn’t that modems don’t have serial UARTs, it is a case of requiring other commands to set it up which probably go through a serial UART…a UART by itself has no knowledge of how bytes are arranged as they go through it).

Note this particular line:

bInterfaceSubClass      2 Abstract (modem)

…this suggests a custom driver other than a standardized class is required. Should that be available the “/dev/” device special file may not be named what you expect it to be unless there is a udev rule.

What does dmesg say about the device as it is plugged in and then unplugged? You can use “dmesg --follow” to watch.

When I was using Jetson TK1, Grinch Kernel solved the issue. However, I do not know what driver needed to be installed.

This is what happened when I unplug and plug the Teensy 3.2 on NVIDIA Jetson TX2

[ 7102.746486] usb 1-2.3: USB disconnect, device number 13
[ 7108.063043] usb 1-2.3: new full-speed USB device number 14 using xhci-tegra
[ 7108.172274] usb 1-2.3: New USB device found, idVendor=16c0, idProduct=0483
[ 7108.179234] usb 1-2.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 7108.186702] usb 1-2.3: Product: USB Serial
[ 7108.191064] usb 1-2.3: Manufacturer: Teensyduino
[ 7108.195792] usb 1-2.3: SerialNumber: 2481500
[ 7118.362488] usb 1-2.3: USB disconnect, device number 14

Looks like no driver claimed the device. The device is listed as “Teensyduino”. I did some googling and found:
https://www.pjrc.com/teensy/td_download.html

Unfortunately this particular site did not list a driver compatible with arm64/aarch64 (an incompatibile driver is listed for armhf…this is what 32-bit “ARM/Raspberry Pi” is). If they provide a source version of the driver somewhere, or are willing to provide an arm64/aarch64/ARMv8-A version, then this should work.

Thanks, linuxdev.

Your answer explained why the Teensy 3.2 worked on my Jetson TK1, but not TX2.

I probably end up compiling the driver from source. I found this one: https://github.com/PaulStoffregen/cores/tree/master/teensy3

I will report later if my attempt is correct or not.

@linuxdev:

I found the reason why. Kernel Module on NVIDA Jetson TX2 disabled driver USB_ACM, which caused the Teensy undetectable. I actually did not even install TeensyDuino. It is suitable when I port .ino file on Jetson TX2 directly.

Steps to resolve:

  1. Install Arduino for AARCH64:
sudo apt-get install arduino arduino-core
  1. Rebuild Custom Kernel Module for Jetson TX2. Following this tutorial (http://www.jetsonhacks.com/2017/03/25/build-kernel-and-modules-nvidia-jetson-tx2/) and stop before excecuting ./makeKernel.h.

Execute this command first

sudo sed -i 's/.*CONFIG_USB_ACM.*/CONFIG_USB_ACM=y/' /usr/src/kernel/kernel-4.4/.config
  1. Follow the rest of the tutorial. Reboot Jetson

Here is my result.

[  125.602321] usb 1-2.4: USB disconnect, device number 5
[  166.518422] usb 1-2.2: new full-speed USB device number 6 using xhci-tegra
[  166.627754] usb 1-2.2: New USB device found, idVendor=16c0, idProduct=0483
[  166.634715] usb 1-2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  166.642213] usb 1-2.2: Product: USB Serial
[  166.646492] usb 1-2.2: Manufacturer: Teensyduino
[  166.651192] usb 1-2.2: SerialNumber: 2481500
[  166.657388] cdc_acm 1-2.2:1.0: ttyACM0: USB ACM device

Hi friends,
I need to control 2 dynamixels, via a usb2ax controler…

working on a TX2.

Doesn’t work !

$ /dev/ttyACM*
ls: cannot access ‘/dev/ttyACM*’: No such file or directory

$ dmesg :

Bus 001 Device 005: ID 16d0:06a7 MCS
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 2 Communications
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x16d0 MCS
idProduct 0x06a7
bcdDevice 0.01
iManufacturer 1 Xevelabs
iProduct 2 USB2AX
iSerial 220 74031303437351909120
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 62
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 2 Abstract (modem)
bInterfaceProtocol 1 AT-commands (v.25ter)
iInterface 0
CDC Header:
bcdCDC 1.10
CDC ACM:
bmCapabilities 0x06
sends break
line coding and serial state
CDC Union:
bMasterInterface 0
bSlaveInterface 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 255
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 1
Device Status: 0x0000
(Bus Powered)

Could anyone help me, please ?!

Impatient to read you. Thanks friends

@datthnguyen:

I tested your kernel mod, dut don’t see any changes.
I’m lost. Please help, friends.
Vincent

If you can, try to plug the devices to a x86 machine to see which kernel module control that.

Then modify the ‘.config’ file in /usr/src/kernel/kernel-4.4 accordingly.

Your device might not use USB_ACM kernel module

Thanks for quick answer.

I know that the controller works : I changed my 2 AX12A IDS on win 10 and Dynamixel wizard.

I received it yesterday.

Ok for plugging usb2ax on win10…

I’m a bit newbie on kernel process. Perhaps could you spend a bit of time and tell me what to do on win, to recover USB2AX kernel version…

Thanks datthnguyen.

Vincent

Well, after some researches on web, it seems that my TX2 doesn’t have the USB Modem (CDC ACM) support
module.

how could i verify it presence on my system ?

here is usb part of my kernel ./config :

Linux/arm64 4.4.15 Kernel Configuration

USB HID support

CONFIG_USB_HID=y

CONFIG_HID_PID is not set

CONFIG_USB_HIDDEV is not set

I2C HID support

CONFIG_I2C_HID is not set

CONFIG_USB_OHCI_LITTLE_ENDIAN=y
CONFIG_USB_SUPPORT=y
CONFIG_USB_COMMON=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB=y
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y

Miscellaneous USB options

CONFIG_USB_DEFAULT_PERSIST=y

CONFIG_USB_DYNAMIC_MINORS is not set

CONFIG_USB_OTG=y

CONFIG_USB_OTG_WHITELIST is not set

CONFIG_USB_OTG_BLACKLIST_HUB is not set

CONFIG_USB_OTG_FSM is not set

CONFIG_USB_ULPI_BUS is not set

CONFIG_USB_MON is not set

CONFIG_USB_WUSB_CBAF is not set

USB Host Controller Drivers

CONFIG_USB_C67X00_HCD is not set

CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_PCI=y
CONFIG_USB_XHCI_PLATFORM=y
CONFIG_USB_XHCI_TEGRA=y

CONFIG_USB_EHCI_HCD is not set

CONFIG_USB_OXU210HP_HCD is not set

CONFIG_USB_ISP116X_HCD is not set

CONFIG_USB_ISP1362_HCD is not set

CONFIG_USB_FOTG210_HCD is not set

CONFIG_USB_MAX3421_HCD is not set

CONFIG_USB_OHCI_HCD is not set

CONFIG_USB_UHCI_HCD is not set

CONFIG_USB_SL811_HCD is not set

CONFIG_USB_R8A66597_HCD is not set

CONFIG_USB_HCD_TEST_MODE is not set

USB Device Class drivers

CONFIG_USB_ACM=y

CONFIG_USB_PRINTER is not set

CONFIG_USB_WDM is not set

CONFIG_USB_TMC is not set

NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may

also be needed; see USB_STORAGE Help for more info

CONFIG_USB_STORAGE=y

CONFIG_USB_STORAGE_DEBUG is not set

CONFIG_USB_STORAGE_REALTEK is not set

CONFIG_USB_STORAGE_DATAFAB is not set

CONFIG_USB_STORAGE_FREECOM is not set

CONFIG_USB_STORAGE_ISD200 is not set

CONFIG_USB_STORAGE_USBAT is not set

CONFIG_USB_STORAGE_SDDR09 is not set

CONFIG_USB_STORAGE_SDDR55 is not set

CONFIG_USB_STORAGE_JUMPSHOT is not set

CONFIG_USB_STORAGE_ALAUDA is not set

CONFIG_USB_STORAGE_ONETOUCH is not set

CONFIG_USB_STORAGE_KARMA is not set

CONFIG_USB_STORAGE_CYPRESS_ATACB is not set

CONFIG_USB_STORAGE_ENE_UB6250 is not set

CONFIG_USB_UAS is not set

USB Imaging devices

CONFIG_USB_MDC800 is not set

CONFIG_USB_MICROTEK is not set

CONFIG_USBIP_CORE is not set

CONFIG_USB_MUSB_HDRC is not set

CONFIG_USB_DWC3 is not set

CONFIG_USB_DWC2 is not set

CONFIG_USB_CHIPIDEA is not set

CONFIG_USB_ISP1760 is not set

USB port drivers

CONFIG_USB_SERIAL=y

CONFIG_USB_SERIAL_CONSOLE is not set

CONFIG_USB_SERIAL_GENERIC is not set

CONFIG_USB_SERIAL_SIMPLE is not set

CONFIG_USB_SERIAL_AIRCABLE is not set

CONFIG_USB_SERIAL_ARK3116 is not set

CONFIG_USB_SERIAL_BELKIN is not set

CONFIG_USB_SERIAL_CH341 is not set

CONFIG_USB_SERIAL_WHITEHEAT is not set

CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set

CONFIG_USB_SERIAL_CP210X is not set

CONFIG_USB_SERIAL_CYPRESS_M8 is not set

CONFIG_USB_SERIAL_EMPEG is not set

CONFIG_USB_SERIAL_FTDI_SIO=y

CONFIG_USB_SERIAL_VISOR is not set

CONFIG_USB_SERIAL_IPAQ is not set

CONFIG_USB_SERIAL_IR is not set

CONFIG_USB_SERIAL_EDGEPORT is not set

CONFIG_USB_SERIAL_EDGEPORT_TI is not set

CONFIG_USB_SERIAL_F81232 is not set

CONFIG_USB_SERIAL_GARMIN is not set

CONFIG_USB_SERIAL_IPW is not set

CONFIG_USB_SERIAL_IUU is not set

CONFIG_USB_SERIAL_KEYSPAN_PDA is not set

CONFIG_USB_SERIAL_KEYSPAN is not set

CONFIG_USB_SERIAL_KLSI is not set

CONFIG_USB_SERIAL_KOBIL_SCT is not set

CONFIG_USB_SERIAL_MCT_U232 is not set

CONFIG_USB_SERIAL_METRO is not set

CONFIG_USB_SERIAL_MOS7720 is not set

CONFIG_USB_SERIAL_MOS7840 is not set

CONFIG_USB_SERIAL_MXUPORT is not set

CONFIG_USB_SERIAL_NAVMAN is not set

CONFIG_USB_SERIAL_PL2303=y

CONFIG_USB_SERIAL_OTI6858 is not set

CONFIG_USB_SERIAL_QCAUX is not set

CONFIG_USB_SERIAL_QUALCOMM is not set

CONFIG_USB_SERIAL_SPCP8X5 is not set

CONFIG_USB_SERIAL_SAFE is not set

CONFIG_USB_SERIAL_SIERRAWIRELESS is not set

CONFIG_USB_SERIAL_SYMBOL is not set

CONFIG_USB_SERIAL_TI is not set

CONFIG_USB_SERIAL_CYBERJACK is not set

CONFIG_USB_SERIAL_XIRCOM is not set

CONFIG_USB_SERIAL_WWAN=y
CONFIG_USB_SERIAL_OPTION=y

CONFIG_USB_SERIAL_OMNINET is not set

CONFIG_USB_SERIAL_OPTICON is not set

CONFIG_USB_SERIAL_XSENS_MT is not set

CONFIG_USB_SERIAL_WISHBONE is not set

CONFIG_USB_SERIAL_SSU100 is not set

CONFIG_USB_SERIAL_QT2 is not set

CONFIG_USB_SERIAL_DEBUG is not set

USB Miscellaneous drivers

CONFIG_USB_EMI62 is not set

CONFIG_USB_EMI26 is not set

CONFIG_USB_ADUTUX is not set

CONFIG_USB_SEVSEG is not set

CONFIG_USB_RIO500 is not set

CONFIG_USB_LEGOTOWER is not set

CONFIG_USB_LCD is not set

CONFIG_USB_LED is not set

CONFIG_USB_CYPRESS_CY7C63 is not set

CONFIG_USB_CYTHERM is not set

CONFIG_USB_IDMOUSE is not set

CONFIG_USB_FTDI_ELAN is not set

CONFIG_USB_APPLEDISPLAY is not set

CONFIG_USB_LD is not set

CONFIG_USB_TRANCEVIBRATOR is not set

CONFIG_USB_IOWARRIOR is not set

CONFIG_USB_TEST is not set

CONFIG_USB_EHSET_TEST_FIXTURE is not set

CONFIG_USB_ISIGHTFW is not set

CONFIG_USB_YUREX is not set

CONFIG_USB_EZUSB_FX2 is not set

CONFIG_USB_HSIC_USB3503 is not set

CONFIG_USB_LINK_LAYER_TEST is not set

USB Physical Layer drivers

CONFIG_USB_PHY is not set

CONFIG_USB_OTG_WAKELOCK is not set

CONFIG_NOP_USB_XCEIV is not set

CONFIG_USB_GPIO_VBUS is not set

CONFIG_USB_ISP1301 is not set

CONFIG_USB_ULPI is not set

CONFIG_USB_GADGET=y

CONFIG_USB_GADGET_DEBUG is not set

CONFIG_USB_GADGET_DEBUG_FILES is not set

CONFIG_USB_GADGET_DEBUG_FS is not set

CONFIG_USB_GADGET_VBUS_DRAW=2
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2

USB Peripheral Controller

CONFIG_USB_FOTG210_UDC is not set

CONFIG_USB_GR_UDC is not set

CONFIG_USB_R8A66597 is not set

CONFIG_USB_PXA27X is not set

CONFIG_USB_MV_UDC is not set

CONFIG_USB_MV_U3D is not set

CONFIG_USB_M66592 is not set

CONFIG_USB_BDC_UDC is not set

CONFIG_USB_AMD5536UDC is not set

CONFIG_USB_NET2272 is not set

CONFIG_USB_NET2280 is not set

CONFIG_USB_GOKU is not set

CONFIG_USB_EG20T is not set

CONFIG_USB_GADGET_XILINX is not set

CONFIG_USB_TEGRA_XUDC=y

CONFIG_USB_DUMMY_HCD is not set

CONFIG_USB_TEGRA_CD=y
CONFIG_USB_LIBCOMPOSITE=y
CONFIG_USB_F_ACM=y
CONFIG_USB_U_SERIAL=y
CONFIG_USB_F_MASS_STORAGE=y

CONFIG_USB_CONFIGFS is not set

CONFIG_USB_ZERO is not set

CONFIG_USB_AUDIO is not set

CONFIG_USB_ETH is not set

CONFIG_USB_G_NCM is not set

CONFIG_USB_GADGETFS is not set

CONFIG_USB_FUNCTIONFS is not set

CONFIG_USB_MASS_STORAGE is not set

CONFIG_USB_G_SERIAL is not set

CONFIG_USB_MIDI_GADGET is not set

CONFIG_USB_G_PRINTER is not set

CONFIG_USB_CDC_COMPOSITE is not set

CONFIG_USB_G_ACM_MS=y

CONFIG_USB_G_MULTI is not set

CONFIG_USB_G_HID is not set

CONFIG_USB_G_DBGP is not set

CONFIG_USB_G_WEBCAM is not set

This is a similar question, though from a TK1:
https://devtalk.nvidia.com/default/topic/795194/jetson-tk1/unable-to-write-to-usb-serial-device/

On the running Jetson you can see the exact current config from “gunzip < /proc/config.gz”.

FYI, FTDI devices are almost always there by default. It might be you need the communications class USB driver, or you may need a udev rule to rename the tty. Monitor “dmesg --follow” while unplugging and plugging the device to get more info on what driver level is being supported.

thanks linuxdev,

I did a dmesg --follow.

when i plug usb2ax :

[29471.618354] usb 1-2.3: new full-speed USB device number 8 using xhci-tegra
[29471.715515] usb 1-2.3: New USB device found, idVendor=16d0, idProduct=06a7
[29471.722714] usb 1-2.3: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[29471.730258] usb 1-2.3: Product: USB2AX
[29471.734058] usb 1-2.3: Manufacturer: Xevelabs
[29471.738492] usb 1-2.3: SerialNumber: 74031303437351909120
[29471.744636] usb 1-2.3: ep 0x82 - rounding interval to 1024 microframes, ep desc says 2040 microframes

and nothing else. no tty !!!

so,
I tried a udev rule :
sudo gedit /etc/udev/rules.d/81-USB2AX_elpimous.rules

KERNEL==“ttyACM*”, ATTRS{idVendor}==“16d0”, ATTRS{idProduct}==“06a7” SYMLINK+=“usb2AX_elpimous” NAME=“ttyACM0”

sudo /etc/init.d/udev restart

doesn’t work !

i’m a bit disappointed !

Should the cdc_acm module appear here ?

nvidia@tegra-ubuntu:~$ lsmod
Module Size Used by
fuse 88496 3
bnep 15605 2
bluetooth 552134 7 bnep
iptable_filter 2281 1
ip_tables 18833 1 iptable_filter
snd_usb_audio 182928 3
snd_usbmidi_lib 26147 1 snd_usb_audio
bcmdhd 7629550 0
pci_tegra 72142 0
bluedroid_pm 13874 0

Hello,
I see the problem.
The module isn’t loaded !!

Following jetsonhack kernel process (video steps), with kernel name “-elpimous-V0.1” when I reboot,
uname -r tells me : 4.4.15-tegra

I think that copyImage.sh doesn’t work on my system !!

I boot on SSD disk, so here is perhaps my problem…

Any help ?

The base kernel Image determines the response from “uname -r”. The CONFIG_LOCALVERSION used during the base kernel compile determines the suffix of “uname -r”, while the base kernel version provides the prefix. So “4.4.15” with CONFIG_LOCALVERSION of “-tegra” will give the “uname -r” you saw. This also implies modules will be searched for in:

/lib/modules/$(uname -r)/
# I.E.:
/lib/modules/4.4.15-tegra/

If the modules were put in “/lib/modules/4.4.15-elpimous-V0.1/” they will not be found by that kernel. You’d want to compile against your existing “/proc/config.gz”, but with CONFIG_LOCALVERSION of “-tegra” if you are to use the existing kernel. To place modules in “/lib/modules/4.4.15-elpimous-V0.1/” you will need to rebuild the kernel itself and all modules. Check closely where that script copies to, and verify which CONFIG_LOCALVERSION you used during the module build.

In a case where a module has been added to the correct location you might want to update module config via “sudo depmod -a”.

Friends, Thanks for all your help (great forum)

I finally had success, and I share :

Add module on kernel:

Board : Jetson TX2
Boot : SSD
Howto : http://www.jetsonhacks.com/2017/03/25/build-kernel-and-modules-nvidia-jetson-tx2/

–> just after the command : ./copyImage.sh,

Image is finished, ready to read… But,
Image is on a wrong directory (on the SSD Disk !!!)
You must put it on the TX2 board 32Go disk !

backup image in board disk :
sudo cp /media/nvidia/xxxxxx/boot/Image/media/nvidia/xxxxxx/boot/Image_backup

sudo cp /boot/Image/media/nvidia/xxxxxx/boot/Image

sudo reboot

test :

$ uname -r
4.4.15-elpimous-V1.0

Feels good…

$ ls /dev/ttyACM*
/dev/ttyACM0

WORKS !!!

Enjoy

Vincent.