-
Notifications
You must be signed in to change notification settings - Fork 178
Debian with 2.6.32-bpo : Unknown symbol in module, or unknown parameter #10
Comments
I tried the workaround given in the Ubuntu 10.04 issue, but it's not working. It stills fails with the same error. |
Thanks for the bug report, this looks like a different bug. The module failed to load because of two missing symbols 'first_online_pgdat' and 'next_zone'. These symbols are available under some kernels and not under others. There is an autoconf check to determine what the right thing to do is. I'm guessing the check got it wrong with your kernel for some reason. Can you check the following: egrep 'HAVE_NEXT_ZONE|PGDAT' spl_config.h egrep 'next_zone|pgdat' /proc/kallsyms |
compaq:~/spl-0.4.9# egrep 'HAVE_NEXT_ZONE|PGDAT' spl_config.h /* #undef HAVE_FIRST_ONLINE_PGDAT */ /* #undef HAVE_NEXT_ONLINE_PGDAT */ /* #undef HAVE_NEXT_ZONE */ /* #undef HAVE_PGDAT_HELPERS */ /* #undef HAVE_PGDAT_LIST */ compaq:~/spl-0.4.9# egrep 'next_zone|pgdat' /proc/kallsyms c1096e14 T first_online_pgdat c1096e1a T next_online_pgdat c1096e1d T next_zone c1096e3b T next_zones_zonelist I hope this will help you. Thanks. |
Ahh, I think I see what's going on here. For debian kernels the common linux headers and build products are packaged in different locations. The spl and zfs have an option to handle this, although it looks like the packages could be smarter about detecting this case and providing a useful error message. You need to use the --with-linux option for the common kernel headers, and the --with-linux-obj option for the kernel specific build products. Try this, if it works I'll update the online build instructions with a debian example too: ./configure \ --with-linux=/usr/src/linux-headers-2.6.32-3-common/ \ --with-linux-obj=/usr/src/linux-headers-2.6.32-3-amd64/ |
It's not working. Now I have a different error. compaq:~/spl-0.4.9# modprobe splat WARNING: Error inserting spl (/lib/modules/2.6.32-bpo.4-686/addon/spl/spl/spl.ko): Cannot assign requested address FATAL: Error inserting splat (/lib/modules/2.6.32-bpo.4-686/addon/spl/splat/splat.ko): Unknown symbol in module, or unknown parameter (see dmesg) And here is the dmesg : [155032.832709] SPL: Failed user helper '/bin/sh -c awk '{ if ( $3 == "kallsyms_lookup_name") { print $1 } }' /proc/kallsyms >/proc/sys/kernel/spl/kallsyms_lookup_name', rc = 512 [155032.832821] SPL: Failed to Load Solaris Porting Layer v0.4.9, rc = -99 [155032.846834] splat: Unknown symbol __taskq_destroy [155032.847112] splat: Unknown symbol spl_cleanup [155032.847548] splat: Unknown symbol vn_openat [155032.847828] splat: Unknown symbol __cv_destroy [155032.848119] splat: Unknown symbol p0 [155032.848742] splat: Unknown symbol __thread_create [155032.848975] splat: Unknown symbol kmem_alloc_debug [155032.849205] splat: Unknown symbol spl_kmem_cache_reap_now [155032.849456] splat: Unknown symbol groupmember [155032.849597] splat: Unknown symbol kobj_open_file [155032.849910] splat: Unknown symbol ddi_strtoll [155032.850058] splat: Unknown symbol ddi_strtoull [155032.850238] splat: Unknown symbol ddi_strtol [155032.850409] splat: Unknown symbol __thread_exit [155032.850564] splat: Unknown symbol spl_setup [155032.850709] splat: Unknown symbol vn_open [155032.850882] splat: Unknown symbol __cv_init [155032.851027] splat: Unknown symbol vn_releasef [155032.851193] splat: Unknown symbol spl_kmem_cache_alloc [155032.851412] splat: Unknown symbol __taskq_wait_id [155032.851558] splat: Unknown symbol kobj_read_file [155032.851711] splat: Unknown symbol spl_kmem_cache_create [155032.851946] splat: Unknown symbol crfree [155032.852110] splat: Unknown symbol __cv_wait [155032.852280] splat: Unknown symbol vn_remove [155032.852530] splat: Unknown symbol __taskq_create [155032.852793] splat: Unknown symbol spl_kmem_availrmem [155032.853021] splat: Unknown symbol __cv_broadcast [155032.853242] splat: Unknown symbol crgetgid [155032.853494] splat: Unknown symbol crgetsgid [155032.853900] splat: Unknown symbol spl_debug_bug [155032.854128] splat: Unknown symbol system_taskq [155032.854362] splat: Unknown symbol vmem_free_debug [155032.854567] splat: Unknown symbol __cv_timedwait [155032.854802] splat: Unknown symbol __taskq_wait [155032.854951] splat: Unknown symbol crgetrgid [155032.855147] splat: Unknown symbol __cv_signal [155032.855292] splat: Unknown symbol vn_getf [155032.855437] splat: Unknown symbol vmem_size [155032.855591] splat: Unknown symbol spl_kmem_cache_destroy [155032.855752] splat: Unknown symbol crgetuid [155032.855903] splat: Unknown symbol __gethrtime [155032.856140] splat: Unknown symbol ddi_strtoul [155032.856333] splat: Unknown symbol spl_kmem_cache_free [155032.856545] splat: Unknown symbol vmem_alloc_debug [155032.856828] splat: Unknown symbol crgetsuid [155032.857187] splat: Unknown symbol vn_rdwr [155032.857491] splat: Unknown symbol __taskq_dispatch [155032.857716] splat: Unknown symbol crgetgroups [155032.857967] splat: Unknown symbol vn_rename [155032.858383] splat: Unknown symbol kobj_get_filesize [155032.858524] splat: Unknown symbol crgetngroups [155032.858708] splat: Unknown symbol kobj_close_file [155032.858856] splat: Unknown symbol rootdir [155032.858993] splat: Unknown symbol kmem_free_debug [155032.859195] splat: Unknown symbol vn_getattr [155032.859343] splat: Unknown symbol crgetruid [155032.859498] splat: Unknown symbol vn_close [155032.859636] splat: Unknown symbol crhold [155032.859965] splat: Unknown symbol vn_fsync I tried the awk command (without the redirect to a file) : compaq:~/spl-0.4.9# awk '{ if ( $3 == "kallsyms_lookup_name") { print $1 } }' /proc/kallsyms c105848d The problem here is I don't have a "/proc/sys/kernel/spl/" folder, so the redirect cannot work. I'm gonna try to compile and install it on a regular kernel (here I use the backport one), maybe the results will be different (the regular kernel is a 2.6.26). Thanks. |
I just tried with a 64 bits server, and it's the same result. I think the problem actually comes from the "/proc/sys/kernel/spl/" missing. I'm gonna do some research on it, maybe I will find something convincing. Thanks. |
Oh, sorry, just a case of pebkac, :/ I just had to load the spl module before the splat module. splzfs:~# modprobe spl splzfs:~# modprobe splat splzfs:~# splat -a ------------------------------ Running SPLAT Tests ------------------------------ kmem:kmem_alloc Pass kmem:kmem_zalloc Pass kmem:vmem_alloc Pass kmem:vmem_zalloc Pass kmem:slab_small Pass kmem:slab_large Pass kmem:slab_align Pass kmem:slab_reap Pass kmem:slab_age Pass kmem:slab_lock Pass kmem:slab_overcommit Pass kmem:vmem_size Pass taskq:single Pass taskq:multiple Pass taskq:system Pass taskq:wait Pass taskq:order Pass krng:freq Pass mutex:tryenter Pass mutex:race Pass mutex:owned Pass mutex:owner Pass condvar:signal1 Pass condvar:broadcast1 Pass condvar:signal2 Pass condvar:broadcast2 Pass condvar:timeout Pass thread:create Pass thread:exit Pass rwlock:N-rd/1-wr Pass rwlock:0-rd/N-wr Pass rwlock:held Pass rwlock:tryenter Pass rwlock:rw_downgrade Pass rwlock:rw_tryupgrade Pass time:time1 Pass time:time2 Pass vnode:vn_open Pass vnode:vn_openat Pass vnode:vn_rdwr Pass vnode:vn_rename Pass vnode:vn_getattr Pass vnode:vn_sync Pass vnode:vn_getf Pass kobj:open Pass kobj:size/read Pass atomic:64-bit Pass list:create/destroy Pass list:ins/rm head Pass list:ins/rm tail Pass list:insert_after Pass list:insert_before Pass list:remove Pass list:active Pass generic:ddi_strtoul Pass generic:ddi_strtol Pass generic:ddi_strtoull Pass generic:ddi_strtoll Pass cred:cred Pass cred:kcred Pass cred:groupmember Pass I'm gonna continue tests on the 64 bits server (and compile/install ZFS). On the 32 bit server, I still get the same error. I'm gonna research on it later. Thanks |
On the 32 bit server, I had an issue with gawk. I reinstalled gawk, and the modprobes and "splat -a" are now working well, :). Tonight or tomorrow, I will try ZFS on the 32 bits server, :). |
Updated documentation to include --with-linux-obj command line option which may be needed for certain distros depending on how they packaged their kernel. The second issue mentioned here with gawk is a duplicate of issue #6. |
AES-CTR mode was not using correct mech->cm_param type to set iv
compaq:~/spl-0.4.9# uname -a
Linux compaq 2.6.32-bpo.4-686 #1 SMP Mon Apr 12 16:20:13 UTC 2010 i686 GNU/Linux
Here are the steps to "reproduce" the error :
1- ./configure --with-linux=/usr/src/linux-headers-2.6.32-bpo.4-686/ : Ok, no problem
2- make : Ok, no problem
3- make install : Ok, no problem
4- modprobe splat : FATAL: Could not load /lib/modules/2.6.32-bpo.4-686/modules.dep: No such file or directory
5- depmod -a : Ok, no problem
6- modprobe splat :
WARNING: Error inserting spl (/lib/modules/2.6.32-bpo.4-686/addon/spl/spl/spl.ko): Unknown symbol in module, or unknown parameter (see dmesg)
FATAL: Error inserting splat (/lib/modules/2.6.32-bpo.4-686/addon/spl/splat/splat.ko): Unknown symbol in module, or unknown parameter (see dmesg)
It's a Debian 5.0 "Lenny", with all the tools needed for compilation.
Thank you.
The text was updated successfully, but these errors were encountered: