glibc交叉编译_TSN之linuxptp交叉编译
- 0 開(kāi)發(fā)環(huán)境
- 1 linuxptp是什么
- 2 為什么要交叉編譯linuxptp
- 3 修改makefile
- 4 修改源碼
- 5 交叉編譯
0 開(kāi)發(fā)環(huán)境
- 筆記本:ubuntu18.04.5,內(nèi)核版本為5.3
- 開(kāi)發(fā)板:imx8mp-evk
- 內(nèi)核版本:Linux5.4.24
- 交叉編譯工具鏈:fsl-imx-xwayland-glibc-x86_64-imx-image-core-aarch64-imx8mpevk-toolchain-5.4-zeus.sh
注:下面的可能會(huì)遺漏部分細(xì)節(jié),但主要的部分基本都寫(xiě)出來(lái)了,應(yīng)該無(wú)大礙。
注:以下步驟雖然針對(duì)的imx8mp-evk,但只要是aarch64架構(gòu)的芯片,大部分操作都通用的。
注:這是個(gè)人的踩坑記錄,雖然可以解決問(wèn)題,但估計(jì)不是最好的解決方案,歡迎評(píng)論區(qū)一起探討。
1 linuxptp是什么
This software is an implementation of the Precision Time Protocol (PTP) according to IEEE standard 1588 for Linux. The dual design goals are to provide a robust implementation of the standard and to use the most relevant and modern Application Programming Interfaces (API) offered by the Linux kernel. Supporting legacy APIs and other platforms is not a goal.我利用它主要是為了測(cè)試TSN的802.1AS特性,使用的軟件為
- ptp4l
- Implementation of PTP (Ordinary Clock, Boundary Clock)
- phc2sys
- Synchronize two clocks (typically PHC and system clock)
- pmc (PTPManagement Client)
- Send PTP management messages to PTP nodes
如果對(duì)內(nèi)部的實(shí)現(xiàn)協(xié)議感興趣,可以見(jiàn)下面鏈接,以及未來(lái)的總結(jié)。
IEEE1588 ( PTP ) 協(xié)議簡(jiǎn)介?www.cnblogs.com從時(shí)鐘得到4個(gè)精確的兩個(gè)報(bào)文的收發(fā)時(shí)間,就可以計(jì)算出相應(yīng)的offset與delay來(lái)了
注:PTP并沒(méi)有介紹的那么簡(jiǎn)單,還有FSM、PID、Filter等一系列組件,構(gòu)建一個(gè)完整的時(shí)間同步系統(tǒng)。
2 為什么要交叉編譯linuxptp
linuxptp這個(gè)組件在大部分嵌入式linux系統(tǒng)中是標(biāo)配的,至于為什么要交叉編譯的原因是想要利用gbd調(diào)試,而想要調(diào)試就需要在交叉編譯加入調(diào)試信息才可以進(jìn)行調(diào)試。
The Linux PTP Project?linuxptp.sourceforge.net可以通過(guò)git下載最新的版本進(jìn)行編譯
git clone git://git.code.sf.net/p/linuxptp/code linuxptp下面是git下來(lái)的最新代碼,當(dāng)然這個(gè)代碼需要進(jìn)行適當(dāng)修改才可以編譯到我們的板子上去。
3 修改makefile
需要修改的地方主要有以下幾項(xiàng)
- KBUILD_OUTPUT:指向Linux內(nèi)核源代碼地址
- DEBUG:加入-g,即加入調(diào)試信息
- CC:注釋掉
- CFLAGS:加入O(O1)優(yōu)化等級(jí),便與調(diào)試
- prefix:添加安裝目錄,便于管理
4 修改源碼
即使修改上述的makefile,使用如下命令構(gòu)建交叉編譯環(huán)境,編譯會(huì)因?yàn)橹貜?fù)定義仍會(huì)不通過(guò)
這時(shí)候需要根據(jù)源碼交叉編譯的報(bào)錯(cuò),修改注釋掉missing.h文件的如下位置即可
5 交叉編譯
source /opt/fsl-imx-xwayland/5.4-zeus/environment-setup-aarch64-poky-linux make -j 8然后就成功通過(guò)交叉編譯了,編譯結(jié)果如下(雖然有少數(shù)的警告,但至少交叉編譯成功了)
生成的代碼如下,利用file ptp4l可以發(fā)現(xiàn)文件屬性正常。
使用make install即可把需要的可執(zhí)行文件進(jìn)行進(jìn)行打包歸類(lèi),然后就可以愉快的調(diào)試了。
利用nfs拷貝到開(kāi)發(fā)板之后發(fā)現(xiàn)軟件版本是最新編譯的3.0版本
注:個(gè)人能力有限,歡迎批評(píng)指正。
原創(chuàng)不易,嚴(yán)禁剽竊!
歡迎大家關(guān)注我的微信公眾號(hào)——小白倉(cāng)庫(kù) 原創(chuàng)經(jīng)驗(yàn)資料分享:包含但不僅限于FPGA、ARM、RISC-V、Linux、LabVIEW等軟硬件開(kāi)發(fā),另外分享生活中的趣事以及感悟。目的是建立一個(gè)平臺(tái)記錄學(xué)習(xí)過(guò)的知識(shí),并分享出來(lái)自認(rèn)為有用的與感興趣的道友相互交流進(jìn)步。
總結(jié)
以上是生活随笔為你收集整理的glibc交叉编译_TSN之linuxptp交叉编译的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 山东大学计算机图形学实验(Opengl实
- 下一篇: linux batch date,Bat