OpenWRT交叉編譯


對於當前不在OpenWRT repository中的軟件,如果是用源碼形式發布的,那么可以用OpenWRT Buildroot進行交叉編譯。

  • 首先編譯好Buildroot(一般編譯過一次固件,就已經編譯好了)
  • 找到目錄staging_dir/toolchain-architecture_gcc-complierver_uClibc-libcver/bin/
  • 把它加入到環境變量PATH:

PATH=$PATH(上面提到的目錄)

export PATH

  • 把環境變量STAGING_DIR設置為上面提到的toolchain目錄:

STAGING_DIR=toolchain目錄

export STAGING_DIR

  • 設置編譯設置中的一些參數,我這里用到的是修改makefile:

make CC=architecture-openwrt-linux-uclibc-gcc LD=architecture-openwrt-linux-uclibc-ld

  • 如果缺一些頭文件或者庫文件,那么需要修改CFLAGS和LDFLAGS,讓它們指向staging_dir/target-architecture_uClibc-libcver/usr/include和.../usr/lib目錄

 

 

編譯單獨的安裝包

  • 首先make menuconfig,在里面選擇好需編譯的軟件包和它依賴的庫。
  • 然后make tools/install

make toolchain/install

  • 最后就可以編譯需要的軟件了:

make package/***/compile

make package/***/install

make package/***/index

這時就可以在bin目錄下找到軟件的安裝包了。

(最后一個make index不知道是什么東西,不運行已經能在bin下找到.ipk了)

 

  這次主要是路由器又出問題了,於是重新編譯了一下固件(TP720的),發現認證上不去網,於是嘗試交叉編譯xd-h3c,還是不行,然后編譯了個tcpdump裝到路由上,抓包,現象很詭異,好像路由器的處理器老化了一樣,收到包后很久才回復。可能是驅動出 了問題?不知道。。最后等了很久就認證成功了。

  當時折騰得煩得很,差點一怒之下買個樹莓派或者cubieboard,不想再忍受這種痛苦了。

  當窮學生就是慘,以后工作了應該能使勁折騰了。

  期間看了下8021.X協議。這個協議主要是用來認證的,單說以太網上面,它把一個物理端口划分為邏輯上的兩個端口,其中一個用來認證,所有的認證包都能通過,另一個用來發送正常的數據包,但是只有當認證成功了的時候那個端口才開放。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM