# insmod linice.ko
linice: unknown symbol copy_from_user
linice: unknown symbol copy_from_user
We do include correct <asm/uaccess.h>. The System.map also does not
show that symbol (should it?) That may even be a macro when it
resolves, but I never had this problem before with any distro. RH9 has
a different set of copy_from_user exports.
Just to narrow the scope, I also tried to use one of the test modules
(module.ko) with that function (copy_from_user) and it also did not
want to load. What's the matter with those two functions? Are there any
kernel options that zap them away? Should we be using some other
(alternate) functions instead (seems like the compatibilty hell :)
Thanks!
- Goran
[root@tpchome root]# uname -sr
Linux 2.6.9-1.640asptpc
[root@tpchome root]# cat /boot/System.map | grep copy_from_user
021315a3 t __filemap_copy_from_user_iovec
0215cf17 t exact_copy_from_user
021a0fe0 T __copy_from_user_ll
02295149 t copy_from_user_state
02295a6c t copy_from_user_tmpl
02295aa0 t copy_from_user_policy
I cleanly reinstalled FC3, got kernel sources for its 2.6.9.1-667
version (all the patches were already applied), used config from the
sources or from /boot, recompiled kernel includes. Linice (and one
simple test program) compiles fine, but it can't find those two symbols
(copy_to and _from) on actual load.
grepping the /boot/System.map-2.6.9.1-667 gives exactly the same output
as yours above. Interestingly, if I call __copy_from_user_ll, it still
cannot link to it: I dont know whether it is because that symbol is "T"
(static?) or simply something else is wrong.
I see copy_from_user has a proto in uaccess.h and that's it - it does
not get redefined into some other call, which means it has to be
exported by the kernel in order to link. What I am missing here??
I really feel FC is a piece of s***. One should not have problems like
this :-(
# uname -a
# Linux localhost.localdomain 2.6.9-1.667 #1 (...) i686 i686 i386
GNU/Linux