Re: initramfs: kernel update adds unwanted driver?
On 2018-04-14, francis.montag...@inria.frwrote: > Thus, for the running kernel: > > /bin/kernel-install add $(uname -r) /lib/$(uname -r)/vmlinuz > > It will regenerate the initramfs and eventually other things like the > grub.cfg. > > I tested to add a /etc/dracut.conf.d/test.conf to omit a driver. It > works: the driver is no more in the initramfs. That mostly works: it omits the kernel module itself (which we'll call "foo"). Howevr, it still includes in the initramfs the files etc/modprobe.d/foo.conf and /etc/modules-load.d/foo.conf. That doesn't seem to cause any real harm other than an annoying error message in the syslog: Apr 16 05:00:19 beta systemd-modules-load[192]: Failed to find module 'foo' I've been re-reading the dracut docs, and can't figure out how to tell it to omit those files (I suspect the latter of the two is the critical one). I suppose I could remove those files, regenerate the initramfs, then re-install them. That's annoying. :/ -- Grant Edwards grant.b.edwardsYow! Look! A ladder! at Maybe it leads to heaven, gmail.comor a sandwich! ___ users mailing list -- users@lists.fedoraproject.org To unsubscribe send an email to users-le...@lists.fedoraproject.org
Re: initramfs: kernel update adds unwanted driver?
You can also use lsinitrd to show the current files in any initramfs and/or cat out the contents of single files you see in the initramfs. On Sat, Apr 14, 2018 at 10:43 AM,wrote: > > On Sat, 14 Apr 2018 15:07:28 - Grant Edwards wrote: >> On 2018-04-14, francis.montag...@inria.fr wrote: >>> Thus, for the running kernel: >>> /bin/kernel-install add $(uname -r) /lib/$(uname -r)/vmlinuz > >> Thanks! That looks like a good option. I may prompt the user for >> confirmation before doing that step in my driver install script -- how >> likely is it that the admin has done something manually which that >> script will undo? > > IMO it is really unlikely since there is many ways to hook the > postrans action of the kernel-core RPM, ex: > > /usr/lib/kernel/install.d/ > /etc/kernel/install.d/ > /etc/kernel/postinst.d/ > > I use for example postinst.d for regenerating the grub.cfg with > grub2-mkconfig. > > -- > francis > ___ > users mailing list -- users@lists.fedoraproject.org > To unsubscribe send an email to users-le...@lists.fedoraproject.org ___ users mailing list -- users@lists.fedoraproject.org To unsubscribe send an email to users-le...@lists.fedoraproject.org
Re: initramfs: kernel update adds unwanted driver?
On Sat, 14 Apr 2018 15:07:28 - Grant Edwards wrote: > On 2018-04-14, francis.montag...@inria.frwrote: >> Thus, for the running kernel: >> /bin/kernel-install add $(uname -r) /lib/$(uname -r)/vmlinuz > Thanks! That looks like a good option. I may prompt the user for > confirmation before doing that step in my driver install script -- how > likely is it that the admin has done something manually which that > script will undo? IMO it is really unlikely since there is many ways to hook the postrans action of the kernel-core RPM, ex: /usr/lib/kernel/install.d/ /etc/kernel/install.d/ /etc/kernel/postinst.d/ I use for example postinst.d for regenerating the grub.cfg with grub2-mkconfig. -- francis ___ users mailing list -- users@lists.fedoraproject.org To unsubscribe send an email to users-le...@lists.fedoraproject.org
Re: initramfs: kernel update adds unwanted driver?
On 2018-04-14, francis.montag...@inria.frwrote: > On Fri, 13 Apr 2018 21:03:34 - Grant Edwards wrote: > >> First create a file named /etc/dracut.conf.d/foo containing the line >> omit_drivers+="foo". Then either > > Bexware, this file should have .conf as suffix. Ah yes, thanks for pointing that out. >> 1. Rebuild the initramfs with the 'dracut' command. I haven't tested >>this yet. It seems a bit risky [...] > You can simply execute the postrans of the kernel-core RPM > > rpm -q --scripts kernel-core-$(uname -r) > ... > posttrans scriptlet (using /bin/sh): > /bin/kernel-install add 4.15.4-300.fc27.x86_64 > /lib/modules/4.15.4-300.fc27.x86_64/vmlinuz || exit $? > > Thus, for the running kernel: > > /bin/kernel-install add $(uname -r) /lib/$(uname -r)/vmlinuz > > It will regenerate the initramfs and eventually other things like the > grub.cfg. > > I tested to add a /etc/dracut.conf.d/test.conf to omit a driver. It > works: the driver is no more in the initramfs. Thanks! That looks like a good option. I may prompt the user for confirmation before doing that step in my driver install script -- how likely is it that the admin has done something manually which that script will undo? [It's been a long time since I ran RedHat much. I think RedHat 8.0 was the last version I used regularly.] -- Grant ___ users mailing list -- users@lists.fedoraproject.org To unsubscribe send an email to users-le...@lists.fedoraproject.org
Re: initramfs: kernel update adds unwanted driver?
Hi. On Fri, 13 Apr 2018 21:03:34 - Grant Edwards wrote: > First create a file named /etc/dracut.conf.d/foo containing the line > omit_drivers+="foo". Then either Beware, this file should have .conf as suffix. > 1. Rebuild the initramfs with the 'dracut' command. I haven't tested >this yet. It seems a bit risky, since (AFAICT) I don't have any way >of knowing what command-line options were used to generate the >current, working initramfs, and I might end up making unintentional >changes when I regenerate it. You can simply execute the postrans of the kernel-core RPM rpm -q --scripts kernel-core-$(uname -r) ... posttrans scriptlet (using /bin/sh): /bin/kernel-install add 4.15.4-300.fc27.x86_64 /lib/modules/4.15.4-300.fc27.x86_64/vmlinuz || exit $? Thus, for the running kernel: /bin/kernel-install add $(uname -r) /lib/$(uname -r)/vmlinuz It will regenerate the initramfs and eventually other things like the grub.cfg. I tested to add a /etc/dracut.conf.d/test.conf to omit a driver. It works: the driver is no more in the initramfs. -- francis ___ users mailing list -- users@lists.fedoraproject.org To unsubscribe send an email to users-le...@lists.fedoraproject.org
Re: initramfs: kernel update adds unwanted driver?
On 2018-04-13, Rick Stevenswrote: > On 04/13/2018 09:34 AM, Grant Edwards wrote: >> What's the best way to remove the old, broken driver from the >> initramfs so that the driver in the root filesystem is used on boot? >> >> Is there a way to prevent the kernel update process from adding the >> driver back to the initramfs the next time a kernel is updated? [...] > Uhm, probably do a "rmmod foo;modprobe foo", THEN rebuild the > initramfs image. Also check both the /etc/dracut.conf file and > /etc/dracut.conf.d directory to see if they're specifying some > ancient version of your module. At worst, add a > --add-modules=" to the command. Except the goal is to _not_ have the driver in the initramfs. There is absolutely no reason it needs to be there, and eliminating it from the initramfs avoids a source of confusion. I've identified a couple options: First create a file named /etc/dracut.conf.d/foo containing the line omit_drivers+="foo". Then either 1. Rebuild the initramfs with the 'dracut' command. I haven't tested this yet. It seems a bit risky, since (AFAICT) I don't have any way of knowing what command-line options were used to generate the current, working initramfs, and I might end up making unintentional changes when I regenerate it. One presumes that a well-behaved admin would edit the dracut config files rather than use command-line options, but I one should not assume customers are all well-behaved. or 2. Unpack the current initramfs-*.img file, delete the foo.ko.xz file and re-pack the initramfs-*.img file. I've written a bash shell script to do that, and its seems to work fine. This feels a little less risky than regenerating the initramfs from scratch. In either case, the omit_drivers setting should prevent re-breaking the system with future runs of dracut (either manually by the admin or as part of a kernel upgrade). -- Grant Edwards grant.b.edwardsYow! ... or were you at driving the PONTIAC that gmail.comHONKED at me in MIAMI last Tuesday? ___ users mailing list -- users@lists.fedoraproject.org To unsubscribe send an email to users-le...@lists.fedoraproject.org
Re: initramfs: kernel update adds unwanted driver?
On 04/13/2018 09:34 AM, Grant Edwards wrote: > On Fedora 27 with kernel recently updated to 4.15.15-300.fc27.i686, I > ran into a problem when I installed a new version of a driver (we'll > call "foo") in /lib/modules/$(uname -r)/kernel/drivers/[...]. > > Doing a "rmmod foo; modprobe foo" loads the new driver and everything > works great. However, rebooting loads a 15-year old version of the > driver (which doesn't work great). > > lsinitrd shows that the 15-year old driver is present in the > initramfs. On a clean install of Fedora 27 (running an identical > kernel version) the initramfs does not contain the "foo" driver at > all. > > Did the kernel upgrade process muck up the initramfs by adding the old > version of the "foo" driver? The "old" version is the one that's > shipped with the kernel package, but I've never seen it included in > the initramfs before. > > What's the best way to remove the old, broken driver from the > initramfs so that the driver in the root filesystem is used on boot? > > Is there a way to prevent the kernel update process from adding the > driver back to the initramfs the next time a kernel is updated? > > Alternatively, I suppose I could add a "service" that runs at boot > time and does a "rmmod foo; modrobe foo", but that seems like the > wrong way to fix this... Uhm, probably do a "rmmod foo;modprobe foo", THEN rebuild the initramfs image. Also check both the /etc/dracut.conf file and /etc/dracut.conf.d directory to see if they're specifying some ancient version of your module. At worst, add a --add-modules=" to the command. -- - Rick Stevens, Systems Engineer, AllDigitalri...@alldigital.com - - AIM/Skype: therps2ICQ: 22643734Yahoo: origrps2 - -- - Death is nature's way of dropping carrier - -- ___ users mailing list -- users@lists.fedoraproject.org To unsubscribe send an email to users-le...@lists.fedoraproject.org