<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.faked.org/index.php?action=history&amp;feed=atom&amp;title=XenServer%2FFritzUSB</id>
	<title>XenServer/FritzUSB - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.faked.org/index.php?action=history&amp;feed=atom&amp;title=XenServer%2FFritzUSB"/>
	<link rel="alternate" type="text/html" href="https://wiki.faked.org/index.php?title=XenServer/FritzUSB&amp;action=history"/>
	<updated>2026-05-31T01:07:15Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki.faked.org/index.php?title=XenServer/FritzUSB&amp;diff=83&amp;oldid=prev</id>
		<title>Jan: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://wiki.faked.org/index.php?title=XenServer/FritzUSB&amp;diff=83&amp;oldid=prev"/>
		<updated>2016-08-26T19:09:43Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&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 21:09, 26 August 2016&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key mediawiki:diff::1.12:old-82:rev-83 --&gt;
&lt;/table&gt;</summary>
		<author><name>Jan</name></author>
	</entry>
	<entry>
		<id>https://wiki.faked.org/index.php?title=XenServer/FritzUSB&amp;diff=82&amp;oldid=prev</id>
		<title>Jan: /* Preparing the Module */</title>
		<link rel="alternate" type="text/html" href="https://wiki.faked.org/index.php?title=XenServer/FritzUSB&amp;diff=82&amp;oldid=prev"/>
		<updated>2009-08-04T21:00:57Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Preparing the Module&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;So i got [[XenServer/USBIP| USB over IP]] working, now where do i get drivers for my Fritz!Card USB 2.1? It looks like AVM doesn&amp;#039;t care about Linux drivers anymore, the most recent version was created for kernel 2.6.11, i think. Some people always found ways to make the work with current kernels, but it&amp;#039;s getting more difficult with each new kernel version. So here&amp;#039;s how i got the to work with 2.6.29, or to be precise: 2.6.29-xs5.5.0.14 - that&amp;#039;s the kernel being used for Debian Lenny domUs in XenServer 5.5.0.&lt;br /&gt;
&lt;br /&gt;
=== Preparing the Kernel ===&lt;br /&gt;
After trying out many archives and patches that different people compiled, i finally found a package which contains the driver and nearly all patches on [http://www.joonet.de/ Joo Martin&amp;#039;s] page: [http://www.joonet.de/fcard/| http://www.joonet.de/fcard/]&lt;br /&gt;
&lt;br /&gt;
So let&amp;#039;s get started:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/src&lt;br /&gt;
aptitude install build-essential bzip2 libncurses5-dev kernel-package linux-source-2.6.29-xs5.5.0.14 module-assistant debhelper&lt;br /&gt;
tar jxvf linux-source-2.6.29-xs5.5.0.14.tar.bz2&lt;br /&gt;
cp /boot/config-2.6.29-xs5.5.0.14 linux-source-2.6.29-xs5.5.0.14/.config&lt;br /&gt;
cd linux-source-2.6.29-xs5.5.0.14&lt;br /&gt;
make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we have to enable ISDN support in the Kernel (at least if you&amp;#039;re running a XenServer domU, this step is probably optional for regular Debian kernels)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[*] ISDN support ---&amp;gt; &lt;br /&gt;
   &amp;lt;M&amp;gt; CAPI 2.0 subsystem ---&amp;gt;&lt;br /&gt;
      [*] CAPI2.0 Middleware support (EXPERIMENTAL)&lt;br /&gt;
      &amp;lt;M&amp;gt;   CAPI2.0 /dev/capi support&lt;br /&gt;
      [*]     CAPI2.0 filesystem support&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Exit the menu, confirm that you want to save this configuration. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Preparing the Module ===&lt;br /&gt;
The kernel is prepared, but we still need the module for the Fritz!Card USB:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/src&lt;br /&gt;
wget http://www.joonet.de/fcard/fcusb2-modules_0.8.0.tgz&lt;br /&gt;
tar zxvf fcusb2-modules_0.8.0.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To be able to compile the module i had to create two additional patches. Open a new file in your favorite text-editor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vi modules/fcusb2-driver/debian/patches/00-patch_patch.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and paste the following lines:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--- v01/debian/patches/03-work-struct.patch     2009-08-04 22:44:10.000000000 +0200&lt;br /&gt;
+++ v02/debian/patches/03-work-struct.patch     2009-08-04 22:44:34.000000000 +0200&lt;br /&gt;
@@ -42,7 +42,7 @@&lt;br /&gt;
        close_data = data;&lt;br /&gt;
&lt;br /&gt;
 -      INIT_WORK (&amp;amp;closing_work, closing_worker, capi_card);&lt;br /&gt;
-+      INIT_WORK (&amp;amp;closing_work, closing_worker);&lt;br /&gt;
++      INIT_WORK (&amp;amp;closing_work, (work_func_t)closing_worker);&lt;br /&gt;
        schedule_work (&amp;amp;closing_work);&lt;br /&gt;
        LOG(&amp;quot;Worker scheduled.\n&amp;quot;);&lt;br /&gt;
  } /* start_closing_worker */&amp;lt;/pre&amp;gt;&lt;br /&gt;
then open another file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vi modules/fcusb2-driver/debian/patches/08-avm_sucks.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and paste the following lines:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
*** v01/fritz/src/driver.c  2009-08-04 22:55:59.000000000 +0200&lt;br /&gt;
--- v02/fritz/src/driver.c  2009-08-04 22:57:34.000000000 +0200&lt;br /&gt;
***************&lt;br /&gt;
*** 1244,1250 ****&lt;br /&gt;
&lt;br /&gt;
        if (thread_pid != -1) {&lt;br /&gt;
                atomic_set (&amp;amp;thread_run_flag, 0);&lt;br /&gt;
!               if (NULL == find_task_by_pid (thread_pid)) {&lt;br /&gt;
                        LOG(&amp;quot;Thread[%d] has died before!\n&amp;quot;, thread_pid);&lt;br /&gt;
                } else {&lt;br /&gt;
                        if (!atomic_read (&amp;amp;thread_capi_flag)) {&lt;br /&gt;
--- 1244,1250 ----&lt;br /&gt;
&lt;br /&gt;
        if (thread_pid != -1) {&lt;br /&gt;
                atomic_set (&amp;amp;thread_run_flag, 0);&lt;br /&gt;
!               if (NULL == find_task_by_vpid (thread_pid)) {&lt;br /&gt;
                        LOG(&amp;quot;Thread[%d] has died before!\n&amp;quot;, thread_pid);&lt;br /&gt;
                } else {&lt;br /&gt;
                        if (!atomic_read (&amp;amp;thread_capi_flag)) {&lt;br /&gt;
--- v08/fritz/src/driver.h  2009-08-04 21:33:29.000000000 +0200&lt;br /&gt;
+++ v09/fritz/src/driver.h  2009-08-04 21:33:46.000000000 +0200&lt;br /&gt;
@@ -23,7 +23,6 @@&lt;br /&gt;
 #ifndef __have_driver_h__&lt;br /&gt;
 #define __have_driver_h__&lt;br /&gt;
&lt;br /&gt;
-#include &amp;lt;asm/semaphore.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;asm/atomic.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/skbuff.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;linux/capi.h&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Let&amp;#039;s go, start compiling:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/src/linux-source-2.6.29-xs5.5.0.14&lt;br /&gt;
make-kpkg --initrd kernel_image modules_image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go out, meet people, have fun ... compiling takes time.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
When you come back, you can install the new kernel and the modules:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dpkg -i /usr/src/linux-image-2.6.29-xs5.5.0.14_2.6.29-xs5.5.0.14-10.00.Custom_i386.deb&lt;br /&gt;
dpkg -i /usr/src/fcusb2-modules-2.6.29-xs5.5.0.14_0.8.0+2.6.29-xs5.5.0.14-10.00.Custom_i386.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ignore the warning that the same kernel is already installed, hit the &amp;quot;No&amp;quot; button, and confirm with the &amp;quot;OK&amp;quot; button that you&amp;#039;re going to reboot as soon as possible. Do it, seriously.&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
So you rebooted, and are still reading this ... that means you kernel obviously worked fine, else you&amp;#039;d have other things to worry about right now.&lt;br /&gt;
Go ahead load the module:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe fcusb2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nothing happened? That&amp;#039;s a good sign! Check &amp;lt;tt&amp;gt;dmesg&amp;lt;/tt&amp;gt;, i get:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CAPI Subsystem Rev 1.1.2.8&lt;br /&gt;
usbcore: registered new interface driver usbfs&lt;br /&gt;
usbcore: registered new interface driver hub&lt;br /&gt;
usbcore: registered new device driver usb&lt;br /&gt;
fcusb2: AVM FRITZ!Card USB v2 driver, revision 0.6.4&lt;br /&gt;
fcusb2: (fcusb2 built on Jul 27 2009 at 00:17:05)&lt;br /&gt;
fcusb2: -- 32 bit CAPI driver --&lt;br /&gt;
fcusb2: Loading...&lt;br /&gt;
usbcore: registered new interface driver fcusb2&lt;br /&gt;
fcusb2: Loaded.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We&amp;#039;re nearly done, we just have to take care of some of the stuff the regular AVM installer would usually have done.&lt;br /&gt;
&lt;br /&gt;
Copy the Firmware from the driver package to the folder where the driver searches for it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/src/modules/fcusb2-driver/&lt;br /&gt;
tar xzvf fcusb2-suse93-3.11-07.tar.gz&lt;br /&gt;
mkdir /usr/share/isdn&lt;br /&gt;
cp fritz/fus3base.frm /usr/share/isdn/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Open the CAPI config file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vi /etc/isdn/capi.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and add the following line for our device:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fcusb2          fus3base.frm    DSS1    -       -       -       -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Last step: initialize the CAPI:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
capiinit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Congratulations, you&amp;#039;re done! If you don&amp;#039;t trust me, try this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
capiinfo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jan</name></author>
	</entry>
</feed>