Writing a userspace USB driver for linux

preview_player
Показать описание

Please consider supporting. This content WILL end some day, but every dollar I make pushes that day further out

00:00 Intro
06:20 USB background
15:40 Read device descriptor
30:40 Reading the string table
01:23:00 Read device configuration info
Рекомендации по теме
Комментарии
Автор

Apparently descriptor 33 is a well described firmware upload/download interface.... that might be fun to poke

sphaerophoria
Автор

This idea sounds so cool! We have finally arrived at the final level…

creator-link
Автор

20:04 Tsoding actually wrote a build tool in C that also is configured in C code! It’s called nob, pretty cool actually!

_azers
Автор

Guangzhou Chicken Run Network Technologies are my favourite brand of controller!

aspzx
Автор

Just FYI, some, if not most, syscalls return negative errno's, so >= 0 means success, and < 0 means error. So the return value of -32 should not be interpreted as errno enum, but -(-32) which is 32 => EPIPE (the same with EPERM, -1 => 1 => EPERM) . The libc wrapper turns this into -1 return code and sets errno to -(ret).

totto
Автор

I apologize for inflicting this brainworm on you. It's descriptors all the way down! Device descriptors, Interface Descriptors, Configuration descriptors, Endpoint descriptors, HID descriptors. Somebody on that committee must really like describing things. The PCB should be relatively straightforward though, I'd suggest using KiCAD for the PCB layout.

sleepib
Автор

I've been meaning to make one myself too, because I am SO tired of all mice having this perpetually running effectively malware in the background .. JUST so I can turn off the lights on it!
I want to gut the inside of my razer mouse and redo the internals with something that actually * works *.
It has a cool feature called hypershift (which was probably inspired from cooler-master's storm tactics) BUT only works if you're using their garbage, phone-home softwarer.
The cooler-master on the other hand, it doesn't make the model of the mice I have anymore, but everything is offline. You could store ALL the config on the mice and just uninstall the software. It just worked. Sad times we live in where we can't do that anymore.
Perfect video! I'll start looking into this too. Thank you!

dexterman
Автор

I think all games expect the xpad driver or whatever and you will in the end need to implement that in addition to your desired functionality? I think thats the main problem in controllers. I have a Wooting keyboard which can emulate an xbox controller and i can bind controller keys including analog stick functionality to my keyboard keys, but games in the end still force me to use either xbox input or keyboard input. So what im saying is if you make a controller that can bind keyboard keys in addition to xbox keys, games will still freak out and not let you.

dustee
Автор

As someone who is an electrical engineer / software architect, designing with a path and goal is exponentially easier than reverse engineering. Dont get me wrong, I love the challenge of it but it rarely provides stable end products that arent handicapped by not fully understanding all of the intricacies of the design and you will waste way more time with RE than to redesign.

jeffreypomeroy
Автор

It's a good pivot too because IMO there's a very low chance that serial EEPROM contains the firmware in the first place.

Wolfie-Tech
Автор

are you going to stream the soldering if/when it comes to that? "it's free content baby"

WGG
Автор

i quite like my Snakebyte pro x but of course there the paddles are configured *in hardware* to face buttons, bumpers, or stick clicks - this is fine for me bc i don't use it for the kinds of games you do (and idrc about paddles anyway) but i guess for you that's not great

kurtmayer
Автор

Why don’t you write firmware for the xbox controller? I bet you can just flash the eprom and can avoid all the hardware design work

bode-fun
Автор

Why does this not have a trigger warning on it?

mikescholz
Автор

I was looking forward to the reverse engineering so much 😢

matthias