Yocto ifconfig在执行ifdown -a后未能清除干净。

5
我在一台有环回和eth0网络接口的目标设备上创建了一个Yocto镜像。
当我使用静态IP配置/etc/network/interface时,网络关闭命令有效。使用ifdown -a命令后,ifconfig不再返回任何信息。
我的静态模式下的/etc/network/interface文件如下:
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)          

# The loopback interface                                                        
auto lo                                                                         
iface lo inet loopback                                                          

# Main wired interface     
auto eth0                                                     
iface eth0 inet static                                                         
  address 192.168.1.10                                                     
  netmask 255.255.255.0                                                      
  gateway 192.168.1.1                                                        
  dns-nameservers 192.168.1.1

如果我将eth0配置为DHCP模式,就会出现问题:

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)          

# The loopback interface                                                        
auto lo                                                                         
iface lo inet loopback                                                          

# Main wired interface 
auto eth0                                                         
iface eth0 inet dhcp

在执行ifup -a命令后,ifconfig返回如下结果:

eth0      Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX                         
          inet addr:192.168.1.133  Bcast:192.168.1.255  Mask:255.255.255.0      
          inet6 addr: <ipv6 address> Scope:Link                   
          inet6 addr: <ipv6 address> Scope:Global   
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1                    
          RX packets:553 errors:0 dropped:106 overruns:0 frame:0                
          TX packets:98 errors:0 dropped:0 overruns:0 carrier:0                 
          collisions:0 txqueuelen:1000                                          
          RX bytes:70121 (68.4 KiB)  TX bytes:11022 (10.7 KiB)                  
          Interrupt:33                                                          

lo        Link encap:Local Loopback                                             
          inet addr:127.0.0.1  Mask:255.0.0.0                                   
          inet6 addr: ::1/128 Scope:Host                                        
          UP LOOPBACK RUNNING  MTU:65536  Metric:1                              
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0                    
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0                  
          collisions:0 txqueuelen:1                                             
          RX bytes:140 (140.0 B)  TX bytes:140 (140.0 B)

然而,在执行 ifdown -a -v 命令之后,
run-parts /etc/network/if-down.d                                                
ifconfig lo 127.0.0.1 down                                                      
run-parts /etc/network/if-post-down.d                                           

run-parts /etc/network/if-down.d                                                
kill `cat /var/run/udhcpc.eth0.pid` 2>/dev/null                                 
ifconfig eth0 down                                                              
run-parts /etc/network/if-post-down.d

ifconfig 返回以下内容:

eth0      Link encap:Ethernet  HWaddr fc:c2:3d:0d:bb:93                         
          inet6 addr: fe80::fec2:3dff:fe0d:bb93/64 Scope:Link                   
          inet6 addr: 2a02:1205:c69a:b970:fec2:3dff:fe0d:bb93/64 Scope:Global   
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1                    
          RX packets:1304 errors:0 dropped:272 overruns:0 frame:0               
          TX packets:158 errors:0 dropped:0 overruns:0 carrier:0                
          collisions:0 txqueuelen:1000                                          
          RX bytes:148500 (145.0 KiB)  TX bytes:16490 (16.1 KiB)                
          Interrupt:33

eth0接口没有完全清除,这对我来说是个问题,因为我使用它的状态来管理系统中的其他事物。

我需要说明的是,我使用resolvconf软件包,它添加了一个ifdown脚本(在DHCP的情况下不使用)。

cat /etc/network/if-down.d/resolvconf:

#!/bin/sh                                                                       
#                                                                               
# ifdown hook script for resolvconf                                             
#                                                                               
# This file is part of the resolvconf package.                                  
#                                                                               

[ -x /sbin/resolvconf ] || exit 0                                               

case "$ADDRFAM" in                                                              
  inet|inet6) :      ;;                                                         
  *)          exit 0 ;;                                                         
esac                                                                            

/sbin/resolvconf -d "${IFACE}.${ADDRFAM}" || :  

你有没有想法,是什么出了问题?(关于IT技术)请注意,保留了HTML标签。
1个回答

1

好的,我终于找到了问题,可以通过添加以下代码行来解决

/sbin/resolvconf -d "${IFACE}.udhcpc" || : 

在文件 /etc/network/if-down.d/resolvconf 的末尾,清理由 udhcpc 创建的参数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接