Results 1 to 6 of 6

Thread: Why isn't a new file in /etc/modprobe.d used?

  1. #1
    Join Date
    Jan 2014
    Location
    Alabama, USA
    Posts
    13

    Question Why isn't a new file in /etc/modprobe.d used?

    I am a newbie to openSUSE, today is my first day. I have a lot of experience with Debian and Arch (and several other distros), though.

    I need to add an option for my radeon driver. I created a new file in /etc/modprobe.d named 50-radeon.conf and put my option spec in it. I rebooted, and my option had not taken effect.

    So, I poked around for a while and added it to 99-local.conf, rebooted, and it worked.

    Why did openSUSE 13.1 not use it from file 50-radeon.conf?

    Tim

  2. #2
    Join Date
    Aug 2010
    Location
    Chicago suburbs
    Posts
    15,673
    Blog Entries
    3

    Default Re: Why isn't a new file in /etc/modprobe.d used?

    Quote Originally Posted by ratcheer View Post
    I am a newbie to openSUSE, today is my first day. I have a lot of experience with Debian and Arch (and several other distros), though.

    I need to add an option for my radeon driver. I created a new file in /etc/modprobe.d named 50-radeon.conf and put my option spec in it. I rebooted, and my option had not taken effect.

    So, I poked around for a while and added it to 99-local.conf, rebooted, and it worked.

    Why did openSUSE 13.1 not use it from file 50-radeon.conf?

    Tim
    I don't really know the answer. However ...

    The radeon driver is probably being loaded from the "initrd", before "/etc/modprobe.d" is accessible. I'm not sure whether running "mkinitrd" would fix that. Or perhaps you have to set "NO_KMS_IN_INITRD" to "yes" in "/etc/sysconfig/kernel" (you can use the Yast sysconfig editor for this). That would keep the driver out of the "initrd", so it would be loaded later, by which time "/etc/modprobe.d" is accessible.
    openSUSE Leap 15.3; KDE Plasma 5.18.6;

  3. #3
    Join Date
    Jan 2014
    Location
    Alabama, USA
    Posts
    13

    Default Re: Why isn't a new file in /etc/modprobe.d used?

    Well, note that I said I added the same option statement to /etc/modprobe.d/99-local.conf and it does work. My question is, why does it work there but not in file 50-radeon.conf ?

    Tim

  4. #4
    Join Date
    Aug 2010
    Location
    Chicago suburbs
    Posts
    15,673
    Blog Entries
    3

    Default Re: Why isn't a new file in /etc/modprobe.d used?

    Quote Originally Posted by ratcheer View Post
    Well, note that I said I added the same option statement to /etc/modprobe.d/99-local.conf and it does work. My question is, why does it work there but not in file 50-radeon.conf ?

    Tim
    Is it possible that you installed some updates between the two?

    Looking inside the "initrd" file, I see that "/etc/modprobe.d/*" files are there. Perhaps an update caused the "initrd" to be rebuilt, and that happened just after adding the entry to "99-local.conf".

    To list the "initrd" content, I did
    Code:
    zcat initrd | cpio -t | less
    and then I scrolled through the "less" browser output to find "modprobe" entries.
    openSUSE Leap 15.3; KDE Plasma 5.18.6;

  5. #5
    Join Date
    Jan 2014
    Location
    Alabama, USA
    Posts
    13

    Default Re: Why isn't a new file in /etc/modprobe.d used?

    Yes, that is possible. I had done a fresh install Saturday evening, and while I was trying to configure my system on Sunday, it was installing updates every time I turned around. But on Debian, it seems to me that simply rebooting is enough to apply changes from these files.

    I'm just a little confused, that's all. My system is working well. I like to understand why certain things are the way they are.

    Thank you,
    Tim

  6. #6

    Default Re: Why isn't a new file in /etc/modprobe.d used?

    Quote Originally Posted by ratcheer View Post
    Yes, that is possible. I had done a fresh install Saturday evening, and while I was trying to configure my system on Sunday, it was installing updates every time I turned around. But on Debian, it seems to me that simply rebooting is enough to apply changes from these files.

    I'm just a little confused, that's all. My system is working well. I like to understand why certain things are the way they are.
    As nrickert alludes to, the radeon module is typically loaded from the initrd ... and at that point in time, there is no normal / (read "root") file system, only that provided by way of the initrd ... which means that there is no way in hell that any distro could know anything about the modprobe configurations contained in /etc/modprobe.d/* ... which in turn means that, in the case of a module that is being loaded from the initrd, and as nrickert points out, if you actually needed to use specific module load options, then they would also have to be contained in the initrd. Proof:
    Code:
    # cd /boot && lsinitrd initrd | grep -e etc/modprobe.d -e radeon
    Otherwise, for a non crucial module (say, like that needed for a capture card) that gets loaded later on by the kernel (either during a later point in the boot process or later, post boot, on demand ... i.e. after the normal root file system is mounted), then simple changes to the /etc/modprobe.d/ files will be picked up on the next boot or when manually invoked

    You can also convince yourself of this fact (again, provided you're having the radeon module load from the initrd) by making a radeon option change to either of those two files (50-radeon or 99-local) without rebuilding the initrd and witness how effective your changes are or aren't.

    (Though, once booted up, if you were to then unload the radeon module and then manually reinsert it, you'd find that your changes would work!)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •