# Thinkpad-USB-Tastatur funktioniert nicht im initramfs

## cryptosteve

Moin,

ich habe ein Problem, dass ich in der Vergangenheit schonmal hatte. Nach langem Knobeln hatte ich es seinerzeit auch schonmal gelöst, aber aktuell geht es wieder nicht und ich werd noch affig bei der Ursachensuche.

Also: 

Ich habe an meinem PC (Gentoo stable) eine externe USB-Tastatur (Thinkpad mit Trackball). Diese läuft wohl über das Kernelmodul 'hid-lenovo.ko'?! Mein System ist vollverschlüsselt (ohne lvm). Ich habe einen alten Kernel (3.17.8-gentoo-r1-stv-i7-rev-9c-nv), mit dem ich die luks-Passphrase eingeben kann. 

Wenn ich jetzt den aktuellen Kernel linux-3.18.9-gentoo mit der alten Kernelconfig vom o.g. funktionierenden Kernel nehme, dann funktioniert dort die Tastatur zur Eingabe der Passphrase nicht. 

Ich komm einfach nicht drauf, woran ich drehen muss. Ich hab auch dunkel in Erinnerung, dass es eigentlich gar nichts mit hid-lenovo.ko zu tun hatte, zumal das Modul in /etc/kernels/kernel-config-x86_64-3.17.8-gentoo-r1-stv-i7-rev-9c-nv auch nicht gesetzt ist. Nichts desto trotz habe ich den Kernel auf diverse Arten gebacken, leider immer ohne Erfolg. 

Auch ein Diff der beiden Kernelconfigs bringt mich nicht so recht weiter.

Mittlerweile habe ich das Problem so lange umschifft, dass ich den Baum schon vor lauter Wäldern nicht mehr sehe. 

Wer kann mein Problem nachvollziehen und weiß Abhilfe oder kann wenigstens ins Blaue schießen?

meine Kernelconfig: http://adler.crashmail.de/~stell/kernel-config-x86_64-3.18.9-gentoo-stv-i7-rev-9c-nv

ermerge-info:

```
[stell @ sorum:~/]% emerge --info

Portage 2.2.14 (python 2.7.9-final-0, default/linux/amd64/13.0/desktop/kde, gcc-4.8.3, glibc-2.20-r2, 3.17.8-gentoo-r1-stv-i7-rev-9c-nv x86_64)

=================================================================

System uname: Linux-3.17.8-gentoo-r1-stv-i7-rev-9c-nv-x86_64-Intel-R-_Core-TM-_i7-3770K_CPU_@_3.50GHz-with-gentoo-2.2

KiB Mem:    32928332 total,  17362176 free

KiB Swap:     524284 total,    524284 free

Timestamp of tree: Sat, 28 Mar 2015 08:15:01 +0000

ld GNU ld (Gentoo 2.24 p1.4) 2.24

app-shells/bash:          4.2_p53

dev-lang/perl:            5.20.1-r4

dev-lang/python:          2.7.9-r1, 3.3.5-r1, 3.4.1

dev-util/cmake:           2.8.12.2-r1

dev-util/pkgconfig:       0.28-r1

sys-apps/baselayout:      2.2

sys-apps/openrc:          0.13.11

sys-apps/sandbox:         2.6-r1

sys-devel/autoconf:       2.13, 2.69

sys-devel/automake:       1.11.6-r1, 1.13.4

sys-devel/binutils:       2.24-r3

sys-devel/gcc:            4.8.3

sys-devel/gcc-config:     1.7.3

sys-devel/libtool:        2.4.6

sys-devel/make:           4.1-r1

sys-kernel/linux-headers: 3.18 (virtual/os-headers)

sys-libs/glibc:           2.20-r2

Repositories: gentoo cryptosteves-local-overlay

Installed sets: @steam

ACCEPT_KEYWORDS="amd64"

ACCEPT_LICENSE="* -@EULA Q3AEULA"

CBUILD="x86_64-pc-linux-gnu"

CFLAGS="-O2 -march=corei7 -pipe"

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/themes/oxygen-gtk/gtk-2.0 /usr/share/themes/oxygen-gtk/gtk-3.0"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo"

CXXFLAGS="-O2 -march=corei7 -pipe"

DISTDIR="/usr/portage/distfiles"

EMERGE_DEFAULT_OPTS="--with-bdeps=y --quiet-build=y --autounmask=n"

FCFLAGS="-O2 -pipe"

FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"

FFLAGS="-O2 -pipe"

GENTOO_MIRRORS="ftp://mirror.leaseweb.com/gentoo/ ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo http://gd.tuwien.ac.at/opsys/linux/gentoo/ ftp://de-mirror.org/distro/gentoo/ ftp://gd.tuwien.ac.at/opsys/linux/gentoo/"

LANG="de_DE.UTF-8"

LDFLAGS="-Wl,-O1 -Wl,--as-needed"

MAKEOPTS="-j8"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/tmp/portage"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/usr/local/portage/local-overlay"

SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"

USE="3dnow 3dnowext X a52 aac aalib acl acpi addressbook aes akonadi alsa amd64 apng autoipd avahi avx berkdb bidi branding bzip2 cairo calendar cdda cddb cdr cli consolekit cracklib crypt cryptsetup cups custom-optimization cxx dbus declarative dhclient dhcpcd djbfft dri dts dvb dvbpsi dvbsetup dvd dvdnav dvdr ebook embedded emboss enca encode exif extensions extraengine extras faac faad fam fax fbcondecor ffmpeg firefox firefox3 flac fontconfig fortran gallium gdbm gflags gif glamor gmplayer gnutls google gpm gstreamer hddtemp hpijs iconv icq icu id3 id3tag idn ieee1394 jpeg json kde kipi lame laptop lastfm lastfmradio lcms libav libnotify lm_sensors logitech-mouse mad matroska mdnsresponder-compat mjpeg mmx mmxext mng modules mp2 mp3 mp3tunes mp4 mpd mpeg msn mtp multilib musicbrainz ncurses nfs nfsidmap nfsv3 nfsv4 nls nptl nsplugin nss ogg online-services opengl openmp oscar otr pam pango pcre pdf phonon pipelight plasma png podcast policykit popcnt postscript ppds ppp qt3support qt4 readline redeyes reiser4 reiserfs replytolist romio scanner sdl semantic-desktop session smime snmp spell sql sse sse2 sse3 sse4_1 sse4_2 ssl ssse3 startup-notification svg taglib tcpd theora thinkpad threads thumbnail tiff tint2conf tordns truetype tv tv_check tv_combiner tv_pick_cgi tvtime udev udisks unicode upower usb uxa v4l v4l2 vaapi vcd vdr virtualbox vnc vorbis webkit wifi wxwidgets x264 xcb xcomposite xinerama xml xscreensaver xv xvid xvmc youtube zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="evdev keyboard mouse virtualbox vmmouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="de" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby19 ruby20" USERLAND="GNU" VIDEO_CARDS="nvidia intel vesa virtualbox i915 i965" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"

Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
```

----------

## ChrisJumper

Ich dachte ja zuerst das ist ein einfaches Kernel-Modul, welches zwar neu gebaut wurde aber dann nicht mit make modules_install auch ins entsprechende Verzeichnis kopiert wurde. Du weißt schon so Befehle verketten und sich dabei vertippen, oder nicht den richtigen Kernel booten, oder /boot nicht eingehängt und so weiter.

Aber das bei deinem letzten System die Tastatur funktionierte und der lenovo Treiber gar nicht gesetzt wurde ist seltsam.

Daher tippe ich auf folgendes. Entweder ein anderer Treiber streitet sich mit Lenovo, oder Lenovo streitet sich mit dem anderen Treiber und einer sollte halt raus. Dann hätte dich aber eigentlich die DIFF weiter bringen müssen, es sei denn diese war ohnehin veraltet oder wurde mehrmals modifiziert. Im Zweifelsfall noch mal in ruhe NEU booten.

Die andere Möglichkeit: Das Password wird nur nicht angezeigt und du siehst keine Sternchen, oder du hast die Chance bei der Tastatur einen Nummernblock zu aktivieren oder einen Funktionstasten-Modus der irgendwie aus versehen "hin und wieder" aktiviert wird und dich dann ein mal im Jahr vor ein Problem stellt das dir bekannt vorkommt, vor allem weil die Tastatur sich den Neustart übe diese Einstellung merkt? Dein Gentoo nach dem Booten Caps Lock und Co aber wieder automatisch zurücksetzt/oder Xorg.   .... ah halt nein du hast ja eine Verschlüsselte Festplatte wo du das Passwort immer angeben musst, und dann würde das auch mit dem anderen Kernel nicht gehen. Hmm.

Probiere es noch mal mit neuen leeren Sourcen, die du dann wieder eins zu eins per make menue_config einstellst. Eventuell liegt der Fehler irgendwo dazwischen und nicht an deinen Einstellungen.

Edit:

Bevor du jetzt neu baust, probiere mal ein unplug und neu einstecken :)

 *Andy (andy-akw) wrote:*   

> If I remove the keyboard USB plug then re-insert it I can type as normal.

 

Quelle: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/990870

Edit2:

So viel Esotherik für alle möglichen Probleme. Am besten zeigst du mal ein LSUB von deiner Tastatur damit man nach der genauen Bezeichnung suchen kann. Etwas das du aber schon angedeutet hast, beschreibt dieser Link zum Fedora Forum

Da geht es auch im die von dir beschriebene Problematik und um die Installation von dem Treiber-Modul ins initramfs. Weil er wie du schon vermutet hast, als Modul auch nicht vom Kernel geladen wurde. Ich frage mich derweil warum du den nicht einfach fest einbaust? Third Party? Andererseits hast du dann für den anderen Kernel doch wahrscheinlich ein Binary im initram liegen und in der grub-Zeile?

Schau es dir mal an. Ich arbeite und suche ja hier nur auf Vermutungsbasis. Vielleicht kommt dir das aber bekannt vor.

Aber wenn du 

```
* sys-kernel/dracut

     Available versions:  ~034-r4^t ~040-r2^t ~040-r3^t ~041^t ~041-r1^t {debug device-mapper net selinux systemd DRACUT_MODULES="biosdevname bootchart btrfs caps cifs crypt crypt-gpg crypt-loop dash dmraid dmsquash-live gensplash iscsi livenet lvm mdraid multipath nbd nfs plymouth ssh-client syslog systemd"}

     Homepage:            http://dracut.wiki.kernel.org

     Description:         Generic initramfs generation tool
```

Installiert hast ist das schon mal ein Zeichen dafür das du so etwas in der Art verwendest.

```
dracut  --add-drivers  hid_lenovo  initramfs-$(uname  -r).img
```

Vergiss nicht dir eine Text-Readme-Datei zu erzeugen die das Problem beschreibt wenn du das wieder hast, am besten irgendwo wo du deine Kernel strickst. :)

----------

## cryptosteve

Moin,

zunächst danke für Dein Feedback. Ich habe heute wieder stundenlang um das Problem herum debugged, aber ich komm momentan nicht drauf. Ich habe die beiden initramfs ausgepackt und die Inhalte verglichen. Es macht auch keinen Unterschied, ob hid-lenovo in der initramfs enthalten ist, oder nicht (lt. Hilfe in menuconfig bewirkt hid-lenovo möglicherweise aber auch nur die zusätzliche Unterstützung für Fn-Keys, etc.).

lsusb:

```
Bus 005 Device 003: ID 17ef:6009 Lenovo ThinkPad Keyboard with TrackPoint
```

----------

## toralf

Ein ähnliches Problem existiert für die minimal Gentoo boot CD, haben einige andere auch schon gemeldet.

Es funktioniert ein USB-3.0 Keyboard nich in der initramfs (später schon).

Wenn der Port im BIOS auf USB 2.0 gestellt ist, geht es auch schon in der initramfs.

----------

## cryptosteve

Aber müsste es dann nicht auch mit Kernel 3.17.8 scheitern?

Edit: wobei es früher von Kernel zu Kernel immer wunderbar ging und mir in letzter Zeit laufend um die Ohren fliegt. Ich habe kein USB3.0-Gerät, vielleicht sollte ich den Support dafür mal ganz rauswerfen.

----------

## cryptosteve

Nur zur Info .. ich konnte das Problem bis heute nicht klären und es hält sich auch hartnäckig. Ich habe mir jetzt eine andere (legacy) USB-Tastatur besorgt, die funktioniert sofort. Ich lasse den Thread mal als ungelöst stehen ... für den Moment ist mir mit dem alternativen Hackbrett trotzdem geholfen.

----------

## Schattenschlag

Ohm dumme Frage welches Lenovo Usb Tastatur hast du denn genau ?

Finde da ein paar verschiedene, hätte die Möglichkeit mir eines aus zu borgen deshalb die Frage. Eventuell könnte ich so mit der gleichen Hardware bei mir das ganze auch testen und helfen den Fehler zu finden.

----------

## toralf

Toralf hat : 

Bus 002 Device 004: ID 046a:0023 Cherry GmbH CyMotion Master Linux Keyboard G230

----------

## cryptosteve

cryptosteve hat:

Bus 005 Device 003: ID 17ef:6009 Lenovo ThinkPad Keyboard with TrackPoint

Und hätte das auch gerne wieder im Dauerbetrieb ... und nachdem ich durch die cryptsetup-Passphrase erstmal durch bin, läuft die Tastatur auch 1a.

----------

## cryptosteve

Err, Nachtrag: da bin ich wohl nicht der einzige:

https://lists.debian.org/debian-kernel/2013/01/msg00180.html

Ne Lösung gibts in dem Thread aber leider auch nicht. Sollte mir da wohl tatsächlich nur übrig bleiben, einen älteren Kernel zu nutzen?

Nochmal edit: nee, so schlimm kann es nicht sein, kurzlich mit einem siduction-Kernel getestet, da gibts auch einwandfrei.

----------

## Schattenschlag

Alles klar also es müsste dann diese Tastatur sein 

http://www.amazon.de/Lenovo-ThinkPad-Compact-Keyboard-TrackPoi/dp/B00CZ35ODI/ref=sr_1_2?ie=UTF8&qid=1432329606&sr=8-2&keywords=lenovo+usb+tastatur

Werde sie mir nach den Feiertagen ausborgen und mal gucken was bei mir so los ist. (Jeden falls geht es so besser also ohne der Tastaur)

----------

## cryptosteve

Nein, das ist eine "Compact" - Version .. obwohl meine gefühlt auch nicht größer ist. Aber anders.

Das hier ist meine: http://www.amazon.de/gp/product/B002PMJTYO

Da gibts leider kein wirklich brauchbares Produktbild. 

Also daher das hier: http://i01.i.aliimg.com/wsphoto/v0/1205589425_1/2014-special-offer-Original-standard-usb-font-b-keyboard-b-font-55Y9003-font-b-trackpoint-b.jpg

----------

## cryptosteve

Ich habe es jetzt testweise mal mit folgenden Kernels probiert:

sys-kernel/gentoo-sources-3.14.41: Tastatur funktioniert in initramfs (und ich hab Pinguine als Bootlogo im initramfs)

sys-kernel/gentoo-sources-3.18.12: Tastatur funktioniert nicht in initramfs (und ich hab keine Pinguine mehr als Bootlogo)

sys-kernel/gentoo-sources-4.0.4: Tastatur funktioniert nicht in initramfs

Irgendwo zwischen 3.14.41 und 3.18.12 muss es also kaputt gegangen sein (was die vorgenannten Debian-Bugs ja schon bestätigt haben). Hat es der Fix nicht bis nach Gentoo geschafft?

Ebenfalls ohne Erfolg geblieben sind folgende Tests:

 - Anschluss der Tastatur über einen PS/2-Adapter

 - Anschluss der Tastatur an USB2.0 / USB3.0

----------

## Schattenschlag

Alles klar ich werde Dienstag oder Mittwoch das Teil mal ausborgen sollte dort Lagern sein jedenfalls ...

Hoffe ich kann helfen .... 

Hättest du zufällig eine config von einem Kernel wo es noch funktioniert hat. ?

----------

## cryptosteve

Moin,

da bin ich ja mal mehr als gespannt. 

Die Kernelkonfiguration habe ich Dir hier abgelegt: https://adler.crashmail.de/~stell/kernelconfig-3.14.41-gentoo-stv-i7-rev-9e-intel.txt

Danke für Deine Bemühungen ...

----------

## cryptosteve

Und achja, 

ggf. auch nochmal einen Blick ins Ausgangsposting werfen.

Mit Kernel 3.17.8-gentoo-r1 ging es noch, während ein neuer Kernel 3.18.9-gentoo nicht mehr funktioniert. Irgendwo dazwischen muss es wohl kaputt gegangen sein.

Auch dazu finde ich wieder passende Einträge in einigen Bugtrackern. Jedesmal scheint der Fehler mit einem Upgrade der initramfs-tools gefixt zu sein. 

Wie läuft das genau bei Gentoo mit der initramfs?

----------

## Schattenschlag

Naja versprechen kann ich natürlich nichts .... aber versuchen zu helfen ... 

Danke hab mir mal die configs runter geladen .... muss sie leider nur auf amd cpus zurechtstutzen ^^

----------

## Schattenschlag

Kleiner Zwischenbericht:

Bis jetzt bin ich auch noch nicht viel weiter gekommen wie du sorry bin aber noch dran an dem ganzen  :Smile: 

----------

## cryptosteve

Hi, 

danke fürs Feedback. Ich habe mich nochmal an den englischsprachigen Forenteil gewandt (Kernel & Hardware), aber da gibt es bislang auch keine neuen Erkenntnisse. 

Ist aber auch kein Beinbruch, ich migriere die Kiste sonst auf eine andere Distri.

----------

## cryptosteve

Moin,

ich wieder ... ich habe jetzt nochmal wie wild Kernels und initrds gebacken und versucht, irgendwo einen Schwachstelle zu finden. Aber alle getesteten Konstellationen ignorieren mein Keyboard komplett. Dabei wird es von der initrd doch im Bootprozess erkannt.

Vielleicht erkennt jemand anhand dieses Screenshots ja noch eine Unregelmäßigkeit?

Ich bin mit meinem Latein echt am Ende ...

Btw, es ist Absicht, dass momentan nur ohci aktiviert ist. Der Rest ist fest im Kernel eingebacken, denn ohci ist das einzige, was ich bislang noch nicht aktiv hatte.

----------

