Bạn có thể sử dụng flashrom để cập nhật BIOS của bo mạch chủ.
Ví dụ (Abit KN9 Ultra):
Bảng mạch là bo mạch AMD Athlon 64, ổ cắm AM2, chipset Nvidia, được phát hành từ năm 2006. Nó có chip flash 256 KB có thể thay thế. BIOS được gắn nhãn 'Giải thưởng', dường như là thương hiệu của Phoenix.
Flashrom hỗ trợ chipset đó và chip flash đó.
Sự hỗ trợ có thể được kiểm tra bằng một lệnh như:
# 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.
Trước tiên, nên sao lưu nội dung hiện tại của chip flash:
# flashrom --programmer internal -c Pm49FL004 -r backup.bin
Sau đó, nó có thể được so sánh với một tệp hình ảnh vanilla từ nhà cung cấp (sử dụng ví dụ xxd
và vimdiff
).
Một số khác biệt được mong đợi - bởi vì một số BIOS 'cũng lưu trữ thông tin bổ sung (ví dụ DMI) và cấu hình (ví dụ: địa chỉ MAC) trong flash. Đây cũng là trường hợp với Abit KN9 Ultra. Dữ liệu DMI được lưu trữ trong 1872 byte đầu tiên - và dễ dàng được tạo lại bởi BIOS trong khi khởi động. Các địa chỉ MAC được lưu trữ ở offset 0x74E30.
Các tập tin firmware nhà cung cấp được đóng gói trong kho lưu trữ zip có chứa awdflash.exe
một BIN
tập tin, ví dụ M520A_23.BIN
. Trong ví dụ này, tệp bin chứa hình ảnh BIOS nguyên bản, tức là nó có thể được ghi trực tiếp làm chip flash với một lệnh như:
# 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.
Tùy thuộc vào bản cập nhật, có thể cần phải xóa CMOS cho lần khởi động lại tiếp theo - nếu không thì BIOS có thể không khởi động được. Trên bảng đó, có thể xóa CMOS thông qua cài đặt jumper. Xóa thông qua phần mềm cũng có thể (ví dụ qua CmosPwd ).
Để giữ địa chỉ MAC mặc định duy nhất, hình ảnh nhà cung cấp mới có thể được vá trước khi flash, ví dụ:
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
Cạm bẫy:
- Việc ghi flash có thể thất bại do mã kích hoạt bo mạch cụ thể của bo mạch chủ (nghĩa là để vô hiệu hóa mã bảo vệ ghi) chưa được flashrom thực hiện.