init-ifupdown 的 Yocto Poky-Pyro bbappend 文件没有替换 /etc/network/interfaces

Yocto Poky-Pyro bbappend file for init-ifupdown is not replacing /etc/network/interfaces

我在 Ubuntu 16.04 上使用 Yocto poky-pyro。我想替换生成的图像根文件系统上的 /etc/network/interfaces 文件,因此我在我的 meta-company 目录中添加了一个 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

bbappend 文件如下所示:

# Extend the base recipe search path to $HERE/init-ifupdown
FILESEXTRAPATHS_prepend := "${THISDIR}/init-ifupdown-1.0:"

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

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

在构建映像并查看 init-ifupdown 包的工作构建目录后,我看到错误的 "interfaces" 文件在那里,它与映像中的内容匹配:

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

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

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

将文件放入子目录init-ifupdown_1.0/${MACHINE}。这将确保你的 interfaces 文件只会被你的机器拾取,它也会为你的机器赋予它优先权。