Alright, I've fixed it and I'll try to describe the steps here. I use an
AVM Fritz Card DSL SL, but not for much longer, the amazing amount of
crap I've had to deal with regularly over the years to get this thing
working has had its toll on me. I'm going the router way in a month and
it will all be plug&play from then on. Oh, and the router won't be AVM
harder, that I swear...

I digress but I want AVM to know they've lost a customer by not
providing better drivers for linux.

This is for the DSL SL card, adjust to your card type:
0) There are enough guides as to how to install the AVM cards, from installing 
the relevant DEB packages to editing capi.conf and editing the provider file:
http://wiki.ubuntuusers.de/AVM_Fritz!Card_DSL
My goal here is only to explain how to compile the kernel module, since no 
kernel module is to be found on the last Intrepid beta and most likely none 
will be on the final release.

1) Find a computer with a working internet connection and download:
http://packages.ubuntu.com/hardy-updates/avm-fritz-kernel-source

2) Get back on your broken Intrepid and open the downloaded DEB- package
with the archive manager. You want to extract the source code that's
inside data.tar.gz/./usr/src/avm-fritz.tgz/fritz/fcdslsl

3) With a terminal, go into the extracted directory, you should see a
"src" and a "lib" directory.

4) sudo make
It will fail because of the function "find_task_by_pid()" that has been removed 
from the kernel. I've contacted the developer who removed it to ask if a 
replacement function is available.

5) For now though, we will have edit the source code, it's nothing big though. 
Open driver.c inside the "src" directory with any text editor and search for 
"find_task_by_pid", it will appear 3 times in the file but needs be commented 
out (the /* and */  or // signs for non-developers) only 2 times:
a) in function exit_debug_buffer
line 420
old: if (find_task_by_pid...
new: /*if (find_task_by_pid...

line 424
old: }
new: }*/

b) in function kill_thread
line 1439
old: if (NULL == find_task_by_pid...
new: /*if (NULL == find_task_by_pid...

line 1441
old: } else {
new: } else {*/

line 1453
old: }
new: //}

6) Save and exit. In the terminal try again "sudo make". This time it should 
compile fine, if it does, then execute:
sudo make install
sudo depmod -a
modprobe fcdslsl

7) Enter:
sudo capiinit
It didn't work for me, something about fdssbase.bin, the firmware, not being 
found. It's in /usr/share/isdn/<kernel> but capiinit strangely won't work until 
you've copied it to /usr/share/isdn, don't ask me why.

8) Now the following should work:
sudo capiinit
sudo drdsl

9) The rest is as usual, you need a file in /etc/ppp/peers for your
provider, and you have to "pon" this provider later to establish the
connection.

I release a tool called "patch" has been invented, I'll work on getting
this mess here clean up and who knows, maybe even packaged in a neat
DEB. I have to learn how to do this first though. Hope this helps... I'm
typing this online on my brand new Intrepid!

-- 
Module fcpci not found.
https://bugs.launchpad.net/bugs/264697
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to