无法在SabreLite iMX6Q上为FEC以太网卡注册rteth0

时间:2014-10-20 09:02:08

标签: real-time embedded-linux network-protocols

我是RTnet上的新用户,并尝试让Rtnet在Freescale Sabre Lite iMX6Q主板上运行。但是我遇到了一个问题,即使非实时驱动程序被禁用,RTnet也无法使用rt_fec.ko模块驱动程序来注册rt_eth0。

我正在使用: 从Xenomai下载Linux内核3.0.43 git://git.xenomai.org/ipipe-gch.git/?h = ipipe-3.0-imx6q Xenomai 2.6从git.xenomai.org/xenomai-2.6.git/下载 从rtnet.org/download.html下载RTnet 0.9.13

请参阅我的内核配置和引导登录附件链接。 Xenomai已加载:

" * I-pipe:域名Xenomai已注册。

Xenomai:hal / arm开始了。
Xenomai:调度类空闲注册 Xenomai:调度班rt注册。
Xenomai:加载了实时核心v2.6.3(谎言和真相) Xenomai:启用调试模式。
Xenomai:启动原生API服务 Xenomai:启动POSIX服务 Xenomai:启动RTDM服务。*"

内核启动时加载FEC以太网驱动程序(非实时驱动程序)

*" FEC以太网驱动程序

fec_enet_mii_bus:探测" *

Xenomai是根据Xenomai的ARM平台安装指南构建的: http://xenomai.org/installing-xenomai-2-x/

RTnet是由以下命令构建的,因为SABRE Lite使用FEC以太网卡和Micrel KSZ9021千兆芯片,所以我把" - enable-fec"在configure命令中构建FEC以太网卡的实时驱动程序:

" ./ configure --host = armv7l-timesys-linux-gnueabi --with-rtext-config = / home / sonnguyen / rtnet-xenomai-rootfs / usr / xenomai / bin / xeno-config - -with-linux = / home / sonnguyen / build / rtnet-xenomai-ipipe-imx6q --enable-rtcfg-dbg --enable-rtwlan --enable-net-routing --enable-router --enable-nomac - enable-rtcap --enable-proxy --enable-checks --enable-fec"

然后 " make DESTDIR = / home / sonnguyen / rtnet-xenomai-rootfs install"

我还将RT_DRIVER从默认值更改为" rt_fec"在rtnet.conf中。 内核启动后,我运行" ./ rtnet start"得到了这个:

" RTnet:初始化实时网络
RT FEC以太网驱动器
./rtnet:第385行:无法创建/ sys / bus / pci / drivers / rt_fec / bind:不存在的目录
初始化环回...
RTnet:注册rtlo
RTcap:实时捕获界面
ifconfig:SIOCGIFFLAGS:没有这样的设备
ifconfig:SIOCGIFFLAGS:没有这样的设备
RTcfg:init实时配置分发协议
RTmac:init实时媒体访问控制
RTmac / TDMA:初始时分多址控制机制
ioctl:没有这样的设备
ioctl:没有这样的设备
ioctl:没有这样的设备
ioctl:没有这样的设备
ioctl(add):没有这样的设备
ioctl(add):没有这样的设备
ioctl(add):没有这样的设备
ifconfig:SIOCGIFFLAGS:没有这样的设备
等待所有奴隶... ioctl:没有这样的设备
ioctl:没有这样的设备"

然后我尝试了:

" #lspci

lspci:/ sys / bus / pci / devices:没有这样的文件或目录

ls / sys / bus /

ac97 hid mdio_bus platform sdio spi
event_source i2c mmc scsi serio usb"

/ sys / bus /下没有pci目录。然后我想因为脚本无法找到以太网物理总线,它无法注册rteth0。 然后我查看了rtnet脚本并做了一些小改动。在脚本中它需要物理以太网设备ID(在REBIND_RT_NICS中提到),所以我试图找出它是什么,并在使用非实时驱动程序make eth0时得到这个:

" eth0:飞思卡尔FEC PHY驱动程序[Micrel KSZ9021千兆PHY](mii_bus:phy_addr = 1:06,irq = -1)

PHY:1:06 - 链接已启动 - 1000 /完全"

我认为1:06是我的物理总线ID,然后我更改了rtnet中的代码:

for dev in $REBIND_RT_NICS; do

    if [ -d /sys/bus/pci/devices/$dev/driver ]; then
        echo $dev > /sys/bus/pci/devices/$dev/driver/unbind
    fi
    echo $dev > /sys/bus/pci/drivers/$RT_DRIVER/bind
done

回声1:06> / sys / bus / mdio_bus / drivers / Micrel \ KSZ9021 \ Gigabit \ PHY / unbind 回声1:06> / SYS /总线/平台/驱动器/ rt_fec /结合

我再次尝试使用" ./ rtnet start",这次我得到了这个:

RTnet:初始化实时网络

RT FEC以太网驱动程序
sh:写错误:没有这样的设备
初始化环回...
RTnet:注册rtlo
RTcap:实时捕获界面
ifconfig:SIOCGIFFLAGS:没有这样的设备
ifconfig:SIOCGIFFLAGS:没有这样的设备
RTcfg:init实时配置分发协议
RTmac:init实时媒体访问控制
RTmac / TDMA:初始时分多址控制机制
ioctl:没有这样的设备
ioctl:没有这样的设备
ioctl:没有这样的设备
ioctl:没有这样的设备
ioctl(add):没有这样的设备
ioctl(add):没有这样的设备
ioctl(add):没有这样的设备
ifconfig:SIOCGIFFLAGS:没有这样的设备
等待所有奴隶... ioctl:没有这样的设备
ioctl:没有这样的设备

但它仍然说"没有这样的设备" 在我运行./rtnet start

后,这是lsmod

lsmod的

未受污染的模块尺寸
tdma 25691 0
rtmac 9724 1 tdma
rtcfg 58071 0
rtcap 7151 0
rt_loopback 1279 2
rtpacket 6365 0
rtudp 10738 0
rt_fec 12742 0
rtipv4 29987 2 rtcfg,rtudp
rtnet 40746 9 tdma,rtmac,rtcfg,rtcap,rt_loopback,rtpacket,rtudp,rt_fec,rtipv4

./ rtifconfig

rtlo Medium:Local Loopback
          IP地址:127.0.0.1
          UP LOOPBACK RUNNING MTU:1500

只有rtlo注册。

我还尝试使用没有非实时FEC驱动程序的内核linux(请参阅附加的Skydrive链接中的另一个配置文件),但仍然出现同样的问题。

你知道如何解决这个问题吗?我做了很多搜索,但仍然无法弄清楚如何解决它。

因为我无法将文件附加到我的帖子,所以我将所有配置文件放在以下链接中: https://onedrive.live.com/redir?resid=162EDF85AEBD2EFE!717&authkey=!AJ1Fjd_XiohUwes&ithint=file%2czip

最诚挚的问候, Nguyen Hung Son

0 个答案:

没有答案