├── LICENSE
├── README.md
├── cdc-acm.ko
├── ch341.ko
├── cp210x.ko
├── installCDCACM.sh
├── installCH341.sh
└── installCP210x.sh
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 Jetsonhacks
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
24 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # installACMModule
2 | MIT License
3 |
4 | Copyright (c) 2017-2018 Jetsonhacks
5 |
6 | There are scripts in this repository which install USB kernel modules which are not in the L4T 28.1 build. The modules:
7 |
8 |
- cdc-acm
9 | - cp210x
10 | - ch341
11 |
12 |
13 | cdc-acm kernel module
14 | Install the CDC ACM Module for the Jetson TX1 or Jetson TX2 Development Kit
15 |
16 | This script adds a module for USB Host functions to support Communication Device Class (CDC) Abstract Control Module (ACM) USB Devices.
17 |
18 | Typically these USB devices report as ttyACM* (where * is an integer). ACM devices have a lineage that goes back to modems and other network types of devices. However, many USB devices (such as an Arduino) are implemented using this simple USB protocol. The stock L4T 28.1 kernel does not have a CDC ACM module built in to the kernel, or as a separate module. This script adds cdc-acm.ko as a module so that such devices can be accessed through ttyACM*.
19 |
20 | To install:
21 |
22 | $ sudo ./installCDCACM.sh
23 |
24 | cp210x USB to serial converter
25 | This script install the CP210x USB to serial converter module. There are several different types of USB to serial converters (FTDI is built into the L4T 28.1 kernel), the CP210x is used by devices such as the RP-LIDAR products
26 |
27 | ch341
28 | This script install the CH-341 USB to serial converter module. There are several different types of USB to serial converters (FTDI is built into the L4T 28.1 kernel), this is the CH-341 which is used by many Arduino clones.
29 |
30 |
31 | Notes
32 | These scripts expect a stock kernel, kernel version 4.4.38-tegra
33 |
34 | More than likely, you will need to replug the USB device for it to be detected properly after installing the kernel module.
35 |
36 | These scripts check the version magic of the module and compares it to the kernel version running on the machine. If the two do not match, the user is asked if they still want to continue the installation. If the two match, the module is installed.
37 |
38 | Note that on a version mismatch, the user can still install the module. However, some extra steps may be needed after the installation to get the module installed fully. The steps are not covered here, but should be readily available elsewhere.
39 |
40 | These scripts are for L4T 28.1. L4T version 28.2 includes cp210x and cdc-acm modules.
41 |
42 | Release Notes
43 | February, 2018
44 | Add cp210x and ch341 modules and install scripts
45 |
46 | November, 2017
47 | Initial Release
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/cdc-acm.ko:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jetsonhacks/installACMModule/1d0f69c86d7233cb8ede605b29e502019b0135a1/cdc-acm.ko
--------------------------------------------------------------------------------
/ch341.ko:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jetsonhacks/installACMModule/1d0f69c86d7233cb8ede605b29e502019b0135a1/ch341.ko
--------------------------------------------------------------------------------
/cp210x.ko:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jetsonhacks/installACMModule/1d0f69c86d7233cb8ede605b29e502019b0135a1/cp210x.ko
--------------------------------------------------------------------------------
/installCDCACM.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Install the cdc-acm module
3 | # First, does the module version magic match the current kernel version?
4 |
5 | MAGICVERSION=$(modinfo cdc-acm.ko | grep vermagic)
6 | MODULEVERSION=$(echo $MAGICVERSION | cut -d " " -f 2)
7 | KERNELVERSION=$(uname -r)
8 | if [ "$MODULEVERSION" == "$KERNELVERSION" ]
9 | then
10 | echo "Kernel and Module Versions Match; Installing ..."
11 | else
12 | echo "The Kernel version does not match the Module Version"
13 | echo "Kernel Version: " $KERNELVERSION
14 | echo "Module Version: " $MODULEVERSION
15 | while true; do
16 | read -p "Would you still like to install the module? [Y/n] " response
17 | case $response in
18 | [Yy]* ) break ;;
19 | [Nn]* ) exit;;
20 | * ) echo "Please answer Yes or no. " ;;
21 | esac
22 | done
23 | # The module version did not match the kernel version, but user selected to install anyway
24 | echo "You may have to force the module to be inserted, i.e. "
25 | echo "$ sudo modprobe -f cdc-acm"
26 | fi
27 | # Install the cdc-acm module
28 | # Make sure that the drivers/usb/class directory exists
29 | INSTALLDIRECTORY=/lib/modules/$(uname -r)/kernel/drivers/usb/class
30 | sudo mkdir -p "$INSTALLDIRECTORY"
31 | # Then copy over the module file
32 | sudo cp -v cdc-acm.ko $INSTALLDIRECTORY
33 | sudo depmod -a
34 | echo "Installed cdc-acm Module"
35 |
36 |
37 |
--------------------------------------------------------------------------------
/installCH341.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Install the CH341 module
3 | # First, does the module version magic match the current kernel version?
4 |
5 | MAGICVERSION=$(modinfo ch341.ko | grep vermagic)
6 | MODULEVERSION=$(echo $MAGICVERSION | cut -d " " -f 2)
7 | KERNELVERSION=$(uname -r)
8 | if [ "$MODULEVERSION" == "$KERNELVERSION" ]
9 | then
10 | echo "Kernel and Module Versions Match; Installing ..."
11 | else
12 | echo "The Kernel version does not match the Module Version"
13 | echo "Kernel Version: " $KERNELVERSION
14 | echo "Module Version: " $MODULEVERSION
15 | while true; do
16 | read -p "Would you still like to install the module? [Y/n] " response
17 | case $response in
18 | [Yy]* ) break ;;
19 | [Nn]* ) exit;;
20 | * ) echo "Please answer Yes or no. " ;;
21 | esac
22 | done
23 | # The module version did not match the kernel version, but user selected to install anyway
24 | echo "You may have to force the module to be inserted, i.e. "
25 | echo "$ sudo modprobe -f cp210x"
26 | fi
27 | # Install the ch341 module
28 | # Make sure that the drivers/usb/serial directory exists
29 | INSTALLDIRECTORY=/lib/modules/$(uname -r)/kernel/drivers/usb/serial
30 | sudo mkdir -p "$INSTALLDIRECTORY"
31 | # Then copy over the module file
32 | sudo cp -v ch341.ko $INSTALLDIRECTORY
33 | sudo depmod -a
34 | echo "Installed ch341 Module"
35 |
36 |
37 |
--------------------------------------------------------------------------------
/installCP210x.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Install the CP210x module
3 | # First, does the module version magic match the current kernel version?
4 |
5 | MAGICVERSION=$(modinfo cp210x.ko | grep vermagic)
6 | MODULEVERSION=$(echo $MAGICVERSION | cut -d " " -f 2)
7 | KERNELVERSION=$(uname -r)
8 | if [ "$MODULEVERSION" == "$KERNELVERSION" ]
9 | then
10 | echo "Kernel and Module Versions Match; Installing ..."
11 | else
12 | echo "The Kernel version does not match the Module Version"
13 | echo "Kernel Version: " $KERNELVERSION
14 | echo "Module Version: " $MODULEVERSION
15 | while true; do
16 | read -p "Would you still like to install the module? [Y/n] " response
17 | case $response in
18 | [Yy]* ) break ;;
19 | [Nn]* ) exit;;
20 | * ) echo "Please answer Yes or no. " ;;
21 | esac
22 | done
23 | # The module version did not match the kernel version, but user selected to install anyway
24 | echo "You may have to force the module to be inserted, i.e. "
25 | echo "$ sudo modprobe -f cp210x"
26 | fi
27 | # Install the cp210x module
28 | # Make sure that the drivers/usb/serial directory exists
29 | INSTALLDIRECTORY=/lib/modules/$(uname -r)/kernel/drivers/usb/serial
30 | sudo mkdir -p "$INSTALLDIRECTORY"
31 | # Then copy over the module file
32 | sudo cp -v cp210x.ko $INSTALLDIRECTORY
33 | sudo depmod -a
34 | echo "Installed cp210x Module"
35 |
36 |
37 |
--------------------------------------------------------------------------------