• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Gelöst Flash PC-Engines APU 1D4 / Coreboot

gehrke

Administrator
Teammitglied
Moin *

Wollte nur mal eine Lösung da lassen - vielleicht hilft es ja jemandem weiter.

Nach einem Hardwareschaden auf der SSD meiner APU 1D4 von PC-Engines hatte ich neue SSDs beschafft: 'msata 16g' - 4 Stück, weil ich auch mehrere dieser Boards besitze.
Vom Hersteller verbaut und spezifiziert war 'msata 16d', aber die waren nicht mehr zu bekommen.

Naja, war ja klar - keine davon wurde von der Hardware erkannt, egal ob unter GNU/Linux oder FreeBSD.

Nach viel Recherche und wochenlangem Zaudern war ich endlich mutig/verzweifelt genug, das Coreboot BIOS zu flashen. Vielen Dank übrigens an Voyage Linux für die Starthilfe.

Natürlich hatte ich Bedenken, das Board kaputt zu flashen, besonders wegen einer Meldung zu angeblich falschen Chip. Aber ein beherztes '--force' brachte den Erfolg. Zuerst das Flashen selber und dann nach dem Neustart, dass die Disk nun erkannt wird. 🚀

Nun kann ich die Hardware weiter nutzen und der Weg ist frei zu einer stressfreien Migration meiner Firewall zwischen den Feiertagen.


Überblick:
Code:
# screen /dev/ttyUSB0 115200
[...]
root@voyage:/mnt# flashrom -p internal                              
flashrom v0.9.7-r1782 on Linux 4.1.6-voyage (x86_64)
flashrom is free software, get the source code at http://www.flashrom.org

Calibrating delay loop... OK.
coreboot table found at 0xdffdf000.
Found chipset "AMD SB7x0/SB8x0/SB9x0". Enabling flash write... OK.
Found Macronix flash chip "MX25L1605" (2048 kB, SPI) at physical address 0xffe00000.
Found Macronix flash chip "MX25L1605A/MX25L1606E" (2048 kB, SPI) at physical address 0xffe00000.
Found Macronix flash chip "MX25L1605D/MX25L1608D" (2048 kB, SPI) at physical address 0xffe00000.
Multiple flash chip definitions match the detected chip(s): "MX25L1605", "MX25L1605A/MX25L1606E", "MX25L1605D/MX25L1608D"

Please specify which chip definition to use with the -c <chipname> option.

Backup erzeugen:
Code:
root@voyage:/mnt# flashrom -p internal -c "MX25L1605A/MX25L1606E" -r backup.rom
flashrom v0.9.7-r1782 on Linux 4.1.6-voyage (x86_64)
flashrom is free software, get the source code at http://www.flashrom.org

Calibrating delay loop... OK.
coreboot table found at 0xdffdf000.
Found chipset "AMD SB7x0/SB8x0/SB9x0". Enabling flash write... OK.
Found Macronix flash chip "MX25L1605A/MX25L1606E" (2048 kB, SPI) at physical address 0xffe00000.
Reading flash... done.

root@voyage:/mnt# ls -l
total 4126
-rw-r--r-- 1 root root 2097152 Dec 10 14:30 apu1_v4.17.0.2.rom
-rw-r--r-- 1 root root 2097152 Dec 10 15:02 backup.rom

Das aktuelle ROM gibt es hier: PC Engines - github pages

Das Flashen ist scheinbar erfolgreich:
Code:
root@voyage:/mnt# flashrom -p internal:boardmismatch=force  -c "MX25L1605A/MX25L1606E" -w apu1_v4.17.0.2.rom
flashrom v0.9.7-r1782 on Linux 4.1.6-voyage (x86_64)
flashrom is free software, get the source code at http://www.flashrom.org

Calibrating delay loop... OK.
coreboot table found at 0xdffdf000.
Found chipset "AMD SB7x0/SB8x0/SB9x0". Enabling flash write... OK.
Found Macronix flash chip "MX25L1605A/MX25L1606E" (2048 kB, SPI) at physical address 0xffe00000.
This coreboot image (PC Engines:apu1) does not appear to
be correct for the detected mainboard (PC Engines:APU).
Proceeding anyway because user forced us to.
Reading old flash chip contents... done.
Erasing and writing flash chip... Erase/write done.
Verifying flash... VERIFIED.

Und Tada - 'sda' wird nach dem Booten tatsächlich erkannt:
Code:
root@voyage:/mnt# reboot
[...]
[   85.993745] reboot: machine restart
PC Engines apu1
coreboot build 20222807
BIOS version v4.17.0.2

SeaBIOS (version rel-1.16.0.1-0-g77603a32)
Press F10 key now for boot menu

root@voyage:~# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0 14.9G  0 disk
sdc      8:32   1  1.9G  0 disk
|-sdc1   8:33   1  1.4G  0 part /
`-sdc2   8:34   1  448M  0 part

Glückauf, gehrke
 
Zuletzt bearbeitet:
Oben