This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/AM5728:dhclient 不会自动启动

Guru**** 2548290 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/617158/linux-am5728-dhclient-does-not-start-automatically

器件型号:AM5728

工具/软件:Linux

您好!

我们正在使用基于 Yocto 的构建系统、我们最近开始使用/etc/network/interface 文件来管理我们的网络。 使用此文件的主要目的是分别在修改接口文件时自动调用 DHCP 和分配 IP。 我们将 dhclient 作为 DHCP 客户端。 以前,每当更新新的网络配置时,我们就通过我们的应用程序手动运行 dhclient。  

我知道有一个接口文件,dhclient 可以自动工作,systemd 可以在需要时调用它。 在我们的情况下,dhclient 不会自动调用(无论是启动还是接口文件更改),如果我们手动运行 dhclient wlan0命令,则只有它会从 DHCP 服务器检索 IP 地址。 wlan0接口只需要它、没有以太网。

我还附上了接口文件,以作如下澄清:

用于动态 IP 分配的接口文件:

自动关闭
iface lo inet 环回

自动 CAN0
iface CAN0 inet 手册
预装/sbin/ip 链接集$iface 类型可以比特率125000
预置 IP 链路集$iface 类型可以重新启动-ms 1000
/sbin/ifconfig 上的$iface 上的
/sbin/ifconfig 减省$iface

自动 CAN1
iface CAN1 inet 手册
预装/sbin/ip 链接集$iface 类型可以比特率125000
预置 IP 链路集$iface 类型可以重新启动-ms 1000
/sbin/ifconfig 上的$iface 上的
/sbin/ifconfig 减省$iface

自动 wlan0
iface wlan0 inet DHCP
开机自检 systemctl 启动 wpa_supplicant
停机系统命令停止 wpa_supplicant

用于静态 IP 分配的接口文件:

自动 wlan0
iface wlan0 inet static
地址192.168.180.111
子网掩码255.255.255.0
网关192.168.180.1
DHCP 0

最终目标是使 dhclient 自动工作、就像它应该做的那样。 我希望能迅速作出反应。

谢谢、

Divyeshkumar  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、Divyeshkumar、

    能否从/etc/network/interfaces 文件中删除或注释 wlan0静态配置? 请分享结果。

    BR
    Tsvetolin Shulev
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Shulev、您好!

    感谢您的快速响应。 我在上面附加的文件不是一个文件。 动态 IP 配置的接口文件不同、静态 IP 配置的接口文件不同。 我只需根据要求替换这些文件。 这意味着、如果我配置了动态 IP 配置、我的接口文件将仅为:

    自动关闭
    iface lo inet 环回

    自动 CAN0
    iface CAN0 inet 手册
    预装/sbin/ip 链接集$iface 类型可以比特率125000
    预置 IP 链路集$iface 类型可以重新启动-ms 1000
    /sbin/ifconfig 上的$iface 上的
    /sbin/ifconfig 减省$iface

    自动 CAN1
    iface CAN1 inet 手册
    预装/sbin/ip 链接集$iface 类型可以比特率125000
    预置 IP 链路集$iface 类型可以重新启动-ms 1000
    /sbin/ifconfig 上的$iface 上的
    /sbin/ifconfig 减省$iface

    自动 wlan0
    iface wlan0 inet DHCP
    开机自检 systemctl 启动 wpa_supplicant
    停机系统命令停止 wpa_supplicant

     

    谢谢、

    Divyeshkumar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Divyeshkumar、

    好的、现在我了解了您的配置。 您能否提供有关 Linux 发行版的更多信息?它是 Processor SDK 还是其他一些 Linux 版本、以及使用的内核版本?
    我想问您一些有关问题调查的其他必要问题。
    您是否在控制台或内核日志("dmesg"命令输出)中观察到一些错误消息?
    能否发布"iwconfig"命令的输出?
    还可以在/etc/network/interfaces 文件中尝试以下 wlan0配置

    自动 wlan0
    allow-hotplug wlan0
    iface wlan0 inet DHCP
         WPA-SSID
         WPA-PSK

    BR
    Tsvetolin Shulev

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Shulev、您好!

    它不是处理器 SDK、而是基于 Yocto 的定制 Linux。 我们使用的 Linux 是"Linux 版本4.4.5.52"。

    我在内核启动时没有看到任何错误消息或日志、这是 dmesg 输出:

    ____________________________________________________________
    [4.774628]集线器2-0:1.0:找到 USB 集线器
    [4.775330]集线器2-0:1.0:检测到1个端口
    [4.808921] EXT4-FS (mmcblk0p7):已安装文件系统、具有有序数据模式。 OPTS:(空)
    [4.809368] EXT4-FS (mmcblk0p6):已安装文件系统、具有有序数据模式。 OPTS:(空)
    [4.993071](stk): SCR 中的 SLEEP 命令
    [5.178900] systemd-journale[115]:已收到从 PID 刷新运行时日志的请求1.
    [5.198524] random:非阻塞池已初始化
    [5.416784] cfg80211:已更新世界监管范围:
    [5.416794] cfg80211:DFS 主设备区域:取消设置
    [5.416799] cfg80211:(start_freq - end_freq @带宽)、(max_antenna_gain、max_EIRP)、(dfs_cac_time)
    [5.416807] cfg80211:(2402000 KHz - 2472000 KHz @ 40000 KHz)、(N/A、2000 MBM)、(N/A)
    [5.416813] cfg80211:(2457000 KHz - 2482000 KHz @ 40000 KHz)、(N/A、2000 MBM)、(N/A)
    [5.416820] cfg80211:(2474000 KHz - 2494000 KHz @ 20000 KHz)、(N/A、2000 MBM)、(N/A)
    [5.416826] cfg80211:(5170000 KHz - 5250000 KHz @ 80000 KHz、160000 KHz 自动)、(N/A、2000 MBM)、(N/A)
    [5.416833] cfg80211:(5250000 KHz - 5330000 KHz @ 80000 KHz、160000 KHz 自动)、(N/A、2000 MBM)、(0s)
    [5.416839] cfg80211:(5490000 KHz - 5730000 KHz @ 160000 KHz)、(N/A、2000 MBM)、(0s)
    [5.416845] cfg80211:(5735000 KHz - 5835000 KHz @ 80000 KHz)、(N/A、2000 MBM)、(N/A)
    [5.416851] cfg80211:(57240000 KHz - 63720000 KHz @ 2160000 KHz)、(N/A、0 MBM)、(N/A)
    [5.819024] wl18xx_driver wl18xx.2.auto: ti-connectivity/wl1271-nvs.bin 的直接固件加载失败、错误-2
    [5.954019](STC):ADD_CHANGE_TO_TABLE:ID 4
    [5.954036](STC):ADD_CHANGE_TO_TABLE:ID 2.
    [5.954044](STC):ADD_CHANGE_TO_TABLE:ID 3.
    [6.074576] USB 2-1:使用 xhci-hcd 的新型超高速 USB 器件编号2
    [6.085801] USB 2-1:找到新的 USB 器件、idVendor=0451、idProduct=8140
    [6.085813] USB 2-1:新 USB 器件字符串:MFR=0、Product=0、SerialNumber=0
    [6.088477] PVR_K:UM DDK-(3699939)和 KM DDK-(3699939)匹配。 [确定]
    [6.095078]集线器2-1:1.0:找到 USB 集线器
    [6.095645]集线器2-1:1.0:检测到4个端口
    [6.138718] USB 1-1:使用 xhci-hcd 的新型高速 USB 器件编号2
    [6.186199] wlcore:wl18xx 硬件:183x 或180x、PG 2.2 (ROM 0x11)
    [6.202743] wlcore:已加载
    [6.230180](STC):REMOVE_CHANGE_FROM 表:ID 3.
    [6.230193](STC):REMOVE_CHANGE_FROM 表:ID 2.
    [6.230201](STC):REMOVE_CHANGE_FROM 表:ID 4
    [6.230206](STC):未注册所有 chnL_ID
    [6.230228](stk):ldisc_install = 0
    [6.232520](STC):ST_TTY_CLOSE
    [6.251884] USB 1-1:找到新的 USB 器件、idVendor=0451、idProduct=8142
    [6.251896] USB 1-1:新 USB 器件字符串:MFR=0、Product=0、SerialNumber=1
    [6.251903] USB 1-1:序列号:A30E20718FAC
    [6.270675]集线器1-1:1.0:找到 USB 集线器
    [6.270753]集线器1-1:1.0:检测到4个端口
    [6.423027] c_CAN_platform 4ae3c000.can CAN0:设置 BTR=1c09 BRPE=0000
    [6.467241] c_CAN_platform 48480000.can CAN1:设置 BTR=1c09 BRPE=0000
    [7.144730] wlcore:PHY 固件版本:版本8.2.0.240
    [7.258073] wlcore:固件已启动(版本8.9.0.0.75)
    [7.291792] IPv6:ADDRCONF (NETDEV_UP):wlan0:链路未就绪
    [14.258767](STC):ChnL_id list empty :4.
    [14.258780](stk):st_Kim _start
    [14.365632](stk):ldisc_install = 1.
    [14.417069](STC):ST_TTY_OPEN
    [14.417132](stk):已安装线规
    [14.417591](stk):ti-connectivity/TIInit_11.8.32.bts
    [14.420574](stk):更改固件中的远程波特率命令
    [14.420581](stk):跳过更改远程波特率的等待事件
    [14.429181] EXT4-FS (mmcblk0p5):已重新安装。 OPTS:(空)
    [14.542172] EXT4-FS (mmcblk0p5):已重新安装。 OPTS:(空)
    [14.619670](stk): SCR 中的 SLEEP 命令
    [14.977399] EXT4-FS (mmcblk0p5):已重新安装。 OPTS:(空)
    [15.085900] EXT4-FS (mmcblk0p5):已重新安装。 OPTS:(空)
    [15.120940](stk): SCR 中的 SLEEP 命令
    [16.225582](STC):ADD_CHANGE_TO_TABLE:ID 4
    [16.225596](STC):ADD_CHANGE_TO_TABLE:ID 2
    [16.225605](STC):ADD_CHANGE_TO_TABLE:ID 3
    [28.158380] wlan0:使用20:4e:7f:97:af:B2进行身份验证
    [28.174185] wlan0:将验证发送到20:4e:7f:97:af:B2 (请尝试1/3)
    [28.202654] wlan0:已验证
    [28.20533] wlan0:与20:4e:7f:97:af:B2关联(请尝试1/3)
    [28.210296] wlan0:从20:4e:7f:97:af:B2接收等效值(capab=0x431 status=0 AID = 2)
    [28.233849] IPv6:ADDRCONF (NETDEV_CHANGE):wlan0:链路就绪
    [28.234378] wlan0:已关联
    [28.288695] wlcore:关联已完成。
    ____________________________________________________________

    连接到我们的 AP 之一后、这是 wlan0的 ifconfig 输出:
    ____________________________________________________________
    Wlan0 链路连接:以太网 HWaddr A8:1b:6a:8d:20:8d
    inet6 addr:fe80::aa1b:6aff:fe8d:208d/64范围:链接
    运行多播 MTU:1500公制:1的上广播
    RX 数据包:2错误:0丢弃:0超限:0帧:0
    TX 数据包:9错误:0丢弃:0超限:0载波:0
    冲突:0 txqueuelen:1000
    RX 字节:306 (306.0 B) TX 字节:1042 (1.0 KiB)
    ____________________________________________________________

    以下是"ip addr"的输出:
    ____________________________________________________________
    1:低: MTU 65536 qdisc noqueue state unknown group default qlen 1.(MTU 65536 qdisc noqueue 状态未知组默认长度
    链路/环回00:00:00:00:00:00返修00:00:00:00:00:00
    iNet 127.0.0.1/8示波器主机低
    VALLED_LFT FOREVER FOREVE_LFT FOREVER
    inet6:1/128范围主机
    VALLED_LFT FOREVER FOREVE_LFT FOREVER
    2:CAN0: MTU 16 qdisc FQ_codel 状态未知组默认长度10
    链接/CAN
    3:CAN1: MTU 16 qdisc FQ_codel 状态未知组默认长度10
    链接/CAN
    4:sit0@none: MTU 1480 qdisc noop state down group default qlen 1
    链接/SIT 0.0.0.0返修0.0.0.0
    5:wlan0: MTU 1500 qdisc MQ state up group default qlen 1000
    链路/以太网 A8:1b:6a:8d:20:8d 返修:ff:ff:ff:ff:ff:ff
    inet6 fe80::aa1b:6aff:fe8d:208d/64范围链接
    VALLED_LFT FOREVER FOREVE_LFT FOREVER
    ____________________________________________________________

    "iw wlan0 link"的输出:

    连接到20:4e:7f:97:af:B2 (在 wlan0上)
    SSID:NETGEAR
    频率:2422
    RX:938字节(10个数据包)
    TX:1227字节(12个数据包)
    信号:-21dBm
    TX 比特率:65.0 Mbit/s MCS 7.

    BSS 标志: 短前导码短时隙时间
    DTIM 周期:2.
    信标内部: 100

    "iwconfig"的输出:

    Wlan0 无无线扩展。

    站点0 无无线扩展。

    低 无无线扩展。

    CAN0 无无线扩展。

    CAN1 无无线扩展。


    我已经按照您的建议尝试修改了接口文件、但它似乎也不起作用。

    谢谢、
    Divyeshkumar
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Shulev、您好!

    我们是否有任何更新?

    谢谢、

    Divyeshkumar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    请参阅[1],以默认启用服务。
    systemctl 启用 dhcpcd.service
    systemctl 启动 dhcpcd.service
    从下一次引导开始、它应该默认启动。


    [1] wiki.archlinux.org/.../dhcpcd

    谢谢、
    Prabhakar LAD
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Prabhakar。

    感谢您的回答。 我已将 dhcpcd 软件包添加到我的系统中,它可以正常工作。 我仍然面临一个问题。

    如果我通过 wpa_supplicant 配置静态 IP、并且 ifconfig 将显示正确配置的 IP。 现在、如果我切换回连接到 DHCP AP、IP 将被分配、并且我可以使用动态 IP ping 到网络、但在这种情况下、命令"ifconfig"仍然显示旧的静态 IP。 如果我运行"IP A"和"IP r"命令、我可以在列表中看到新的动态 IP、还可以看到为动态网络添加的路由。

    以下是输出:

    1.先使用静态 IP 连接到 AP:

    根目录@Raymond-GDM:~# ifconfig

    wlan0 link encap:ethernet HWaddr a8:1b:6a:8d:73:1c
    iNet addr:192.168.180.61 Bcast:192.168.180.127 Mask:255.255.255.128
    inet6 addr:fe80::aa1b:6aff:fe8d:731c/64范围:链接
    运行多播 MTU:1500公制:1的上广播
    RX 数据包:153错误:0丢弃:0超限:0帧:0
    TX 数据包:336错误:0丢弃:0超限:0载波:0
    冲突:0 txqueuelen:1000
    RX 字节:19805 (19.3 KiB) TX 字节:52681 (51.4 KiB)

    根部@Raymond-GDM:~# IP A

    5:wlan0: MTU 1500 qdisc MQ state down group default qlen 1000
    链接/以太网 A8:1b:6a:8d:73:1c 返修:关:关:关:关:关:关:关
    iNet 192.168.180.61/25返修192.168.180.127范围全局 wlan0
    VALLED_LFT FOREVER FOREVE_LFT FOREVER

    2.带有 DHCP 客户端的连接到 AP:

    根目录@Raymond-GDM:~# ifconfig

    wlan0 link encap:ethernet HWaddr a8:1b:6a:8d:73:1c
    iNet addr:192.168.180.61 Bcast:192.168.180.127 Mask:255.255.255.128
    inet6 addr:fe80::aa1b:6aff:fe8d:731c/64范围:链接
    运行多播 MTU:1500公制:1的上广播
    RX 数据包:78错误:0丢弃:0超限:0帧:0
    TX 数据包:168错误:0丢弃:0超限:0载波:0
    冲突:0 txqueuelen:1000
    RX 字节:10351 (10.1 KiB) TX 字节:24341 (23.7 KiB)

    根部@Raymond-GDM:~# IP A

    5:wlan0: MTU 1500 qdisc MQ state up group default qlen 1000
    链接/以太网 A8:1b:6a:8d:73:1c 返修:关:关:关:关:关:关:关
    iNet 192.168.180.61/25返修192.168.180.127范围全局 wlan0
    VALLED_LFT FOREVER FOREVE_LFT FOREVER
    iNet 192.168.196.22/23返修192.168.197.255范围全局 wlan0
    VALLED_LFT FOREVER FOREVE_LFT FOREVER
    inet6 fe80::aa1b:6aff:fe8d:731c/64范围链接
    VALLED_LFT FOREVER FOREVE_LFT FOREVER

    根部@Raymond-GDM:~# IP r


    通过192.168.196.1 dev wlan0 src 192.168.196.22 metric 305进行默认设置
    192.168.180.0/25 dev wlan0 proto kernel scope link src 192.168.180.61
    192.168.196.0/23 dev wlan0 proto kernel scope link src 192.168.196.22 metric 305

    ________________________________________________________________

    如图所示、当与 DHCP 客户端连接时、ifconfig 仍显示192.168.180.61、而不是192.168.196.22 (由 DHCP 服务器分配)。 "IP A"将在列表中显示新 IP。 'ip r'显示动态 IP 的默认路由。

    您能否分享没有将'ifconfig '更新为基于 DHCP 的 IP 的原因是什么? 当我仅连接到各种基于 DHCP 的 AP 时、情况并非如此、只有当我分配基于静态 IP 的配置时、情况才是如此。 当我们在基于 GUI 的应用程序中显示当前 IP 地址时、我需要将其修复以显示配置到网络的当前 IP。

    非常感谢您的帮助。

    谢谢、

    Divyeshkumar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Prabhakar 或 Shulev、

    可以麻烦你更新吗?

    谢谢、

    Divyeshkumar