这个算是高层软件了,所以跟arm还是powerpc关系都不大了。自己实践了一遍,发现了一些其他教程的问题,没交代几个重要细节。先集中总结一下。
GoAhead移植过程
1、从官方网站 下载最新版本(其实这个版本看起来也有年头了)
解压缩到合适的工作目录。
2、进入LINUX/目录,修改Makefile。在开头位置加入2个变量指明工具链。
CC=ppc_85xx-gcc
AR=ppc_85xx-ar
再把Makefile最后的
.c.o:
cc -c -o $@ $(DEBUG) $(CFLAGS) $(IFLAGS) $<
修改为
.c.o:
$(CC) -c -o $@ $(DEBUG) $(CFLAGS) $(IFLAGS) $<
3、修改main.c (/LINUX目录) 文件,在函数websGetCgiCommName(..)函数中:
pname1 = tempnam(NULL, T(“cgi”));
修改为
pname1 = (char_t *)mkstemp(T(“cgi”));
4、main.c中有一处代码:
if ((hp = gethostbyname(host)) == NULL) {
error(E_L, E_LOG, T(“Can’t get host address”));
return -1;
}
在嵌入式平台上可能出错,导致webs自动退出无显示。所以需要确保gethostbyname 正确执行。
首先开发板上执行hostname命令看看结果是否正确,否则修改/etc/hostname ,加入主机名。
然后在开发板上ping 主机名,确保能使开发板主机名能成功转换为ip地址。否则修改/etc/hosts,增加主机名和ip地址的对应。
5、执行make命令,在LINUX目录下得到webs和libwebs.a。使用strip瘦身。
6、将webs放入rootfs/usr/sbin,libwebs.a放入rootfs/lib。
7、将GoAhead源码目录下的web目录拷贝到rootfs/,即根文件系统的根目录。这是main.c里指定的网站根目录。如果没有放在这里,则浏览器报错
Access Error: Site or Page Not Found
Cannot open URL
8、在rc.sh中加入启动命令
/usr/sbin/webs&
在浏览器中输入开发板地址,就能连接到GoAhead了。