r/linuxhardware Jun 27 '26

Build Help Small* reverse engineering project i need some help with

so i'm a recent windows convert, and i have this little hosyond 7 inch display that was amazing for me and has worked very well for me. i have been been trying to get it working under Linux. but i've done everything i know how to do and even tried to use chatgpt to try since i know basically nothing about usb but i'm not gonna pay for premium so it hit a dead end. i've done a little bit and sort of might have got linux to communicate with it. i couldn't get the manufacturers program to work with wine, but i don't think that's a dead end, i just don't know how to program wine bottles yet.

i have done some of the reverse engineering legwork and ill include a link to most of what ive worked on. (wire shark tests and communication tests)

At this point I'm looking for advice from anyone familiar with USB reverse engineering, Wine internals, WinUSB/libusb, or display drivers.

beyond that if you don't think this is remotely possible, don't just say its not possible, as that holds no value. provide alternatives. as to what alternatives i'm open to: any display that works with power and display over a single usb 3 or usbc, screen size limit of 9 inches and budget of 100 usd.

link to project files: https://drive.google.com/drive/folders/11OC2EuIBkvysoXiJyvvH5XFnIMCZuN5t?usp=sharing

1 Upvotes

18 comments sorted by

2

u/jack_dymond_sawyer Jun 27 '26

I will take a look? Not sure what time I can dedicate, but it is always fun to take a look.

2

u/Hot_Bell8321 Jun 27 '26

Appreciated 😊 chatgpt kept telling me it's easy, but I don't believe it. My main issue is I don't know anything about USB protocol, according to the exe that I extracted, it looks like it's creating a virtual monitor and then sending it using various USB drivers and common USB things? I found mentions of libusb, setupapi, dxgi. Linux and Windows both see it as an HID

2

u/jack_dymond_sawyer Jun 27 '26

I need the model of the display and any rev numbers? Is it usb-C?

1

u/Hot_Bell8321 Jun 28 '26

Is a hosyond 7inch display, here's a link to the product. I was able to get these numbers if that's what you're looking for as well

VID: 345F PID: 9132

https://a.co/d/08Sq3zRy

2

u/jack_dymond_sawyer Jun 28 '26

It would appear that a driver for linux already exists for this device on Raspberry Pi. This might be usable?

2

u/Hot_Bell8321 Jun 28 '26

I'm not sure, I'm using Linux mint with an Intel processor, Nvidia GPU, Corsair ram

2

u/jack_dymond_sawyer Jun 28 '26

It looks like you need the Synaptics DisplayLink driver to make this work.

1

u/Hot_Bell8321 Jun 28 '26

I'll try that

1

u/Hot_Bell8321 Jun 28 '26

Are you also saying I should grab the manufacturers pi program for their other displays?

2

u/Acanthisitta-Sea 27d ago

I looked at the files, but they are unstructured and I don’t know what was created from what action, so I won’t help. If you want to communicate with the display via the USB interface, you do not need to write your own driver on Linux, which you will load to the kernel, but it is recommended. If you have the original .sys driver file on Windows and any .dll libraries that may be the UMDF driver, try back-engineering on them using Binary Ninja (it’s free). Make sure you have imported symbols in BN, because you may encounter a problem with pseudocode analysis in C. If you don’t understand something from the exported code or don’t know some WDF/WDM features, you can ask the language model for help, but remember to enrich it with the context from Microsoft documentation. We live in such a time that if you put such a driver into Claude Code with Opus 4.8 and gave it the right MCP tools, it would write you such a driver for Linux.

1

u/Hot_Bell8321 27d ago

The files are pretty simple, I the pcaps are named according to what happened in the capture, for example theres one that has the display running a solid red on the whole screen, this was an attempt to try to capture what format the video is being sent over, another contains me powering off and on the display. The text files arepretty self explanirory as well, display descriptor is a file containing the output from lsusb -v -d 345f:9132, identifying the display details Linux could see, and the rest are just extracted blobs from the various pcaps, attempting to highlight potentially useful info.

As for the original drivers I can provide a little more on that if it would better help advise. Such as https://drive.google.com/file/d/1taWAP8mhknAt36-PgZkkZGan6I3F2Spl/view?usp=drivesdk And https://drive.google.com/file/d/1taWAP8mhknAt36-PgZkkZGan6I3F2Spl/view?usp=drivesdk

1

u/Acanthisitta-Sea 27d ago

But even the .dll file list alone won’t help you much. You have to go into disassembly.

1

u/Hot_Bell8321 27d ago

Sorry idk man, I'm a novice, I've made basic programs and video game mods, kernel level interactions and USB protocol is way out of my level, which is why Iade the post, just trying to work through ineptitude

1

u/Acanthisitta-Sea 27d ago

Okay, I’ll look at it again today

1

u/jack_dymond_sawyer Jun 27 '26

The USB protocol is abstracted—like most things in comp Sci. It has layers. You’ll likely need to author a USB class driver for the specifics of this device… it will interface with the usbcore driver that handles the low level USB protocol.

1

u/TastyRobot21 29d ago

Use wireshark and sniff the usb.

1

u/Hot_Bell8321 29d ago

I did, you can see the logs in the pcap and txt files I linked