You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Yocto构建的树莓派5设置静态IP地址?

树莓派5 Yocto镜像静态IP配置失败排查

一、镜像构建配置

基于meta-raspberrypi/conf/machine/raspberrypi5.conf修改,添加dhcpcd等模块后的配置如下:

#@TYPE: Machine
#@NAME: RaspberryPi 5 Development Board (64bit)
#@DESCRIPTION: Machine configuration for the RaspberryPi 5 in 64 bits mode

require conf/machine/include/arm/armv8-2a/tune-cortexa76.inc
include conf/machine/include/rpi-base.inc

MACHINE_FEATURES += "pci"
MACHINE_EXTRA_RRECOMMENDS += "\
    linux-firmware-rpidistro-bcm43455 \
    bluez-firmware-rpidistro-bcm4345c0-hcd \
    linux-firmware-rpidistro-bcm43456 \
    bluez-firmware-rpidistro-bcm4345c5-hcd \
    nano \
    setxkbmap \
    dhcpcd \
"

RPI_KERNEL_DEVICETREE = "\
    broadcom/bcm2712-rpi-5-b.dtb \
"

RPI_KERNEL_DEVICETREE_OVERLAYS:append = " overlays/bcm2712d0.dtbo"

SDIMG_KERNELIMAGE ?= "kernel_2712.img"
SERIAL_CONSOLES ?= "115200;ttyAMA10"

VC4DTBO ?= "vc4-kms-v3d"

# When u-boot is enabled we need to use the "Image" format and the "booti"
# command to load the kernel
KERNEL_IMAGETYPE_UBOOT ?= "Image"
# "zImage" not supported on arm64 and ".gz" images not supported by bootloader yet
KERNEL_IMAGETYPE_DIRECT ?= "Image"
KERNEL_BOOTCMD ?= "booti"

UBOOT_MACHINE = "rpi_arm64_config"

二、问题现象

尝试配置静态IP后,执行ifconfig查看eth0状态,无IP地址输出:

eth0      Link encap:Ethernet HWaddr 2C:CF:67:1F:AA:33
             UP BROADCAST MULTICAST MTU:1500 Metric:1
             RX packeyts:0 errors:0 dropped:0 pverruns:0 frame:0
             TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
             collisions:0 txqueuelen:1000
             RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
             Interrupt:107

三、已尝试操作

  • 参考Yocto静态IP配置方案进行设置,无效
  • 手动修改网络配置文件(从80-wired.network改为50-wired.network),配置内容如下:
[Match]
Type=ether
Name=eth0
KernelCommandLine=!nfsroot
KernelCommandLine=!ip

[Network]
DHCP=no  
Address=172.16.30.53/24
Gateway=172.16.30.254
DNS=8.8.8.8

[DHCP]
UseMTU=yes
RouteMetric=10
ClientIdentifer=mac

四、排查建议

  • 检查systemd-networkd服务状态:执行systemctl status systemd-networkd,确认服务是否正常启动,有无报错信息
  • 验证配置文件语法:执行networkctl reload,查看是否有配置格式错误提示
  • 检查网卡链路状态:执行ethtool eth0,查看Link detected字段是否为yes,确认物理链路是否连通
  • 查看网络服务日志:执行journalctl -u systemd-networkd,查找配置加载失败、IP分配异常的具体原因
  • 确认Yocto构建依赖:检查镜像是否包含systemd-networkd包,需在IMAGE_INSTALL中添加该组件
  • 排查服务冲突:由于同时添加了dhcpcd,可能与systemd-networkd抢占网卡管理权,建议禁用dhcpcd服务:systemctl disable --now dhcpcd,再重启systemd-networkd:systemctl restart systemd-networkd

内容的提问来源于stack exchange,提问作者minimus_maximus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 04:52:16