คุณสามารถใช้flashromเพื่ออัปเดต BIOS ของเมนบอร์ด
ตัวอย่าง (Abit KN9 Ultra):
บอร์ดคือ AMD Athlon 64 board, AM2 Socket, ชิปเซ็ต Nvidia เปิดตัวตั้งแต่ปี 2549 มีชิปแฟลช 256 KB ที่สามารถเปลี่ยนได้ ไบออสนั้นมีเครื่องหมาย 'รางวัล' ซึ่งดูเหมือนจะเป็นเครื่องหมายการค้าของฟีนิกซ์
Flashrom รองรับชิปเซ็ตนั้นและชิปแฟลชนั้น
การสนับสนุนสามารถทดสอบได้ด้วยคำสั่งเช่น:
# flashrom --programmer internal
Calibrating delay loop... OK.
Found chipset "NVIDIA MCP55".
Enabling flash write... OK.
Enabling full flash access for board "abit KN9 Ultra"... OK.
Found PMC flash chip "Pm49FL004" (512 kB, LPC, FWH) mapped at physical address 0x00000000fff80000.
มันสมเหตุสมผลแล้วที่จะทำการแบ็คอัพเนื้อหาปัจจุบันของชิปแฟลชก่อนอื่น:
# flashrom --programmer internal -c Pm49FL004 -r backup.bin
จากนั้นสามารถเปรียบเทียบกับไฟล์ภาพวานิลลาจากผู้ขาย (ใช้เช่นxxd
และvimdiff
)
คาดหวังความแตกต่างบางประการ - เนื่องจาก BIOS บางตัวยังเก็บข้อมูลเพิ่มเติม (เช่น DMI) และการกำหนดค่า (เช่นที่อยู่ MAC) ในแฟลช นี่เป็นกรณีของ Abit KN9 Ultra ข้อมูล DMI ถูกเก็บไว้ใน 1872 ไบต์แรกและสามารถสร้างใหม่ได้อย่างง่ายดายโดย BIOS ในระหว่างการบู๊ต ที่อยู่ MAC จะถูกเก็บไว้ที่ offset 0x74E30
ไฟล์เฟิร์มแวผู้ขายที่บรรจุในไฟล์ zip ที่มีawdflash.exe
และไฟล์เช่นBIN
M520A_23.BIN
ในตัวอย่างนี้ไฟล์ bin ประกอบด้วยภาพ BIOS ตามที่เป็นอยู่นั่นคือมันสามารถเขียนโดยตรงทำชิปแฟลชด้วยคำสั่งเช่น:
# flashrom --programmer internal -c Pm49FL004 -w M520A_23.BIN
Calibrating delay loop... OK.
Found chipset "NVIDIA MCP55".
Enabling flash write... OK.
Enabling full flash access for board "abit KN9 Ultra"... OK.
Found PMC flash chip "Pm49FL004" (512 kB, LPC, FWH) mapped at physical address 0x00000000fff80000.
Reading old flash chip contents... done.
Erasing and writing flash chip... Erase/write done.
Verifying flash... VERIFIED.
อาจจำเป็นต้องล้างCMOSสำหรับการรีบูทครั้งถัดไปมิฉะนั้น BIOS อาจไม่เริ่มทำงานทั้งนี้ขึ้นอยู่กับการอัพเดต บนบอร์ดนั้น CMOS สามารถลบล้างได้ด้วยการตั้งค่าจัมเปอร์ สามารถทำการล้างผ่านซอฟต์แวร์ได้ (เช่นผ่านCmosPwd )
สำหรับการรักษาที่อยู่ MAC เริ่มต้นที่ไม่ซ้ำกันภาพผู้จำหน่ายใหม่สามารถแก้ไขได้ก่อนที่จะกระพริบเช่น:
dd if=backup.bin of=mac.bin bs=1 count=16 skip=$(echo 16 i 74E30 p | dc)
dd if=mac.bin of=M520A_23_with_mac.bin bs=1 seek=$(echo 16 i 74E30 p | dc) \
conv=notrunc
ผิดพลาด:
- การเขียนแฟลชอาจล้มเหลวเนื่องจากรหัสเฉพาะเมนบอร์ดเปิดใช้งาน (เช่นสำหรับการปิดใช้งานการป้องกันการเขียน) รหัสที่ยังไม่ได้ใช้งานโดย flashrom