# Question about USB Cable Modem Thomson/RCA model dhg534b



## SlackerNReckless (Aug 7, 2010)

I'm not a newbie in BSD world... I mentioned something like that in a thread here about how to install all packages without selecting one by one with the space key and I have knowledge about it since 3.2 Release.... Note: I'm using the 8.1 Release now.

But here is the question...

I tried to configure /boot/loader.conf with the following lines


```
usb_load="YES"
if_cdce_load="YES"
```

I have other two lines in 'loader.conf' called


```
snd_emu10k1_load="YES"
bktr_load="YES"
```

As I have in this machine a Sound Blaster Live and a TV Card (Brooktree BT878 based)

But loot likes the modem is not being recognized or even the USB... I tried running 'kldstat' and only the snd_emu10k1 and bktr are being loaded...

Yeah.. I know about the differences between UHCI and OHCI and I'm not wanting to compile a new kernel as I read somewhere in the man page cdce(4)


```
device uhci
	   device ohci
	   device usb
	   device cdce
```

Usually in linux the line "modprobe CDCEther" would do the job and would give me a new network interface to use it with 'dhcpcd' 

So... do you think I need to compile a new kernel putting the lines uhci/ohci or is there an way to load them using modules?

Thanks in advance!


----------



## fronclynne (Aug 7, 2010)

Well, for one thing [cmd=""]grep cdce /usr/src/sys/*/conf/GENERIC[/cmd]
_ibid_ for "usb", if you wish.

If you want to know if the driver exists in your current kernel or currently loaded modules try [cmd=""]kldstat -v | grep cdce[/cmd]

Why it isn't working as expected is beyond me, as I've never heard of cdce(4) before to-day.  Sorry.


----------



## jb_fvwm2 (Aug 7, 2010)

```
apropos usb
```
It may show a few more modules you can test out...

```
kldload u3g
```
 or  even another one.


----------



## SlackerNReckless (Aug 7, 2010)

Ok... people... here are the outputs of some commands

`# kldstat -v | grep cdce`

```
292 uhub/cdce
```

Even with the cdce driver loaded in the kernel I tried loading it again to check if it was loaded and yeah.. it was loaded

`# kldload if_cdce`

```
interface cdce.1 already present in the KLD 'kernel'! 
kldload: can't load if_cdce: File exists

Listing USB devices....
```
`# usbconfig`

```
ugen0.1: <UHCI root HUB Intel> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
ugen0.2: <Thomson USB CDC Device Thomson Inc.> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
```

but sadly I can't see the network interface in ifconfig

`# ifconfig -a`

```
fxp0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
	options=2009<RXCSUM,VLAN_MTU,WOL_MAGIC>
	ether 00:02:a5:d9:5d:6a
	media: Ethernet autoselect (100baseTX <full-duplex>)
	status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
	options=3<RXCSUM,TXCSUM>
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 
	inet6 ::1 prefixlen 128 
	inet 127.0.0.1 netmask 0xff000000 
	nd6 options=3<PERFORMNUD,ACCEPT_RTADV>
```

And I want to setup a dhclient over the network interface like I do in Linux with the command "dhcpcd -d eth1" (or eth0)... I know this is different in FreeBSD but I have knowledge how to setup the dhclient(8)

Note: The fxp0 is my ethernet card, I have a network card in this computer, actually a onboard card... 

I was reading an old thread in this forum called USB DSL modem problem and looks like USB modems following CDCE standards aren't very well supported by FreeBSD.

I read something about the ndis(4) miniport driver wrapper, so here is the question.

Does NDIS really work in FreeBSD? 

Well.. another thing I would like to say is: This Cable Modem can work with the network adapter... I only need to unplug the USB cord, get the RJ45 network cable and plug in my network adapter but as I have two computers connected with a RJ45 cross-over cable I'm still wanting to set up the modem to use the USB port.

Anyway...thanks for reading this. 

@Dutchdaemon: I hope the text now is fully formatted according with the rules.


----------



## DutchDaemon (Aug 7, 2010)

Looks good, doesn't it?


----------



## wblock@ (Aug 7, 2010)

SlackerNReckless said:
			
		

> Well.. another thing I would like to say is: This Cable Modem can work with the network adapter... I only need to unplug the USB cord, get the RJ45 network cable and plug in my network adapter but as I have two computers connected with a RJ45 cross-over cable I'm still wanting to set up the modem to use the USB port.



Do you think the modem will let you use both ports at once?

If the objective is to get net access for both computers, hubs are free, and switches nearly so.  Or add another Ethernet card to the FreeBSD computer and use it as a firewall with NAT.


----------



## SlackerNReckless (Aug 13, 2010)

This topic is not dead...  I was a little busy in this week and now I'm retuning to it.

I tried using cdce(4) with the flag CDCE_NO_UNION in the /boot/device.hints file as


```
hint.cdce.0.flags="CDCE_NO_UNION"
```

but even that it didn't work.

And now I'm trying to build NDIS compatible drivers using ndisgen(8)

The Windows Driver distribution has a lot of files for this cable-modem and here they are.


```
netrcacm.cat
netrcacm.sys
NetRcaCmNTamd64.sys
NetRcaCmVistaI386.sys
NetRcaCmXP.sys
RcaCm.sys
RCAUSBCM.INF
RmCable.exe
RmCableNTamd64.exe
RNDISMPK.sys
URCACM.exe
URCACMNTamd64.exe
usb8023k.sys
```

I tried generating the kernel module using the file: netrcacm.sys and the INF: RCAUSBCM.INF 

The ndiscvt(8) says about additional firmware files... and I know my cable-modem needs them... when I see its properties over Windows XP I see it uses usb8023k.sys and URCACM.exe

And like specificied on "ndiscvt(8)" I generated the additional firmware files and I did put the *.ko files in the directory /boot/kernel as they will be loaded into the kernel on demand when the the driver needs them.

Well.. when I tried inputting the command.

`# kldload netrcacm_sys` 

here is its output.


```
no match for ExfInterlockedRemoveHeadList
no match for ExfInterlockedInsertTailList
ndis0: <Thomson Inc. Thomson USB CDC Device, class 2/0, rev 1.10/1.01, addr 2> on usbus0
ndis0: NDIS API version: 5.0
ndis0: NDIS ERROR: c0001393 (unknown error)
ndis0: init handler failed
device_attach: ndis0 attach returned 6
ndis0: <Thomson Inc. Thomson USB CDC Device, class 2/0, rev 1.10/1.01, addr 2> on usbus0
ndis0: NDIS API version: 5.0
ndis0: NDIS ERROR: c0001393 (unknown error)
ndis0: init handler failed
device_attach: ndis0 attach returned 6
```

Tips? Hints? Thanks!


----------



## fbsduser (Aug 13, 2010)

Delete the ndis driver you built and try re-building it with NetRcaCmXP.sys instead of netrcacm.sys and use the same inf you used before (avoid the one with "Vista" in it's name, that's a Vista driver (ndiswrapper/ndisgen doesn't support Vista/7 drivers yet) and if you're running the 32bits version avoid the "amd64" (64bits) drivers as well).


----------

