# Adding MultiModem-USB Support



## grondinm (Aug 28, 2021)

Hello,

I recently found this old USB1 56k modem I would like to use. It is a MultiMobileUSB from MultiTech. Model Number MT5634MU. My hope was that it would be supported by umodem(4) but support for this device does not seem to be included as nothing is created in /dev I have no clue what would be required to add support for this or if it's even feasible. I'm not sure if this is the proper place to ask or discuss getting this device supported. I can provide additional info. As I am very new still to FreeBSD I may need more guidance to do so.

Thank you
Marc


----------



## Tieks (Aug 28, 2021)

When plugged in, what do you see in the output of `usbconfig` (run as root)? And what does `dmesg` say about it (the last lines after plugging in)?


----------



## grondinm (Aug 28, 2021)

Here is the output of `usbconfig`


```
ugen1.1: <Intel EHCI root HUB> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen0.1: <0x8086 XHCI root HUB> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen1.2: <vendor 0x8087 product 0x8001> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen1.3: <vendor 0x8087 product 0x0a2a> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
ugen1.4: <CN0FHKK772487569CTE0A00 IntegratedWebcamHD> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
ugen1.5: <Broadcom Corp 5880> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)
ugen0.2: <Multi-Tech Systems, Inc. MultiModemUSB> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (400mA)
```

And the last line output of `dmesg` after i plugged it in



```
ugen0.2: <Multi-Tech Systems, Inc. MultiModemUSB> at usbus0
```

That's the only line generated in `dmesg`


----------



## Tieks (Aug 28, 2021)

If no new entries /dev/cuaUn and /dev/ttyUn appear, it won´t work. You need usb.ko, umodem.ko and ucom.ko for this. Module usb.ko is loaded by default. Please check if `# kldstat` shows that umodem.ko and ucom.ko are loaded. If not, add modem_load="YES" and ucom_load="YES" to /boot/loader.conf and reboot.


----------



## grondinm (Aug 28, 2021)

I have added umodem_load="YES" already. I'll add ucom_load="YES" as well but I think it's gets loaded automatically when umodem is loaded since when I tried to load them manually (to confirm) using `kldload` it told me they where already loaded.


----------



## Tieks (Aug 29, 2021)

grondinm said:
			
		

> it told me they where already loaded.


If both umodem.ko and ucom.ko are loaded, then you should get additional entries /etc/cuau. and /etc/ttyu. when you plug it in. Using `pstat -t` (as root) should show an entry ttyu for it.
If not, this may not be a hardware modem, but a so-called winmodem or softmodem. These modems come with closed-source drivers, FreeBSD does not support them for that reason. You're out of luck then.


----------



## T-Daemon (Aug 29, 2021)

The product ID (F103) of modem is missing:





						usbdevs « usb « dev « sys - src - FreeBSD source tree
					






					cgit.freebsd.org
				




Without product ID the device driver, if supports the device, can't attach to device.

You could try adding the product ID neneath line 3371 in
/usr/src/sys/dev/usb/usbdevs

```
product MULTITECH MT5634MU 0xf103  MT5634MU MultiMobileUSB
```
and build and install new kernel.


----------



## Phishfry (Aug 29, 2021)

On cellular modems with ProductID (PID) missing from usbdevs you must add the ProductID to usbdevs and u3g.c
So I have to wonder if there is an accompanying modem driver like 'umodem.c' that might also might need the PID entry.
You defiantly need the PID entry for usb device to work. So T-Daemon is on the right path.
This may sound complicated but it is not. Do the text edits (backing up original first) and compile your new kernel.








						Chapter 9. Configuring the FreeBSD Kernel
					

This chapter covers how to configure the FreeBSD Kernel. When to build a custom kernel, how to take a hardware inventory, how to customize a kernel configuration file, etc




					docs.freebsd.org


----------



## Phishfry (Aug 29, 2021)

OK I grepped thru the source code for another supported MultiTech modem. Searched for the PID to that device to see if any other source files are involved. They are not.
`grep -r "0xf101" /usr/src`

So edit usbdevs -build kernel- and look for device under /dev/cuaU*
Next config PPP.








						Chapter 29. PPP
					

FreeBSD supports the Point-to-Point (PPP) protocol which can be used to establish a network or Internet connection using a dial-up modem




					docs.freebsd.org


----------



## Phishfry (Aug 29, 2021)

I must add some opinion here. You are really fighting an uphill battle here but what worries me is the modem spec.
V.90 and K56Flex
I seem to still have a bad taste in my mouth from these two.
V.92 was the one that you want. K56Flex i dunno. Something sounds fishy there.
My old slogan was "If its not USR trash it".

edit: Found a good article about k56flex.








						Project: Record a K56flex Dial-Up Modem Connection
					

Inspired by my previous post made merely an hour ago, I set to work seeing if I could acquire a recording of a K56flex dial-up modem connection before it is too late. After all, both X2 and K56flex…




					goughlui.com


----------



## Phishfry (Aug 29, 2021)

In reading the manual it is a k56flex model. They did have a firmware flasher for it.
So this was a 'pre-V.90' 56K modem.
So if its been upgraded to V.90 that would be ideal.

Are you planning on connecting to an ISP with this modem? That would make V.90 more desirable.
Point to Point with two of these it wouldn't matter as much.


----------



## grondinm (Aug 30, 2021)

T-Daemon said:


> The product ID (F103) of modem is missing:
> 
> 
> 
> ...


Thank you for this. This is just what I was hoping for. Wish I would have checked this before I was walking out the door to come to work. Now I must wait 8hrs before I can try this out.


Phishfry said:


> In reading the manual it is a k56flex model. They did have a firmware flasher for it.
> So this was a 'pre-V.90' 56K modem.
> So if its been upgraded to V.90 that would be ideal.
> 
> ...



My plan is simply to use it to connect to BBS systems that are still being maintained with dial-up access. I will have to look into upgrading it i suppose...just hope  don't turn it into a brick.
 Tho I can see the links for the Linux FlashWizzard I od not see any firmware files...I will probably just leave it be as long as i can get into a few bbs's just for fun that's all i care about.


----------



## grondinm (Aug 31, 2021)

Sadly adding the entry to usbdevs does not seems to have worked. Unless i did something wrong. Is there a way to query the device to confirm it's ID is F103?


I was sure this had high chance of working as it does work with linux using the CDC ACM module.


----------



## Tieks (Aug 31, 2021)

grondinm said:


> Is there a way to query the device to confirm it's ID is F103?


The output of `usbconfig -d ugen0.2 dump_all_desc` will show VendorID and ProductID.


----------



## grondinm (Aug 31, 2021)

Thanks again. It is indeed f103. Guess I'm out of luck on this one...


----------

