# 2 USB Broadband dongles



## balanga (Jan 22, 2018)

i have 2 USB 3G Broadband dongles. One is branded Vodafone and the other Three. Both have a Vid/Pid of 12d1:1001, although I get different values when using `ATI` after connecting using `cu -l /dev/cuaU0.0`:-

```
Vodafone

ATI
Manufacturer: huawei
Model: K3520
Revision: 11.314.12.02.00
IMEI: 353284022975539
+GCAP: +CGSM,+DS,+ES

OK

Three

ATI
Manufacturer: huawei
Model: E1550
Revision: 11.608.09.01.21
IMEI: 359124030270891
+GCAP: +CGSM,+DS,+ES
```

Both dongles connect to the Internet under Linux Debian via Network Manager, but under FreeBSD only the Vodafone dongle connects when using `ppp`.

Using the Three dongle, I see this in /var/log/ppp.log:-

```
Phase: deflink: /dev/cuaU0.0 doesn't support CD
```

Can anyone think why? Could it be related to usb_modeswitch?


----------



## ronaldlees (Jan 22, 2018)

balanga said:


> Using the Three dongle, I see this in /var/log/ppp.log:-
> 
> ```
> Phase: deflink: /dev/cuaU0.0 doesn't support CD
> ```



CD means "carrier detect" - which is a serial hardware connection thing (one of the wires in a serial connection is CD).  Try turning hardware handshakes on and off, to see what happens:

stty < /dev/cuad0.init clocal -crtscts  (off)
stty < /dev/cuad0.init clocal crtscts  (on)

Dealing with cu to change things like the handshake is cumbersome. You could use picocom/minicom, etc, and set the config to turn handshakes off and on.  I don't know if the modem side might be alright with or without handshakes, so you'd need to verify that it doesn't hang whichever way you go. The cu utility's hardwareflow variable defaults to off.  I think your message is saying that's the problem. I prefer to use picocom or minicom for this kind of stuff.


----------



## balanga (Jan 22, 2018)

Thanks for the suggestion. I've installed minicom to check handshaking but not sure how to go about it... I've looked through various function but unsure of which to choose.

It's seems strange that Linux Debian is able to use both dongles without me needing to initialise anything.


----------



## ronaldlees (Jan 22, 2018)

balanga said:


> Thanks for the suggestion. I've installed minicom to check handshaking but not sure how to go about it... I've looked through various function but unsure of which to choose.
> 
> It's seems strange that Linux Debian is able to use both dongles without me needing to initialise anything.



Were you using minicom on Debian?  Minicom would default to hardware handshake=on IIRC.


----------



## balanga (Jan 22, 2018)

No, I only used Debian to see if both dongles connect to the Internet which they both did automatically when plugged in.  

So are you saying that Debian automatically sets hardware handshake on, whereas FreeBSD does not touch it? How would I confirm that via Minicom?


----------



## ronaldlees (Jan 22, 2018)

balanga said:


> No, I only used Debian to see if both dongles connect to the Internet which they both did automatically when plugged in.
> 
> So are you saying that Debian automatically sets hardware handshake on, whereas FreeBSD does not touch it? How would I confirm that via Minicom?



In minicom, when C_trl-A _is pressed, a curses menu will appear, and one can press "F" to toggle hardware control handshakes on/off.  It's nice to do this inside rather than outside of the program - (sort of the idea of the program) as you know the status of things more readily.  The current settings are shown at the top.

I should note that an arbitrary code execution bug was found in minicom about eight months ago.  So, make sure you get the patched version (just discovered this myself).  I usually use picocom, but it's a little less friendly than minicom (more flexible tho).  I don't know if there have been any recent bugs found for picocom.


----------



## balanga (Jan 22, 2018)

ronaldlees said:


> CD means "carrier detect" - which is a serial hardware connection thing (one of the wires in a serial connection is CD).  Try turning hardware handshakes on and off, to see what happens:
> 
> stty < /dev/cuad0.init clocal -crtscts  (off)



This must have done the trick as I can now connect using my Three modem.   I still see:-

```
Phase: deflink: /dev/cuaU0.0 doesn't support CD
```

Not sure what all this means but it seems to connect OK and get an IP address assigned:-

```
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1440
   options=80000<LINKSTATE>
   inet 10.170.8.150 --> 10.0.0.2  netmask 0xffffffff
   nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
   groups: tun
   Opened by PID 1261
```


----------



## ronaldlees (Jan 22, 2018)

Great!

BTW, you can set the hardware _handshake off_ with `cu`, after it's started, by pressing ~s (tilde s), and then typing "!hardwareflow" - which can be verified by pressing ~v (tilde v).  Hardwareflow can be _turned back on_ by pressing ~s, and then entering "hardwareflow" - and again that can be verified by pressing ~v. 

 Minicom is less typing.


----------

