Loading modules from /boot/loader.conf

Hans Petter Selasky hps at selasky.org
Tue Jul 10 14:07:18 UTC 2018


On 07/10/18 13:23, Michael Tuexen wrote:
>> On 25. Jun 2018, at 19:17, Michael Tuexen <tuexen at FreeBSD.org> wrote:
>>
>> Dear all,
>>
>> I'm running FreeBSD head of today on a G4 MacMini. I'm trying to
>> load a kernel module using /boot/loader.conf by having the line
>>
>> tcp_rack_load="YES"
>>
>> in /boot/loader.conf
>>
>> However, this doesn't work and results in:
>>
>> FreeBSD/powerpc Open Firmware loader, Revision 0.1
>> (Tue Jun 12 01:08:20 UTC 2010 root at releng3.nyi.freebsd.org)
>> Memory: 1048576KB
>> Booted from: /pic at f4000000/ata- at d/disk at 0
>>
>> Loading /boot/default/loader.conf
>> /boot/kernel/kernel data=0x706ac+0xed588 syms=[0x4+0xa3100+0x4+0x10bc45]
>> /boot/entropy size=0x1000
>> /boot/kernel/tcp_rack.ko text=0x2433c data=0x1d0+0x220 syms=[0x4+0x15a0+0x4+0x17bd]
>> loading required module 'kernel'
>> module 'kernel' exists but with wrong version
>>
>> Hit [Enter] to boot immediately, or any other key for command prompt.
>> ...
>>
>> I have no problems when running
>>
>> kldload tcp_rack
>>
>> after the system completely booted. Then the modules loads without any problems.
>>
>> Any idea what am I doing wrong?
> The problem seem to be in the metadata information stored in /boot/kernel/kernel.
> 
> Concentrating on the version info for the kernel.
> 
> The .symtab entry contains
> 
> entry: 11727
> 	st_name: _mod_metadata_kernel_version
> 	st_value: 0xdcafd4
> 	st_size: 16
> 	st_info: STT_OBJECT STB_LOCAL
> 	st_shndx: 22
> 
> which seems to be correct. However, looking at the version info, one finds:
> 
> readelf -x .data.rel.local /boot/kernel/kernel provides
>    0x00dcafc8 3454f8e9 00000000 00000000 00000001 4T..............
>    0x00dcafd8 00000003 00000000 00000000 02000000 ................
> 
> which corresponds to
> 
> {.md_version = 1, .md_type = 3, .md_data = NULL, .md_cval = NULL}
> 
> First of all, this information is NOT stored in the .data section as it is in
> the case of power64, amd64, arm64, but in the .data.rel.local section.
> Furthermore,md_data and md_cval are NULL, which should not be the case.
> 
> In addition, the set_modmetadata_set should contain pointers to the module
> metadata, but it contains only NULL pointers, as can be checked with
> readelf -x set_modmetadata_set /boot/kernel/kernel
> 
> Does anyone knows what is going wrong and why?
> 
> Is it possible that
> 
> https://svnweb.freebsd.org/base?view=revision&revision=268055
> 
> is related to this issue? It only handles the 64-bit version.
> However, simply applying this also to __powerpc__ and recompiling
> the kernel didn't solve the issue.
> 

Hi,

There is this thread with some more information:
https://lists.freebsd.org/pipermail/svn-src-all/2014-June/087354.html

--HPS



More information about the freebsd-ppc mailing list