UHSO(4)

πŸ’– UHSO πŸ’–

okay bestie, gather round, because today we're talking about uhso β€” the kernel driver that makes a whole squad of HSxPA devices from Option N.V. actually work. yes it's a manual page. yes it's from the Kernel Interfaces Manual. yes i'm gonna make it cute. let's go πŸ¦‹


✨ NAME ✨

uhso β€” support for several HSxPA devices from Option N.V.


✨ SYNOPSIS ✨

so the way you load this module at boot time? you drop this line into loader.conf(5) and you're done, no cap:

uhso_load="YES"

✨ DESCRIPTION ✨

okay so the uhso driver provides support for several HSxPA devices from Option N.V. that are based on their packet interface. it's giving "one device, two whole personalities" πŸ’…

every device has:

  • a set of serial ports, and
  • a raw IP packet interface

the serial ports of the device are accessed through the ucom(4) driver, which makes them behave like tty(4) devices. meanwhile the packet interface is exposed as a network interface. two vibes, one driver, iconic.

now, establishing a connection on the packet interface? that's achieved by using the proprietary AT commands AT_OWANCALL and AT_OWANDATA on any of the available serial ports. proprietary AT commands, iykyk.

⚠️ the network interface must be configured manually using the data obtained from these calls. it will not do it for you, bestie. no autopilot here.

each device usually has at least two or more serial ports, and their individual purpose can be identified through sysctl(8). here's the breakdown:

  • ports identified as β€œModem” feature a normal modem interface that can be used with PPP. classic, reliable, we love her.
  • ports identified as β€œDiagnostic” use a proprietary binary interface used for firmware upgrades. this port does not have an AT command interface and can not be used to control the device. she's for firmware only, don't ask her for anything else πŸ’€
  • other ports feature an AT command interface that can be used for normal device control. these are your main characters.

✨ HARDWARE ✨

the uhso driver should work with most devices from Option. the following devices have been verified to work:

  • Option GlobeSurfer iCON 7.2 (new firmware)
  • Option GlobeTrotter Max 7.2 (new firmware)
  • Option iCON 225
  • Option iCON 452
  • Option iCON 505

okay and here's a fun little plot twist πŸŽ€ β€” the device features a mass storage device referred to as β€œZero-CD” which contains drivers for Microsoft Windows; this is the default mode for the device. so it wakes up pretending to be a CD drive full of Windows drivers. not me being a whole different device on boot 😭

the uhso driver automatically switches the device from β€œZero-CD” mode to modem mode. slay. this behavior can be disabled by setting hw.usb.uhso.auto_switch to 0 using sysctl(8).


✨ FILES ✨

  • /dev/cuaU?.?

✨ EXAMPLES ✨

establishing a packet interface connection using the AT command interface available at one of the serial ports

AT+CGDCONT=1,,"apn.provider"
AT_OWANCALL=1,1,1
OK
_OWANCALL=1,1

AT_OWANDATA=1
_OWANDATA: 1, 10.11.12.13, 0.0.0.0, 10.2.3.4, 10.2.3.5, \
        0.0.0.0, 0.0.0.0, 72000

configuring the interface

this part is on you, bestie β€” remember, manual configuration only:

ifconfig uhso0 10.11.12.13 up
route add default -interface uhso0
echo "nameserver 10.2.3.4" > /etc/resolv.conf
echo "nameserver 10.2.3.5" >> /etc/resolv.conf

and when you're done

the connection can be terminated with:

AT_OWANCALL=1,0,1

bye bye connection, you served πŸ’…


✨ SEE ALSO ✨


✨ AUTHORS ✨

the uhso driver was written by Fredrik Lindberg <fli@shapeshifter.se>. thank you for your service, legend πŸ«ΆπŸ‘‘


and that's the whole page, bestie β€” this one's from the Debian crew, dated July 20, 2010, living in the UHSO(4) slot of the manual. oldie but a goodie, fr fr. go forth and configure your packet interface manually, and remember: Modem ports are for PPP, Diagnostic ports are for firmware only, and the driver switches you out of Zero-CD mode unless you tell it not to. periodt. βœ¨πŸ¦‹πŸ’–

πŸ“¦ where this page comes from