Автор Гілка: BIOS + flashrom  (Прочитано 2069 раз)

Відсутній cadca

  • Письменник
  • *****
  • дописів: 955
  • Карма: +0/-0
  • free like beer
BIOS + flashrom
« : 2008-10-03 23:27:57 »
Виникла необхідність "прочитати" біос і порівняти його із файлом від виробника (є підозра, що збоїть мікросхема ROM, а доступ до апаратного флешера є далеко не завжди). Гугль підказав, що є утиліта flashrom, але облом :( (дані наведені для домашнього комп'ютера, з робочим така сама історія):
[root@localhost andrew]# lshw
localhost
    description: Desktop Computer
    product: KM266-8235
    vendor: VIA Technologies, Inc.
    width: 32 bits
    capabilities: smbios-2.2 dmi-2.2
    configuration: boot=normal chassis=desktop
  *-core
       description: Motherboard
       product: KM266-8235
       physical id: 0
       slot: COM2
     *-firmware
          description: BIOS
          vendor: Phoenix Technologies, LTD
          physical id: 0
          version: 6.00 PG (09/09/2003)
          size: 128KB
          capacity: 192KB
          capabilities: isa pci pnp apm upgrade shadowing escd cdboot bootselect socketedrom edd int13floppy360 int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int9keyboard int14serial int17printer int10video acpi usb agp ls120boot zipboot
...
[root@localhost andrew]# flashrom -V
Calibrating delay loop... 405M loops per second. ok
No LinuxBIOS table found.
Found chipset "VT8235": Enabling flash write... OK.
Probing for Am29F040B, 512 KB
probe_29f040b: id1 0x25, id2 0xc2
Probing for Am29F016D, 2048 KB
probe_29f040b: id1 0xff, id2 0xff
Probing for AE49F2008, 256 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for At29C040A, 512 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for At29C020, 256 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for Mx29f002, 256 KB
probe_29f002: id1 0x25, id2 0xc2
Probing for MX25L4005, 512 KB
generic_spi_command called, but no SPI chipset detected
Probing for SST29EE020A, 256 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for SST28SF040A, 512 KB
probe_28sf040: id1 0x25, id2 0xc2
Probing for SST39SF010A, 128 KB
probe_jedec: id1 0x65, id2 0xf6
Probing for SST39SF020A, 256 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for SST39SF040, 512 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for SST39VF020, 256 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for SST49LF040B, 512 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for SST49LF040, 512 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for SST49LF020A, 256 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for SST49LF080A, 1024 KB
probe_jedec: id1 0xff, id2 0xff
Probing for SST49LF002A/B, 256 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for SST49LF003A/B, 384 KB
probe_jedec: id1 0x65, id2 0xf6
Probing for SST49LF004A/B, 512 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for SST49LF008A, 1024 KB
probe_jedec: id1 0xff, id2 0xff
Probing for SST49LF004C, 512 KB
probe_49lfxxxc: id1 0x25, id2 0xc2
Probing for SST49LF008C, 1024 KB
probe_49lfxxxc: id1 0xff, id2 0xff
Probing for SST49LF016C, 2048 KB
probe_49lfxxxc: id1 0xff, id2 0xff
Probing for SST49LF160C, 2048 KB
probe_49lfxxxc: id1 0xff, id2 0xff
Probing for Pm49FL002, 256 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for Pm49FL004, 512 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for W29C011, 128 KB
probe_jedec: id1 0x65, id2 0xf6
Probing for W29C040P, 512 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for W29C020C, 256 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for W29EE011, 128 KB
probe_w29ee011: id1 0x65, id2 0xf6
Probing for W49F002U, 256 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for W49V002A, 256 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for W49V002FA, 256 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for W39V040FA, 512 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for W39V040A, 512 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for W39V040B, 512 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for W39V080A, 1024 KB
probe_jedec: id1 0xff, id2 0xff
Probing for M29F002B, 256 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for M50FW040, 512 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for M29W040B, 512 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for M29F002T/NT, 256 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for M29F400BT, 512 KB
probe_m29f400bt: id1 0x25, id2 0x2d
Probing for M50FLW040A, 512 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for M50FLW040B, 512 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for M50FLW080A, 1024 KB
probe_jedec: id1 0xff, id2 0xff
Probing for M50FLW080B, 1024 KB
probe_jedec: id1 0xff, id2 0xff
Probing for M50FW080, 1024 KB
probe_jedec: id1 0xff, id2 0xff
Probing for M50FW016, 2048 KB
probe_jedec: id1 0xff, id2 0xff
Probing for M50LPW116, 2048 KB
probe_jedec: id1 0xff, id2 0xff
Probing for M29W010B, 128 KB
probe_jedec: id1 0x65, id2 0xf6
Probing for M29F040B, 512 KB
probe_29f040b: id1 0x25, id2 0xc2
Probing for 82802ab, 512 KB
probe_82802ab: id1 0x25, id2 0xc2
Probing for 82802ac, 1024 KB
probe_82802ab: id1 0xff, id2 0xff
Probing for F49B002UA, 256 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for LHF00L04, 1024 KB
probe_lhf00l04: id1 0xff, id2 0xff
Probing for S29C51001T, 128 KB
probe_jedec: id1 0x65, id2 0xf6
Probing for S29C51002T, 256 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for S29C51004T, 512 KB
probe_jedec: id1 0x25, id2 0xc2
Probing for S29C31004T, 512 KB
probe_jedec: id1 0x25, id2 0xc2
No EEPROM/flash device found.
Питання: як цій утиліті вказати тип мікросхеми? Чи доведеться компілювати модуль ядра (утвориться /dev/bios) від coreboot?
Ubuntu 20.04/18.04; CentOS 7.x

Praporshic

  • Гість
Re: BIOS + flashrom
« Відповідей #1 : 2008-10-04 00:59:40 »
В мене спрацювало, але якось дивно - проблем ніби не спостерігається, але файл яким оновлював в останній раз має іншу контрольну суму, у порівнянні зі знімком зробленим flashrom, і не проходить перевірку.  :-/

P.S. Зараз спробую оновитись за його допомогою, довіри до флоппі-дискет десятирічної давнини не більше....

Edit:
BIOS виявився старим, хоча помилок не було. Висновки відповідні...
« Змінено: 2008-10-04 01:41:56 від Praporshic »

Відсутній cadca

  • Письменник
  • *****
  • дописів: 955
  • Карма: +0/-0
  • free like beer
Re: BIOS + flashrom
« Відповідей #2 : 2008-10-05 01:24:53 »
Edit:
BIOS виявився старим, хоча помилок не було. Висновки відповідні...
Тобто утиліті flashrom не слід довіряти? :(
А вивід в консоль результатів її роботи можете навести?
« Змінено: 2008-10-05 01:25:59 від cadca »
Ubuntu 20.04/18.04; CentOS 7.x

Praporshic

  • Гість
Re: BIOS + flashrom
« Відповідей #3 : 2008-10-09 13:01:18 »
main # flashrom -r backup.bin                                                 ~
Calibrating delay loop... OK.
No coreboot table found.
Found chipset "NVIDIA MCP51", enabling flash write... OK.
Found chip "PMC Pm49FL004" (512 KB) at physical address 0xfff80000.
Reading Flash...done
main # md5sum backup.bin                                                      ~
b0bc379964a47e7b99f3a392a9c374c7  backup.bin
main # md5sum /home/sergey/1401.bin                                           ~
9a01ed536839eb84ba9a15ca3d9499b2  /home/sergey/1401.bin
main # flashrom -v ~sergey/1401.bin                                           ~
Calibrating delay loop... OK.
No coreboot table found.
Found chipset "NVIDIA MCP51", enabling flash write... OK.
Found chip "PMC Pm49FL004" (512 KB) at physical address 0xfff80000.
Flash image seems to be a legacy BIOS. Disabling checks.
Verifying flash... FAILED!  Expected=0xff, Read=0x03
main # flashrom -v backup.bin                                                 ~
Calibrating delay loop... OK.
No coreboot table found.
Found chipset "NVIDIA MCP51", enabling flash write... OK.
Found chip "PMC Pm49FL004" (512 KB) at physical address 0xfff80000.
Flash image seems to be a legacy BIOS. Disabling checks.
Verifying flash... VERIFIED.