EEPROM CH341A programmer - Read and write data to chip on Linux

In this tutorial we will use CH341A programmer to read, write and erase data/firmware on attached chip. This is your getting started guide to CH341A programmer. CH341A programmer allows users to attach variety of chips in order to read or backup firmware or overwrite the exiting firmware.

This is a companion discussion topic for the original entry at

“make” doesn’t work for me so what next?

Using Debian Bullseye here, the warning/error messages that I got and how I made it work:
Warning: ch341funcs.c:61:5 warning ‘libusb_set_debug’ is deprecated…
Fix: Open/Edit “ch341funcs.c” and go to line 61 and change “libusb_set_debug” to “libusb_set_option”, keep this file open, don’t close it yet…
Error: clang: error: multiple definition of ‘readbuf’…
Fix: at the same file “ch341funcs.c” search for “readbuf” and replace it for something that makes sense, “readbuf” means “read buffer” so that’s what I did, replace “readbuf” to “readbuffer”, make sure that you replace it in this three lines, line 34, line 256 and line 320.
Save the file and try again, it will compile at the first attempt.

Please see my universal (93xxx, 24xxx, 25xxx chips supported) linux program