Bryan Kadzban wrote: > Bruce Dubbs wrote: >> In my development system, there is no /run/tmp-rules--*. There is >> /run/udev/rules.d/, but it's empty. > > A file will get written to one of those locations if the rootfs is > read-only when a NIC (or CD drive) shows up that needs a new rule to be > written for it. > > /dev/.udev/tmp-rules--* was the location before /run showed up. We > might have gotten the path wrong for a system with /run, but I don't > think so; I think that at least the filename is still tmp-rules--*. I'd > have to find a second NIC and reboot to know for sure, though.
Grepping the source, we have RUNDIR=$(udevadm info --run) It looks like this is /run/udev. It is in the current udev_retry that way too. local tmp_rules_file="$RUNDIR/tmp-rules--${RULES_FILE##*/}" and in another file RULES_FILE='/etc/udev/rules.d/70-persistent-net.rules' So it looks like for us it should be /run/udev/tmp-rules--*, but we could copy that to /run/udev/rules.d/ for a temporary location or to /etc/udev/rules.d/ for a permanent location. I'd like to use /run/udev/rules.d/ because the less we write to /etc, the better. There is discussion of moving mtab and the like to other places. Someday, I'd like to be able to leave / as read only. >>> So, I think all that is need for point 3 is to move that "copy >>> temporary generated rules to /etc" code into the main udev script. >> I don't think that is even necessary. Looking at the latest udev man >> page: >> >> "The udev rules are read from the files located in the default rules >> directory /lib/udev/rules.d/, the custom rules directory >> /etc/udev/rules.d/ and the temporary rules directory >> /run/udev/rules.d/." > > This won't persist the first boot's NIC->name assignment to the next > boots unless the generated rules file gets copied somewhere persistent. > > As long as we follow Debian with the rule_generator rules, we'll need to > copy these files to the (writable) rootfs if they exist after mountfs. Sadly, I have to agree. >> I am working on rewriting the bootscripts (again). This time, the >> LSB functions are used. I've got them working and the bootlog looks >> right, but I need to test the error paths. >> >> What do you think if I just dropped udev_retry? > > Please don't yet. :-) OK. > I think before we drop udev_retry we need to either (a) encode somewhere > that the only way that multiple partitions are supported is via an > initramfs (which mounts *all* of them before giving control to the > rootfs), or (b) hack up an initramfs that does exactly that, ourselves. > > Of course, --type=failed will actually break at some point. At that > time, we'll need to either re-trigger everything (which will take a > while), or do the initramfs thing. I took a quick glance at your 2005 hint on building an initramfs. I wonder how much has changed. In any case, it's a lot of work because upstream wants to drop what appears to be a small capability. We may just have to accept the limitation of not having separate /usr and /var partitions for LFS. -- Bruce -- http://linuxfromscratch.org/mailman/listinfo/lfs-dev FAQ: http://www.linuxfromscratch.org/faq/ Unsubscribe: See the above information page