UVISOR(4)

✨ uvisor β€” USB support for the PalmOS based PDAs ✨

okay bestie, welcome to the uvisor(4) page πŸ’– this one lives in the Kernel Interfaces Manual, so you know it's the real deal. sit down, grab a strawberry πŸ“, and let's talk about making ur old-school PDA talk to ur kernel like it's 2002 and the vibes are immaculate.


🌸 NAME 🌸

uvisor β€” USB support for the PalmOS based PDAs 🫢

no cap, that's literally the whole job description. if ur Handspring or ur Palm or ur Sony Clie wants to chat over USB, this is the driver that makes it happen πŸ’…


✨ SYNOPSIS ✨

so like, two ways to get this baby loaded. pick ur fighter πŸŽ€

Option 1: bake it into the kernel β€” to compile this driver into the kernel, place the following lines in your kernel configuration file:

device usb
device ucom
device uvisor

Option 2: load it as a module at boot β€” alternatively, to load the driver as a module at boot time, place the following line in loader.conf(5):

uvisor_load="YES"

that's it. that's the whole vibe check. πŸ”₯


πŸ’œ DESCRIPTION πŸ’œ

okay so here's the tea β˜• β€” the uvisor driver provides support for USB based PalmOS PDAs, like Handspring Visor, Palm Mxxx series, and Sony Clie. iconic lineage fr fr πŸ‘‘

the device is accessed through the ucom(4) driver which makes it behave like a tty(4). so it's giving... serial port, but make it USB 🌈

here's the cute part: the device has several ports for different purposes, and each of them gets its own ucom(4) device. like each port is its own main character πŸ’… and the attach message describes the purpose of each port, so read ur dmesg, bestie, it's literally telling u what's up.

the usual Pilot tools can be used to access the attached device on the HotSync port. yes, the HotSync port. we love a dedicated sync port 🫢


πŸ¦‹ HARDWARE πŸ¦‹

the uvisor driver supports the following devices:

  • Aceeca Mez1000 RDA
  • Handspring Treo
  • Handspring Treo 600
  • Handspring Visor
  • Palm I705
  • Palm M125
  • Palm M130
  • Palm M500
  • Palm M505
  • Palm M515
  • Palm Tungsten T
  • Palm Tungsten Z
  • Palm Zire
  • Palm Zire 31
  • Sony Clie 4.0
  • Sony Clie 4.1
  • Sony Clie 5.0
  • Sony Clie PEG-S500C
  • Sony Clie NX60
  • Sony Clie S360
  • Sony Clie TJ37

look at that list 😭 it's a whole museum of early-2000s tech and honestly? we're obsessed. Palm Tungsten Z? Sony Clie TJ37? the drip is unmatched πŸ’–


πŸŽ€ FILES πŸŽ€

here's where ur ports actually live on the filesystem, bestie πŸ“

/dev/ttyU*       for callin ports
/dev/ttyU*.init
/dev/ttyU*.lock  corresponding callin initial-state and lock-state
                 devices

/dev/cuaU*       for callout ports
/dev/cuaU*.init
/dev/cuaU*.lock  corresponding callout initial-state and lock-state
                 devices

so like, ttyU* is for callin (dial-in vibes), cuaU* is for callout (dial-out vibes), and each one has a .init friend and a .lock friend holding down initial-state and lock-state respectively. a little trio. a little squad. 🫢


πŸ‘‘ SEE ALSO πŸ‘‘

go read those too, they're the supporting cast and they ate πŸ’…


🌈 HISTORY 🌈

the uvisor driver was adopted from NetBSD 1.5 in August 2002. This manual page was adopted from NetBSD by Tom Rhodes <trhodes@FreeBSD.org> at that time.

so yeah, August 2002 β€” a true elder of the game, and Tom Rhodes carried this page over from NetBSD. respect the ancestors πŸ™βœ¨


πŸ’€ BUGS πŸ’€

okay bestie, sit down for this one, this is the serious part 🫢

The code to provide multiple ucom(4) instances has not yet been ported from NetBSD. It is unclear whether this driver works in its current state.

not me reading that twice 😭 so the multi-instance code is still back over in NetBSD, and the docs are straight-up saying it's unclear whether this driver works in its current state. that's not a vibe check, that's a vibe question mark. proceed accordingly, no cap. ⚠️


and that's the whole page, bestie πŸ’œ this one came from the Debian edition of the manual, dated April 26, 2017 β€” so shoutout to Debian and that date for keeping the Palm PDA dream alive πŸŽ€βœ¨ k love u bye πŸ’…

πŸ“¦ where this page comes from