[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [rtl] rtl-v3pre9 probs
Olaf Petzold wrote:
> These symbols are inside System.map!
> # cat /boot/System.map-2.2.17-rtl3 | grep console_drivers
> c01d4c40 D console_drivers
> # cat /boot/System.map-2.2.17-rtl3 | grep __start_rtlinux_funcs
> c01caf08 A __start_rtlinux_funcs
>
They should also appear in the output of ksysms (or /proc/ksyms). If they aren't, and you are
using an x86, look where your kernel patchfile is trying to export them (using the
EXPORT_SYMBOL(x)) macro and check if the patch applied sensibly. Also make sure that you
compiled your module with /usr/src/linux pointing at the correct kernel source tree.
>
> and inside vmlinux:
> src/linux# cat vmlinux | strings | grep console_drivers
> console_drivers
> src/linux# cat vmlinux | strings | grep __start_rtlinux_funcs
> __start_rtlinux_funcs
>
> What is going on here ???
>
Just because the symbols appear in the object files doesn't mean that a module can find them
when it is loaded. insmod looks for kernel symbols in a special table. The ksysms utility and
/proc/ksyms show the symbols in this table. Or maybe you already knew this.
>
> Another: the script rtl-config is working fine, the only problem seems to
> be the parsed? rtl.config inside /usr/include/rtlinux/rtl.config:
>
> There isn't a
> RTLINUX_DIR="/usr/rtlinux_kernel_2.2.17-rtl3b9"
> nor
> INCLUDE_DIR="/usr/rtlinux_kernel_2.2.17-rtl3b9/include:...
>
> A simple grep over the Makefile gives that there should be such directory but,
> it's not created. Imo it doesn't make sense to use such dir because you have
> to link /usr/src/linux to the kernel tree, which is the only hard part, not the
> includes of rtl.
>
In general, it could be useful to not have to link /usr/src/linux. Like when cross-compiling,
for example.
--Gordon