注:參考【正點原子】I.MX6U嵌入式Linux驅動開發指南V1.6
一、Ubuntu 和 Windows 文件互傳
在開發的過程中會頻繁的在 Windows 和 Ubuntu 下進行文件傳輸,比如在 Windwos 下進行代碼編寫,然后將編寫好的代碼拿到 Ubuntu 下進行編譯。Windows 和 Ubuntu 下的文件互傳我們需要使用 FTP 服務,設置方法如下:
1、開啟 Ubuntu 下的 FTP 服務
打開 Ubuntu 的終端窗口,然后執行如下命令來安裝 FTP 服務:
sudo apt-get install vsftpd
等待軟件自動安裝,安裝完成后使用 VI 命令打開/etc/vsftpd.conf,如下:
sudo vi /etc/vsftpd.conf
打開 vsftpd.conf 文件以后找到如下兩行:
local_enable=YESwrite_enable=YES
確保上面兩行前面沒有“#”,有的話就取消掉,完成以后如圖 4.1.1 所示:
修改完 vsftpd.conf 以后保存退出,使用如下命令重啟 FTP 服務:
sudo /etc/init.d/vsftpd restart
2、Windows 下 FTP 客戶端安裝
Windows 下 FTP 客戶端我們使用 FileZilla,這是個免費的 FTP 客戶端軟件,可以在 FileZilla官網下載,下載地址如下:https://www.filezilla.cn/download
Ubuntu 作為 FTP 服務器,FileZilla 作為 FTP 客戶端,客戶端肯定要連接到服務器上,打開站點管理器,點擊:文件->站點管理器,點擊“新站點(N)”按鈕來創建站點,新建站點以后就會在“我的站點”下出現新建的這個站點,站點的名稱可以自行修改,選中新創建的站點,然后對站點的“常規”進行設置,設置如圖所示:
Ubuntu系統查看IP地址,在終端輸入:
ifconfig
如果提示'Command 'ifconfig' not found, but can be installed with:sudo apt install net-tools”,在終端輸入:
sudo apt install net-tools
如果Ubuntu 文件目錄下的中文目錄都是亂碼的,這是因為編碼方式沒有選對,先斷開連接,點擊:服務器(S)->斷開連接,然后打開站點管理器,選中要設置的站點“Ubuntu”,選擇“字符集”,如下圖所示。
3、Ubuntu 下 NFS 和 SSH 服務開啟
3.1 NFS 服務開啟
后面進行 Linux 驅動開發的時候需要 NFS 啟動,因此要先安裝并開啟 Ubuntu 中的 NFS 服務,使用如下命令安裝 NFS 服務:
sudo apt-get install nfs-kernel-server rpcbind
等待安裝完成,安裝完成以后在用戶根目錄下創建一個名為“linux”的文件夾,以后所有的東西都放到這個“linux”文件夾里面,在“linux”文件夾里面新建一個名為“nfs”的文件夾,如圖所示:
圖中創建的 nfs 文件夾供 nfs 服務器使用,可以在開發板上通過網絡文件系統來訪問 nfs ,要先配置 nfs,使用如下命令打開 nfs 配置文件/etc/exports:
sudo vi /etc/exports
打開/etc/exports 以后在后面添加如下所示內容:
/home/kodo/linux/nfs *(rw,sync,no_root_squash)
添加完成以后的/etc/exports 如圖 所示:
重啟 NFS 服務,使用命令如下:
sudo /etc/init.d/nfs-kernel-server restart
3.2 SSH 服務開啟
開啟 Ubuntu 的 SSH 服務以后我們就可以在 Windwos 下使用終端軟件登陸到 Ubuntu,比如使用 SecureCRT,Ubuntu 下使用如下命令開啟 SSH 服務:
sudo apt-get install openssh-server
上述命令安裝 ssh 服務,ssh 的配置文件為/etc/ssh/sshd_config,使用默認配置即可。
二、Ubuntu 交叉編譯工具鏈安裝
1、交叉編譯器安裝
ARM 裸機、Uboot 移植、Linux 移植這些都需要在 Ubuntu 下進行編譯,編譯就需要編譯器,我們在第三章“Linux C 編程入門”里面已經講解了如何在 Liux 進行 C 語言開發,里面使用 GCC 編譯器進行代碼編譯,但是 Ubuntu 自帶的 gcc 編譯器是針對 X86 架構的!而我們現在要編譯的是 ARM 架構的代碼,所以我們需要一個在 X86 架構的 PC 上運行,可以編譯 ARM 架構代碼的 GCC 編譯器,這個編譯器就叫做交叉編譯器,總結一下交叉編譯器就是:
1、它肯定是一個 GCC 編譯器。
2、這個 GCC 編譯器是運行在 X86 架構的 PC 上的。
3、這個 GCC 編譯器是編譯 ARM 架構代碼的,也就是編譯出來的可執行文件是在 ARM 芯片上運行的。
交叉編譯器中“交叉”的意思就是在一個架構上編譯另外一個架構的代碼,相當于兩種架構“交叉”起來了。
交叉編譯器有很多種,我們使用 Linaro 出品的交叉編譯器,Linaro 是一間非營利性質的開放源代碼軟件工程公司,Linaro 開發了很多軟件,最著名的就是 Linaro GCC 編譯工具鏈(編譯器),關于 Linaro 詳細的介紹可以到 Linaro 官網查閱。Linaro GCC 編譯器下載地址如下:
https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/
打開以后下載界面如圖所示:
在圖中有很多種 GCC 交叉編譯工具鏈,我所使用的 I.MX6U-ALPHA 開發板是一個 Cortex-A7 內核的開發板,因此選擇 arm-linux-gnueabihf,點擊后面的 “Binaries”進入可執行文件下載界面,如圖所示:
在寫教程的時最新的編譯器版本是 7.3.1,但在測試 7.3.1 版本編譯器的時候發現編譯完成后的 uboot 無法運行。所以不推薦使用最新版的編譯器。筆者測試過 4.9 版本的編譯器可以正常工作,所以需要下載 4.9 版本的編譯器,下載地址為:
https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/
上圖中有很多種交叉編譯器,我們只需要關注這兩種:
gcc-linaro-4.9.4-2017.01-i686_arm-linux-gnueabihf.tar.tar.xz gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
第一個是針對 32 位系統的,第二個是針對 64 位系統的。大家根據自己所使用的 Ubuntu 系統類型選擇合適的版本,比如我安裝的 Ubuntu 16.04 是 64 位系統,因此我要使用 :
gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
在 Ubuntu 中創建目錄:/usr/local/arm,命令如下:
sudo mkdir /usr/local/arm
創建完成以后將剛剛拷貝的交叉編譯器復制到 /usr/local/arm 這個目錄中,在終端使用命令“ cd ” 進入到存放有交叉編譯器的目錄,比如我前面將交叉編譯器拷貝到了目錄“/home/zuozhongkai/linux/tool”中,然后使用如下命令將交叉編譯器復制到 /usr/local/arm 中:
sudo cp gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz /usr/local/arm/ -f
操作步驟如圖所示:
拷貝完成以后在/usr/local/arm 目錄中對交叉編譯工具進行解壓,命令如下:
sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
等待解壓完成,解壓完成以后會生成一個名為“gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf”的文件夾,這個文件夾里面就是我們的交叉編譯工具鏈。
修改環境變量,使用 VI 打開/etc/profile 文件,命令如下:
sudo vi /etc/profile
打開/etc/profile 以后,在最后面輸入如下所示內容:
export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin
添加完成以后的/etc/profile 如圖所示:
修改好以后就保存退出,重啟 Ubuntu 系統,交叉編譯工具鏈(編譯器)就安裝成功了。
三、VS Code安裝
VSCode 下載地址是:https://code.visualstudio.com/
1、Windows 版本安裝
手動下載安裝
2、Linux 版本安裝
Linux 下的 VSCode 安裝包為.deb 格式,使用如下命令安裝:
sudo dpkg -i code_1.32.3-1552606978_amd64.deb
3、Visual Studio Code 插件的安裝
VSCode 支持多種語言,比如 C/C++、Python、C#等等,主要用來編寫 C/C++ 程序的,所以需要安裝 C/C++ 的擴展包,我們需要按照的插件有下面幾個:
1)、One Dark Pro,VSCode 的主題。
2)、C/C++ Snippets,即 C/C++重用代碼塊。
3)、C/C++ Advanced Lint,即 C/C++靜態檢測 。
4)、Code Runner,即代碼運行。
5)、GBKtoUTF8,將 GBK 轉換為 UTF8。
6)、ARM,即支持 ARM 匯編語法高亮顯示。
7)、C/C++,這個肯定是必須的。
8)、Include AutoComplete,即自動頭文件包含。
9)、Rainbow Brackets,彩虹花括號,有助于閱讀代碼。
10)、Chinese(Simplified),即中文環境。
11)、vscode-icons,VSCode 圖標插件,主要是資源管理器下各個文件夾的圖標。
12)、compareit,比較插件,可以用于比較兩個文件的差異。
13)、DeviceTree,設備樹語法插件。
14)、TabNine,一款 AI 自動補全插件,強烈推薦,誰用誰知道!
上一篇:【IMX6ULL學習筆記】二、U-Boot命令合集
下一篇:IMX6ULL開發平臺Linux-LED實驗
推薦閱讀最新更新時間:2025-04-23 16:10






設計資源 培訓 開發板 精華推薦
- LTC3630EDHC 5V 至 65V 輸入至 5V 輸出、150mA 穩壓器和 20kHz 最小突發頻率的典型應用電路
- LT1172CS8、1.25A 驅動高壓 FET 的典型應用,適用于離線應用
- 使用 LTC3612EFE 3A、4MHz 單片同步降壓轉換器的典型應用
- AMW006 Wi-Fi模塊典型應用
- LTC4085 演示板,DFN 3X4 中的 USB 電源解決方案
- 用于 30kHz PWM 調光的 LT3761EMSE-1 升壓 LED 驅動器的典型應用電路
- LD2981ABU50TR 5 Vout超低壓降穩壓器典型應用
- 霍爾磁控開關
- 使用 Analog Devices 的 LT1328 的參考設計
- DER-366 - 適用于 PAR38 燈的 20 W 高效率 >86% TRIAC 可調光 LED 驅動器
- 高通攜手中國“汽車朋友圈”亮相2025上海車展: 加速駕駛輔助普惠,推動艙駕創新升級
- 工業市場正在快速回暖,德州儀器如何重塑電力電子市場?
- 特斯拉:美國交付的Model Y/3電池包已實現100%美國生產
- 地平線與博世深化合作,攜手為多家車企提供輔助駕駛產品
- 強化中國市場戰略布局,德州儀器正靈活應對全球關稅挑戰
- Molex莫仕通過本地合作和創新加強支持中國汽車行業
- 貿澤開售Texas Instruments適用于高分辨率AR HUD的 全新DLP4620S-Q1 0.46"汽車數字微鏡器件
- ROHM推出高功率密度的新型SiC模塊,將實現車載充電器小型化!
- 用上車規級UFS 4.0,讓出行變得高效且可靠
- 車載測試技術解析:聚焦高帶寬、多通道同步采集與協議分析