Now that USB-C has been around a while I’m seeing many older but still functional computers with USB-C being largely unused, replaced by newer and faster just because they are newer and faster. I can certainly breathe more life into them by installing Ubuntu and some helpful utilities but I believe they can offer more.
Through some experimentation and investigation I find that many of these computers with USB-C ports show signs of being able to support B-mode, guest mode, bus slave mode, or whatever it is called. That is opposed to the usual behavior we expect from computers in being A-mode, host mode, bus master mode, or whatever term people prefer. This investigation lead me to “Linux USB Gadgets”, the software which enables and exploits this hardware to turn hosts into guests, masters into slaves, or whatever.
When seeking out information on "USB gadgets" for hardware new enough to have USB-C and USB 3.x capable USB controllers, but old enough that they are no longer the top of the line, I find only hints of how to make this work. I come up with plenty of results for older USB 2.0/USB-OTG controllers, the kind found on specialty PCIe add-in cards or built into single board project computers. With the common use of USB-C for laptop charging I find that nearly every one of these laptops contains a USB dual-mode controller, and these same controllers are also common in desktop computers even though they do not have the hardware to take on power.
I'm seeking documentation on USB gadget emulation with USB-C ports found on laptops and desktops using the much faster USB 3.x protocol. Again, there’s plenty to find for older USB 2.0 and USB-OTG but it’s difficult to sort the signal from the noise.
The "gadgets" of most interest are mouse, keyboard, and video (preferably something with high enough resolution to be useful as a primary computer display but even old composite video could help). The goal is to be able to turn a computer into a kind of multi-function dock to another computer. I can find some information on audio and network devices but nothing on how to actually drive the mouse and keyboard of one computer from another or set up a network connection.
One issue is separating the computers that support this mode of operation from those that do not. I can look at the PCI device descriptor but I’d need a list of supported devices. I search the internet and the top results are often 15 years old. I see things here and there showing there is still development, including a security issue from this past week, but nothing helpful on getting anything useful from the Linux USB gadget drivers.
Perhaps all I need is a few suggestions on search terms so I can better filter old USB 2.0 and OTG information from the new USB 3.x and USB-C information.
Edit to add:
I’m seeing in the comments suggestions to use network solutions instead of USB. This is missing the point as the goal is to use the USB connection to provide the network connection. USB-C connections would be faster than any commonly available wired or wireless network hardware. There is certainly professional/server grade stuff that is faster but the point is to make the most of currently owned consumer grade hardware, to save money rather than spend it. Perhaps it would be simplest to assume the USB-C connection is there to provide the network connection. Once I find the documentation on how to establish a network connection by USB-C then I can use things like file sharing and remote desktop software over that connection for the other desired functions. Even if I can get a network connection working it would be preferable to not need to install and configure network software, but instead have the Ubuntu computer behave like a stack of USB devices on a hub for greater convenience.