Mentohust成功移植到Tiny6410 linux环境下

骤如下:
● 配置交叉编译环境:
附:网友weiweicp----《嵌入式开发学习笔记--建立编译环境》

● 交叉编译libpcap:

附:网友weiweicp----《嵌入式开发学习笔记--libpcap交叉编译》

i. 解压libpacp-1.0.0源码包并进入修改configure文件
注释掉两个if语句如下:
#if test -z "$with_pcap" && test "$cross_compiling" = yes; then
# { { echo "$as_me:$LINENO: error: pcap type not determined when cross-compiling; use --with-pcap=..." >&5
#echo "$as_me: error: pcap type not determined when cross-compiling; use --with-pcap=..." >&2;}
# { (exit 1); exit 1; }; }
#fi
.......
# if test $ac_cv_linux_vers = unknown ; then
# { { echo "$as_me:$LINENO: error: cannot determine linux version when cross-compiling" >&5
#echo "$as_me: error: cannot determine linux version when cross-compiling" >&2;}
# { (exit 1); exit 1; }; }
# fi

ii. 执行./configure --host=arm-linux
之后make
这时你就可以在当前目录下找到libpcap.a这个文件。这个文件就是等下要交叉编译mentohust时要用的一个静态库文件。

● 解压mentohust-0.3.1源码包 并进入目录
./configure --host=arm-linux --disable-encodepass --disable-arp --disable-notify --disable-nls --with-pcap=libpcap.a的路径(例如/home/wrkspc/libpcap-1.0.0/libpcap.a)

当然也可以把libpcap.a放到mentohust目录下的src目录里然后用
./configure --host=arm-linux --disable-encodepass --disable-arp --disable-notify --disable-nls --with-pcap=stlib
配置好后make
此时,src目录里会生成mentohust这个文件,就是我们最后要的。把它放到板子上就能用了。
在板子上运行mentohust(当然,你要先把板子上的IP和DNS配置好,还有你上网账号信息里的MAC)
按照提示选网卡,上网账号,密码,组播地址,DHCP方式,当然这些板子是看不清楚的,这个板子的终端里没有中文。我用的办法是把电脑里mentohust.conf删除,再运行mentohust此时的你在电脑上看到的提示,就和你板子上的基本一样了,你可以一步一步选择,然后就可以上网了。

上面的方法用的是静态的连接libpcap下面总结了一下,动态载入libpcap的方法。
1. 还是如上文 i.提到的注释掉两个if语句
2. 执行./configure --host=arm-linux
之后make libpcap.so或者用 make shared。
这时在当前目录里会有libpcap.so.1.0.0生成。
这个libpcap.so.1.0.0要放到板子上的/lib/的目录下
等到mentohst编译好放到板子上运行的时候就会动态载入libpcap但mentohust默认动态载入的文件名是libpcap.so所以
你需要用ln -s 做个libpcap.so符号连接
或者用mv把libpcap.so.1.0.0重命名为libpcap.so。

这次编译mentohust时
1. 先用
./configure --host=arm-linux --disable-encodepass --disable-arp --disable-notify --disable-nls
2. 然后make
在src目录生成mentohust把mentohust放到板子上并运行(当然和上面一样要先配置好板子上的IP和DNS配置好,还有你上网账号信息里的MAC)。



工作是完了,但,有好多还是要总结的。这一件事用了我三天多时间,其中,虽然有吃饭睡觉看电视剧,但,做些事的时候,我的脑子一直在思考没有成功的原因是什么。所以我认为这些也是促成最后成功的一些因素。现在回头看,从不成功到成功的转折就是那些看似不起眼的看电视时的思考。第一天,建立交叉编译环境,下相关源码,上网查看前辈们的文章,开始编译,不成功,再上网查看更多前辈的文章,再删除那些不成功的,从解压源码重新开始。第二天,讨论和思考原因。第三天,删除所有,从建立交叉编译环境开始,每一步后验证是否正确并做工作日志,一步一步下来最后成功了。
做有些事情的时候,总是孤独的,即使有人讨论时也是孤独的,没办法,必需学会享受这种孤独。

感谢:感谢,网络上的前辈们给了我很多指点,感谢我的朋友和哥们儿,有dudu,lyg,hanghuang,xiaofei以及没有提到的给我的帮助。

可能遇到的问题:
交叉编译环境建立时,环境变量配置
(我是在/etc/profile里添加PATH=$PATH:/xxx/xxx/4.4.1/bin这个参考
http://blog.csdn.net/wangwei452799/article/details/4530534)
我遇到的问题是环境变量没有全局生效。

所用的工具:
ubuntu11.10
arm-linux-4.4.1.tar.gz
libpcap-1.0.0.tar.gz(下载链接:http://www.tcpdump.org/release/)
mentohust-0.3.1.tar.gz(http://code.google.com/p/mentohust/)
flex(编译libpcap时用到)(如果是ubuntu 用apt-get install flex可以下载安装)
bison(编译libpcap时用到) (如果是ubuntu 用apt-get install bison可以下载安装)

参考文章:
http://www.dqjsw.com.cn/dianqi/danpianji/12942.html
http://www.byhh.net/cgi-bin/bbsnewtcon?board=NetResource&file=M.1230774282.A
http://hi.baidu.com/weiweicp/blog/item/1713714e62484f31aec3ab5d.html/cmtid/6d6401f106ef1da5a50f5214
http://code.google.com/p/mentohust/wiki/Install


个人邮箱:attough#gmail.com(把#换成@)


下面是我的tiny6410在linux环境下用mentohust上网的照片

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值