staging.inyokaproject.org

Kernel-Patch anpassen - weiteres Device hinzufügen

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

atgis

Anmeldungsdatum:
5. August 2010

Beiträge: 67

Hallo, und Zwar möchte ich ein zusätzliches Gerät zu einem bereits funktionierenden Kernel Patch hinzufügen.

Hier der Patch: https://pastebin.com/8vnT7Ad7

Bereits funktionieren tun diese Fernbedienungsempänger:

1
2
3
Bus 002 Device 005: ID 0471:206c Philips (or NXP)
Bus 002 Device 005: ID 0471:20ccPhilips (or NXP)
Bus 002 Device 005: ID 0471:0613 Philips (or NXP)

Hinzufügen möchte ich einen weiteren Empfänger, der sich allerdings anders im System meldet:

1
Bus 002 Device 005: ID 0471:2168 Philips (or NXP)

Wie kann ich das bewerkstelligen? Das bloße hinzufügen der Zeilen mit nano funktioniert nicht. Danach ist der Patch kaputt.

Moderiert von sebix:

Kein Paketbau erkennbar. Thema in einen passenden Forenbereich verschoben. Bitte beachte die als wichtig markierten Themen („Welche Themen gehören hier her und welche nicht?“) in jedem Forenbereich. Danke.

Vain

Avatar von Vain

Anmeldungsdatum:
12. April 2008

Beiträge: 2510

Mangels Zeit zwei Ideen:

Vielleicht bringt dich das auf die richtige Spur. ☺

Vain

Avatar von Vain

Anmeldungsdatum:
12. April 2008

Beiträge: 2510

Eigentlich ist es ziemlich einfach.

Nehmen wir an, du hast irgendeinen Patch mit mehreren Hunks:

--- basefile	2017-10-20 17:15:59.126604706 +0200
+++ to1	2017-10-20 17:16:51.972865249 +0200
@@ -32,6 +32,7 @@
     int x, y, w, h;
     int normal_x, normal_y, normal_w, normal_h;
     int nonhidden_x;
+    int foobar;
 
     /* Space to reserve for window decorations */
     int m_top, m_left, m_right, m_bottom;
@@ -243,6 +244,7 @@
 static int setup_monitors_wsdef(int mi, int monitors_num);
 static void shutdown_monitors_free(void);
 static int xerror(Display *dpy, XErrorEvent *ee);
+/* something something */
 
 static void (*ipc_handler[IPCLast])(char arg) = {
     [IPCClientCenterFloating] = ipc_client_center_floating,
@@ -698,6 +700,8 @@
     winsize_min_h = winsize_min_h < 1 ? 1 : winsize_min_h;
 }
 
+/* uh oh */
+
 void
 decorations_map(struct Client *c)
 {

Um jetzt ganz oben zusätzlich zu foobar noch eine Zeile einzufügen, fügst du eben die Zeile ein und erhöhst dann alle gelb markierten Zahlen um eins.

--- basefile	2017-10-20 17:15:59.126604706 +0200
+++ to2	2017-10-20 17:16:51.972865249 +0200
@@ -32,6 +32,8 @@
     int x, y, w, h;
     int normal_x, normal_y, normal_w, normal_h;
     int nonhidden_x;
+    int foobar;
+    int foobaz;
 
     /* Space to reserve for window decorations */
     int m_top, m_left, m_right, m_bottom;
@@ -243,6 +245,7 @@
 static int setup_monitors_wsdef(int mi, int monitors_num);
 static void shutdown_monitors_free(void);
 static int xerror(Display *dpy, XErrorEvent *ee);
+/* something something */
 
 static void (*ipc_handler[IPCLast])(char arg) = {
     [IPCClientCenterFloating] = ipc_client_center_floating,
@@ -698,6 +701,8 @@
     winsize_min_h = winsize_min_h < 1 ? 1 : winsize_min_h;
 }
 
+/* uh oh */
+
 void
 decorations_map(struct Client *c)
 {

Dann hast du einen sauberen neuen Patch. Das ergibt sich aus der Beschreibung des Formats eines Patches, die ich oben verlinkt hatte.

Allerdings muss ich dazusagen, dass mein patch-Tool gar nicht so pingelig ist und auch ohne die Zahlenschubserei den editierten Patch anwendet. Vielleicht liegt dein Fehler also wo ganz anders? Wie genau bist du vorgegangen? Nevermind, ich war wohl etwas zu schnell gestern.

Antworten |