/ / Персонализиран битбек бабанд не правилно добавяне на файл mender fstab - linux, sed, вграден, yocto, bitbake

Персонален битов bbapend неправилно прибавяне на файла mender fstab - linux, sed, embedded, yocto, bitbake

Използвам github.com/mendersoftware/meta-mender в моята yocto build. Искам да редактирам / etc / fstab, използвайки sed с bbappend файл в моя собствен слой. По-конкретно meta-mender понастоящем предоставя собствен файл fstab и го редактира с a base-files_3.%.bbappend, а аз просто искам да премахна auto ключова дума от генерирания / etc / fstab.

Проблемът е, че когато доставям собствената си добавка(моят слой има по-висок приоритет от мета-мендър) в моя слой за base-files_3.%. bbappend, meta-mender fstab изглежда изобщо не е създаден, а вместо това е запаса от отворено вграждане.

Ето моя мета слой / рецепти-ядро / база-файлове / база-файлове_3.%. Bbappend:

do_install_append(){
sed -i -e "s$.*@MENDER_BOOT_PART@.*$@MENDER_BOOT_PART@   /uboot           @MENDER_BOOT_PART_FSTYPE@       defaults,sync    0  0$" ${D}${sysconfdir}/fstab
sed -i -e "s$.*@MENDER_DATA_PART@.*$@MENDER_DATA_PART@   /data     @MENDER_DATA_PART_FSTYPE@       defaults         0  0$" ${D}${sysconfdir}/fstab
}

Ако тичам bitbake -e base-files, след това потърсете функцията do_install, можете ясно да видите, че моята sed командите са правилно добавени към мета-мендер / мета-мендър-ядро / рецепти-ядро / база-файлове / база-файлове_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$.*@MENDER_BOOT_PART@.*$@MENDER_BOOT_PART@   /uboot               @MENDER_BOOT_PART_FSTYPE@       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$.*@MENDER_DATA_PART@.*$@MENDER_DATA_PART@   /data                @MENDER_DATA_PART_FSTYPE@       defaults         0  0$" /home/user/Desktop/yocto/build/tmp/work/raspberrypi3-poky-linux-gnueabi/base-files/3.0.14-r89/image/etc/fstab

}

И все пак, моят / etc / fstab изглежда така:

# 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 за отговор № 1

Е, какво прави .*@MENDER_BOOT_PART@.* във вашия sed-изразяване оценявате да?

Доколкото виждам, нямате нищо, съвпадащо с нито едно от тях .*@MENDER_BOOT_PART@.* нито.*@MENDER_DATA_PART@.* във вас fstab.

Ако разбирането ми е правилно, бихте могли да използвате нещо подобно на

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