I have not had any problem with this before (since at least 2.6.10), and that includes 2.6.22-r5. I need to generate the keymap, so I always change two lines in /usr/src/linux/drivers/char/Makefile First, uncomment line 121 to: GENERATE_KEYMAP := 1 Second change line 125 to give the complete path: - $(obj)/defkeymap.c $(obj)/%.c: $(src)/%.map + $(obj)/defkeymap.c $(obj)/%.c: /usr/src/linux-2.6.22-gentoo-r8/drivers/char/defkeymap.map Note this used to work in any 2.6.18 and before version without modification, but does not in any 2.6.19 and after. I get the same behavior both before and after the linux-headers upgrade. $ emerge -p --info Portage 2.1.3.9 (default-linux/x86/2007.0/desktop, gcc-4.1.2, glibc-2.5-r4, 2.6.22-gentoo-r5 i686) ================================================================= System uname: 2.6.22-gentoo-r5 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz Timestamp of tree: Sat, 06 Oct 2007 11:30:01 +0000 app-shells/bash: 3.2_p17 dev-java/java-config: 1.3.7, 2.0.33-r1 dev-lang/python: 2.4.4-r5 dev-python/pycrypto: 2.0.1-r6 sys-apps/baselayout: 1.12.9-r2 sys-apps/sandbox: 1.2.17 sys-devel/autoconf: 2.13, 2.61-r1 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 sys-devel/binutils: 2.17-r1 sys-devel/gcc-config: 1.3.16 sys-devel/libtool: 1.5.24 virtual/os-headers: 2.6.22-r2 ACCEPT_KEYWORDS="x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer -mfpmath=sse" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/revdep-rebuild /etc/terminfo" CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer -mfpmath=sse" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--with-bdeps y" FEATURES="distlocks metadata-transfer sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" LANG="en_NZ.UTF-8" LINGUAS="en ru" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage /usr/portage/local/layman/sunrise" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X a52 aac aalib acpi alsa arts audiofile berkdb bitmap-fonts bzip2 cairo caps cdparanoia cdr cjk cpudetection cracklib crypt css cups dbus dga directfb dri dvd dvdr dvdread encode exif expat fam fbcon ffmpeg flac gcj ggi gif glibc-omitfp gmp gphoto2 gpm gstreamer hal iconv idea imagemagick imap imlib ipv6 javascript jbig joystick jpeg kde lcms libcaca libwww live lm_sensors mad matroska mbox memlimit midi mmx mmxext mng mp3 mpeg mudflap mysql nas ncurses network nls no-old-linux nodrm nptl nptlonly ogg opengl openmp oscar pcre pdf perl png qt3 quicktime readline real rtc samba scanner sdl silc smtp sndfile speex spell sse sse2 ssl stream svg sysfs tcpd theora threads threadsafe tiff timidity truetype truetype-fonts type1-fonts unicode usb userlocales utf8 vcd vorbis wideband win32codecs x86 xinerama xml xorg xv xvid yahoo zlib zrtp" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LINGUAS="en ru" USERLAND="GNU" VIDEO_CARDS="mga radeon" Unset: CTARGET, INSTALL_MASK, LC_ALL, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS I will attach a file of the compilation failure.
Created attachment 132723 [details] output from compilation
You don't need to make that second modification to the Makefile (ie. change the path) : just uncomment the "# GENERATE_KEYMAP := 1" line and adjust the defkeymap.map in that same directory (/usr/src/linux/drivers/char) to your liking.
(In reply to comment #2) > You don't need to make that second modification to the Makefile (ie. change the > path) : just uncomment the "# GENERATE_KEYMAP := 1" line and adjust the > defkeymap.map in that same directory (/usr/src/linux/drivers/char) to your > liking. I have always done that. It worked through any kernel in the 2.6.18 series, but does not work at all for any 2.6.19 or later kernel. It fails thusly: CC drivers/char/mem.o CC drivers/char/random.o CC drivers/char/tty_io.o CC drivers/char/n_tty.o CC drivers/char/tty_ioctl.o CC drivers/char/pty.o CC drivers/char/misc.o CC drivers/char/vt_ioctl.o CC drivers/char/vc_screen.o CC drivers/char/consolemap.o CONMK drivers/char/consolemap_deftbl.c CC drivers/char/consolemap_deftbl.o CC drivers/char/selection.o CC drivers/char/keyboard.o CC drivers/char/vt.o make[2]: *** No rule to make target `drivers/char/%.map', needed by `drivers/char/defkeymap.c'. Stop. make[1]: *** [drivers/char] Error 2 make: *** [drivers] Error 2
You were right, this was a bug. We sent a patch to fix this upstream and it's made it into 2.6.23. Gentoo-sources-2.6.23 is in portage as of today.