<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.vdrift.net/index.php?action=history&amp;feed=atom&amp;title=Enabling_force_feedback_in_kernel</id>
	<title>Enabling force feedback in kernel - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.vdrift.net/index.php?action=history&amp;feed=atom&amp;title=Enabling_force_feedback_in_kernel"/>
	<link rel="alternate" type="text/html" href="http://wiki.vdrift.net/index.php?title=Enabling_force_feedback_in_kernel&amp;action=history"/>
	<updated>2026-06-14T18:02:51Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.2</generator>
	<entry>
		<id>http://wiki.vdrift.net/index.php?title=Enabling_force_feedback_in_kernel&amp;diff=1274&amp;oldid=prev</id>
		<title>Timo 6: Update categories</title>
		<link rel="alternate" type="text/html" href="http://wiki.vdrift.net/index.php?title=Enabling_force_feedback_in_kernel&amp;diff=1274&amp;oldid=prev"/>
		<updated>2012-09-01T11:04:59Z</updated>

		<summary type="html">&lt;p&gt;Update categories&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:04, 1 September 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l134&quot; &gt;Line 134:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 134:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Configuration]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Configuration]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Review]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Operating Systems:Linux]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Timo 6</name></author>
	</entry>
	<entry>
		<id>http://wiki.vdrift.net/index.php?title=Enabling_force_feedback_in_kernel&amp;diff=1183&amp;oldid=prev</id>
		<title>Timo 6: Formatting style updates</title>
		<link rel="alternate" type="text/html" href="http://wiki.vdrift.net/index.php?title=Enabling_force_feedback_in_kernel&amp;diff=1183&amp;oldid=prev"/>
		<updated>2012-08-27T13:22:09Z</updated>

		<summary type="html">&lt;p&gt;Formatting style updates&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:22, 27 August 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot; &gt;Line 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;First create a patch file named G25.patch for the kernel ( patches for 2.6.27 and 2.6.28 are provided ).&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;First create a patch file named G25.patch for the kernel ( patches for 2.6.27 and 2.6.28 are provided ).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== kernel 2.6.27 ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===kernel 2.6.27===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  diff -Naur linux-source-2.6.27/drivers/hid/usbhid/hid-ff.c linux-source-2.6.27.orig/drivers/hid/usbhid/hid-ff.c&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  diff -Naur linux-source-2.6.27/drivers/hid/usbhid/hid-ff.c linux-source-2.6.27.orig/drivers/hid/usbhid/hid-ff.c&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  --- linux-source-2.6.27/drivers/hid/usbhid/hid-ff.c    2008-10-10 00:13:53.000000000 +0200                      &lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  --- linux-source-2.6.27/drivers/hid/usbhid/hid-ff.c    2008-10-10 00:13:53.000000000 +0200                      &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l47&quot; &gt;Line 47:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 47:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         { USB_VENDOR_ID_SUN, USB_DEVICE_ID_RARITAN_KVM_DONGLE, HID_QUIRK_NOGET },&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         { USB_VENDOR_ID_SUN, USB_DEVICE_ID_RARITAN_KVM_DONGLE, HID_QUIRK_NOGET },&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== kernel 2.6.28 ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===kernel 2.6.28===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  diff -Naur linux-source-2.6.28/drivers/hid/hid-core.c linux-source-2.6.28.patched/drivers/hid/hid-core.c&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  diff -Naur linux-source-2.6.28/drivers/hid/hid-core.c linux-source-2.6.28.patched/drivers/hid/hid-core.c&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  --- linux-source-2.6.28/drivers/hid/hid-core.c  2009-04-08 06:38:33.000000000 +0200&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  --- linux-source-2.6.28/drivers/hid/hid-core.c  2009-04-08 06:38:33.000000000 +0200&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l85&quot; &gt;Line 85:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 85:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Enabling force feedback in the kernel==&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Enabling force feedback in the kernel==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Prepare to compile a kernel===&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Prepare to compile a kernel===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Make sure &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;U &lt;/del&gt;have everything needed to compile your kernel :&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Make sure &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;you &lt;/ins&gt;have everything needed to compile your kernel :&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  sudo apt-get install fakeroot build-essential makedumpfile libncurses5 libncurses5-dev kernel-package&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  sudo apt-get install fakeroot build-essential makedumpfile libncurses5 libncurses5-dev kernel-package&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  sudo apt-get build-dep linux&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  sudo apt-get build-dep linux&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l98&quot; &gt;Line 98:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 98:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Apply the G25 patch if needed===&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Apply the G25 patch if needed===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;copy &lt;/del&gt;the G25.patch file into the source directory ( ~/src ) and&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Copy &lt;/ins&gt;the G25.patch file into the source directory ( ~/src ) and&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  patch -p1 &amp;lt;../G25.patch&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  patch -p1 &amp;lt;../G25.patch&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;the &lt;/del&gt;output should be something like that:&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;The &lt;/ins&gt;output should be something like that:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  patching file drivers/hid/usbhid/hid-ff.c&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  patching file drivers/hid/usbhid/hid-ff.c&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  patching file drivers/hid/usbhid/hid-lgff.c&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  patching file drivers/hid/usbhid/hid-lgff.c&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l128&quot; &gt;Line 128:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 128:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  make-kpkg clean&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  make-kpkg clean&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  fakeroot make-kpkg --initrd --append-to-version=-ff kernel-image kernel-headers&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  fakeroot make-kpkg --initrd --append-to-version=-ff kernel-image kernel-headers&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;you &lt;/del&gt;now have 2 new package files in ~/src.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;You &lt;/ins&gt;now have 2 new package files in ~/src.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Install the new kernel===&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Install the new kernel===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Timo 6</name></author>
	</entry>
	<entry>
		<id>http://wiki.vdrift.net/index.php?title=Enabling_force_feedback_in_kernel&amp;diff=480&amp;oldid=prev</id>
		<title>Timo 6: 17 revisions: Import from old wiki (on 15 May 2012)</title>
		<link rel="alternate" type="text/html" href="http://wiki.vdrift.net/index.php?title=Enabling_force_feedback_in_kernel&amp;diff=480&amp;oldid=prev"/>
		<updated>2012-08-26T17:24:35Z</updated>

		<summary type="html">&lt;p&gt;17 revisions: Import from old wiki (on 15 May 2012)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Here is how to enable force feedback on Ubuntu 8.10 64 bits kernels (should also work on 32 bits ones):&lt;br /&gt;
&lt;br /&gt;
==For the G25 owners==&lt;br /&gt;
If you use a G25 wheel, you need to patch your kernel to be able to use it in its native mode&lt;br /&gt;
First create a patch file named G25.patch for the kernel ( patches for 2.6.27 and 2.6.28 are provided ).&lt;br /&gt;
&lt;br /&gt;
=== kernel 2.6.27 ===&lt;br /&gt;
 diff -Naur linux-source-2.6.27/drivers/hid/usbhid/hid-ff.c linux-source-2.6.27.orig/drivers/hid/usbhid/hid-ff.c&lt;br /&gt;
 --- linux-source-2.6.27/drivers/hid/usbhid/hid-ff.c    2008-10-10 00:13:53.000000000 +0200                     &lt;br /&gt;
 +++ linux-source-2.6.27.orig/drivers/hid/usbhid/hid-ff.c       2009-02-23 22:21:27.000000000 +0100             &lt;br /&gt;
 @@ -57,6 +57,7 @@                                                                                              &lt;br /&gt;
        { 0x46d, 0xc286, hid_lgff_init }, /* Logitech Force 3D Pro Joystick */                                  &lt;br /&gt;
        { 0x46d, 0xc294, hid_lgff_init }, /* Logitech Formula Force EX */                                       &lt;br /&gt;
        { 0x46d, 0xc295, hid_lgff_init }, /* Logitech MOMO force wheel */&lt;br /&gt;
 +      { 0x46d, 0xc299, hid_lgff_init }, /* Logitech G25 wheel */&lt;br /&gt;
        { 0x46d, 0xca03, hid_lgff_init }, /* Logitech MOMO force wheel */&lt;br /&gt;
  #endif&lt;br /&gt;
  #ifdef CONFIG_LOGIRUMBLEPAD2_FF&lt;br /&gt;
 diff -Naur linux-source-2.6.27/drivers/hid/usbhid/hid-lgff.c linux-source-2.6.27.orig/drivers/hid/usbhid/hid-lgff.c&lt;br /&gt;
 --- linux-source-2.6.27/drivers/hid/usbhid/hid-lgff.c  2008-10-10 00:13:53.000000000 +0200&lt;br /&gt;
 +++ linux-source-2.6.27.orig/drivers/hid/usbhid/hid-lgff.c     2009-02-23 22:23:22.000000000 +0100&lt;br /&gt;
 @@ -55,6 +55,7 @@&lt;br /&gt;
        { 0x046d, 0xc286, ff_joystick },&lt;br /&gt;
        { 0x046d, 0xc294, ff_joystick },&lt;br /&gt;
        { 0x046d, 0xc295, ff_joystick },&lt;br /&gt;
 +      { 0x046d, 0xc299, ff_joystick },&lt;br /&gt;
        { 0x046d, 0xca03, ff_joystick },&lt;br /&gt;
  };&lt;br /&gt;
 diff -Naur linux-source-2.6.27/drivers/hid/usbhid/hid-quirks.c linux-source-2.6.27.orig/drivers/hid/usbhid/hid-quirks.c&lt;br /&gt;
 --- linux-source-2.6.27/drivers/hid/usbhid/hid-quirks.c        2009-03-13 18:54:14.000000000 +0100&lt;br /&gt;
 +++ linux-source-2.6.27.orig/drivers/hid/usbhid/hid-quirks.c   2009-02-23 22:25:45.000000000 +0100&lt;br /&gt;
 @@ -316,6 +316,7 @@&lt;br /&gt;
  #define USB_DEVICE_ID_LOGITECH_HARMONY_64 0xc14f&lt;br /&gt;
  #define USB_DEVICE_ID_LOGITECH_EXTREME_3D     0xc215&lt;br /&gt;
  #define USB_DEVICE_ID_LOGITECH_WHEEL  0xc294&lt;br /&gt;
 +#define USB_DEVICE_ID_LOGITECH_WHEELG25       0xc299&lt;br /&gt;
  #define USB_DEVICE_ID_LOGITECH_ELITE_KBD      0xc30a&lt;br /&gt;
  #define USB_DEVICE_ID_LOGITECH_KBD    0xc311&lt;br /&gt;
  #define USB_DEVICE_ID_S510_RECEIVER   0xc50c&lt;br /&gt;
 @@ -625,6 +626,7 @@&lt;br /&gt;
        { USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2700, HID_QUIRK_NOGET },&lt;br /&gt;
        { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_EXTREME_3D, HID_QUIRK_NOGET },&lt;br /&gt;
        { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WHEEL, HID_QUIRK_NOGET },&lt;br /&gt;
 +      { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WHEELG25, HID_QUIRK_NOGET },&lt;br /&gt;
        { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_WIRELESS_OPTICAL_DESKTOP_3_0, HID_QUIRK_NOGET },&lt;br /&gt;
        { USB_VENDOR_ID_PETALYNX, USB_DEVICE_ID_PETALYNX_MAXTER_REMOTE, HID_QUIRK_NOGET },&lt;br /&gt;
        { USB_VENDOR_ID_SUN, USB_DEVICE_ID_RARITAN_KVM_DONGLE, HID_QUIRK_NOGET },&lt;br /&gt;
&lt;br /&gt;
=== kernel 2.6.28 ===&lt;br /&gt;
 diff -Naur linux-source-2.6.28/drivers/hid/hid-core.c linux-source-2.6.28.patched/drivers/hid/hid-core.c&lt;br /&gt;
 --- linux-source-2.6.28/drivers/hid/hid-core.c  2009-04-08 06:38:33.000000000 +0200&lt;br /&gt;
 +++ linux-source-2.6.28.patched/drivers/hid/hid-core.c  2009-04-10 14:15:27.000000000 +0200&lt;br /&gt;
 @@ -1290,6 +1290,7 @@&lt;br /&gt;
         { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_FORCE3D_PRO) },&lt;br /&gt;
         { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOMO_WHEEL) },&lt;br /&gt;
         { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOMO_WHEEL2) },&lt;br /&gt;
 +       { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_G25_WHEEL) },&lt;br /&gt;
         { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2) },&lt;br /&gt;
         { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_SIDEWINDER_GV) },&lt;br /&gt;
         { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_NE4K) },&lt;br /&gt;
 diff -Naur linux-source-2.6.28/drivers/hid/hid-ids.h linux-source-2.6.28.patched/drivers/hid/hid-ids.h&lt;br /&gt;
 --- linux-source-2.6.28/drivers/hid/hid-ids.h   2008-12-25 00:26:37.000000000 +0100&lt;br /&gt;
 +++ linux-source-2.6.28.patched/drivers/hid/hid-ids.h   2009-04-10 14:12:44.000000000 +0200&lt;br /&gt;
 @@ -291,6 +291,7 @@&lt;br /&gt;
  #define USB_DEVICE_ID_LOGITECH_FORCE3D_PRO     0xc286&lt;br /&gt;
  #define USB_DEVICE_ID_LOGITECH_WHEEL   0xc294&lt;br /&gt;
  #define USB_DEVICE_ID_LOGITECH_MOMO_WHEEL      0xc295&lt;br /&gt;
 +#define USB_DEVICE_ID_LOGITECH_G25_WHEEL       0xc299&lt;br /&gt;
  #define USB_DEVICE_ID_LOGITECH_ELITE_KBD       0xc30a&lt;br /&gt;
  #define USB_DEVICE_ID_LOGITECH_KBD     0xc311&lt;br /&gt;
  #define USB_DEVICE_ID_S510_RECEIVER    0xc50c&lt;br /&gt;
 diff -Naur linux-source-2.6.28/drivers/hid/hid-lg.c linux-source-2.6.28.patched/drivers/hid/hid-lg.c&lt;br /&gt;
 --- linux-source-2.6.28/drivers/hid/hid-lg.c    2008-12-25 00:26:37.000000000 +0100&lt;br /&gt;
 +++ linux-source-2.6.28.patched/drivers/hid/hid-lg.c    2009-04-10 14:14:17.000000000 +0200&lt;br /&gt;
 @@ -304,6 +304,8 @@&lt;br /&gt;
                 .driver_data = LG_FF },&lt;br /&gt;
         { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOMO_WHEEL2),&lt;br /&gt;
                 .driver_data = LG_FF },&lt;br /&gt;
 +       { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_G25_WHEEL),&lt;br /&gt;
 +               .driver_data = LG_FF },&lt;br /&gt;
         { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2),&lt;br /&gt;
                 .driver_data = LG_FF2 },&lt;br /&gt;
         { }&lt;br /&gt;
&lt;br /&gt;
==Enabling force feedback in the kernel==&lt;br /&gt;
===Prepare to compile a kernel===&lt;br /&gt;
Make sure U have everything needed to compile your kernel :&lt;br /&gt;
 sudo apt-get install fakeroot build-essential makedumpfile libncurses5 libncurses5-dev kernel-package&lt;br /&gt;
 sudo apt-get build-dep linux&lt;br /&gt;
Get the kernel source code :&lt;br /&gt;
 sudo apt-get install linux-source&lt;br /&gt;
Now we are ready to start :&lt;br /&gt;
Prepare your environment:&lt;br /&gt;
 mkdir ~/src&lt;br /&gt;
 cd ~/src&lt;br /&gt;
 tar xjvf /usr/src/linux-source-&amp;lt;version&amp;gt;.tar.bz2&lt;br /&gt;
 cd linux-source-&amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Apply the G25 patch if needed===&lt;br /&gt;
copy the G25.patch file into the source directory ( ~/src ) and&lt;br /&gt;
 patch -p1 &amp;lt;../G25.patch&lt;br /&gt;
the output should be something like that:&lt;br /&gt;
 patching file drivers/hid/usbhid/hid-ff.c&lt;br /&gt;
 patching file drivers/hid/usbhid/hid-lgff.c&lt;br /&gt;
 patching file drivers/hid/usbhid/hid-quirks.c&lt;br /&gt;
&lt;br /&gt;
===Configure the new kernel===&lt;br /&gt;
Get the running kernel configuration:&lt;br /&gt;
 cp -vi /boot/config-`uname -r` .config&lt;br /&gt;
Adjust the kernel configuration:&lt;br /&gt;
 make oldconfig&lt;br /&gt;
 make menuconfig&lt;br /&gt;
Go to Device Drivers  , and HID Devices &lt;br /&gt;
and enable the following options&lt;br /&gt;
 Force feedback support (EXPERIMENTAL)&lt;br /&gt;
   PID device support&lt;br /&gt;
   Logitech devices support&lt;br /&gt;
   Logitech Rumblepad 2 support&lt;br /&gt;
   PantherLord/GreenAsia based device support&lt;br /&gt;
   ThrustMaster devices support&lt;br /&gt;
   Zeroplus based game controller support&lt;br /&gt;
With the 2.6.27 kernel on Ubuntu 8.10, I have to disable paravirtualized guest support otherwise the kernel cleaning fail.&lt;br /&gt;
This is not needed on 2.6.28 on Ubuntu 9.04 beta (2.6.28.11)&lt;br /&gt;
Go to Processor type and features and disable the following:&lt;br /&gt;
 Paravirtualized guest support&lt;br /&gt;
&lt;br /&gt;
===Compile and package the new kernel===&lt;br /&gt;
 make-kpkg clean&lt;br /&gt;
 fakeroot make-kpkg --initrd --append-to-version=-ff kernel-image kernel-headers&lt;br /&gt;
you now have 2 new package files in ~/src.&lt;br /&gt;
&lt;br /&gt;
===Install the new kernel===&lt;br /&gt;
 sudo dpkg -i linux-image-2.6.27.18-ff_2.6.27.18-ff-10.00.Custom_amd64.deb linux-headers-2.6.27.18-ff_2.6.27.18-ff-10.00.Custom_amd64.deb&lt;br /&gt;
&lt;br /&gt;
[[Category:Configuration]]&lt;br /&gt;
[[Category:Review]]&lt;br /&gt;
[[Category:Operating Systems:Linux]]&lt;/div&gt;</summary>
		<author><name>Timo 6</name></author>
	</entry>
	<entry>
		<id>http://wiki.vdrift.net/index.php?title=Enabling_force_feedback_in_kernel&amp;diff=478&amp;oldid=prev</id>
		<title>Venzon: Reverted edits by AmandaCusack (Talk); changed back to last version by Cborivant</title>
		<link rel="alternate" type="text/html" href="http://wiki.vdrift.net/index.php?title=Enabling_force_feedback_in_kernel&amp;diff=478&amp;oldid=prev"/>
		<updated>2010-07-27T01:34:03Z</updated>

		<summary type="html">&lt;p&gt;Reverted edits by &lt;a href=&quot;/index.php?title=Special:Contributions/AmandaCusack&quot; title=&quot;Special:Contributions/AmandaCusack&quot;&gt;AmandaCusack&lt;/a&gt; (&lt;a href=&quot;/index.php?title=User_talk:AmandaCusack&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User talk:AmandaCusack (page does not exist)&quot;&gt;Talk&lt;/a&gt;); changed back to last version by &lt;a href=&quot;/index.php?title=User:Cborivant&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User:Cborivant (page does not exist)&quot;&gt;Cborivant&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Here is how to enable force feedback on Ubuntu 8.10 64 bits kernels (should also work on 32 bits ones):&lt;br /&gt;
&lt;br /&gt;
==For the G25 owners==&lt;br /&gt;
If you use a G25 wheel, you need to patch your kernel to be able to use it in its native mode&lt;br /&gt;
First create a patch file named G25.patch for the kernel ( patches for 2.6.27 and 2.6.28 are provided ).&lt;br /&gt;
&lt;br /&gt;
=== kernel 2.6.27 ===&lt;br /&gt;
 diff -Naur linux-source-2.6.27/drivers/hid/usbhid/hid-ff.c linux-source-2.6.27.orig/drivers/hid/usbhid/hid-ff.c&lt;br /&gt;
 --- linux-source-2.6.27/drivers/hid/usbhid/hid-ff.c    2008-10-10 00:13:53.000000000 +0200                     &lt;br /&gt;
 +++ linux-source-2.6.27.orig/drivers/hid/usbhid/hid-ff.c       2009-02-23 22:21:27.000000000 +0100             &lt;br /&gt;
 @@ -57,6 +57,7 @@                                                                                              &lt;br /&gt;
        { 0x46d, 0xc286, hid_lgff_init }, /* Logitech Force 3D Pro Joystick */                                  &lt;br /&gt;
        { 0x46d, 0xc294, hid_lgff_init }, /* Logitech Formula Force EX */                                       &lt;br /&gt;
        { 0x46d, 0xc295, hid_lgff_init }, /* Logitech MOMO force wheel */&lt;br /&gt;
 +      { 0x46d, 0xc299, hid_lgff_init }, /* Logitech G25 wheel */&lt;br /&gt;
        { 0x46d, 0xca03, hid_lgff_init }, /* Logitech MOMO force wheel */&lt;br /&gt;
  #endif&lt;br /&gt;
  #ifdef CONFIG_LOGIRUMBLEPAD2_FF&lt;br /&gt;
 diff -Naur linux-source-2.6.27/drivers/hid/usbhid/hid-lgff.c linux-source-2.6.27.orig/drivers/hid/usbhid/hid-lgff.c&lt;br /&gt;
 --- linux-source-2.6.27/drivers/hid/usbhid/hid-lgff.c  2008-10-10 00:13:53.000000000 +0200&lt;br /&gt;
 +++ linux-source-2.6.27.orig/drivers/hid/usbhid/hid-lgff.c     2009-02-23 22:23:22.000000000 +0100&lt;br /&gt;
 @@ -55,6 +55,7 @@&lt;br /&gt;
        { 0x046d, 0xc286, ff_joystick },&lt;br /&gt;
        { 0x046d, 0xc294, ff_joystick },&lt;br /&gt;
        { 0x046d, 0xc295, ff_joystick },&lt;br /&gt;
 +      { 0x046d, 0xc299, ff_joystick },&lt;br /&gt;
        { 0x046d, 0xca03, ff_joystick },&lt;br /&gt;
  };&lt;br /&gt;
 diff -Naur linux-source-2.6.27/drivers/hid/usbhid/hid-quirks.c linux-source-2.6.27.orig/drivers/hid/usbhid/hid-quirks.c&lt;br /&gt;
 --- linux-source-2.6.27/drivers/hid/usbhid/hid-quirks.c        2009-03-13 18:54:14.000000000 +0100&lt;br /&gt;
 +++ linux-source-2.6.27.orig/drivers/hid/usbhid/hid-quirks.c   2009-02-23 22:25:45.000000000 +0100&lt;br /&gt;
 @@ -316,6 +316,7 @@&lt;br /&gt;
  #define USB_DEVICE_ID_LOGITECH_HARMONY_64 0xc14f&lt;br /&gt;
  #define USB_DEVICE_ID_LOGITECH_EXTREME_3D     0xc215&lt;br /&gt;
  #define USB_DEVICE_ID_LOGITECH_WHEEL  0xc294&lt;br /&gt;
 +#define USB_DEVICE_ID_LOGITECH_WHEELG25       0xc299&lt;br /&gt;
  #define USB_DEVICE_ID_LOGITECH_ELITE_KBD      0xc30a&lt;br /&gt;
  #define USB_DEVICE_ID_LOGITECH_KBD    0xc311&lt;br /&gt;
  #define USB_DEVICE_ID_S510_RECEIVER   0xc50c&lt;br /&gt;
 @@ -625,6 +626,7 @@&lt;br /&gt;
        { USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2700, HID_QUIRK_NOGET },&lt;br /&gt;
        { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_EXTREME_3D, HID_QUIRK_NOGET },&lt;br /&gt;
        { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WHEEL, HID_QUIRK_NOGET },&lt;br /&gt;
 +      { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WHEELG25, HID_QUIRK_NOGET },&lt;br /&gt;
        { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_WIRELESS_OPTICAL_DESKTOP_3_0, HID_QUIRK_NOGET },&lt;br /&gt;
        { USB_VENDOR_ID_PETALYNX, USB_DEVICE_ID_PETALYNX_MAXTER_REMOTE, HID_QUIRK_NOGET },&lt;br /&gt;
        { USB_VENDOR_ID_SUN, USB_DEVICE_ID_RARITAN_KVM_DONGLE, HID_QUIRK_NOGET },&lt;br /&gt;
&lt;br /&gt;
=== kernel 2.6.28 ===&lt;br /&gt;
 diff -Naur linux-source-2.6.28/drivers/hid/hid-core.c linux-source-2.6.28.patched/drivers/hid/hid-core.c&lt;br /&gt;
 --- linux-source-2.6.28/drivers/hid/hid-core.c  2009-04-08 06:38:33.000000000 +0200&lt;br /&gt;
 +++ linux-source-2.6.28.patched/drivers/hid/hid-core.c  2009-04-10 14:15:27.000000000 +0200&lt;br /&gt;
 @@ -1290,6 +1290,7 @@&lt;br /&gt;
         { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_FORCE3D_PRO) },&lt;br /&gt;
         { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOMO_WHEEL) },&lt;br /&gt;
         { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOMO_WHEEL2) },&lt;br /&gt;
 +       { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_G25_WHEEL) },&lt;br /&gt;
         { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2) },&lt;br /&gt;
         { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_SIDEWINDER_GV) },&lt;br /&gt;
         { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_NE4K) },&lt;br /&gt;
 diff -Naur linux-source-2.6.28/drivers/hid/hid-ids.h linux-source-2.6.28.patched/drivers/hid/hid-ids.h&lt;br /&gt;
 --- linux-source-2.6.28/drivers/hid/hid-ids.h   2008-12-25 00:26:37.000000000 +0100&lt;br /&gt;
 +++ linux-source-2.6.28.patched/drivers/hid/hid-ids.h   2009-04-10 14:12:44.000000000 +0200&lt;br /&gt;
 @@ -291,6 +291,7 @@&lt;br /&gt;
  #define USB_DEVICE_ID_LOGITECH_FORCE3D_PRO     0xc286&lt;br /&gt;
  #define USB_DEVICE_ID_LOGITECH_WHEEL   0xc294&lt;br /&gt;
  #define USB_DEVICE_ID_LOGITECH_MOMO_WHEEL      0xc295&lt;br /&gt;
 +#define USB_DEVICE_ID_LOGITECH_G25_WHEEL       0xc299&lt;br /&gt;
  #define USB_DEVICE_ID_LOGITECH_ELITE_KBD       0xc30a&lt;br /&gt;
  #define USB_DEVICE_ID_LOGITECH_KBD     0xc311&lt;br /&gt;
  #define USB_DEVICE_ID_S510_RECEIVER    0xc50c&lt;br /&gt;
 diff -Naur linux-source-2.6.28/drivers/hid/hid-lg.c linux-source-2.6.28.patched/drivers/hid/hid-lg.c&lt;br /&gt;
 --- linux-source-2.6.28/drivers/hid/hid-lg.c    2008-12-25 00:26:37.000000000 +0100&lt;br /&gt;
 +++ linux-source-2.6.28.patched/drivers/hid/hid-lg.c    2009-04-10 14:14:17.000000000 +0200&lt;br /&gt;
 @@ -304,6 +304,8 @@&lt;br /&gt;
                 .driver_data = LG_FF },&lt;br /&gt;
         { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOMO_WHEEL2),&lt;br /&gt;
                 .driver_data = LG_FF },&lt;br /&gt;
 +       { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_G25_WHEEL),&lt;br /&gt;
 +               .driver_data = LG_FF },&lt;br /&gt;
         { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2),&lt;br /&gt;
                 .driver_data = LG_FF2 },&lt;br /&gt;
         { }&lt;br /&gt;
&lt;br /&gt;
==Enabling force feedback in the kernel==&lt;br /&gt;
===Prepare to compile a kernel===&lt;br /&gt;
Make sure U have everything needed to compile your kernel :&lt;br /&gt;
 sudo apt-get install fakeroot build-essential makedumpfile libncurses5 libncurses5-dev kernel-package&lt;br /&gt;
 sudo apt-get build-dep linux&lt;br /&gt;
Get the kernel source code :&lt;br /&gt;
 sudo apt-get install linux-source&lt;br /&gt;
Now we are ready to start :&lt;br /&gt;
Prepare your environment:&lt;br /&gt;
 mkdir ~/src&lt;br /&gt;
 cd ~/src&lt;br /&gt;
 tar xjvf /usr/src/linux-source-&amp;lt;version&amp;gt;.tar.bz2&lt;br /&gt;
 cd linux-source-&amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Apply the G25 patch if needed===&lt;br /&gt;
copy the G25.patch file into the source directory ( ~/src ) and&lt;br /&gt;
 patch -p1 &amp;lt;../G25.patch&lt;br /&gt;
the output should be something like that:&lt;br /&gt;
 patching file drivers/hid/usbhid/hid-ff.c&lt;br /&gt;
 patching file drivers/hid/usbhid/hid-lgff.c&lt;br /&gt;
 patching file drivers/hid/usbhid/hid-quirks.c&lt;br /&gt;
&lt;br /&gt;
===Configure the new kernel===&lt;br /&gt;
Get the running kernel configuration:&lt;br /&gt;
 cp -vi /boot/config-`uname -r` .config&lt;br /&gt;
Adjust the kernel configuration:&lt;br /&gt;
 make oldconfig&lt;br /&gt;
 make menuconfig&lt;br /&gt;
Go to Device Drivers  , and HID Devices &lt;br /&gt;
and enable the following options&lt;br /&gt;
 Force feedback support (EXPERIMENTAL)&lt;br /&gt;
   PID device support&lt;br /&gt;
   Logitech devices support&lt;br /&gt;
   Logitech Rumblepad 2 support&lt;br /&gt;
   PantherLord/GreenAsia based device support&lt;br /&gt;
   ThrustMaster devices support&lt;br /&gt;
   Zeroplus based game controller support&lt;br /&gt;
With the 2.6.27 kernel on Ubuntu 8.10, I have to disable paravirtualized guest support otherwise the kernel cleaning fail.&lt;br /&gt;
This is not needed on 2.6.28 on Ubuntu 9.04 beta (2.6.28.11)&lt;br /&gt;
Go to Processor type and features and disable the following:&lt;br /&gt;
 Paravirtualized guest support&lt;br /&gt;
&lt;br /&gt;
===Compile and package the new kernel===&lt;br /&gt;
 make-kpkg clean&lt;br /&gt;
 fakeroot make-kpkg --initrd --append-to-version=-ff kernel-image kernel-headers&lt;br /&gt;
you now have 2 new package files in ~/src.&lt;br /&gt;
&lt;br /&gt;
===Install the new kernel===&lt;br /&gt;
 sudo dpkg -i linux-image-2.6.27.18-ff_2.6.27.18-ff-10.00.Custom_amd64.deb linux-headers-2.6.27.18-ff_2.6.27.18-ff-10.00.Custom_amd64.deb&lt;/div&gt;</summary>
		<author><name>Venzon</name></author>
	</entry>
</feed>