自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在Arm上移植PPPoE

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
通過文章內(nèi)容,我們將了解到一位網(wǎng)友的Arm 一直PPPoE的經(jīng)驗。那么就讓我們看看具體的移植過程吧。

隨著嵌入式開發(fā)的流行,不少協(xié)議配置的內(nèi)容通通都可以搬上開發(fā)板試試。這次我們就來分享一位網(wǎng)友Arm板上移植pppoe的經(jīng)驗吧。在Arm上成功移植pppoe,其中經(jīng)歷了很多波折,因此把過程寫下來,給自己也給他人提供一些參考。閑話少說,直接步驟吧:

對了,先要在編譯內(nèi)核時把含有ppp和pppoe的選項選上,不過含有ppp的我沒有全選,這個視個人情況而定吧。

1、交叉編譯libcap-0.9.1 <代碼來源于www.tcpdump.org>

./configure --host=arm-linux --prefix=/usr --with-pcap=linux-2.4.10(這個根據(jù)自己的內(nèi)核版本來定,如果不指明編譯時會報錯,但指明了在后面也會出一點問題。也因為這個問題,有人強制在configure里刪除了配置with-pcap那一段,我懶得刪所以先留著了,呵呵)

make   :這個時候報錯:No rule to make target 'pcap-linux-2.4.10' ,needed by 'libcap.a'。這個問題就是由configure時--with-pcap那一項配置引起的。我查看了一下Makefile,發(fā)現(xiàn)包含有l(wèi)inux-2.4.10關(guān)鍵字的地方只有PSRC=pcap-linux-2.4.10.C那一項,于是我將其改為PSRC=pcap.C,再次make,編譯成功,不過只生成了libpcap.a。再打開Makefile,找到libpcap.so:$(OBJ)……那一段,將ld改為arm-linux-ld,然后執(zhí)行:make libpcap.so,最后報了一個pcap.o有錯。我想還是因為with-pcap那一項的問題,再回到Makefile,將PSRC=pcap.c那一行改為PSRC=pcap-linux.c,重新make,接著make libpcap.so,終于成功了,哈哈!將libpcap.so copy 至arm板root(newroot)下的lib目錄,又做了兩個鏈接libpcap.so.0 和libpcap.so.0.9.1。

2、交叉編譯 ppp-2.4.1

源碼下載:ftp://ftp.samba.org/pub/ppp

解壓縮,進(jìn)入ppp-2.4.1目錄,執(zhí)行下面兩步:

./configure --prefix = /usr

make CC = arm-linux-gcc

很遺憾,一大堆錯誤,而且都是莫名其妙的錯誤。據(jù)經(jīng)驗估計應(yīng)該是工具鏈的原因。但是因為之前曾經(jīng)吃過換工具鏈引起庫不兼容出了段錯誤的虧,所以這次沒敢輕易換工具鏈。改了好幾個小時還是沒有改完,沒辦法,菜鳥就是這樣,呵呵。只好妥協(xié),換了arm-linux-gcc.3.3.2,一編譯,果然通過。雖然心中竊喜,不過還是有點擔(dān)心,怕怕哦。

再將pppd、chat等四個可執(zhí)行程序copy到newroot下的usr/sbin目錄,還有scripts目錄下的幾個腳本也拷過去。

進(jìn)入newroot下的dev,執(zhí)行:mknod ppp c 108 0

3、交叉編譯rp-pppoe,我用的是3.7版本

./configure --host=arm-linux --prefix=/usr

make

最終將pppd pppoe pppoe-setup pppoe-start pppoe-stop等copy到/newroot/usr/sbin下,也可以自己make install。

其中pppoe是可執(zhí)行文件,pppoe-xxx是腳本。

最后將文件系統(tǒng)燒入flash,運行pppoe-setup,根據(jù)自己的實際情況輸入用戶名密碼DNS等信息。然后運行pppoe-start腳本。如果這步一切正常就可以了。可惜我挺不幸的,不僅自動生成的腳本pppoe-connect也有問題,而且我的文件系統(tǒng)里面shell配置太簡單,expr、printf等命令都沒有,沒辦法,只好改腳本了。怎么改就不再一一敘述了,不過因為改pppoe-connect腳本時太大意,用了一個全部替換命令將echo都替換成$ECHO,換完也沒檢查,把pppd的一個參數(shù)里面含有的echo也給換掉了,后來看DEGBUG出來的腳本還對著那個錯誤納悶了半天。腳本的錯誤清除了,但還是撥號成功不了,而且一點兒輸出信息都沒有,出錯信息沒有。

后來直接運行pppd,Segmentation Default ——段錯誤!剛開始以為是工具鏈的原因,只好又用原來的工具鏈3.2.1來編譯,參考了網(wǎng)上一個人的方法,把arm-linux/sys-include/route.h替換為include下的route.h,重新編譯通過了,但還是段錯誤。郁悶了好幾天,狂google了一通,終于找到了錯誤所在,原來是mmap函數(shù)的問題,把ppp-2.4.1/pppd下面Makefile里的-DHAVE_MMAP去掉重新編譯就可以運行了。

去掉了段錯誤,松了一口氣,但還是連不上,我那個氣呀,真是別人遇到的問題我遇到了,別人沒遇到的問題我也遇到了!沒辦法,還得慢慢來唄。于是運行DEBUG=1 pppoe-start,通過看DEBUG的報告,發(fā)現(xiàn)是地址族不被協(xié)議支持的問題。再重新編譯內(nèi)核,將含有ipv6的那一項選上,但還是不行。仔細(xì)看錯誤,其描述如下……Socket:Session 0:Address Family not supported by protocol!其中的Socket一詞引起了我的興趣,想了想,再次重新編譯內(nèi)核,把含有Socket的選項Packet Socket,Packet Socket:mmapped IO,Socket Filtering也選上,再次運行pppoe-start,ping www.baidu.com ,終于ping通了,可以用adsl上網(wǎng)了,移植pppoe大功告成。

責(zé)任編輯:佟健 來源: hi.baidu.com
相關(guān)推薦

2011-06-28 13:02:06

Qt Qt 4.7.3 ARM

2011-06-09 11:06:36

JVM

2021-09-28 15:03:06

Linux內(nèi)核arm

2021-10-14 15:48:28

鴻蒙HarmonyOS應(yīng)用

2011-01-13 14:19:41

solarisLinux

2010-09-27 16:26:09

JVMarm

2011-08-08 14:44:11

2020-11-24 11:41:30

websocket

2011-06-13 15:57:26

linux QT QTOPIA

2010-09-03 09:50:19

armPPP

2010-09-02 15:50:01

PPPoE協(xié)議

2010-09-09 17:05:37

PPPoE協(xié)議

2011-08-15 09:51:37

路由器PPPOE拔號

2011-08-08 15:23:06

PPPOE

2010-09-07 15:56:37

PPPoE會話

2011-10-17 10:25:09

SiriiPhone4

2010-09-06 16:07:05

ros pppoe設(shè)置

2011-08-08 15:43:52

pppoe

2010-09-16 13:16:20

CISCO PPPoE

2010-09-07 15:20:46

pppoe serve
點贊
收藏

51CTO技術(shù)棧公眾號