On Tue, 23 May 2023 15:58:34 -0400
dhk <dhkuhl1...@gmail.com> wrote:

> After a new install on an HP EliteBook with an Intel I7 core, when
> the iwlwifi module is loaded the system fails to complete shutdown
> and power off.
> 
> The install is mostly a standard openrc install for a personal use 
> laptop.  The usual partitions were created and only /var, /opt and
> /home are on lvm2; one non-standard partition configuration is
> /usr/src and /lib/modules are on their own partition.  The /usr/src
> partition should be benign since it is only used when building the
> kernel; however, the /lib/modules partition was the cause of one
> issue that has already been resolved and may be the cause of the
> other.

/lib should be in your root partition, I know you are saying
/lib/modules, but I think it applies to directories under /lib *except*
in cases when that directory should be under /var /opt or /usr more
accurately.  

> First, the resolved issue.
> On boot, the iwlwifi module was not found and the following message
> was displayed.
>    * Loading kernel modules ...
>     modprobe: FATAL: Module iwlwifi not found in directory 
> /lib/modules/6.1.19-gentoo-x86_64
> This was puzzling, since once logged in a find command found it where
> it should be and the module could be added on the command line
> without any problem.  This issue caused me to reboot and shutdown
> many times until noticing that modprobe was trying to load the
> iwlwifi module before /lib/modules was mounted.  This was easily
> fixed by adding a "/lib/modules" line to the /etc/initramfs.mounts
> file.  The one thing noticed from all the shutdowns and reboots was,
> when the iwlwifi module was not loaded the system shutdown fine and
> when it was loaded the system failed to shutdown and power off
> completely.
> 
> Second, Loading modules prevents shutdown,
> The issue was discovered with iwlwifi, but occurs when any module
> from the /lib/modules/6.1.19-gentoo-x86_64 directory is tried instead
> and deleting the module before the "shutdown -h -P now" does not make
> a difference.
> 
> To get a better look at what is going on, the rc_logger variable was
> set to "YES" in /etc/rc.conf (rc_logger="YES").
> 
> 
> Now the difference between the console display and /var/log/rc.log
> file on a clean shutdown and one with a module loaded preventing a
> clean shutdown.
> 
> Whether a module is loaded or not, the console and /var/log/rc.log
> match up to and including "Stopping the Logical Volume Manager" and
> then things start to deviate.
> 
>   * Stopping syslog-ng ...  [ ok 
> ]                                                      <= console and 
> /var/log/rc.log match.
>   * Unmounting loop devices * Unmounting filesystems
>   *   Unmounting /var ...  [ ok ]
>   *   Unmounting /opt ...  [ ok ]
>   *   Unmounting /home ...  [ ok ]
>   *   Unmounting /usr/src ...  [ ok ]
>   *   Unmounting /tmp ...  [ ok ]
>   *   Unmounting /lib/modules ...  [ ok ]
>   *   Unmounting /boot ...  [ ok ]
>   * Deactivating swap devices ...  [ ok 
> ]                                           <= console and 
> /var/log/rc.log match.
>   * Stopping the Logical Volume Manager ...        <= When a module
> is loaded, this is the last line on the console.
>    0 logical volume(s) in volume group "vg1" now active
>    0 logical volume(s) in volume group "vg0" now active [ ok ] <=
> When a module is loaded, this is the last line in /var/log/rc.log.
>   * Setting hardware clock using the system clock [UTC] ...  [ ok ]
> <= When no module is loaded, this is on the console and in
> /var/log/rc.log.
>   * Stopping udev ...  [ ok ] <= When no module is loaded, this is on 
> the console and in /var/log/rc.log.
>   rc shutdown logging stopped at Thu May 18 05:44:09 2023 <= When no 
> module is loaded, this is the last line in /var/log/rc.log.
>   * Terminating remaining processes ...  [ ok ] <= When no module is 
> loaded, this is on the console (See: /etc/init.d/killprocs).
>   * Killing remaining processes ...  [ ok ]
> <= When no module is loaded, this is on the console (See:  
> /etc/init.d/killprocs).
>   * Saving dependency cache ...  [ ok ] <= When no module is loaded, 
> this is on the console (See: /etc/init.d/savecache).
>   * Remounting remaining filesystems read-only ...  [ ok ] <= When no 
> module is loaded, this is on the console (See: /etc/init.d/mount-ro).
>   *   Remounting / read only ...  [ ok ]
> <= When no module is loaded, this is on the console.
> reboot:  Power 
> down                                                         <= When
> no module is loaded, this is on the console.

I feel the issue is indeed the mounting /var/modules ...  Because you
`umount` it before you unload the modules...  Your usage is very much,
"non-standard" and just changing that *likely* would fix it.  

> In short, it looks like the LVM was stopped correctly and everything
> was good up to that point; however, when a module is loaded it looks
> like nothing in /etc/runlevels/shutdown/ gets kicked off and the
> system is waiting.
> 
> My preference is to have this work while keeping the /lib/modules 
> partition.  How it can be fixed?

I think that may be literally impossible...  Or at least not even,
"non-trivial".  The *trivial* solution, is to have /lib/modules on your
root partition.  

> FYI: Answering may be slow since my emails are received weekly
> through the digest.

If that's fine, it's fine by me...  

Attachment: pgpgvF0UTVpPw.pgp
Description: OpenPGP digital signature

Reply via email to