是否可以在 yocto 开发的 Linux 映像中设置静态 IP 地址?

发布于 2025-01-14 16:02:50 字数 76 浏览 3 评论 0原文

我正在使用 yocto 开发自定义 Linux 映像,我想为所有映像设置一个 IP 地址。有可能吗?我该怎么做?

提前致谢。

I am using yocto to develop custom linux images and I want to set an ip address for all of my images. It is possible? How can I do this?

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浴红衣 2025-01-21 16:02:50

要在构建的映像中自动设置静态 IP,请使用 systemd-networkd

在自定义层中:

meta-custom
    |_ recipes-core
         |_ systemd
              |_ systemd_%.bbappend
         |_ files
              |_ <iface>.link
              |_ <iface>.network

对于 ,您必须设置要配置的接口systemd-networkd,例如 eth0wlan0、...

  • systemd_%.bbappend
PACKAGECONFIG_append = " networkd resolved"
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"

MY_INTERFACE = "<iface>"

SRC_URI += " \
    file://${MY_INTERFACE}.network \
    file://${MY_INTERFACE}.link \
"

FILES_${PN} += " \
    ${sysconfdir}/systemd/network/${MY_INTERFACE}.network \
    ${sysconfdir}/systemd/network/${MY_INTERFACE}.link \
"

do_install_append() {
    install -d ${D}${sysconfdir}/systemd/network
    install -m 0644 ${WORKDIR}/${MY_INTERFACE}.network ${D}${sysconfdir}/systemd/network
    install -m 0644 ${WORKDIR}/${MY_INTERFACE}.link ${D}${sysconfdir}/systemd/
}

另外,编辑${MY_INTERFACE} 到相同的

详细信息

  • 如果您想设置网络设备配置(例如自定义 MAC 地址),请使用 .link,有关详细信息,请查看此 链接

示例:

[Match]
Name=<iface>

[Link]
MACAddress=12:34:56:78:90:ab
  • 使用 .network设置网络配置,了解更多信息检查此链接

对于静态IP地址,这里有一个例如:

[Match]
Name=<iface>

[Network]
DHCP=no
Address=192.168.0.10/24
Gateway=192.168.0.1
DNS=192.168.0.1

注意

不要忘记根据您想要的界面在所有位置(recipe、.link、.network 文件)编辑

To automatically set a static IP in the built image, using systemd-networkd:

In your custom layer:

meta-custom
    |_ recipes-core
         |_ systemd
              |_ systemd_%.bbappend
         |_ files
              |_ <iface>.link
              |_ <iface>.network

For <iface> you have to set the interface to be configured by systemd-networkd, for example eth0, wlan0, ...

  • systemd_%.bbappend
PACKAGECONFIG_append = " networkd resolved"
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"

MY_INTERFACE = "<iface>"

SRC_URI += " \
    file://${MY_INTERFACE}.network \
    file://${MY_INTERFACE}.link \
"

FILES_${PN} += " \
    ${sysconfdir}/systemd/network/${MY_INTERFACE}.network \
    ${sysconfdir}/systemd/network/${MY_INTERFACE}.link \
"

do_install_append() {
    install -d ${D}${sysconfdir}/systemd/network
    install -m 0644 ${WORKDIR}/${MY_INTERFACE}.network ${D}${sysconfdir}/systemd/network
    install -m 0644 ${WORKDIR}/${MY_INTERFACE}.link ${D}${sysconfdir}/systemd/
}

Also, edit ${MY_INTERFACE} to same <iface>.

Details:

  • <iface>.link is used if you want to set the network device configuration, for example a custom MAC address, for more info check this link

Example:

[Match]
Name=<iface>

[Link]
MACAddress=12:34:56:78:90:ab
  • <iface>.network used to set the network configuration, for more info check this link

For a static IP address, here is an example:

[Match]
Name=<iface>

[Network]
DHCP=no
Address=192.168.0.10/24
Gateway=192.168.0.1
DNS=192.168.0.1

NOTE

Do not forget to edit <iface> in all places (recipe, .link, .network files) according to your desired interface.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文