移植lynx2.8.5浏览器到FS2410
【编译环境】ubuntu 8.10 + Vmware + windows xp
【目标机】FS2410
【交叉编译器】arm-softfloat-linux-gnu-gcc
通过《华清远见学习手记》 之3G智能机器人——移植RT2571(73)WIFI无线网卡驱动到FS2410 操作后,机器人的FS2410开发板已经可以访问外网了,同时也具备了被外网访问的可能,现在我们使用的ADSL一般是动态的外网IP,每次重启后WAN的IP都会发生变化,要通过外网访问到机器人,就需要有一个相对固定的地址——域名。(当然,这也不是唯一的方式)
本文即将移植的lynx,主要的目的就是用来实现动态IP绑定的,而不是使用它来浏览网页。下面是移植的步骤:
1. 移植ncurses库
ncurses 是字符终端上实现图形界面的一个库,比如我们经常使用的编译内核的make menuconfig 就是基于ncurses库的,lynx也依赖于这个库。先从网络上下载ncurses-5.5.tar.gz 源码包,tar xzvf ncurses-5.5.tar.gz 解压之后进入:
cd ncurses-5.5
./configure --prefix=/hd2/wifi/lynx-browser/ncurses /
--host=arm-softfloat-linux-gnu
生成Makefile.
make
make install
在--prefix指定的目录下就会得到编译好ncurses库文件。
2. 移植lynx
在网上下载lynx2.8.5.tar.gz源码包,tar xzvf lynx2.8.5.tar.gz 解压之后进入:
cd lynx2.8.5
./configure --prefix=/hd2/wifi/lynx-browser/lynx /
--host=arm-softfloat-linux-gnu
生成Makefile.
修改Makefile:
cc=arm-softfloat-linux-gnu-gcc
CFLAGS= -O2 -I/hd2/wifi/lynx-browser/ncurses/include /ncurses
-I/hd2/wifi/lynx-browser/ncurses/include
LIBS = -lncurses -L/hd2/wifi/lynx-browser/ncurses/lib
进入src目录
make
make install
正常情况下,可以在--prefix指定的目录下得到 bin、lib、man三个目录,其中bin下有lynx可执行文件,lib下有lynx.cfg配置文件和其他一些帮助文档,在开发板上一般只需要lynx 和lynx.cfg 。
3. 拷贝第一步编译出来的ncurses下的share文件到开发板/usr/目录下,开发板只用到里面的少数几个终端信息文件,如VT102、VT100,可以删除不用的。
4. 在开发板上需要导出两个环境变量给lynx用
export TERM=vt102 (注:此处标准输出使用是FS2410的串口0,如果要输出到LCD上需要用vt100)
export TERMINFO=/usr/share/terminfo
5. 好的,现在可以测试一下了
先要确保网络是通畅的,进入lynx所在的目录:
./lynx --cfg ../lib/lynx.cfg www.kernel.org
怎么样,看到网页了没有?看到了的话试一下简体中文的网页:
./lynx --cfg ../lib/lynx.cfg -display_charset=gb2312 zhidao.baidu.com
再试一下繁体中文的:
./lynx --cfg ../lib/lynx.cfg -display_charset=big5 www.google.com.hk
(注:内核配置的Native Language 下一定选上对GB2312和big5的支持)
在我的开发板上老是出这样的问题:
Alert! error uncompressing temporary files!
到现在还没有搞明白问题出在哪里 ,如果你知道,一定要告诉我哦(boat_man@163.com)!
6.如果上网站没有除了显示以外的问题的话,执行下面的命令:
./lynx -cfg ../lib/lynx.cfg -mime_header -auth=XXXXX:YYYYYY /
"http://www.3322.org/dyndns/update?system=dyndns&hostname=XXXXX.3322.org"
正常情况下,可以得到你现在的外网IP。
你没有得到IP?无法从外网访问? 3322,端口映射等等我就懒得解释了,请自己查相关的资料吧。