Skip to content

Instantly share code, notes, and snippets.

Last active November 23, 2021 06:59
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
Star You must be signed in to star a gist
What would you like to do?
Gigabyte BXBT-1900 as a HTPC

Using a Gigabyte BXBT-1900 as an HTPC

Gigabyte mini PC with Intel Baytrail J1900 Celeron.

NOTE: I do not endorse the use of this machine as an HTPC. It's way too underpowered for that. Over time, I have found that a non-mobile i5 with 4 cores is the absolute minimum hardware required for an HTPC.

4 core CPU, but weak GPU. Old tech released in 2014, optimized for Windows 8.

Known for locking up without warning. That condition supposed to have been fixed by BIOS F8 (03/02/2016).

Mine had BIOS F8 already installed (which is good, because I've been unable to get it to boot off USB stick). I added 4G DDR3 SODIMM(1.35v) and 64G Sandisk SSD. O/S installed is Ubuntu 18.04 desktop.

In my testing locked up during playing of Vimeo video at 720p and higher resolution. Also experienced stuttering audio on playback of both video and audio files.

The following took me a few weeks to research and test. The system would have been unusable without these changes.

Note: Framerates for video played through browser at 720p and above are still sub standard.

BIOS Settings

Latest advice for avoiding the locking problem on Ubuntu 16.04 found here:

Recommended this config in the BIOS (hit F2 or DEL during system start to access):

BIOS Version: F8 
CPU SMART FAN Function: Enabled [fan controller]
CPU FAN Fail Detect: Disabled [HD video performance]
Wake system from S5: Disabled [no sleeping!]
Intel Virtualization: Disabled [HD video performance]
EIST: Disabled [EIST is Intel SpeedStep: HD video performance]
CPU C state Report: Disabled [helps prevent lock-up]
SATA Mode: AHCI Mode [legacy /OS SATA compatibility] 
SATA Port: KINGSTON SV300 (120.0GB) 
CSM Support: Enabled [legacy O/S UEFI compatibility module]
LAN PXE OpROM: Disabled [prevent PXE boot]
DVMT Pre-Allocated: 512M [HD video performance]
Onboard Audio: Enabled 
Onboard LAN: Enabled  
OS Selection: Windows 7
ERP Lowest Power State Mode: Enabled [prevents sleep mode, keeps HDMI signal alive]
Restore AC Power Loss: Power Off 
Secure Boot: Disabled [Ubuntu can't boot if enabled]
Secure Boot Mode: Standard [Secure Boot not required]
Fast Boot: Enabled
XHCI Hand Off: Enabled [any other setting prevents system poweroff]

See related articles on performance under FreeBSD and poweroff issue:

Kernel configuration

Per the kernel mailing list (, also add the following to GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_idle.max_cstate=1"

Then run


and reboot.

Pulseaudio configuration

Looks similar to Add the following to the end of the line "load-module module-udev-connect" in /etc/pulse/


so the line looks like:

load-module module-udev-connect tsched=0

In addition, edit /etc/pulse/daemon.conf to add the following:

; realtime-scheduling = yes
realtime-scheduling = no

After making changes to pulse config, run the following as user (not root or sudo root) to restart pulse:

pulseaudio -k


I disabled NetworkManager and configured for traditional (ifupdown) networking in an effort to get the system to boot without the TV/monitor turned on. That didn't fix the problem, but networking was more reliable. This is for hardwired ethernet only. If you have to rely on wifi for connectivity, stick with NetworkManager.

  1. Install ifupdown (disabling netplan) and configure /etc/network/interfaces.
$ sudo apt install ifupdown
$ sudo reboot
# /etc/network/interfaces
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
auto enp3s0
iface enp3s0 inet static
  1. Mask systemd-resolved (& recreate /etc/resolv.conf).
$ sudo systemctl stop systemd-resolved
$ sudo systemctl mask systemd-resolved
$ sudo rm /etc/resolv.conf
# /etc/resolv.conf

(We've got a pair of BIND servers here at the house, Google DNS is our fallback)

  1. Disable NetworkManager if installed and enabled.
$ sudo systemctl stop NetworkManager
$ sudo systemctl disable NetworkManager
$ sudo systemctl mask NetworkManager
$ sudo reboot
  1. Install and configure chrony (which will disable systemd-timesyncd)
$ sudo apt install chrony
$ sudo vi /etc/chrony/chrony.conf

The defaults will work fine for a desktop that doesn't need a local time server, but I like to at lease replace the ubuntu servers with the local counterparts

# pool        iburst maxsources 4
# pool iburst maxsources 1
# pool iburst maxsources 1
# pool iburst maxsources 2
server iburst
server iburst
server iburst
server iburst
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment