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
文件只会被你的机器拾取,它也会为你的机器赋予它优先权。
我在 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
文件只会被你的机器拾取,它也会为你的机器赋予它优先权。