When using gentoo-sources-r5, enabling support for high memory causes the nvidia.o module from nvidia-kernel to have dependency errors and fail to load. These are the errors: # modprobe nvidia /lib/modules/2.4.20-gentoo-r5/video/nvidia.o: unresolved symbol highmem_start_page /lib/modules/2.4.20-gentoo-r5/video/nvidia.o: unresolved symbol kmap_prot /lib/modules/2.4.20-gentoo-r5/video/nvidia.o: unresolved symbol kmap_pte /lib/modules/2.4.20-gentoo-r5/video/nvidia.o: Hint: You are trying to load a module without a GPL compatible license and it has unresolved symbols. Contact the module supplier for assistance, only they can help you. /lib/modules/2.4.20-gentoo-r5/video/nvidia.o: insmod /lib/modules/2.4.20-gentoo-r5/video/nvidia.o failed /lib/modules/2.4.20-gentoo-r5/video/nvidia.o: insmod nvidia failed If high memory support is disabled, the driver will load properly and function as expected. I have tried compiling with less aggressive flags, but my flags aren't very aggressive to begin with. This problem does NOT occur when using ac-sources-2.4.21_rc7-r1. Reproducible: Always Steps to Reproduce: 1. Compile gentoo-sources-r5 with High Memory (HIGHMEM) support enabled. 2. Boot into kernel, emerge nvidia-kernel and nvidia-glx 3. Start X with "nvidia" driver, or try to modprobe nvidia Actual Results: Dependency errors or X fails to start, depending on what you do. Expected Results: Driver should load and X should start, as normally happens without high memory support enabled. # emerge info Portage 2.0.48-r1 (default-x86-1.4, gcc-3.2.2, glibc-2.3.1-r4) ================================================================= System uname: 2.4.21-rc7-ac1 i686 Intel(R) Pentium(R) 4 CPU 2.00GHz GENTOO_MIRRORS="http://gentoo.oregonstate.edu http://distro.ibiblio.org/pub/Linux/distributions/gentoo" CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config /usr/kde/3/share/config /usr/X11R6/lib/X11/xkb /usr/kde/3.1/share/config /usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" PORTDIR="/usr/portage" DISTDIR="/usr/portage/distfiles" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR_OVERLAY="" USE="x86 oss 3dnow apm avi crypt cups encode gif jpeg libg++ libwww mikmod mmx mpeg ncurses nls pdflib png quicktime spell truetype xml2 xmms xv zlib gdbm berkdb slang readline arts java sdl gpm perl python imlib oggvorbis motif opengl X qt kde gtk gtk2 ssl tcpd pam aalib fbcon directfb svga sse samba cdr dga -gnome -alsa" COMPILER="gcc3" CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" ACCEPT_KEYWORDS="x86" MAKEOPTS="-j2" AUTOCLEAN="yes" SYNC="rsync://rsync.gentoo.org/gentoo-portage" FEATURES="sandbox ccache"
In addition, the ntfs.o module also has dependency errors with high memory support enabled: # modprobe ntfs /lib/modules/2.4.20-gentoo-r5/kernel/fs/ntfs/ntfs.o: unresolved symbol kunmap_high /lib/modules/2.4.20-gentoo-r5/kernel/fs/ntfs/ntfs.o: unresolved symbol highmem_start_page /lib/modules/2.4.20-gentoo-r5/kernel/fs/ntfs/ntfs.o: unresolved symbol kmap_prot /lib/modules/2.4.20-gentoo-r5/kernel/fs/ntfs/ntfs.o: unresolved symbol kmap_high /lib/modules/2.4.20-gentoo-r5/kernel/fs/ntfs/ntfs.o: unresolved symbol kmap_pte /lib/modules/2.4.20-gentoo-r5/kernel/fs/ntfs/ntfs.o: insmod /lib/modules/2.4.20-gentoo-r5/kernel/fs/ntfs/ntfs.o failed /lib/modules/2.4.20-gentoo-r5/kernel/fs/ntfs/ntfs.o: insmod ntfs failed This seems relevant so I decided to include it.
this is not a gentoo-sources bug. do this to solve: save your .config rm -rf /usr/src/linux-2.4.20-gentoo-r5/ rm -rf /lib/modules/2.4.20-gentoo-r5/ emerge gentoo-sources put your .config back in place-(ie. cp .config /usr/src/linux-2.4.20-gentoo-r5/) make oldconfig make menuconfig (just to double check you have all the options you need) make dep && make clean && make bzImage modules modules_install put ${KV}/arch/i386/boot/bzImage in /boot (make sure /boot is mounted) reboot to ensure all is ok... (if you run lilo make sure you run it before..) remerge the nvidia stuff (ie. emerge nvidia-kernel nvidia-glx) You should be set... Jay
This did indeed solve the problem. I'll keep this in mind the next time I have dependency errors. Thank you very much.
Pfeifer explained this to me in plain english, if you compile highmem in, you need to delete the old kernel directory and save the .config because make clean does NOT 100% clean the kernel and neither did make mrproper... This does work, tested on pfeifer-sources-2.4.21-pre4