ASRock J5005-ITX
Introduction
The board is well named: it is a mini-ITX board, with an on-board Intel J5005 CPU. The CPU has a passive cooler mounted on top. The J5005 has integrated graphics, capable of running 4k at 60 Hz over HDMI 2.0. There are two SO-DIMM memory slots allowing for dual lane memory access. The board has 4 SATA-3 6 GB/s ports to connect HDDs or SSDs. More specifications can be found at ASRock's website.
Reasons to build a rig using this board could be the combination of:
- Low power CPU with 10 W TDP: if placed in a spacious enough case then it can be run fanless
- A CPU with SSSE3, and AES instructions, perfect for fast disk encryption, vpn connections, and encrypted wireless
- An optical S/PDIF port allows for digital connection to an external audio amplifier
- 4 SATA-3 ports provide plenty of storage opportunity
- Capable of 4k graphics: good for HTPCs
- Small ITX form factor
Hardware
Device | Make/model | Status | Bus ID | Kernel driver(s) | Kernel version | Notes |
---|---|---|---|---|---|---|
CPU | Intel J5005 | Works | N/A | N/A | 5.4.18 | Goldmont Plus microarchitecure |
Video | Intel HD Graphics 605 | Works | 00:02.0 | i915 | 5.4.18 | Integrated graphics |
Audio | Intel Device 3198 | Works | 00:0e.0 | snd_hda_intel | 5.4.18 | Realtek ALC892 Audio Codec |
SATA controller | Intel Device 31e3 | Works | 00:12.0 | ahci | 5.4.18 | 2 x SATA3 6.0 Gb/s |
SATA controller | ASMedia ASM1062 | Works | 04:00.0 | ahci | 5.4.18 | 2 x SATA3 6.0 Gb/s |
Ethernet | Realtek RTL 8111H | Works | 03:00.0 | r8169 | 5.4.18 | Gigabit LAN 10/100/1000 Mb/s |
SMBus | ASMedia ASM1062 | Not tested | 00:1f.1 | i801_smbus, i2c_i801 | 5.4.18 |
The board also sports
- 1 M.2 Key E interface, meant for a wireless card
- 1 x PCI Express 2.0 x1 Slot
Installation
The installation is per the Gentoo AMD64 handbook.
Some specific configuration options are:
- If sys-kernel/gentoo-sources is emerged with the "experimental" USE flag, then it is possible to set the processor family to "Intel Goldmont Plus"
- Enable the kernel modules for encryption using SSE3 and AES instructions, see Iwd for an example of the options to enable
- Intel graphics, configuring the drivers for generation 9
- USB support, configuring xHCI, EHCI, and UHCI
- Audio according to ALSA and optionally PulseAudio. Make sure to enable build Realtek HD-audio codec support
Kernel configuration
CPU
Intel J5005:
- marketing name: Intel® Pentium® Silver J5005 Processor
- code name: Gemini Lake
- architecture: Goldmont plus
[*] 64-bit kernel
Processor type and features --->
[*] Intel Low Power Subsystem Support
-*- Intel SoC IOSF Sideband support for SoC platforms
Processor family (Intel Goldmont Plus) --->
(4) Maximum number of CPUs
[*] Multi-core scheduler support
[*] Machine Check / overheating reporting
[*] CPU microcode loading support
[*] Intel microcode loading support
<*> /dev/cpu/*/msr - Model-specific register support
<*> /dev/cpu/*/cpuid - CPU information support
Power management and ACPI options --->
CPU Frequency scaling --->
Default CPUFreq governor (performance) --->
-*- 'performance' governor
[*] Intel P state control
[*] Cpuidle Driver for Intel Processors
-*- Cryptographic API --->
<M> Parallel crypto engine
<*> CRC32c INTEL hardware acceleration
<M> SHA1 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)
<M> SHA256 digest algorithm (SSSE3/AVX/AVX2/SHA-NI)
<M> SHA512 digest algorithm (SSSE3/AVX/AVX)
<*> AES cipher algorithms (AES-NI)
<M> Triple DES EDE cipher algorithm (x86-64)
PCI Express
Device Drivers --->
[*] PCI support --->
[*] PCI Express Port Bus support
[*] PCI Express Advanced Error Reporting support
Bus options (PCI etc.) --->
[*] Support mmconfig PCI config space access
Storage controllers
Select "AHCI SATA support" module.
Device Drivers --->
<*> Serial ATA and Parallel ATA drivers (libata) --->
[*] ATA ACPI Support
<*> AHCI SATA support
Video
The integrated video is Intel Gen 9.
Device Drivers --->
Graphics support --->
<M> /dev/agpgart (AGP Support) --->
<M> Intel 440LX/BX/GX, I8xx and E7x05 chipset support
<M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
[*] Enable legacy fbdev support for your modesetting driver
<M> Intel 8xx/9xx/G3x/G4x/HD Graphics
[*] Always enable userptr support
The required firmware is loaded automatically when the i915 driver is built as a module.
Provide configuration options for the i915 driver to enable functions of the Graphics micro (µ) Controller (GuC), the HEVC/H.265 micro (µ) Controller (HuC), as well as framebuffer compression (see here, and here for details):
options i915 enable_fbc=1 enable_guc=2
Note that enable_guc shows the kernel as tainted:
root #
dmesg | grep -iE "huc|guc|dmc|i915|drm"
[ 3.770822] Setting dangerous option enable_guc - tainting kernel [ 3.771670] i915 0000:00:02.0: vgaarb: deactivate vga console [ 3.771758] [drm] couldn't get memory information [ 3.771760] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [ 3.771760] [drm] Driver supports precise vblank timestamp query. [ 3.771831] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem [ 3.772438] [drm] Applying Increase DDI Disabled quirk [ 3.772617] mei_hdcp 0000:00:0f.0-b638ab7e-94e2-4ea2-a552-d1c54b627f04: bound 0000:00:02.0 (ops i915_hdcp_component_ops [i915]) [ 3.775721] [drm] Finished loading DMC firmware i915/glk_dmc_ver1_04.bin (v1.4) [ 4.910767] [drm] failed to retrieve link info, disabling eDP [ 4.925196] [drm] GuC communication enabled [ 4.930132] i915 0000:00:02.0: GuC firmware i915/glk_guc_33.0.0.bin version 33.0 submission:disabled [ 4.930134] i915 0000:00:02.0: HuC firmware i915/glk_huc_ver03_01_2893.bin version 3.1 authenticated:yes [ 4.931417] [drm] Initialized i915 1.6.0 20190822 for 0000:00:02.0 on minor 0 [ 4.933150] snd_hda_intel 0000:00:0e.0: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915]) [ 4.969752] fbcon: i915drmfb (fb0) is primary device [ 5.151377] i915 0000:00:02.0: fb0: i915drmfb frame buffer device
Sound
Device Drivers --->
<M> Sound card support --->
<M> Advanced Linux Sound Architecture --->
<*> PCI sound devices --->
HD-Audio --->
<M> Build Realtek HD-audio codec support
<M> Build HDMI/DisplayPort HD-audio codec support
USB
Device Drivers --->
[*] USB support --->
<*> Support for Host-side USB
<M> xHCI HCD (USB 3.0) support
<M> EHCI HCD (USB 2.0) support
<M> UHCI HCD (most Intel and VIA) support
Network
Device Drivers --->
[*] Network device support --->
[*] Ethernet driver support --->
[*] Realtek devices
<M> Realtek 8169/8168/8101/8125 ethernet support
Intel MEI
Device Drivers --->
Misc devices --->
{M} Intel Management Engine Interface
{M} ME Enabled Intel Chipsets
<M> Intel HDCP2.2 services of ME Interface
Sensors
Next to the standard Intel core temperature sensor, the board also contains a a Nuvoton NCT6796D Super I/O chip, which can be used for monitoring and fan control.
Device Drivers --->
<*> Hardware Monitoring support --->
<M> Intel Core/Core2/Atom temperature sensor
<M> Nuvoton NCT6775F and compatibles
SMBus
Device Drivers --->
I2C support --->
{*} I2C support
[*] ACPI I2C Operation region support
<M> I2C device interface
[*] Autoselect pertinent helper modules
I2C Hardware Bus support --->
<M> Intel 82801 (ICH/PCH)
Portage make.conf
Many options of Gentoo are set in /etc/portage/make.conf. Some of the key aspects are:
CFLAGS="-march=goldmont-plus -O2 -pipe"
CXXFLAGS="${CFLAGS}
VIDEO_CARDS="intel i965"
CPU_FLAGS_X86="aes mmx mmxext pclmul popcnt sha sse sse2 sse3 sse4_1 sse4_2 ssse3"