當(dāng)前位置: 首頁(yè) > 傳感測(cè)量產(chǎn)品 > 工業(yè)傳感器 > 溫濕度傳感器
發(fā)布日期:2022-04-18 點(diǎn)擊率:123
關(guān)鍵詞: ARM Linux Ethernet
摘要:隨著ARM處理器性能的提升以及嵌入式設(shè)備對(duì)聯(lián)網(wǎng)的需求越來越多,目前主流ARM處理器以及板卡主要原生提供一個(gè)百兆或者千兆網(wǎng)絡(luò)接口在一些應(yīng)用場(chǎng)景已經(jīng)不能滿足需求,因此本文就著重介紹在嵌入式Linux下對(duì)ARM平臺(tái)警醒網(wǎng)口擴(kuò)展方案。
1). 簡(jiǎn)介
隨著ARM處理器性能的提升以及嵌入式設(shè)備對(duì)聯(lián)網(wǎng)的需求越來越多,目前主流ARM處理器以及板卡主要原生提供一個(gè)百兆或者千兆網(wǎng)絡(luò)接口在一些應(yīng)用場(chǎng)景已經(jīng)不能滿足需求,因此本文就著重介紹在嵌入式Linux下對(duì)ARM平臺(tái)警醒網(wǎng)口擴(kuò)展方案。
對(duì)于ARM平臺(tái),如果有提供PCIE接口,則是擴(kuò)展網(wǎng)口尤其是千兆網(wǎng)口的最佳選擇;而對(duì)于有些平臺(tái)沒有提供PCIE或者已經(jīng)被其他設(shè)備占用,則可以考慮使用USB擴(kuò)展,需要注意的是如果擴(kuò)展百兆接口則USB2.0接口帶寬可以滿足需求,而如需擴(kuò)展千兆網(wǎng)口,則最好使用USB3.0,否則有可能在USB總線處造成網(wǎng)絡(luò)帶寬的瓶頸。
本文就以Toradex Apalis iMX6 ARM計(jì)算機(jī)模塊平臺(tái)來展示網(wǎng)口擴(kuò)展,由于其提供了USB2.0和PCIE x1接口,我們會(huì)對(duì)上述兩種方式都進(jìn)行測(cè)試。
2). 準(zhǔn)備
a). Toradex Apalis iMX6D 512M 計(jì)算機(jī)模塊搭配Apalisevaluation Board載板
b). USB網(wǎng)卡
./ AX8872B USB2.0 轉(zhuǎn)百兆網(wǎng)口
./ AX88179 USB3.0 轉(zhuǎn)千兆網(wǎng)口
c). PCIE網(wǎng)卡
./ Intel 82580 PCIE x1 轉(zhuǎn)雙千兆網(wǎng)口
./ Realtek RTL8168 PCIE x1 轉(zhuǎn)千兆網(wǎng)口
d). 嵌入式Linux
./ Toradex 最新Linux發(fā)布版本V2.6.1beta1
e). 帶寬測(cè)試
./ Apalis iMX6 擴(kuò)展網(wǎng)口連接局域網(wǎng)千兆交換機(jī),通過DHCP獲取IP地址,并和同一局域網(wǎng)內(nèi)的Windows PC進(jìn)行iperf帶寬傳輸測(cè)試。
./ Apalis iMX6 網(wǎng)口IP等配置有多種方式可以使用,詳細(xì)請(qǐng)見這里,本文使用配置”/etc/systemd/network/wired.network”文件方式。
3). 具體測(cè)試
a).AX8872B USB2.0 轉(zhuǎn)百兆網(wǎng)口
驅(qū)動(dòng)Linux image 原生支持,即插即用。
Iperf測(cè)試帶寬數(shù)據(jù)如下,接近百兆線速。
b). AX88179USB3.0 轉(zhuǎn)千兆網(wǎng)口
./ 驅(qū)動(dòng)同樣Linux image 原生支持,即插即用。
./ Iperf測(cè)試帶寬數(shù)據(jù)如下,可以看到帶寬相比百兆網(wǎng)口還是明顯上升,不過由于USB 2.0接口的瓶頸,在真正USB3.0接口下應(yīng)還有一定提升。
另外,對(duì)于USB網(wǎng)卡,如果遇到image沒有自帶驅(qū)動(dòng)的時(shí)候,可以進(jìn)入下載內(nèi)核源碼進(jìn)入內(nèi)核config看是否有現(xiàn)成的驅(qū)動(dòng)可以選擇,如筆者手里還有一個(gè)RTL8153 USB3.0 轉(zhuǎn)千兆網(wǎng)口網(wǎng)卡,則在內(nèi)核中有現(xiàn)成的驅(qū)動(dòng),位置在[Device Drivers -> Network device support -> USB NetworkAdapters]。
c). Intel82580 PCIE x1 轉(zhuǎn)雙千兆網(wǎng)口
./ 驅(qū)動(dòng)image中沒有原生支持,需要按照這里的說明下載內(nèi)核源碼,在內(nèi)核config中有提供現(xiàn)成的源碼,位于[Device Drivers -> Network device support -> Ethernet driversupport -> Intel (R) 82575/82576 PCI-Express Gigabit Ethernet support]選中即可,然后繼續(xù)按照上面說明文檔重新編譯內(nèi)核并更新呢部署到iMX6模塊上面。
./ 單網(wǎng)口Iperf測(cè)試帶寬數(shù)據(jù)如下,可以看到?jīng)]有了USB2.0的限制,傳輸帶寬明顯提高。
d). RealtekRTL8168 PCIE x1 轉(zhuǎn)千兆網(wǎng)口
./ 驅(qū)動(dòng)image中沒有原生支持,Linux內(nèi)核中也沒有提供驅(qū)動(dòng),因此需要手動(dòng)編譯,流程如下:
-從Realtek官網(wǎng)這里下載RTL8168最新Linux驅(qū)動(dòng)源碼(支持3.x內(nèi)核版本),需和之前下載Linux內(nèi)核為同一Linux主機(jī),因需要內(nèi)核文件做交叉編譯。
-解壓源碼包,如下修改源碼包中src/Makefile
--------------------------------
……
baseDIR := /…/linux-toradex (Linux 內(nèi)核源碼linux-toradex目錄路徑)
KERNELDIR ?= $(baseDIR)
……
--------------------------------
-退出src目錄,在源碼包根目錄執(zhí)行”make”命令進(jìn)行編譯,編譯ko文件可以成功,install由于沒有正確安裝路徑?jīng)]有成功,不過沒有關(guān)系,我們只需要ko文件即可。
-編譯后進(jìn)入src目錄,找到”r8168.ko”驅(qū)動(dòng)文件,可以使用file命令查看下是否交叉編譯成功,是針對(duì)ARM的驅(qū)動(dòng)。
--------------------------------
file r8168.ko
r8168.ko: ELF 32-bit LSB relocatable, ARM, EABI5 version 1 (SYSV),BuildID[sha1]=334c9e891b90767efd17727b3b93d23b0fb90ec7, not stripped
--------------------------------
-將”r8168.ko”驅(qū)動(dòng)復(fù)制到iMX6核心板上面,使用”insmod”命令進(jìn)行加載,在本文網(wǎng)絡(luò)環(huán)境下,筆者運(yùn)行” udhcpc -i enp1s0”來獲取IP。
./ Iperf測(cè)試帶寬數(shù)據(jù)如下,和Intel PCIE網(wǎng)卡基本一致。
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV