UFOMA(4)
π UFOMA(4) β USB mobile phone support, bestie β¨
Ok so this is the ufoma manual page, and itβs giving βniche USB phone driver that ate and left no crumbs.β Letβs get into it π«Ά
πΈ NAME πΈ
ufoma β USB mobile phone support π
π SYNOPSIS π
To compile this driver into the kernel, place the following lines in your kernel configuration file:
device usb
device ucom
device ufoma
Alternatively, to load the driver as a module at boot time, place the following line in loader.conf(5):
ufoma_load="YES"
β¨ DESCRIPTION β¨
The ufoma driver provides support for USB mobile phone terminals in the subset of the Mobile Computing Promotion Consortium USB Implementation Guideline, which is adopted by FOMA, the NTT DoCoMo 3G system, terminal. No cap, thatβs a whole lot of words, but the vibe is: it handles these specific USB phone terminals π
These are partly like CDC ACM model based modems, which are supported by umodem(4), but the ufoma driver recognizes a specific USB descriptor that describes its role and interface structure, and it will negotiate its role when the device is open. Itβs lowkey doing matchmaking between the device and its role π
They support a regular AT command set and the commands can either be multiplexed with the data stream or handled through separate pipes. In the latter case the AT commands have to be given on a device separate from the data device. Important detail, bestie β separate device for the AT commands in that setup π±
The device is accessed through the ucom(4) driver which makes it behave like a tty(4). Slay, tty behavior π
π¦ SYSCTLS π¦
These devices often have a few interface sets and these interfaces have their role, sometimes multiplexed. These roles are identified with the following sysctl MIBs:
dev.ucom.%d.supportmodeβ the modes which are supported by the interface.dev.ucom.%d.currentmodeβ current mode of the interface.dev.ucom.%d.openmodeβ mode to transit when the device is open next.
The modes are as follows:
modemβ accepts AT commands and go and pass packet communication data.handsfreeβ accepts AT commands but it does not pass data.obexβ accepts OBEX frame which is used to exchange telephone book, etc.vendor1,vendor2β vendor specific data may be passed.deactivatedβ when an interface is recognized by the system but not used, the interface will be set to this mode.unlinkedβ when an interface is not yet negotiated, the interface is in this mode.
Mode lore fr fr π
π HARDWARE π
Devices supported by the ufoma driver include:
- SHARP FOMA SH902i
- KYOCERA PHS AH-K3001V (a.k.a Kyopon)
- SANYO Vodafone3G V801SA
A little iconic lineup, ngl π
π₯ SEE ALSO π₯
Specification can be found at:
http://www.nttdocomo.co.jp/corporate/technology/document/foma/index.htmlhttp://www.mcpc-jp.org/doclist.htm
Also check out:
π HISTORY π
The ufoma driver appeared in FreeBSD 7.0, partly derived from the umodem(4) code. Periodt β FreeBSD 7.0 era behavior π°οΈβ¨
π BUGS π
Interfaces with multiplexed commands and data and interfaces with commands only are supported.
Heads up: thatβs the supported scope, bestie. Donβt go expecting extra interface types to just work π
This page is from Debian, dated November 20, 2011 β shoutout to the Debian crew, and thatβs the cute lil sign-off, mwah ππ
π¦ where this page comes from
- freebsd 14.5: base 14.5
- freebsd 15.1: base 15.1
- nixpkgs unstable: source
- Copyright (c) 2006 Takanori Watanabe
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms