1 前言
NVIDIA Jetson TX2的Ubuntu 16.04系統上沒有安裝CH341和CP210x驅動,開始我並沒有意識到這個問題。
明明用lsusb
識別到了設備,爲什麼沒有ttyUSB*
?爲什麼在x86的PC上就有?後來才發現原來沒有驅動!
經驗就是不斷踩坑積累的,都得經歷這些,才能成長。
雖然NVIDIA Jetson TX2對開發者已經很友好了,但還是希望將來系統能夠預裝CH341和CP210x驅動,節省大家的時間。
2 安裝CH341和CP210x驅動
2.1 方法1
注意:這個方法會消耗很多硬盤存儲空間,建議在操作前保留一定的存儲空間。
1.從Github下載文件
$ git clone https://github.com/jetsonhacks/buildJetsonTX2Kernel.git
$ cd buildJetsonTX2Kernel
# 如果你使用的`Tegra`版本是 `L4T 28.1`,那麼需要切換分支:
$ git checkout vL4T28.1
如何區分自己的版本是L4T 27.1
,還是L4T 28.1
?
- 使用命令
uname -r
提示的消息是4.4.15-tegra
,則說明版本是L4T 27.1
- 使用命令
uname -r
提示的消息是4.4.38ingl-tegra
,則說明版本是L4T 28.1
2.獲取內核源碼
./getKernelSources.sh
源碼下載完畢後,腳本會打開一個配置界面。
(1)選擇Genral Setup->Local version-append to kernel release
,雙擊Local version - append to kernel release
,在窗口底部的文本框內輸入-jetsonbot-v0.1
,然後安回車鍵確認,如圖所示:
(2)按Ctrl+F
,彈出一個搜索框,輸入你想要添加的設備驅動,比如這裏添加CH341和cp210x串口驅動 ,如圖所示:
(3)點擊File->Save
保存設置。
3.編譯內核
./makeKernel.sh
腳本文件makeKernel.sh
會給一部分Makefile文件更新補丁以滿足NVIDIA Jetson TX2平臺的編譯條件,之後就開始內核編譯。
腳本中的make modules install
命令會將模塊安裝到/lib/modules/
目錄中。
4.將之前的啓動鏡像更新爲新的鏡像
./copyImage.sh
腳本文件copyImage.sh
會將新的編譯鏡像Image
和zImage
文件拷貝到/boot
目錄。
5.重新啓動系統
reboot
6.刪除步驟2下載的源文件
源文件的下載目錄爲/usr/src
:
sudo rm -rf kernel sources r27.1.0_sources.tbz2 kernel_src.tbz2
2.2 方法2
聲明:這個方法我沒有測試,是後來看到的,但是感覺會比方法1簡單,所以也記錄在這裏,後面有機會再測試。
1.從Github下載文件
git clone https://github.com/jetsonhacks/instalACMMoudle.git
2.查看是否有CH341和CP210x驅動
lsusb
lsmod
lsusb
一般都會識別到設備,但並不代表有設備驅動,需要使用lsmod
確認。
3.安裝CH341和CP210x驅動
cd installACMMoudle/
./installCH341.sh
./installCP210x.sh
4.確認CH341和CP210x驅動是否安裝成功
lsmod
3 參考
https://blog.csdn.net/pressuress/article/details/79253483
https://www.jetsonhacks.com/2017/03/25/build-kernel-and-modules-nvidia-jetson-tx2/
https://www.youtube.com/watch?v=tDZF7ntLbxc
https://blog.csdn.net/just_sort/article/details/81292263
https://github.com/jetsonhacks/installACMModule