2017-04-24 27 views
0

我在我的yocto版本中使用github.com/mendersoftware/meta-mender。我想使用sed在我自己的層中使用bbappend文件編輯/ etc/fstab。具體來說,meta-mender目前正在提供他們自己的fstab文件並使用base-files_3.%.bbappend進行編輯,我只是​​想從生成的/ etc/fstab中刪除auto關鍵字。自定義bitbake bbapend不正確追加修正器fstab文件

問題是,當我在base-files_3。%.bbappend的圖層中提供自己的bbappend(我的圖層比meta-mender具有更高的優先級)時,meta-mender fstab似乎沒有創建完全可以,而開放嵌入式的股票代替。

這裏是我的元層/食譜核心/基本的文件/基files_3%bbappend:。

do_install_append(){ 
    sed -i -e 's$.*@[email protected]*[email protected][email protected] /uboot   @[email protected]  defaults,sync 0 0$' ${D}${sysconfdir}/fstab 
    sed -i -e 's$.*@[email protected]*[email protected][email protected] /data  @[email protected]  defaults   0 0$' ${D}${sysconfdir}/fstab 
} 

如果我運行bitbake -e base-files,然後查找do_install功能,你可以清楚地看到我sed命令被正確追加到元修理者/元修理者核心/食譜核心/基本的文件/基files_3:

do_install() { 
for d in /boot /dev /bin /sbin /lib   /etc /etc/default   /etc/skel /lib /mnt /proc /home/root /run   /usr /usr/bin /usr/share/doc/base-files-3.0.14 /usr/games /usr/include   /usr/lib /usr/sbin /usr/share   /usr/share/common-licenses /usr/share/dict /usr/share/info   /usr/share/man /usr/share/misc /var   /var/backups /var/lib   /sys /var/lib/misc /var/spool   /var/volatile   /var/volatile/log   /home /usr/src /var/local   /media; do 
    install -m 0755 -d /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/image$d 
done 
for d in /tmp /var/volatile/tmp; do 
    install -m 1777 -d /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/image$d 
done 
for d in ; do 
    install -m 2775 -d /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/image$d 
done 
for d in log tmp; do 
    ln -sf volatile/$d /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/image/var/$d 
done 

ln -snf ../run /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/image/var/run 
ln -snf ../run/lock /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/image/var/lock 

do_install_basefilesissue 

rotation=`cat /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/rotation` 
if [ "$rotation" != "0" ]; then 
    install -m 0644 /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/rotation /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/image/etc/rotation 
fi 

install -m 0644 /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/fstab /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/image/etc/fstab 
install -m 0644 /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/filesystems /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/image/etc/filesystems 
install -m 0644 /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/usbd /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/image/etc/default/usbd 
install -m 0644 /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/profile /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/image/etc/profile 
sed -i 's#ROOTHOME#/home/root#' /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/image/etc/profile 
install -m 0644 /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/shells /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/image/etc/shells 
install -m 0755 /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/share/dot.profile /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/image/etc/skel/.profile 
install -m 0755 /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/share/dot.bashrc /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/image/etc/skel/.bashrc 
install -m 0644 /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/nsswitch.conf /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/image/etc/nsswitch.conf 
install -m 0644 /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/host.conf /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/image/etc/host.conf 
install -m 0644 /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/motd /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/image/etc/motd 

ln -sf /proc/mounts /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/image/etc/mtab 
install -d /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/image/uboot 
install -d /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/image/data 
sed -i -e 's$.*@[email protected]*[email protected][email protected] /uboot    @[email protected]  defaults,sync 0 0$' /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/image/etc/fstab 
sed -i -e 's$.*@[email protected]*[email protected][email protected] /data    @[email protected]  defaults   0 0$' /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/image/etc/fstab 

}

然而,我的/ etc/FS標籤是這樣的:

# stock fstab - you probably want to override this with a machine specific one 

/dev/root   /     auto  defaults    1 1 
proc     /proc    proc  defaults    0 0 
devpts    /dev/pts    devpts  mode=0620,gid=5  0 0 
tmpfs    /run     tmpfs  
mode=0755,nodev,nosuid,strictatime 0 0 
tmpfs    /var/volatile  tmpfs  defaults    0 0 

# uncomment this if your device has a SD/MMC/Transflash slot 
#/dev/mmcblk0p1  /media/card   auto  defaults,sync,noauto 0 0 

正如你所看到的,它完全跳過元養路/ etc/fstab文件,只是寫了一個股票。

回答

1

那麼,您的sed-expression中的.*@[email protected]*評估的是什麼呢?

據我所見,您沒有任何與您fstab中的.*@[email protected]*.*@[email protected]*相匹配的東西。

如果我的理解是正確的,你可以很類似

echo "data" >> ${D}${sysconfdir}/fstab 
使用的東西