_gp_disp
is a magic symbol used with PIC code on MIPS. Be happy, this error message saved you from crashing your system. You should use the same compiler options to compile a kernel module as the kernel makefiles do. In particular the options -fno-pic -mno-abicalls
are important.2.xxx.o:Relocation overflow of type 4 for....
This error is caused by the limited range of relocation type 4 (R_MIPS26) which due to it's 26-bit offset only has a 28-bit reach. Modules and kernels happen to be located very far from each other and as the result this 28-bit range is insufficient. Insmod, not being stupid notices the problem and issues this error message.
The solution is the same as in the previous section. When compiling a kernel you must use the same compiler flags for modules as your actual kernel source is using in this particular kernel configuration. These are different from the flags that are used during the build of the kernel itself. In this particular case the module was built without -mlong-calls
which is causing this kind of error.