在SkyEye上调试uClinux内核及与主机进行网络通讯(转)

来源:互联网 发布:淘宝改差评用什么软件 编辑:程序博客网 时间:2024/05/17 21:07

这篇文章给了我很大的帮助。

转自:http://www.linuxfans.org/bbs/thread-173360-1-1.html

这里只介绍第二步。第一步在我的日志:学习笔记:虚拟机redhat9下安装SkyEye,移植uClinux已经介绍了。

生成支持skyeye_ne2k网卡的内核

在完成第一部分内容后,在内核中添加skyeye_ne2k网络程序,添加显示网络包类型和数目的信息。
2.1 修改config文件
uClinux-dist/vendors/GDB/ARMulator/config.linux-2.4.x应该有如下项(没有就添加):
CONFIG_NET=y
CONFIG_NET_ETHERNET=y
CONFIG_SKYEYENE2k=y

2.2 修改Makefile文件
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

2.3 修改Config.in文件
uClinux-dist/linux-2.4.x/drivers/net/Config.in应该有如下项(没有就添加):
if [ "$CONFIG_NET_ETHERNET" = "y" ]; then
#add for skyeye
if   [   "$CONFIG_ARCH_ATMEL" = "y"   ]; then
tristate   ' SkyEye ne2k ethernet (for ARMUlator) '   CONFIG_SKYEYENE2k
fi
注意:if,方括号,单引号前后有空的地方,空格不能省略。
关于Config.in文件的语法,可以查阅linux-2.4.x目录下的Documentation/kbuild/config-language.txt文件。

2.4 增加驱动文件
把skyeyene2k.[ch]文件拷贝到uClinux-dist/linux-2.4.x/drivers/net/目录下。

2.5 运行make menuconfig
选择GDB/Armulator开发板,选择Custom Kernel Settings,然后exit and save。
在内核的配置菜单中,在Network Device Support项中,进入“Ethernet (10M and 100M)”,然后选择 ' SkyEye ne2k ethernet support (for ARMUlator)' 选项。然后编译uClinux内核:
$ make dep
$ make

2.7 用skyeye调试uClinux
用root帐号,通过SkyEye运行有skyeyene2k驱动支持的uClinux内核。
$ skyeye linux-2.4.x/linux
(gdb) target sim
(gdb) load
(gdb) run
.....
$ ifconfig eth0 10.0.0.2

在另一个linux终端执行如下目录:
$ /sbin/ifconfig
可以看到一个 net device tap0 10.0.0.1

$ping 10.0.0.2
可以ping通10.0.0.2,这证明skyeyene2k驱动程序运行了。