我有一个运行 PetaLinux 的嵌入式设备,我希望将其配置为使用 avahi-autoipd 在接口上使用 LLA。
我一直尝试从 CLI 执行此操作以确保它按预期工作,并且我一直收到以下错误输出或类似信息(请注意该client: RTNETLINK answers: Invalid argument
行):
root@<device>:~# avahi-autoipd --debug eth0
Found user 'avahi-autoipd' (UID 997) and group 'avahi-autoipd' (GID 997).
Successfully called chroot().
Successfully dropped root privileges.
State transition START-0 -> START-0
Starting with address 169.254.15.181
State transition START-0 -> WAITING_PROBE-0
sleeping 774ms
State transition WAITING_PROBE-0 -> PROBING-0
...
State transition PROBING-1 -> WAITING_ANNOUNCE-0
...
State transition WAITING_ANNOUNCE-0 -> ANNOUNCING-0
Callout BIND, address 169.254.15.181 on interface eth0
...
client: RTNETLINK answers: Invalid argument
sleeping 1970ms
Script execution failed with return value 2
State iteration ANNOUNCING-1
...
Successfully claimed IP address 169.254.15.181
State transition ANNOUNCING-1 -> RUNNING-0
sleeping -1ms
我检查了无法运行/遇到 RT_NETLINK 错误的脚本(/etc/avahi/avahi-autoipd.action
),它似乎来自以下几行:
ip addr flush dev "$2" label "$2:avahi"
ip addr add "$3"/16 brd 169.254.255.255 label "$2:avahi" scope link dev "$2"
在我的具体情况下如下(从之前的运行中复制,因此 IP 地址不同):
ip addr flush dev eth0 label eth0:avahi
ip addr add 169.254.100.200/16 brd 169.254.255.255 label eth0:avahi scope link dev eth0
不过,在继续排除故障方面,我有点陷入了困境,因为网络是我最薄弱的环节之一。据我所知,这是网络配置的问题,但我不确定如何解决这个问题。我已经清除了我的/etc/network/interfaces
文件,因为该文件已将 eth0 配置为静态 IP/网络掩码,并停止了另一个进行更改的程序的运行,但这个嵌入式系统有很多操作,所以我预计在启动和运行其他应用程序期间,其他地方也会发生网络配置停止的情况。
我的问题是:我该如何修复这个错误和/或找出导致问题的配置以及该配置发生的位置?
如果需要的话,很乐意编辑更多信息。