NetGear FA312 and Debian

NetGear FA312 and Debian

Post by Paul Szab » Wed, 08 Aug 2001 11:26:14



I am trying to use a NetGear FA312 card with Debian (potato, 2.2.19pre17)
and having some difficulties.

I downloaded http://www.netgear-support.com/ts/downloads/linux_dr_b2.zip
and built the driver. This seems to work, but the network speed is not
good: the system reports many transmission errors.

Do you have any idea on how to make this work better?

Thanks,


School of Mathematics and Statistics  University of Sydney   2006  Australia

---

My notes on building and using the driver:

The "potato 2.2r3" version of Debian seems to be in error: it has kernel
version 2.2.19pre17 but file /usr/include/linux/version.h has UTS_RELEASE
"2.2.18". This gives problems for insmod, need to fix with

  perl -i.bak -pe s/2.2.18/2.2.19pre17/ /usr/include/linux/version.h

before compilation.

The fa312.[ch] files and makefile came from the ZIP archive, with fa312.c
modified by adding '#include "stuff.h"' at the top so it would compile.
This stuff.h contains:

typedef long            clock_t;
typedef long            time_t;
typedef long            suseconds_t;
typedef unsigned long   ino_t;
typedef long            off_t;
typedef unsigned short  uid_t;
typedef unsigned short  gid_t;
typedef int             int32_t;
typedef unsigned int    uint32_t;
typedef unsigned short  ushort;
typedef unsigned short  u_short;
typedef unsigned char   u_char;
typedef unsigned long   u_long;
typedef unsigned short  nlink_t;
typedef char*           caddr_t;
typedef unsigned short  mode_t;
typedef long long       loff_t;
typedef int             pid_t;
typedef int             ssize_t;
typedef unsigned int    size_t;
typedef unsigned short  dev_t;
typedef int             key_t;
typedef unsigned long   fd_set[1024/8*sizeof(long)];

Now you can use 'make' to produce  fa312.o .

Copy the fa312.o file to /lib/modules/*/net:
        cp -i fa312.o /lib/modules/*/net
Use the command
        insmod fa312
to start using this driver now, or use
        echo fa312 >> /etc/modules
to make it permanent (use it at every boot).

There is a problem with network speed. FTPing files from bianco gets speeds
of maybe 7MB/sec, but to bianco gets speeds of just 5-20kB/sec. Bianco
shows many network transmit errors:


eth0      Link encap:Ethernet  HWaddr 00:A0:CC:A1:D7:4C  
          inet addr:129.78.95.3  Bcast:129.78.95.127  Mask:255.255.255.128
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:178 errors:0 dropped:0 overruns:0 frame:0
          TX packets:241 errors:231 dropped:0 overruns:0 carrier:231
          collisions:0 txqueuelen:100
          Interrupt:9 Base address:0xd800


Kernel Interface table
Iface   MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0   1500   0      192      0      0      0      263    253      0      0 BRU
lo     3924   0        2      0      0      0        2      0      0      0 LRU

I can get bianco to ignore these errors by adding one line to fa312.c:

Comparing fa312.c.bak <---> fa312.c
412a413

Quote:>                                DP_TXCFG_CSI            |

but that does not improve the speed...