Background
My coworker corrupted the BIOS on an ASUS G301QE laptop. After exhausting standard recovery methods like ASUS BIOS Flashback and battery disconnection, I proposed direct chip flashing using a CH341A programmer — a tool I previously purchased for Libreboot projects.
Requirements
- CH341A USB programmer
- BIOS compatibility verification for your motherboard
- Flashrom application (command-line flashing utility)
- Correct BIOS .bin file matching your exact motherboard model
- SOIC8/SOP8 test clip
- Adapter connecting CH341A to SOP8 clip
- Optional: Bundle kits containing programmer, clip, and adapter together
Flashrom is standard on most Linux distributions and can be installed via package manager or built from source using Meson.
Setting Up the Programmer
Step 1: Identify Pin 1
On the SOP8 clip, pin 1 is marked by a red cable. On the programmer, look for a dot, notch, or marking indicating pin 1.
Step 2: Connect the Adapter
- Connect adapter to clip first
- Lift the lever on the socket
- Push pins into correct positions
- Pull down lever to lock everything
Step 3: Attach the Clip to the BIOS Chip
Locate the marking on the chip (dot or notch) showing pin 1’s location. Align the clip’s red cable with this pin and ensure firm contact across all pins.
Step 4: Plug in the Programmer
Insert the CH341A into a USB port. A red light should illuminate:
- No light: Try a different USB port or computer
- Dim red light: Possible short circuit or incorrect pin connection
- Green light: Everything may be functioning correctly
Verifying Your Setup
Run flashrom to confirm installation:
flashrom
Expected output shows version information and confirmation that flashrom is installed.
Creating Verified Backups
Before writing, create two separate backups and compare their MD5 checksums to verify consistent, reliable reads:
flashrom --programmer ch341a_spi -r backupone.bin
flashrom --programmer ch341a_spi -r backuptwo.bin
md5sum backupone.bin
md5sum backuptwo.bin
Matching checksums indicate good reads and readiness to proceed. Mismatched checksums suggest clip connection issues requiring re-seating and retry.
Verifying File Sizes
Confirm that your downloaded BIOS file and backup are identical in size:
ls -l
Both files should show the exact same byte count. Size discrepancies indicate a potential wrong BIOS file — do not proceed if they don’t match.
Flashing the BIOS
flashrom --programmer ch341a_spi -w GV301QE.bin
Replace the filename with your actual BIOS file. Flashrom will erase, write, and verify the new BIOS — typically completing in 1-3 minutes. Wait for success confirmation before disconnecting anything.
Troubleshooting: File Size Mismatch
Downloaded BIOS files sometimes include headers added by manufacturers for their official flashing tools. Strip unnecessary headers using dd:
dd if=downloaded_bios.bin of=bios_no_header.bin bs=1 skip=4096
Adjust the skip value based on how many bytes larger the file is. Verify sizes match after stripping.
Last modified on 2025-10-29