|
楼主 |
发表于 2004-5-22 22:24:50
|
显示全部楼层
请兄弟们一块弄一下在SkyEye里加入网络功能。仔细阅读附件文档,我大致翻译了一下:
在Skyeye仿真平台的uClinux操作系统里使用8012AS(NE2k comptible)网络适配器指南
2003-08-01
陈渝
注意:在uClinux-dist-20020816,20030305,20030522里已经通过测试的,能够支持nfs客户端,ftp客户端/服务器,telnet客户端/服务器,请使用最新的uClinux-dist-xxxx!
我们给uClinux加一个ne2k的网络设备驱动,这样运行在Skyeye里的uClinux就具有网络功能了。
2a.第一种方法很简单:
拷贝examples/uclinux-dist-xxxx/*到uclinux-dist-xxxx's版本目录
进到uClinux-dist目录里
拷贝vendors__GDB__ARMulator/*到vendors/GDB/ARMulator
拷贝linux-2.4.x__drivers__net/*到linux-2.4.x/drivers/net/
2b.第二种方法:
2b1.加一些东西到下面的文件里
选择文件
-------------------------------
uClinux-dist/vendors/GDB/ARMulator/config.vendor-2.4.x
……
(加入一些选项)
uClinux-dist/vendors/GDB/ARMulator/config.vendor-2.4.x文件里有以下句子
CONFIG_NET=y
CONFIG_NET_ETHERNET=y
CONFIG_SKYEYENE2k=y
…
(如果你想使用NFS,那么你将要把NFS项加进去)
uClinux-dist/linux-2.4.x/drivers/net/Makefile文件里加上以下句子
obj-$(CONFIG_NET) += Space.o setup.o net_init.o loopback.o
obj-$(CONFIG_SKYEYENE2k) += skyeyene2k.o
uClinux-dist/linux-2.4.x/drivers/net/Config.in文件里有以下句子
if [ "$CONFIG_NET_ETHERNET" = "y" ]; then
#chy 2003-02-18
#add for skyeye
if [ "$CONFIG_ARCH_ATMEL" = "y" ]; then
tristate ' SkyEye ne2k ethernet support(for ARMUlator)' CONFIG_SKYEYENE2k
fi
2b2.把skyeyene2k.[ch]文件加到uClinux-dist/linux-2.4.x/drivers/net/,然后为gdb/armulator创建uclinux。
你不能使用默认的内核配置,那么在最下面的四个选择中,将第二个选项选为“Y”,即:定制内核设置,接下来选择“保存退出”,这样会出现一些选项让你选,其中以下选项为真
Network device support-->Ethernet (10 or 100Mbit)
SkyEye ne2k ethernet support(for ARMUlator)'
3.运行uclinux
注意:请读下ucosii/installguide.txt安装skyeye和tun.o
你将把文件“skyeye.conf”放到你的工作目录里。你也能给不同的网络选项选择skyeye.conf,例如:
net: state=on, mac=0:4:3:2:1:f, ethmod=tuntap, hostip=10.0.0.1
state=on/off : means the nic is connectd or not on skyeye when uclinux running
mac=xx:xx:xx:xx:xx:xx : means the nic's mac addr
ethmod=tuntap/vnet : means the host's virtual net device method used by skyeye
hostip=dd.dd.dd.dd : means the host's virtual ip addr uesed by skyeye
现在uclinux4skyeye能ping主机系统,并且主机系统也能ping uclinux4skyeye。
如果你的uclinux4skyeye和skyeye编译并安装成功,那么试试以下的命令。
在一个linux终端下,你使用root用户。运行:
inmod tun.o
然后:
#skyeye linux-2.4.x/linux
>target sim
>load
>run
.....
>ifconfig eth0 10.0.0.2 //如果你使用uClinux-20020816或以下的版本
...
在另一个终端输入:
$/sbin/ifconfig
你将会发现一个网络设备tap0 10.0.0.1
$ping 10.0.0.2
然后你能看到一些信息……
或你能用root,guest,bin,nobody等用户试试telnet命令,所有的用户都不用密码。
$telnet 10.0.0.2
.....
nfs -t nfs 10.0.0.1/target /var/log
.....
做一下参考吧,从文档中可以看出,要是配置uClinux的内核,主要与vendors/GDB/ARMulator里的文件有关,这下就明白了在选择内核配置选项时为什么选择“GDB/ARMulator”了。当然如果你在选择了别的,那么就在vendors目录里找相应的目录即可。
我还没有通过,主要出现以下错误:
make[3]: Entering directory `/usr/src/uClinux-dist/linux-2.4.x/scripts'
cat header.tk >> ./kconfig.tk
./tkparse < ../arch/armnommu/config.in >> kconfig.tk
-: 222: unknown define_bool value
make[3]: *** [kconfig.tk] Error 1
make[3]: Leaving directory `/usr/src/uClinux-dist/linux-2.4.x/scripts'
make[2]: *** [xconfig] Error 2
make[2]: Leaving directory `/usr/src/uClinux-dist/linux-2.4.x'
make[1]: *** [linux_xconfig] Error 2
make[1]: Leaving directory `/usr/src/uClinux-dist'
make: *** [xconfig] Error 2
我的uClinux-dist是20030909的,uClinuxskyeye是20030522的。
./tkparse < ../arch/armnommu/config.in >> kconfig.tk
这个脚本是什么意思,我看到tkparse是一个二进制文件。
是不是版本不一样的过,还请大家指教,先谢过了! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|