Skip to main content

HP Chromebox G2 Review (As a Bitcoin Node)

·1454 words·7 mins
Chris Wiggins
Author
Chris Wiggins

I recently was looking into more hardware options to run a Bitcoin node. I really enjoy pushing the limits of tiny, low power machines. I enjoy pushing them from a performance perspective and from a cost perspective.

I have a previous post about running a Bitcoin node on a Dell Wyse 5070 thin client. However The 5070 does not accept an NVMe drive. So I went looking for other options.

HP Chromebox G2
#

The top machine is the HP Chromebox G2. (Bottom server is foreshadowing future content)

HP Chromebox G2

Enter the HP Chromebox G2. You can turn these devices into a full Linux server with a BIOS using MrChromebox. However if you don’t have a PSU and are instead using a USB-C PD PSU, make sure to read this forum post about enabling a setting in the bios, otherwise your USB-C PD might not work after you flash the system.

I was able to pick up the HP Chromebox with a Celeron 3865U, 4GB RAM, and a 32GB eMMC m.2 for $26.50. It did not come with a PSU, but these devices can also be powered with a USB-C PD power supply.

Another thing to keep in mind with the Chromebox G2: It was very difficult to get into the case. It starts with removing the sticky feet on the bottom to expose the screws, eventually the adhesive on those is going to wear out. After removing the adhesive feet, you have 10 Phillips screws to remove. There also is a lot of tape that I think is supposed to isolate components from each other.

I only have a SATA m.2 drive to test and it worked fine. After looking at the lspci I’m not 100% sure if this device can support an NVMe drive in the m.2 slow. I searched around and could only find this reddit post that says that only the i3/i5/i7 models support NVMe. If anyone has an i3+ Fizz board and can send me the lspci output, I would appreciate it.

Specs
#

CPU
#

Here is /proc/cpuinfo output for the Celeron 3865U:

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 142
model name      : Intel(R) Celeron(R) CPU 3865U @ 1.80GHz
stepping        : 9
microcode       : 0xf6
cpu MHz         : 800.026
cache size      : 2048 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 22
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb pti ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust smep erms invpcid mpx rdseed smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi md_clear flush_l1d arch_capabilities
vmx flags       : vnmi preemption_timer invvpid ept_x_only ept_ad ept_1gb flexpriority tsc_offset vtpr mtf vapic ept vpid unrestricted_guest ple pml ept_violation_ve ept_mode_based_exec
bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit srbds mmio_stale_data retbleed
bogomips        : 3600.00
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 142
model name      : Intel(R) Celeron(R) CPU 3865U @ 1.80GHz
stepping        : 9
microcode       : 0xf6
cpu MHz         : 800.014
cache size      : 2048 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
apicid          : 2
initial apicid  : 2
fpu             : yes
fpu_exception   : yes
cpuid level     : 22
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb pti ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust smep erms invpcid mpx rdseed smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi md_clear flush_l1d arch_capabilities
vmx flags       : vnmi preemption_timer invvpid ept_x_only ept_ad ept_1gb flexpriority tsc_offset vtpr mtf vapic ept vpid unrestricted_guest ple pml ept_violation_ve ept_mode_based_exec
bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit srbds mmio_stale_data retbleed
bogomips        : 3600.00
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

PCI
#

Here is lspci output:

00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 02)
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 610 (rev 02)
00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 02)
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 (rev 21)
00:15.2 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #2 (rev 21)
00:17.0 SATA controller: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] (rev 21)
00:19.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO UART Controller #2 (rev 21)
00:19.1 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #5 (rev 21)
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #3 (rev f1)
00:1c.3 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #4 (rev f1)
00:1e.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO UART Controller #0 (rev 21)
00:1e.2 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO SPI Controller #0 (rev 21)
00:1e.6 SD Host controller: Intel Corporation Sunrise Point-LP Secure Digital IO Controller (rev 21)
00:1f.0 ISA bridge: Intel Corporation Sunrise Point LPC Controller (rev 21)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
00:1f.3 Multimedia audio controller: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
00:1f.5 Non-VGA unclassified device: Intel Corporation Device 9d24 (rev 21)
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet Controller (rev 15)
02:00.0 Network controller: Intel Corporation Wi-Fi 5(802.11ac) Wireless-AC 9x6x [Thunder Peak] (rev 29)

Expansion
#

HP_Chromebox_G2_interior

Flash: The flash memory is easy to replace once you get into the system. There are screw holes for a 2242, and 2280 m.2 drive. My system worked with a SATA m.2 drive, but I am not sure if it will work with an NVMe, especially since there is no PCIe controller listed in lspci.

RAM: The Ram is easily replaced once you remove the metal cover. There are 2 DDR4 SO-DIMM Slots. According to the Intel documentation, The maximum RAM supported is 2133 MHZ and 32GB, but I bet you could put 64GB in there and it would work fine.

Second M.2 slot: There is a second m.2 slot that is supposed to be for a wireless card. This slow is a 2230 m.2 slot.

Fizz
#

No, not FizzBuzz. Fizz the Chrome board name is what the HP Chromebox G2 is based on. I first ran into this board when looking at an Acer Chromebox CXI3. The CXI3 is very similar to the HP G2, however, it has a more powerful Intel Core i3 CPU. You can read more about different Chrome boards here.

I ended up going with the HP because it was about 100% cheaper than the Acer CXI3.

As a Bitcoin Node
#

One of the things I wanted to do was see if this system could run as a Bitcoin Node. Short story, it can’t. While doing an initial block sync (IBD), the CPU was pegged at 100% and especially once the blockchain was synced 50%, the sync slowed down. I eventually gave up but I estimate it would have taken about a month to fully sync the chain, and I wouldn’t be surprised if it never synced. This is where having a Fizz board with a more powerful CPU would have helped.

So, what will I do with the server? My plan is to use it as a Home Assistant server, or perhaps as a system that will monitor other servers in my homelab.