成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在Arm上移植PPPoE

網絡 網絡管理
通過文章內容,我們將了解到一位網友的Arm 一直PPPoE的經驗。那么就讓我們看看具體的移植過程吧。

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

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

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

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

make   :這個時候報錯:No rule to make target 'pcap-linux-2.4.10' ,needed by 'libcap.a'。這個問題就是由configure時--with-pcap那一項配置引起的。我查看了一下Makefile,發現包含有linux-2.4.10關鍵字的地方只有PSRC=pcap-linux-2.4.10.C那一項,于是我將其改為PSRC=pcap.C,再次make,編譯成功,不過只生成了libpcap.a。再打開Makefile,找到libpcap.so:$(OBJ)……那一段,將ld改為arm-linux-ld,然后執行: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

解壓縮,進入ppp-2.4.1目錄,執行下面兩步:

./configure --prefix = /usr

make CC = arm-linux-gcc

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

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

進入newroot下的dev,執行: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是可執行文件,pppoe-xxx是腳本。

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

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

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

責任編輯:佟健 來源: hi.baidu.com
相關推薦

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內核arm

2021-10-14 15:48:28

鴻蒙HarmonyOS應用

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-09 17:05:37

PPPoE協議

2010-09-02 15:50:01

PPPoE協議

2011-08-08 15:23:06

PPPOE

2010-09-07 15:56:37

PPPoE會話

2011-08-15 09:51:37

路由器PPPOE拔號

2011-08-08 15:43:52

pppoe

2010-09-07 15:20:46

pppoe serve

2010-09-06 16:07:05

ros pppoe設置

2010-09-16 13:16:20

CISCO PPPoE

2010-09-16 15:28:00

PPPoE原理
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲欧美日韩成人在线 | 综合二区| 日韩久久久久 | 日本在线播放 | 婷婷99| 国产精品国产三级国产aⅴ入口 | 国产精品久久久久久久久污网站 | 综合色播| 久久精品国产一区二区三区不卡 | 91精品国产综合久久久久久漫画 | 福利片在线观看 | 亚州精品天堂中文字幕 | 久久免费国产视频 | 成人免费视频网站 | 欧美视频在线看 | 欧美视频中文字幕 | jizz18国产 | 国产精品99久久久久久久久久久久 | 成人a视频在线观看 | 精品免费视频一区二区 | 2021狠狠天天天 | 欧美不卡 | 丁香久久 | 日韩中文一区二区三区 | 国产一区二区三区视频免费观看 | 午夜欧美一区二区三区在线播放 | 成人做爰www免费看视频网站 | 亚洲精品综合 | 成人欧美| 国产成人精品一区二区三区视频 | 9999国产精品欧美久久久久久 | av大片| 精品9999| 亚洲三区在线 | 精品国产一区二区国模嫣然 | av资源在线看 | 在线国产一区二区 | 99视频在线免费观看 | 一本一道久久a久久精品蜜桃 | 国产精品久久久久久久久久软件 | 欧亚av在线 |