# Allied Data CopperJet 800

## GuidoJ

Did anyone get the Allied Data CopperJet 800 USB ADSL modem to work on Gentoo? I tried following the instructions on http://co800.sourceforge.net, but so far I haven't had much luck with it. From what I understand (it's all in Spanish) people have it working on Redhat, Debian and Mandrake, so you'd think I should be able to get it working on Gentoo as well.

Anyway, if there is someone who has this modem too, I'd like to share some experiences.

- Guido

----------

## Davey

GuidoJ,

Did you ever manage this? I've been trying for like 3 days solid to get this working now :/

I have the error:

Error: I can't find busses

Any help on this matter would be appreciated. I've search google, the sf site, the ML (which had one solution involving usbdevfs which didn't work and one with lib-compat which also didn't work). I'm desperate to get my modem working so I can actually boot gentoo normally instead of in a VMWare machine (its booting the real install on /dev/hdb) just so I can use the NAT stuff and use my windows connection. this is the only thing stopping me from making the jump to linux now.

- Davey

----------

## GuidoJ

Davey,

I read your message on the ML too, but hadn't got to answering yet ...

It's been a while since I tried to get things working on Gentoo. By then I think I still had the gentoo-2.4.19 kernel. During those days I did not have any luck with the modem, but I did get past the error you are having. You need to edit the source files. Just search for the error message. Just above it you will find a statement like:

```
if (!usb_find_busses())
```

If you emerged libusb, like I did you have libusb-0.1.7 which is quite different from the version the original driver was written against. The function usb_find_busses() used to return zero on success and a number less than zero otherwise. Now it returns the number of busses found on success, but still a number less than zero on errors. The code can not handle it, so you must change it into:

```
if (usb_find_busses() < 0)
```

That should do the trick. You will find that you will have to do this in several files and the same for usb_find_devices().

I mentioned this bug on the mailing list, but so far they haven't done anything about it. The code could use a clean up in general. This morning I tried to get the modem to work once more on Gentoo. I'm getting further than I've ever got before, so there's hope. I'll try to get it working over the next couple of days, using my own code which is based on the original, but cleaner.

Good luck!

- Guido

----------

## Davey

OK, I got slightly further this time.

I forgot to mention, I don't have a static IP... :/

The error I get is this:

# co800 -in

....

Error: usb_set_configuration: could not set config 1: Invalid argument

Any ideas? Is it worth even trying with a dynamic IP?

- Davey

----------

## GuidoJ

Search for a call to usb_set_configuration(). Again, only negative return values indicate an error. Maybe you need to change that one too.

As for dynamic IP, I have it too. I'm going to look into that next.

- Guido

----------

## GuidoJ

Davey,

Forgot to mention: my ISP requires me to connect using the RFC1483/RFC2684 Bridged protocol. This is by far the easiest way to set things up. The steps I have to do are:

```
modprobe usb-uhci

5160 tiau5fw.bin

5200 tiau5tp.bin

insmod mod_co800.o

modprobe br2684

br2684ctl -b -c 0 -a VCI.VPI   <--- ISP dependend values

ifconfig nas0 up

dhcpcd nas0
```

The final step fails at present. I think the reason for this is that the post firmware part of the 5200 program (from what I understand this is the syncing with the DSLAM of the ISP or the 'training' phase) is currently specific for a static IP set up. I'm looking into that now.

So, do you have to use the Bridged protocol too, or do you use a dial-up (PPPoE/PPPoA) connection? If you have the first, you will probably be able to benefit from what I'm doing. If you have the latter, you have to find out what data is sent to the modem during the training phase yourself and modify the 5200pfw.c accordingly.

- Guido

----------

