2017-04-24 2 views
0

J'utilise github.com/mendersoftware/meta-mender dans ma compilation yocto. Je veux éditer/etc/fstab en utilisant sed avec un fichier bbappend dans mon propre calque. Plus précisément, meta-mender fournit actuellement son propre fichier fstab et l'édite avec un base-files_3.%.bbappend, et je veux juste supprimer le mot-clé auto du fichier/etc/fstab généré. Le problème est que lorsque je fournis ma propre bbappend (ma couche a une priorité plus élevée que la méta-mender) dans ma couche pour base-files_3.% .bbappend, le fstab de méta-mender ne semble pas être créé du tout, et le stock d'open-embedded est à la place.Bitbake personnalisé bbapend ne pas ajouter correctement le fichier fstab mender

Voici ma méta-couche/recettes-core/base-files/base 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 
} 

Si je cours bitbake -e base-files, regardez alors la fonction do_install, vous pouvez voir clairement que mes sed commandes sont correctement être ajoutées à la méta-cantonnier/méta-cantonnier-core/recettes-core/base-files/base-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 

}

Et pourtant, mon/etc/fs onglet ressemble à ceci:

# 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 

Comme vous pouvez le voir, il est tout à fait sauter les méta-cantonniers/etc/fstab et en train d'écrire un stock un.

Répondre

1

Eh bien, qu'est-ce que .*@[email protected]* dans votre sed-expression évaluer? Dans la mesure où je peux voir, vous n'avez rien correspondant à l'un des .*@[email protected]* ou .*@[email protected]* dans votre fstab.

Si je comprends bien, vous pourriez tout aussi bien utiliser quelque chose de similaire à

echo "data" >> ${D}${sysconfdir}/fstab