I have a pair of embedded networking devices.
They are Dell/Sonicwall from 2015 and have reached End of Life so I thought I would re-purpose the hardware.
I successfully rooted the SW OS and managed to boot on them many different Linux distro, but settled on OPNsense.
In the process of modding them I managed to brick one, here’s what happened;
They are headless devices, however the CPU (Intel Atom D510) has internal graphics (GMA 3150)
The graphics are not used for operating the device, the serial port is used for console access.
However they system does seem to “use” it invisibly, as part of my rooting, I soldered on a DB15 port and got VGA output.
For some reason, the MAC addresses come up as 00:00:00:00:00:00, this prevents any of the Linux distros I tried from having a usable network.
In the SW OS, there is a modified e1000e kernel module which ignores the invalid MAC error, then in their rc.network startup, they use the ‘ip’ command to assign MAC addresses to the adapters, allowing it to work.
Ultimately I recompiled the module in OPNsense to do exactly the same thing, but before that, here is how I bricked one:
The network adapters do have EEPROM, so I assumed that Dell had just been lazy, and left the MAC set as zero in the EEPROM, so if I could just set some MAC addresses in them, then any distro should work.
I found a DOS program for changing Intel ethernet MAC, I thought it would work. (I shouldn’t have trusted it)
The SW OS has a FreeDOS preboot environment where I used this.
Unfortunately it did not work.
I’m guessing that it corrupted the Graphics BIOS, because the system will not boot now.
Instead it gives 8 beeps and powers off (AMI BIOS video memory? error)
First I thought it might be corrupt system BIOS, I have a programmer, and I read the working BIOS from the other device, flashed it onto the brick, but still get the same 8 beeps.
(I did dump both out and hex compared beforehand, there were some slight differences, I still have both if people want a look)
(also FYI, I can flash the system EEPROM using a chip clip, however, the eth EEPROMs seem to backfeed power into the board and I could not read/write them unless I de-soldered from the board, something I tried after the bricking.)
The system has a controller hub DW82801HBM (ICH8M) and a Winbond W83627DHG-P.
These devices are entirely integrated, I can not try putting a graphics card in a slot as there are no slots.
I can not see any other EEPROM chips on the board. Only the System BIOS (SST25VF016B) and 1 chip for each of the 4 ethernet adapters (ATMEL 58BL [AT25080B]).
I assume the BIOS for the graphics is integrated into the CPU chipset, so one options which crossed my mind was to swap out the entire D510 BGA, but I would have to buy a working one, and also I have a hot air rework and moderately good soldering skills, I don’t have the right BGA tools and have zero BGA rework experience.
The other thought was if I can modify the system BIOS, to bypass the integrated graphics. I can then boot into the linux environment, access via serial console, and attempt to flash the graphics BIOS from within.
I’m guessing it would need some kind of virtual graphics module in order to be completely headless.
I did play about with AMIBCP and MMTOOL, but I have no clue what to do at this point.
If anyone has any ideas/experience or maybe knows if my analysis is incorrect, please help.