Update Lenovo 720s-13ARR BIOS to 6KCN38WW

ซื้อ Notebook Lenovo 720s-13ARR AMD Ryzen 2700u มาได้เดือนกว่าๆ รู้สึกว่ามันไม่เสถียร เอามากๆ ดู Youtube ใน Chrome ก็มี reset อยู่เรื่อยๆ

พอมี BIOS ออกมาก็อยากจะอัพเดทเพราะเชื่อว่ามันจะดีขึ้น BIOS ติดเครื่องมา version 6KCN28WW ออกอัพเดทมา version 6KCN37WW แต่พอจะอัพก็อัพไม่ได้

“Your On Board Bios is for OS Version 15063 only, can’t update to current new BIOS”

มี Error ขึ้นมาแบบข้างบน เข้าไปไล่หาวิธีดูก็พบว่า ใน platform.ini ระบุไว้ว่าต้องอัพจาก version xxCN35WW ขึ้นไป ใน reddit ก็บอกว่าลองแก้ค่า PFVFunctionEnable=1 ให้เป็น PFVFunctionEnable=0 จะได้ไม่ต้องเช็ค version สุดท้าย Flash เสร็จก็ Bricked ซึ่งหลายคนก็เจออาการเดียวกัน และไม่สามารถ Recovery ด้วย USB Drive ได้ ต้องส่งศูนย์กลับไปซ่อม

สักพักในเว็บของ Lenovo ได้เอา BIOS 6KCN37WW ออกไป แล้วเอา 6KCN29WWเข้ามาแทน ก็ลองโหลดมา Flash ดู สามารถอัพเดทได้สำเร็จ แต่ปัญหาเรื่อง Video ยังไม่หาย ผ่านมาอีกสักพักได้ออก AMD Display Driver version ใหม่ แต่บอกให้ใช้กับ BIOS 6KCN37WW พอลองลงดูก็พบว่าไม่เสถียรยิ่งกว่าเดิมอีก

สุดท้าย Lenovo ก็ออก BIOS version 6KCN38WW ออกมา ตอนแรกนึกว่าจะแก้ปัญหาเรื่องที่ไม่สามารถ Flash จาก version 29WW ได้ แต่ก็ Flash ไม่ได้เหมือนเดิม ด้วยความอยากรู้ก็เลยว่าจะลอง Flash ให้รู้แล้วรู้รอดไป

ก่อนอื่นเราก็ Backup BIOS ไว้ก่อนเพื่อความปลอดภัย

C:\BIOS\6KCN38WW\H2OFFT-W.exe 6kcn29ww-dump.bin -g

ถ่ายรูปหน้า BIOS ไว้ก่อน

Backup system specific information

ใช้ Program ProduKey เพื่อดู Product Key ของเครื่องเรา

Backup CD-Key

Load program HWiNFO เก็บ System report ไว้อีกที https://hwinfo.com

แล้วก็เริ่มลอง Flash กัน

##คำเตือน ขั้นตอนหลังจากนี้จะทำให้เครื่องพัง ไม่สามารถเปิดได้##

##Following step will brick your machine##

เริ่มแก้ต้น platform.ini

PFVFunctionEnable=1 > PFVFunctionEnable=0

แล้วก็ Flash ปกติ

กด OK ก็เรียบร้อย (พัง)
รอจน 100% แล้วก็พัง (100% and then bricked)

หลังจาก Flash ด้วยวิธีแก้ PFVFunctionEnable=0 จะทำให้เครื่องเปิดไม่ติด หรือพังนั่นเอง ไปหาข้อมูลมาพบว่าสามารถแก้ด้วยวิธีการใช้ Hardware Flasher

เริ่มต้นด้วยการหา BIOS Chip พบว่าใช้ GigaDevice GD25LQ64C 1.8V

GigaDevice GD25LQ64C 1.8V BIOS Chip

ทำการสั่งอุปกรณ์

SOIC8 Clip
Use CH341A + 1.8V adaptor

เนื่องจาก CH341A รองรับ 3.3V และ 5V เท่านั้น เราจึงต้องใช้ Adaptor 1.8V อีกต่อนึง แล้วก็ใช้ SOIC8 Clip หนีบตัว BIOS จากนั้นก็ทำการ Program BIOS

BIOS ที่จะ Flash นั้นต้อง Extract จาก BIOS.fd มาก่อน โดยใช้โปรแกรม https://github.com/LongSoft/InsydeImageExtractor

Flash extracted bios from BIOS.fd

หลังจาก Flash โดยใช้ SPI Programmer ด้วย version 6KCN37WW แล้วเครื่องสามารถเปิดกลับมาทำงานได้ปกติ เราก็จะลอง Flash ไปเป็น version 6KCN38WW โดยใช้โปรแกรมเดิมๆที่ดาว์นโหลดจากเว็บ

Flash 6KCN37WW > 6KCN38WW

หลังจากลองอัพเดทก็สามารถอัพได้ตามปกติ เท่าที่ลองดูด้วย UEFITool https://github.com/LongSoft/UEFITool BIOS structure ของทั้ง 2 version 2x และ 3x มีความต่างกันอยู่ อาจจะเป็นเหตุผลที่ทำให้ Flash ข้ามกันไม่ได้

ลองใช้ version 6KCN38WW + AMD Display Driver 23.20.822.256_17.40.3601.1001 ปัญหาดู Video แล้วจอดำใน Chrome หายไป ถือว่าเรียบร้อยดี แต่ปัญหาที่เจอคือ SN, MTM และ Windows License ใน BIOS หายไป คงต้องไปดูต่อว่าจะหาทาง Dump จาก BIOS ที่เรา Backup ไว้ก่อนหน้ากลับมาได้อย่างไร

CPU-Z Validate https://valid.x86.fr/sg0d4s

Every value show as INVALID

UUID ยังขึ้น INVALID (INVALID=49 4e 56 41 4c 49 44)

จากที่สังเกตุตอน Flash EC Rom ขึ้นว่าเครื่องผลิตโดย LCFC ฉะนั้นต้องใช้โปรแกรม Lvar ในการแก้ไขค่าต่างๆให้กลับมาเป็นเหมือนเดิม

Update: 1/6/2018 SN, MTM, Product Name สามารถแก้ไขได้ด้วย Lvar.exe (Lenovo Variable Tool) ส่วน Windows License ก็เหมือนจะทำได้แต่อาจจะต้อง Backup ไว้ก่อน

Update: 27/6/2018 เหมือน Windows License จะ restore ได้แล้ว สร้างไฟล์ binary ตามเนื้อข้างล่าง แล้วแก้ 00000–00000–00000–00000–00000 เป็น CD-Key เดิมที่ติดมากับเครื่อง ลองใช้โปรแกรมเช็ค CD-Key เช็คดู จากนั้นใช้ lvar update msdm.bin โดยไฟล์ต้องขนาด 49 bytes

หลังจากinject msdm

Restore all value from backup

เสร็จสิ้นการอัพเดท