From: Andreas Ziegler <br015@umbiko.net>
To: Frank Wunderlich <frank-w@public-files.de>
Cc: buildroot <buildroot@buildroot.org>
Subject: Re: [Buildroot] lvm2 seems to require systemd
Date: Tue, 30 Jul 2024 11:39:50 +0000 [thread overview]
Message-ID: <a9e107ca09cd66b65d918e91f50695f6@umbiko.net> (raw)
In-Reply-To: <trinity-86e81e5d-18d4-4d6f-8df9-d69f9a24ac08-1722333004307@3c-app-gmx-bs45>
Hi Frank,
On 2024-07-30 09:50, Frank Wunderlich wrote:
> Hi
>
>> Gesendet: Montag, 22. Juli 2024 um 07:15 Uhr
>> Von: "Andreas Ziegler" <br015@umbiko.net>
>> An: "Frank Wunderlich" <frank-w@public-files.de>
>> Cc: "buildroot" <buildroot@buildroot.org>
>> Betreff: Re: Aw: Re: Re: Re: lvm2 seems to require systemd
>>
>> Hi Frank,
>>
>> On 2024-07-21 19:37, Frank Wunderlich wrote:
>> > Hi
>> >
>> >> Gesendet: Sonntag, 21. Juli 2024 um 19:58 Uhr
>> >> Von: "Andreas Ziegler" <br015@umbiko.net>
>> >> An: "Frank Wunderlich" <frank-w@public-files.de>
>> >> Cc: "buildroot" <buildroot@buildroot.org>
>> >> Betreff: Re: Aw: Re: Re: lvm2 seems to require systemd
>> >>
>> >> Hi Frank,
>> >>
>> >> On 2024-07-21 15:50, Frank Wunderlich wrote:
>> >> > Hi Andreas
>> >> >
>> >> > noticed some errors when calling the vgchange command
>> >> >
>> >> > # /usr/sbin/lvm vgchange -aay --autoactivation event vg-nvme
>> >> > 1 logical volume(s) in volume group "vg-nvme" now active
>> >> > [ 8023.796866] udevd[1614]: failed to execute '/usr/sbin/blkid'
>> >> > '/usr/sbin/blkid -o udev -p /dev/dm-0': No such file or directory
>> >> > [ 8023.808977] udevd[1610]: conflicting device node
>> >> > '/dev/mapper/vg--nvme-var' found, link to '/dev/dm-0' will not be
>> >> > created
>> >> > # lvscan
>> >> > ACTIVE '/dev/vg-nvme/var' [10.00 GiB] inherit
>> >>
>> >> Your execution of vgchange triggers additional udev messages, that are
>> >> not handled correctly. Try to find out what is missing and add it to
>> >> your image; blkid, for example, is part of package util-linux.
>> >
>> > i have already enabled util_linux
>> > Symbol: BR2_PACKAGE_UTIL_LINUX [=y]
>> > BR2_PACKAGE_HOST_UTIL_LINUX [=y]
>> > BR2_PACKAGE_UTIL_LINUX_LIBBLKID [=y]
>> >
>> > so strange that blkid is not there, but it is in /sbin
>> >
>> > # which blkid
>> > /sbin/blkid
>> >
>> > maybe a symlink needs to be created?
>> >
>>
>> Sorry, my mistake: blkid is provided by busybox and busybox installs
>> it
>> in /sbin. Since this is a Buildroot feature (unless you activate
>> BR2_ROOTFS_MERGED_USER), I would modify the udev rule.
>>
>> >> The double-dash in vg--nvme-var looks strange: is this intentional?
>> >
>> > as you can see above i used only one dash in vg-nvme, not sure why
>> > another one was inserted here
>> >
>> > # pvscan
>> > PV /dev/nvme0n1p5 VG vg-nvme lvm2 [<1.79 TiB / <1.78 TiB free]
>> > Total: 1 [<1.79 TiB] / in use: 1 [<1.79 TiB] / in no VG: 0 [0 ]
>> >
>> >> > but i'm able to mount it
>> >> >
>> >> > # mkdir /mnt/var
>> >> > # mount /dev/mapper/vg--nvme-var /mnt/var/
>> >> > [ 8514.687803] EXT4-fs (dm-0): mounted filesystem
>> >> > be8b31d6-96e2-43a1-8416-a058972118b3 r/w with ordered data mode. Quota
>> >> > mode: disabled.
>> >> > # ls /mnt/var
>> >> > cache lib log lost+found run tmp
>> >> > #
>> >> >
>> >> > how can i test the script? currently i'm in the initrd, so changing
>> >> > anything will be lost on reboot, so i want to test the script before
>> >> > putting it into the initrd.
>> >>
>> >> I usually mount the target's file system via ssh://root@hostname in a
>> >> file browser; that allows me to copy to and from the target machine.
>> >> Script and configuration changes are made directly on the target
>> >> system,
>> >> and copied back to the development machine when everything runs
>> >> satisfactorily.
>> >>
>> >> > as far as i see the original call via udev contains some
>> >> > systemd-specific params and environment-vars i do not know currently
>> >>
>> >> They are probably safe to ignore; when in doubt, consult the systemd
>> >> documentation. Evironment variables are extensively used within the
>> >> udev
>> >> context; I doubt that the called lvm2 tool makes use of them.
>> >
>> > they seem to be systemd options which are not stripped by the script
>> > yet which
>> > will result in invalid call (imho only first param is shifted away)
>> >
>>
>> RUN+="/usr/bin/systemd-run \
>> --no-block \
>> --property DefaultDependencies=no \
>> --unit lvm-activate-$env{LVM_VG_NAME_COMPLETE} \
>> /usr/sbin/lvm \
>> vgchange \
>> -aay \
>> -autoactivation \
>> event $env{LVM_VG_NAME_COMPLETE}"
>>
>> If you put a 'shift 5' at the beginning of the script, it should get
>> rid
>> of the systemd parameters. Alternatively, you could modify the udev
>> rule.
>
> I'm not sure how to fix properly....where should i put the script (it
> is called on bootup and there my changes done on runtime are dropped)
> and where to call it (imho it should be called by the existing
> udev-rule, right)?
The script might go into /usr/bin. Put all new or changed files in a
separate directory, within a layout reflecting that of your root
filesystem. Configure Buildroot's BR2_ROOTFS_OVERLAY and these files -
with their relative directories - will be copied to the root filesystem
after build and before image creation. For examples, see [1].
> how to fix the blkid properly (maybe add symlink)? but this has to be
> done in source too or while building.
Leave blkid where it is, modify the udev script and put it in your
overlay filesystem. As Arnout suggested, reworking all of the udev
scripts will probably be the easiest approach ...
> sorry for my noob questions, but my buildroot-knowledge is only :)
The Buildroot manual [2] is quite useful. Bootlin has some training
materials [3] for general use.
Kind regards,
Andreas
>
> regards Frank
>
<cut>
[1] https://buildroot.org/downloads/manual/manual.html#customize
[2] https://buildroot.org/docs.html
[3] https://bootlin.com/docs/
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next prev parent reply other threads:[~2024-07-30 11:40 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <mailman.12142.1721505316.24059.buildroot@buildroot.org>
2024-07-21 9:17 ` [Buildroot] lvm2 seems to require systemd Andreas Ziegler
2024-07-21 9:54 ` Frank Wunderlich via buildroot
2024-07-21 10:16 ` Andreas Ziegler
2024-07-21 15:50 ` Frank Wunderlich via buildroot
2024-07-21 17:58 ` Andreas Ziegler
2024-07-21 19:37 ` Frank Wunderlich via buildroot
2024-07-22 5:15 ` Andreas Ziegler
2024-07-30 9:50 ` Frank Wunderlich via buildroot
2024-07-30 11:39 ` Andreas Ziegler [this message]
2024-07-30 15:49 ` Frank Wunderlich via buildroot
2024-07-20 12:34 Frank Wunderlich via buildroot
2024-07-20 19:49 ` Frank Wunderlich via buildroot
2024-07-22 7:58 ` Arnout Vandecappelle via buildroot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a9e107ca09cd66b65d918e91f50695f6@umbiko.net \
--to=br015@umbiko.net \
--cc=buildroot@buildroot.org \
--cc=frank-w@public-files.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.