用于 init-ifupdown 的 Yocto Poky-Pyro bbappend 文件不会替换 /etc/network/interfaces

Phi*_*Bot 2 linux embedded-linux bitbake yocto

我在 Ubuntu 16.04 上使用 Yocto poky-pyro。我想替换生成的映像根文件系统上的 /etc/network/interfaces 文件,因此我在我的元公司目录中添加了一个 bbappend 配方,该配方还包含其他正确构建的包配方。

user@BuildMachine:~/bbb/meta-bbb/recipes-custom/init-ifupdown$ tree
.
??? init-ifupdown_1.0
?   ??? interfaces
??? init-ifupdown_1.0.bbappend

1 directory, 2 files
Run Code Online (Sandbox Code Playgroud)

bbappend 文件如下所示:

# Extend the base recipe search path to $HERE/init-ifupdown
FILESEXTRAPATHS_prepend := "${THISDIR}/init-ifupdown-1.0:"
Run Code Online (Sandbox Code Playgroud)

该目录中的接口文件如下所示:

user@BuildMachine:~/bbb/meta-bbb/recipes-custom/init-ifupdown$ cat init-ifupdown_1.0/interfaces 
# Configure Loopback
auto lo
iface lo inet loopback

# Configure WiFi Infrastructure
auto wlan0
iface wlan0 inet dhcp

 # Configure WiFi Hotspot
auto wlan1
iface wlan1 inet static  
    address 172.24.1.1
    netmask 255.255.255.0
    network 172.24.1.0
    broadcast 172.24.1.255
Run Code Online (Sandbox Code Playgroud)

在我构建图像并查看 init-ifupdown 包的工作构建目录后,我看到错误的“接口”文件在那里并且它与图像中的内容相匹配:

user@BuildMachine:~/bbb/build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/init-ifupdown/1.0-r7$ ls interfaces 
interfaces
user@BuildMachine:~/bbb/build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/init-ifupdown/1.0-r7$ cat interfaces 
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

### wired, static
#auto eth0
#iface eth0 inet static
#   address 192.168.10.33
#   netmask 255.255.255.0
#   gateway 192.168.10.1
Run Code Online (Sandbox Code Playgroud)

如何让我的 bbappend 文件生效并部署我的自定义接口文件?

And*_*ers 7

interfaces文件是特定于机器的,因此很可能已经有另一个interfaces文件位于machine override.

将文件放在子目录中init-ifupdown_1.0/${MACHINE}。这将确保您的interfaces文件只会被您的机器接收,它还将为您的机器提供优先级。