EU Dual E5-2600 Foxconn Server £250

Feb 22, 2019
5
0
1
Thanks for the quick reply! Mostly what I’m trying to do is to be able to handle more transcodes at once. I’m a pretty basic user but with a lot of users on my plex. I can handle around 15-20 at a time but server has been shutting down because of high CPU usage so thought I might look into replacing it, just wasn’t sure what i could buy.
 

aido

New Member
Feb 23, 2017
8
0
1
41
Have you run any soak tests etc to see if it's maybe the memory or something else at fault?

Back when CPU crypto was just profitable I was running one of these servers 24x7 at 100% CPU load for months on end and it never shutdown once.

Might also be worth trying new CPU thermal paste just to ensure that's efficient etc - do you have something acting as a lid on the server and what sort of temperature is the room it's sat in when it shuts down?
 
Feb 22, 2019
5
0
1
I actually don't know what a soak test is tbh haha. I might try reputting the thermal paste on there. I had a lid that fit over the server but not anymore since I installed new Noctua fans that are too high for it. Might reconsider that. The Temperature of the room should be fine. So the CPU being absolutely hammered at 100% for a few hours shouldn't make it shut down ?
 
Feb 22, 2019
5
0
1
Thanks for all of the replys mate, kind of realized though that I have too many users for my hardware as of now so I'm getting 2 new CPU's at a fairly good price. If it keeps shutting down I will maybe come back seeking help. Thanks a lot aido :)
 

chraac

New Member
May 5, 2019
8
0
1
I did break the server by trying to crossflash a Gigabyte BMC firmware to it using socflash : when plugging the power it was starting for less than a second then shuts off for 2 or 3 seconds then was trying again to boot for less than a sec...

I was able to repair it by short circuiting the BMC flash (a MX25L12845E) pins 2 (VCC) and 7 (Chip Select) then plugging the PSU, it started immediatly (and i could remove the short circuit) then boot and re-flash with the original firmware.

Hi Jb boin, Which BMC of Gigabyte's mb you use for cross flash? I found GA-7PESH3(GA-7PESH3 (rev. 1.0) | Server Motherboard - GIGABYTE Global) has the same AST2300 BMC, and it's C602 chipset too
 
Last edited:

UFOnet

New Member
Sep 20, 2019
4
0
1
Hello. Has anyone tried LRDIMM in this server? I have a few 32GB LRDIMM I want to use. How many modules are required in this board when 2 CPUs are used? Has anyone been able to get second SFP+ or remote KVM working?

Thanks.
 

chraac

New Member
May 5, 2019
8
0
1
Hello. Has anyone tried LRDIMM in this server? I have a few 32GB LRDIMM I want to use. How many modules are required in this board when 2 CPUs are used? Has anyone been able to get second SFP+ or remote KVM working?

Thanks.

After few days digging, I found a way to patch the bmc firmware and get remove video work, and remote keyboard and mouse still not function
 

UFOnet

New Member
Sep 20, 2019
4
0
1
Hello. Has anyone tried LRDIMM in this server? I have a few 32GB LRDIMM I want to use. How many modules are required in this board when 2 CPUs are used? Has anyone been able to get second SFP+ or remote KVM working?
Thanks.
Just for the reference, I was able to successfully use 32GB LRDIMM 1866MHz modules in the Foxconn server. The server works fine even with just 1 DIMM when 2 CPUs are present. Right now, I have 2 DIMMs (1 per CPU).
The second SFP+ seems to be missing all the electronics (even leds are not soldered). It is not detected by OS.

After few days digging, I found a way to patch the bmc firmware and get remove video work, and remote keyboard and mouse still not function
That's amazing news. Could you please share the steps how you patched it?

I was doing some patching myself, but the only things I was able to enable were vMedia and some BMC setting such as NTP.
Rough steps which I have done (on Ubuntu 19.04):

0) Install required packages
Code:
root@Linux# apt install git build-essential zlib1g-dev liblzma-dev python-magic bsdmainutils flashrom binwalk
1) Read the BMC flash with flashrom (i have CH341 SPI flash reader/writer)
Code:
root@Linux# flashrom --programmer ch341a_spi -c "MX25L12835F/MX25L12845E/MX25L12865E" -r foxconn-purus_bmc-0.0.65535.bin
flashrom  on Linux 5.0.0-29-generic (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Found Macronix flash chip "MX25L12835F/MX25L12845E/MX25L12865E" (16384 kB, SPI) on ch341a_spi.
Reading flash... done.
2) Binwalk should show us contents of the BMC flash file:
Code:
root@Linux# binwalk foxconn-purus_bmc-0.0.65535.bin

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
111052        0x1B1CC         U-Boot version string, "U-Boot 1.2.0 (Mar 23 2012 - 17:57:52) Avocent (0.0.24) Purus-PanguA-8MB/112MB"
112208        0x1B650         CRC32 polynomial table, little endian
262144        0x40000         JFFS2 filesystem, little endian
1048576       0x100000        uImage header, header size: 64 bytes, header CRC: 0x7977C726, created: 2012-03-23 10:02:45, image size: 1690327 bytes, Data Address: 0x40008000, Entry Point: 0x40008000, data CRC: 0xC37ACFDC, OS: Linux, CPU: ARM, image type: OS Kernel Image, compression type: gzip, image name: "arm-linux"
1048640       0x100040        gzip compressed data, maximum compression, has original file name: "vmlinux.bin", from Unix, last modified: 2012-03-23 10:02:44
3145728       0x300000        Squashfs filesystem, little endian, version 3.1, size: 11684842 bytes, 1691 inodes, blocksize: 131072 bytes, created: 2012-04-16 03:10:30
3) get Firmware Mod Kit to extract and rebuild BMC after edits
Code:
root@Linux# git clone https://github.com/rampageX/firmware-mod-kit.git
root@Linux# cd firmware-mod-kit
4) Copy BMC ROM file into the folder firmware-mod-kit

5) extract firmware (extracted firmware will be present in fmk subdirectory)
Code:
root@Linux# ./extract-firmware.sh foxconn-purus_bmc-0.0.65535.bin
6) go to folder with BMC WebGUI files:
Code:
root@Linux# cd fmk/rootfs/usr/local/www
7) I have uncommented some lines corresponding to NTP (Time) and vMedia in file bmctree.html which is used to generate GUI menu.

8) the subdirectory software contains JAVA files for vMedia and vKVM functions. Foxconn Purus BMC was missing files for several platforms (such as Linux64...). I have copied them from extracted Gigabyte GA-7PESH2 BMC ROM as this board shares the same BMC chip (AST2300) and same vendor of BMC software (Avocent).

9) repack the edited firmware (you need to be in base firmware-mod-kit folder). The output file is "fmk/new-firmware.bin"
Code:
root@Linux# ./build-firmware.sh
10) flash the modified BMC file:
Code:
root@Linux# flashrom --programmer ch341a_spi -c "MX25L12835F/MX25L12845E/MX25L12865E" -w new-firmware.bin

You can download my edited BMC file with vMedia and NTP enabled here:
MEGA
!!!ATTENTION: Backup your original BMC first. I am not 100% sure if this file will work on your board. Works on mine :)
 
Last edited:

chraac

New Member
May 5, 2019
8
0
1
Just for the reference, I was able to successfully use 32GB LRDIMM 1866MHz modules in the Foxconn server. The server works fine even with just 1 DIMM when 2 CPUs are present. Right now, I have 2 DIMMs (1 per CPU).
The second SFP+ seems to be missing all the electronics (even leds are not soldered). It is not detected by OS.



That's amazing news. Could you please share the steps how you patched it?

I was doing some patching myself, but the only things I was able to enable were vMedia and some BMC setting such as NTP.
Rough steps which I have done (on Ubuntu 19.04):

0) Install required packages
Code:
root@Linux# apt install git build-essential zlib1g-dev liblzma-dev python-magic bsdmainutils flashrom binwalk
1) Read the BMC flash with flashrom (i have CH341 SPI flash reader/writer)
Code:
root@Linux# flashrom --programmer ch341a_spi -c "MX25L12835F/MX25L12845E/MX25L12865E" -r foxconn-purus_bmc-0.0.65535.bin
flashrom  on Linux 5.0.0-29-generic (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Found Macronix flash chip "MX25L12835F/MX25L12845E/MX25L12865E" (16384 kB, SPI) on ch341a_spi.
Reading flash... done.
2) Binwalk should show us contents of the BMC flash file:
Code:
root@Linux# binwalk foxconn-purus_bmc-0.0.65535.bin

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
111052        0x1B1CC         U-Boot version string, "U-Boot 1.2.0 (Mar 23 2012 - 17:57:52) Avocent (0.0.24) Purus-PanguA-8MB/112MB"
112208        0x1B650         CRC32 polynomial table, little endian
262144        0x40000         JFFS2 filesystem, little endian
1048576       0x100000        uImage header, header size: 64 bytes, header CRC: 0x7977C726, created: 2012-03-23 10:02:45, image size: 1690327 bytes, Data Address: 0x40008000, Entry Point: 0x40008000, data CRC: 0xC37ACFDC, OS: Linux, CPU: ARM, image type: OS Kernel Image, compression type: gzip, image name: "arm-linux"
1048640       0x100040        gzip compressed data, maximum compression, has original file name: "vmlinux.bin", from Unix, last modified: 2012-03-23 10:02:44
3145728       0x300000        Squashfs filesystem, little endian, version 3.1, size: 11684842 bytes, 1691 inodes, blocksize: 131072 bytes, created: 2012-04-16 03:10:30
3) get Firmware Mod Kit to extract and rebuild BMC after edits
Code:
root@Linux# git clone https://github.com/rampageX/firmware-mod-kit.git
root@Linux# cd firmware-mod-kit
4) Copy BMC ROM file into the folder firmware-mod-kit

5) extract firmware (extracted firmware will be present in fmk subdirectory)
Code:
root@Linux# ./extract-firmware.sh foxconn-purus_bmc-0.0.65535.bin
6) go to folder with BMC WebGUI files:
Code:
root@Linux# cd fmk/rootfs/usr/local/www
7) I have uncommented some lines corresponding to NTP (Time) and vMedia in file bmctree.html which is used to generate GUI menu.

8) the subdirectory software contains JAVA files for vMedia and vKVM functions. Foxconn Purus BMC was missing files for several platforms (such as Linux64...). I have copied them from extracted Gigabyte GA-7PESH2 BMC ROM as this board shares the same BMC chip (AST2300) and same vendor of BMC software (Avocent).

9) repack the edited firmware (you need to be in base firmware-mod-kit folder). The output file is "fmk/new-firmware.bin"
Code:
root@Linux# ./build-firmware.sh
10) flash the modified BMC file:
Code:
root@Linux# flashrom --programmer ch341a_spi -c "MX25L12835F/MX25L12845E/MX25L12865E" -w new-firmware.bin
You are close, I found the firmware hash a config which control vKVM, and foxconn hardcode it to false, and I will post it later
 

chraac

New Member
May 5, 2019
8
0
1
Just for the reference, I was able to successfully use 32GB LRDIMM 1866MHz modules in the Foxconn server. The server works fine even with just 1 DIMM when 2 CPUs are present. Right now, I have 2 DIMMs (1 per CPU).
The second SFP+ seems to be missing all the electronics (even leds are not soldered). It is not detected by OS.



That's amazing news. Could you please share the steps how you patched it?

I was doing some patching myself, but the only things I was able to enable were vMedia and some BMC setting such as NTP.
Rough steps which I have done (on Ubuntu 19.04):

0) Install required packages
Code:
root@Linux# apt install git build-essential zlib1g-dev liblzma-dev python-magic bsdmainutils flashrom binwalk
1) Read the BMC flash with flashrom (i have CH341 SPI flash reader/writer)
Code:
root@Linux# flashrom --programmer ch341a_spi -c "MX25L12835F/MX25L12845E/MX25L12865E" -r foxconn-purus_bmc-0.0.65535.bin
flashrom  on Linux 5.0.0-29-generic (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Found Macronix flash chip "MX25L12835F/MX25L12845E/MX25L12865E" (16384 kB, SPI) on ch341a_spi.
Reading flash... done.
2) Binwalk should show us contents of the BMC flash file:
Code:
root@Linux# binwalk foxconn-purus_bmc-0.0.65535.bin

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
111052        0x1B1CC         U-Boot version string, "U-Boot 1.2.0 (Mar 23 2012 - 17:57:52) Avocent (0.0.24) Purus-PanguA-8MB/112MB"
112208        0x1B650         CRC32 polynomial table, little endian
262144        0x40000         JFFS2 filesystem, little endian
1048576       0x100000        uImage header, header size: 64 bytes, header CRC: 0x7977C726, created: 2012-03-23 10:02:45, image size: 1690327 bytes, Data Address: 0x40008000, Entry Point: 0x40008000, data CRC: 0xC37ACFDC, OS: Linux, CPU: ARM, image type: OS Kernel Image, compression type: gzip, image name: "arm-linux"
1048640       0x100040        gzip compressed data, maximum compression, has original file name: "vmlinux.bin", from Unix, last modified: 2012-03-23 10:02:44
3145728       0x300000        Squashfs filesystem, little endian, version 3.1, size: 11684842 bytes, 1691 inodes, blocksize: 131072 bytes, created: 2012-04-16 03:10:30
3) get Firmware Mod Kit to extract and rebuild BMC after edits
Code:
root@Linux# git clone https://github.com/rampageX/firmware-mod-kit.git
root@Linux# cd firmware-mod-kit
4) Copy BMC ROM file into the folder firmware-mod-kit

5) extract firmware (extracted firmware will be present in fmk subdirectory)
Code:
root@Linux# ./extract-firmware.sh foxconn-purus_bmc-0.0.65535.bin
6) go to folder with BMC WebGUI files:
Code:
root@Linux# cd fmk/rootfs/usr/local/www
7) I have uncommented some lines corresponding to NTP (Time) and vMedia in file bmctree.html which is used to generate GUI menu.

8) the subdirectory software contains JAVA files for vMedia and vKVM functions. Foxconn Purus BMC was missing files for several platforms (such as Linux64...). I have copied them from extracted Gigabyte GA-7PESH2 BMC ROM as this board shares the same BMC chip (AST2300) and same vendor of BMC software (Avocent).

9) repack the edited firmware (you need to be in base firmware-mod-kit folder). The output file is "fmk/new-firmware.bin"
Code:
root@Linux# ./build-firmware.sh
10) flash the modified BMC file:
Code:
root@Linux# flashrom --programmer ch341a_spi -c "MX25L12835F/MX25L12845E/MX25L12865E" -w new-firmware.bin

You can download my edited BMC file with vMedia and NTP enabled here:
MEGA
!!!ATTENTION: Backup your original BMC first. I am not 100% sure if this file will work on your board. Works on mine :)

  1. Use F12 tools in browser we'll find a frame call bmctree.html which show the tree of all function
  2. And there is a var name virtualEnabled get from a global config "oem_int_vkvm_status" which control the showing of vKVM pages
  3. Use some global string searching tools which can find string even in binary (PowerGREP) , we will find "oem_int_vkvm_status" was in string table of file /sbin/fullfw
  4. Use arm disasm (ida) and we can see oem_int_vkvm_status was set to 0 by funtion SetVKVMStatusupload_2019-10-31_9-41-57.png
  5. Path 0x0000E0B0 Mov R1, 0 to Mov R1, 1upload_2019-10-31_9-43-51.png
 

UFOnet

New Member
Sep 20, 2019
4
0
1
  1. Use F12 tools in browser we'll find a frame call bmctree.html which show the tree of all function
  2. And there is a var name virtualEnabled get from a global config "oem_int_vkvm_status" which control the showing of vKVM pages
  3. Use some global string searching tools which can find string even in binary (PowerGREP) , we will find "oem_int_vkvm_status" was in string table of file /sbin/fullfw
  4. Use arm disasm (ida) and we can see oem_int_vkvm_status was set to 0 by funtion SetVKVMStatusView attachment 12216
  5. Path 0x0000E0B0 Mov R1, 0 to Mov R1, 1View attachment 12217
Thank you very much for your answer. However, after disassembling my /sbin/fullfw file in IDA, the 0x0000E0B4 is already assigning 1 to register R1 (MOV R1, 1):
Screenshot from 2019-11-03 13-57-24.png
Thanks.
 

UFOnet

New Member
Sep 20, 2019
4
0
1
My original BMC is available here: original BMC
I am also attaching my original BIOS here: MEGA

After further testing, I was able to patch the vKVM in different way, I have changed CMP R3, 1 to CMP R3, 0 (at 0x0000E09C), which in my opinion changes condition to go to first part which enables vKVM. After the edit, I can see vKVM in menu, but after launching the Java vKVM app, I am getting connection failed message:
Screenshot from 2019-11-05 21-27-14.png

I am also enclosing my resulting edited BMC here: MEGA It has several settings enabled and Java apps for vKVM and vMedia are taken from Gigabyte board (vMedia works even on 64bit systems, wasnt working with original Foxconn java apps).

Could you please post your original and modified BMC please? Thanks
 

chraac

New Member
May 5, 2019
8
0
1
My original BMC is available here: original BMC
I am also attaching my original BIOS here: MEGA

After further testing, I was able to patch the vKVM in different way, I have changed CMP R3, 1 to CMP R3, 0 (at 0x0000E09C), which in my opinion changes condition to go to first part which enables vKVM. After the edit, I can see vKVM in menu, but after launching the Java vKVM app, I am getting connection failed message:
View attachment 12261

I am also enclosing my resulting edited BMC here: MEGA It has several settings enabled and Java apps for vKVM and vMedia are taken from Gigabyte board (vMedia works even on 64bit systems, wasnt working with original Foxconn java apps).

Could you please post your original and modified BMC please? Thanks
The original firmware only contains 32bit kvm client, so we must use 32bit browser to get the 32bit jar, or we can use 64bit jar found in gigabyte motherboard
 

chraac

New Member
May 5, 2019
8
0
1
My original BMC is available here: original BMC
I am also attaching my original BIOS here: MEGA

After further testing, I was able to patch the vKVM in different way, I have changed CMP R3, 1 to CMP R3, 0 (at 0x0000E09C), which in my opinion changes condition to go to first part which enables vKVM. After the edit, I can see vKVM in menu, but after launching the Java vKVM app, I am getting connection failed message:
View attachment 12261

I am also enclosing my resulting edited BMC here: MEGA It has several settings enabled and Java apps for vKVM and vMedia are taken from Gigabyte board (vMedia works even on 64bit systems, wasnt working with original Foxconn java apps).

Could you please post your original and modified BMC please? Thanks
Sorry for mistake in prev post, original SetVKVMStatus has two branch which set "oem_int_vkvm_status" to 0 or 1 via aim_config_set_int, so we must make sure this function will not set "oem_int_vkvm_status" to 0 in any condition, which is change 0x0000E0CC to "MOV R1, 1". and changed CMP R3, 1 to CMP R3, 0 will also work
upload_2019-11-7_9-53-6.png
 

Hoopla

New Member
Dec 4, 2019
1
0
1
hey all, just recently acquired one of these but I am getting no POST beeps or VGA out... before I take it home from work was hoping to confirm operation after building it into a full tower. Just curious, do these actually POST beep as normal behavior or do they silently power up. In a catch 22 cause I can't connect it to our network at work but work is where I have everything else useful for building/tinkering, was considering using the CMOS and BIOS jumpers to do full resets on them (the double (yellow) reset buttons didn't seem to help though). Any ideas?
 

pigfrown

New Member
Dec 10, 2019
1
0
1
hey all, just recently acquired one of these but I am getting no POST beeps or VGA out... before I take it home from work was hoping to confirm operation after building it into a full tower. Just curious, do these actually POST beep as normal behavior or do they silently power up. In a catch 22 cause I can't connect it to our network at work but work is where I have everything else useful for building/tinkering, was considering using the CMOS and BIOS jumpers to do full resets on them (the double (yellow) reset buttons didn't seem to help though). Any ideas?
According to this thread I found the system does beep when starting up ( Foxconn Purus server | Overclockers Forums )

I've had one of these servers for a few years now, but in the last 2 months it has started to have struggle booting and the symptoms are very similar to your problem. No VGA output.. no beeps. I can access IPMI and there is an error in the System Log about Wathdog timeouts.

When I previously had this problem the box started working again after reseating RAM, cleaning heatsinks, etc.. but I'm starting to think this was more of a random thing rather than something I did to fix it.

The box worked for another month but now I have the same issue again. I have used the jumpers to reset the BIOS and to use the Recovery BIOS, but still no beeps or VGA output. One thing I have noticed is the green LED next to the CMOS battery is constantly blinking. Unsure if this was the case when the box was working correctly.

Next I will try another PSU, but running out of ideas here.

Anyone else had similar problems and/or have any suggestions?

edit: shortly after posting this I tried booting with the minimum amount of RAM and it worked. 2 beeps on power up, 6 minute wait (some sort of watchdog timer?), then 4 beeps and BIOS screen appears. I put all the RAM back in and the box now works. My problem seems to be related to RAM.. but still not sure why there are no beeps if RAM is bad or why there is 6 minute pause in the boot sequence.
 
Last edited:

marcosag

New Member
Mar 16, 2020
2
0
1
Sorry for mistake in prev post, original SetVKVMStatus has two branch which set "oem_int_vkvm_status" to 0 or 1 via aim_config_set_int, so we must make sure this function will not set "oem_int_vkvm_status" to 0 in any condition, which is change 0x0000E0CC to "MOV R1, 1". and changed CMP R3, 1 to CMP R3, 0 will also work
View attachment 12263
Hello @chraac,

I also bought a Foxconn Purus.
Can I just download your firmware and install it to get 64bit vKVM access?

For those who get me to run vKVM, I pay 5 € PayPal :D
 
Last edited: