X Error of failed request: BadValue (integer parameter out of range for operation) #189

Closed
opened 2010-01-23 14:43:10 +01:00 by PaulePanter · 8 comments

Liebe Neo-Leute,

meine Nachricht an die Liste blieb unbeantwortet. Damit es nicht vergessen wird, erstelle ich einen Fehlerbericht und kopiere meine Nachricht.

Liebe Grüße,

Paul

Am Sonntag, den 17.01.2010, 13:10 +0100 schrieb Paul Menzel:
> Liebe Neo-Benutzer,
> 
> 
> bei der Eingaben von `setxkbmap lv && xmodmap neo_de.xmodmap` [1]
> erhalte ich seit kurzem folgende Fehlermeldung.
> 
>         X Error of failed request:  BadValue (integer parameter out of range for operation)
>           Major opcode of failed request:  118 (X_SetModifierMapping)
>           Value in failed request:  0x17
>           Serial number of failed request:  86
>           Current serial number in output stream:  86
> 
> Ich glaube, dies tritt auf seitdem die X.org-Version (7.5) aktualisiert
> wurde. Zudem benutze ich die aktuelle Version aus dem SVN-Depot (r2147).
> 
> Kann mir da jemand weiterhelfen?
> 
> 
> Liebe Grüße,
> 
> Paul
> 
> 
> [1] http://wiki.neo-layout.org/wiki/Neo unter Linux einrichten/xmodmap
Liebe Neo-Leute, [meine Nachricht an die Liste](http://lists.neo-layout.org/pipermail/diskussion/2010-January/015533.html) blieb unbeantwortet. Damit es nicht vergessen wird, erstelle ich einen Fehlerbericht und kopiere meine Nachricht. Liebe Grüße, Paul ``` Am Sonntag, den 17.01.2010, 13:10 +0100 schrieb Paul Menzel: > Liebe Neo-Benutzer, > > > bei der Eingaben von `setxkbmap lv && xmodmap neo_de.xmodmap` [1] > erhalte ich seit kurzem folgende Fehlermeldung. > > X Error of failed request: BadValue (integer parameter out of range for operation) > Major opcode of failed request: 118 (X_SetModifierMapping) > Value in failed request: 0x17 > Serial number of failed request: 86 > Current serial number in output stream: 86 > > Ich glaube, dies tritt auf seitdem die X.org-Version (7.5) aktualisiert > wurde. Zudem benutze ich die aktuelle Version aus dem SVN-Depot (r2147). > > Kann mir da jemand weiterhelfen? > > > Liebe Grüße, > > Paul > > > [1] http://wiki.neo-layout.org/wiki/Neo unter Linux einrichten/xmodmap ```
PaulePanter added the
Bug
Treiber/Linux/xmodmap
labels 2010-01-23 14:43:10 +01:00

Hi,
ich hab das gleiche Problem:
System: Ubuntu lucid
[code]m:~$ setxkbmap lv && xmodmap neo_de.xmodmap
X Error of failed request: BadValue (integer parameter out of range for operation)

Major opcode of failed request: 118 (X_SetModifierMapping)
Value in failed request: 0x17
Serial number of failed request: 86
Current serial number in output stream: 86

Hi, ich hab das gleiche Problem: System: Ubuntu lucid [code]m:~$ setxkbmap lv && xmodmap neo_de.xmodmap X Error of failed request: BadValue (integer parameter out of range for operation) > Major opcode of failed request: 118 (X_SetModifierMapping) > Value in failed request: 0x17 > Serial number of failed request: 86 > Current serial number in output stream: 86

Soweit ich das sehen kann, liegt das nicht am xkb-Treiber. Dieser wird schließlich nirgends in der Problembeschreibung eingesetzt …

Soweit ich das sehen kann, liegt das nicht am xkb-Treiber. Dieser wird schließlich nirgends in der Problembeschreibung eingesetzt …

Das lässt sich lösen, indem man in der Datei den letzten Eintrag:

add Mod5 = ISO_Level3_Shift

mit einem ! auskommentiert, dann wird diese Veränderung eben nicht vorgenommen,
ein Unterschied ist mir aber bisher nicht damit aufgefallen.

Viele Grüße,
Kilian

Das lässt sich lösen, indem man in der Datei den letzten Eintrag: add Mod5 = ISO_Level3_Shift mit einem ! auskommentiert, dann wird diese Veränderung eben nicht vorgenommen, ein Unterschied ist mir aber bisher nicht damit aufgefallen. Viele Grüße, Kilian
erik was assigned by anonymous 2010-06-04 22:10:06 +02:00

Das lässt sich lösen, indem man in der Datei den letzten Eintrag:

add Mod5 = ISO_Level3_Shift

mit einem ! auskommentiert, dann wird diese Veränderung eben nicht vorgenommen,
ein Unterschied ist mir aber bisher nicht damit aufgefallen.

Vielleicht sollte das ins Skript mit eingebaut werden. Wenn Fedora 13, oder Ubuntu Lucid verwendet wird (oder die dort enthaltenen Versionen von xkeyboard-config), dann muss diese Zeile vom Skript automatisch auskommentiert werden. Oder umformuliert.

Solange dieser Fehler auftritt, ist es ein Fehler. Keine Verbesserung, denn die Xmodmap ist auf solchen Systemen unbenutzbar.

> Das lässt sich lösen, indem man in der Datei den letzten Eintrag: > > add Mod5 = ISO_Level3_Shift > > mit einem ! auskommentiert, dann wird diese Veränderung eben nicht vorgenommen, > ein Unterschied ist mir aber bisher nicht damit aufgefallen. Vielleicht sollte das ins Skript mit eingebaut werden. Wenn Fedora 13, oder Ubuntu Lucid verwendet wird (oder die dort enthaltenen Versionen von xkeyboard-config), dann muss diese Zeile vom Skript automatisch auskommentiert werden. Oder umformuliert. Solange dieser Fehler auftritt, ist es ein Fehler. Keine Verbesserung, denn die Xmodmap ist auf solchen Systemen unbenutzbar.

Fix: ersetze

add Mod3 = ISO_Group_Shift

durch:

add Mod3 = ISO_First_Group

Der Fehler ist distributionsunabhängig und tritt ab X-Server 1.7 auf (in X11R7.5 enthalten).
Seit dem X.org-Server 1.7 prüft die Routine von SetModifierMapping (genauer: build_modmap_from_modkeymap in dix/inpututils.c), ob der Keycode, der gesetzt werden soll, schon bei einem anderen Modifier eingetragen ist.
Nun werden durch obige Zeile aber nicht nur die Neo-Mod3s eingetragen (Qwertz-Caps und #), sondern auch die Mod4s, weil in ihren Definitionen ebenfalls ISO_Group_Shift vorkommt.
Wenn danach die Mod4s nochmal durch "add Mod5 = ISO_Level3_Shift" einem X-Modifier zugeordnet werden, meldet sich der neue X-Server 1.7 mit BadValue, weil diese Tasten eben schon bei Mod3 stehen.
Warum das neuerdings so gehandhabt wird, ist mir schleierhaft, wird aber wohl seine Gründe haben. Oder es liegt einfach daran, dass ProcSetModifierMapping in 1.7 neu geschrieben wurde.

Dass sich heutzutage keine Schwierigkeiten mehr ergeben, wenn man die Modifier-Maps weglässt, liegt daran, dass sie nur noch aus Kompatibilitätsgründen gesetzt werden. Alte Programme, die die Modmap noch auslesen, könnten aber Probleme haben, wenn dort nichts eingetragen ist. Deshalb sollten wir es schon richtig machen.

Es müsste noch einer probieren, ob obige Änderung auch noch unter älteren X-Servern funktioniert.

Fix: ersetze add Mod3 = ISO_Group_Shift durch: add Mod3 = ISO_First_Group Der Fehler ist distributionsunabhängig und tritt ab X-Server 1.7 auf (in X11R7.5 enthalten). Seit dem X.org-Server 1.7 prüft die Routine von SetModifierMapping (genauer: build_modmap_from_modkeymap in dix/inpututils.c), ob der Keycode, der gesetzt werden soll, schon bei einem anderen Modifier eingetragen ist. Nun werden durch obige Zeile aber nicht nur die Neo-Mod3s eingetragen (Qwertz-Caps und #), sondern auch die Mod4s, weil in ihren Definitionen ebenfalls ISO_Group_Shift vorkommt. Wenn danach die Mod4s nochmal durch "add Mod5 = ISO_Level3_Shift" einem X-Modifier zugeordnet werden, meldet sich der neue X-Server 1.7 mit BadValue, weil diese Tasten eben schon bei Mod3 stehen. Warum das neuerdings so gehandhabt wird, ist mir schleierhaft, wird aber wohl seine Gründe haben. Oder es liegt einfach daran, dass ProcSetModifierMapping in 1.7 neu geschrieben wurde. Dass sich heutzutage keine Schwierigkeiten mehr ergeben, wenn man die Modifier-Maps weglässt, liegt daran, dass sie nur noch aus Kompatibilitätsgründen gesetzt werden. Alte Programme, die die Modmap noch auslesen, könnten aber Probleme haben, wenn dort nichts eingetragen ist. Deshalb sollten wir es schon richtig machen. Es müsste noch einer probieren, ob obige Änderung auch noch unter älteren X-Servern funktioniert.
Author

Fix: ersetze

add Mod3 = ISO_Group_Shift

durch:

add Mod3 = ISO_First_Group

Vielen Dank! Ich bestätige, dass die Fehlermeldung nicht mehr auftritt.

[…]

Es müsste noch einer probieren, ob obige Änderung auch noch unter älteren X-Servern funktioniert.

Leider habe ich zu Hause keinen Zugriff auf einen älteren X-Server. Wenn ich aber die Möglichkeit haben sollte, an ein solches System zu kommen, werde ich es testen.

> Fix: ersetze > > add Mod3 = ISO_Group_Shift > > durch: > > add Mod3 = ISO_First_Group Vielen Dank! Ich bestätige, dass die Fehlermeldung nicht mehr auftritt. […] > Es müsste noch einer probieren, ob obige Änderung auch noch unter älteren X-Servern funktioniert. Leider habe ich zu Hause keinen Zugriff auf einen älteren X-Server. Wenn ich aber die Möglichkeit haben sollte, an ein solches System zu kommen, werde ich es testen.

Ich hab mal schnell mein altes Suse 10.3 entstaubt (X.org-Server 1.2). Klappt auch dort alles wie gewünscht mit der Änderung.

Würde den Fix auch selbst durchführen, hab aber keine Schreibrechte im SVN (oder bin zu blöd…). Wenn das also jemand mit erledigen könnte…

Ich hab mal schnell mein altes Suse 10.3 entstaubt (X.org-Server 1.2). Klappt auch dort alles wie gewünscht mit der Änderung. Würde den Fix auch selbst durchführen, hab aber keine Schreibrechte im SVN (oder bin zu blöd…). Wenn das also jemand mit erledigen könnte…

Umgesetzt.

Umgesetzt.
Sign in to join this conversation.
No Milestone
No Assignees
7 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: neo/neo-layout#189
No description provided.