基于ubuntu-2.6.35内核的Lynx字符浏览器移植
lynx是一个linux下的一个字符浏览器的开放工程,这里我们用它去完成动态域名的登录。
一、移植环境
1、 主机:Ubuntu 10.10发行版
2、 目标机:FS_S5PC100平台
3、 交叉编译工具:arm-cortex_a8-linux-gnueabi
4、wifi模块:marvell-8686
5、内核:linux-2.6.35
---------------------------------------------------------------------
二、准备工作
为了使目标板能够正常上网,我们做如下设置:
1、 在profile中添加如下内容
$ ifconfig eth0 192.168.1.102 $ route add default gw 192.168.1.1
2、 修改/etc/resolv.conf添加如下内容
$ nameserver 192.168.1.1
这个时候我们可以ping一下www.sina.com发现没有问题接着我们就可以开始我们的工作了。
---------------------------------------------------------------------
三、 ncurses的移植
因为在编译lynx的时候需要ncurses库的支持,我们这里先移植ncurses:
1、 下载源码:http://download.chinaunix.net/download.php?id=14653&ResourceID=7242
这里我们下载了ncurses-5.5.tar.gz
2、 解压源码
$ tar zxvf ncurses-5.5.tar.gz
3、 配置ncurses
$ cd ncurse-5.5 $ ./configure --prefix=/home/linux/project/lynx-browser/ncurses --host=arm-none-linux-gnueabi
4、编译和安装
$ make
$ make install
---------------------------------------------------------------------
四、 lynx的移植
准备工作都做好了现在我们就开始移植我们的浏览器了:
1、下载源码http://lynx.isc.org/lynx2.8.5/index.html;
这里我们下载了lynx2-8-5.tar.gz
2、配置lynx
$ ./configure --prefix=/home/linux/project/lynx-browser/lynx --host=arm-none-linux-gnueabi
3、编译和安装lynx
$ cd lynx-2.8.5 $ vim makefile
做如下修改:
- CC=gcc + CC=arm-none-linux-gnueabi-gcc - CFLAGS = 02 + CFLAGS = -O2 -I/home/linux/project/lynx-browser/ncurses/include/ncurses -I/home/linux/project/lynx-browser/ncurses/include/ - LIBS = -lncuses –L/lib + LIBS = -lncurses -L/home/linux/project/lynx-browser/ncurses/lib
进入src中编译:
$ make //这里不要修改makefile因为这里需要生成一些在主机上运行的工具) $ cd .. $ make $ make install
现在我们基本完成工作了。
4、 拷贝lynx到开发板上
把我们生成的lynx拷贝到开发板上。
因为我们在configure的时候--prefix=/home/linux/project/lynx-browser/lynx所以我们也得把我们的lynx拷贝到这个目录。
$ cp lynx /source/rootfs/bin/
$ cd /source/rootfs $ mkdir home/linux/project/lynx-browser -p $ cp /home/linux/project/lynx-browser/lynx home/linux/project/lynx-browser/
5、 运行lynx
# lynx www.kernel.org
出现错误:Error opening termina:vt102
解决方法:
刚才我们在编译ncurses的时候,在ncurses的安装目录下有share目录,我们把这个目录拷贝到开发板的usr目录下
$ cp ncurses/share /source/rootfs-6410/usr –a
修改profile
$ sudo vim /source/rootfs/etc/profile
添加如下内容:
export TERM=vt102
export TERMINFO=/usr/share/terminfo
重新 启动开发板
# lynx www.kernel.org
Ok上去了。
/************ 以下部分没有做过,不保证内容正确性 ************/
【动态域名】
将以下命令添加到启动脚本中(etc/init.d/rcS)
# lynx -mime_header -auth=farsight:9138696092 "http://www.3322.org/dyndns/update?system=dyndns&hostname=farsight.3322.org"
(返回good或者nochg表示命令执行正确)
注意:上面的命令需要在ip地址正确(可以ping同外网)配置以后才能正常运行
如在脚本中添加:(在上条命令之前添加)
# ifconfig eth0 192.168.1.75 //配置为自己的ip # route add default gw 192.168.1.1
此时,访问farsight.3322.org仍然不能访问到开发板,需要在接外网的路由器上做端口映射(需要管理员密码)
端口映射配置方法:
访问192.168.1.1,输入用户名和密码 登陆
在左侧选择 应用服务->虚拟服务,点击 增加
网络如图配置,内网主机IP填入开发板的ip地址,其他如图:
此时便可以在互联网任意位置通过访问域名: farsight.3322.org 即可访问开发板。
原文链接:http://www.cnblogs.com/lr-ting/archive/2012/07/09/2582956.html