loader and load: path?

John freebsd-lists at potato.growveg.org
Tue Mar 8 21:33:12 UTC 2016

Hi, (reply is at the bottom of quoted text)

On Mon, Mar 07, 2016 at 04:04:46PM +0000, Anthony Jenkins wrote:
>set module_path /boot/kernel     # ?
>I don't think module_path is set to its default "/boot/kernel;/boot/modules" when booting to loader(8) prompt...
>Anthony Jenkins
>From: Steven Hartland <killing at multiplay.co.uk>
>To: freebsd-current at freebsd.org
>Sent: Monday, March 7, 2016 9:18 AM
>Subject: Re: loader and load: path?
>So your saying "kldload zfs" fails because it can't find opensolaris or
>are you giving it absolute paths?
>If so try without absolute paths.
>     Regards
>     Steve
>On 07/03/2016 14:09, Larry Rosenman wrote:
>> If I type load /boot/kernel/kernel, and then load /boot/kernel/zfs.ko,
>> the loader
>> (loader.efi in this case) says it can't find opensolaris.  Same for
>> dtraceall, where
>> it can't find it's dependent modules.  Just hitting enter does the
>> right thing.
>> What variable(s) am I missing?

I think you're going to have to load /bootpool/boot/kernel/zfs.ko

I've been bitten by this. Seems there was a recent change, and it
affects -stable as well as -current. The boot path was changed and
it's caused breakage. I dunno what way there is around it.

I downloaded the memstick image 10.3-RC1 on the 5th, booted to it, all
was well. Mouse working (I have a wireless mouse that uses ums0,
standard zfs-on-root install, nothing else added.

Today I ran svnlite and updated the sources, recompiled, ran
mergemaster and at the start of it it says something like (from
memory) that /boot kernel is a link and do I want to remove it? The
directory can be made later - so I agree to this. After the update,
the system is at 10.3-PRERELEASE #0 r296497

The system boots but now my mouse isn't detected as a mouse but as a
keyboard. The radeon drivers the screen needs weren't compiled, so I
go into /usr/src/sys/modules/drm2/ to make the modules, ran make
install but it bails saying that /boot/kernel isn't a directory... so
I checked and indeed it wasn't:

$ ls -lah /boot/kernel
-r-xr-xr-x  1 root  wheel   454K Mar  8 20:57 /boot/kernel

modules are now in /bootpool/boot/kernel/

it's a file so I can't fix this by symlinking to the real path.

It seems some modules know about the path and not others. kldload
doesn't know about the path. If I want a module loaded I have to
specify the full path. For example, if I want to load ums.ko manually,
I can:

$ sudo kldload /bootpool/boot/kernel/ums.ko

$ kldstat
Id Refs Address            Size     Name
 1   26 0xffffffff80200000 f8f798   kernel
 2    1 0xffffffff81190000 2e9690   zfs.ko
 3    2 0xffffffff8147a000 5640     opensolaris.ko
 4    1 0xffffffff81480000 1d698    geom_eli.ko
 5    3 0xffffffff8149e000 322f0    crypto.ko
 6    1 0xffffffff814d1000 f8c8     aio.ko
 7    1 0xffffffff814e1000 3418     amdtemp.ko
 8    1 0xffffffff814e6000 4e50     aesni.ko
 9    1 0xffffffff814ec000 15080    fuse.ko
10    1 0xffffffff81611000 22c8     ums.ko
but if I unload it and then try to load it in the usual way, it can't
be found:

$ sudo kldload ums.ko
kldload: can't load ums.ko: No such file or directory

how can I fix this please? [without having to reinstall]


More information about the freebsd-stable mailing list