Beelink BT3 Pro II Automation Server


A post here documenting the build of a new automation server.  Specifically for Homeseer 3.
Here the "lite" Homeseer 3 automation server hardware has changed over the years for me.
1 - RPi 1 - first Homeseer 3 lite server - this device was called the Homeseer 3 Zee
2 - RPi 2 - this device was called the Homeseer 3 Zee 2
3 - Xi3 - Xi5a - modular cube computer - AMD based
4 - Pine64 - Arm based computer with 2Gb of RAM running Armbian Linux
5 - S912 Octocore ARM TVBox with 3Gb of RAM running Armbian Linux
6 - Beelink BT3 Pro II - Intel based with 4Gb of RAM - Prices vary - Amazon ~ $150, Ebay ~ $65 - $100
Personally purchased mine for $65.
This computer by default comes with Windows 10 Home edition running on a 64Gb eMMC.  I will be leaving the Windows 10 alone for time being and shrink down the partition to around 20 Gb to allow 44 Gb to run Ubuntu 18.04 Linux.
This is the second BeeLink BT3 Pro II that I am building.  First one is running fine after about a month or so.  Documenting this build here.
1 - download a live Ubuntu 18.04 desktop ISO
2 - spin a custom ISO for BeeLink BT3 Pro 2 ==> -i xubuntu-18.04-desktop-amd64.iso --atom
3 - write the ISO to a USB stick
3 - run GParted / resize Windows 10 partition
pete_c said:
 I will be leaving the Windows 10 alone for time being and shrink down the partition to around 20 Gb to allow 44 Gb to run Ubuntu 18.04 Linux.
I would advise caution about shrinking the W10 partition too small.  I've found that with updates and the like it really needs AT LEAST a 32gb partition, with 48gb being about the smallest while still allowing it 'room to work'.  
Yes with the first BeeLink I initially booted it to Windows 10, updated it and it grew to around 50 Gb.  I then removed the fluff stuff and all of the updater files and shrank it down a bunch.  Then using a Windows partition manager shrank down the partition to around 20 Gb for non use.  This part took longer than installing Ubuntu with the constant updating and rebooting of the computer.  Here primarily utilize Linux and rarely utilize Windows 10.  That said when I do use Windows 10 it spends many minutes updating and rebooting computer (way too much for me).
This time shrinking the un set up Windows 10 partition first and then writing Ubuntu on it second.  The choice to boot in to Windows will remain on the initial boot menu as a second choice.  That said Windows 10 will not be used such that I will just comment out the Windows 10 boot pieces and saved.
It is really saved to keep the WIndows License.  I did this with the old PipoX7 except that it only ran Windows 10 Home 32 bit and only had a 32Gb eMMC and 2Gb of RAM on it a few years ago.  I kept switching from Windows to Ubuntu and vice versa.  Then turned it in to a touch screen computer connecting it to a multitouch 15" wide screen monitor and SAPI speaker and a kinect and KODI for streaming live video and CCTV stuff. 
This is what the Linux lite desktop looks like running with an Oracle VB of Windows 7 embedded which is only used for Microsoft SAPI voice fonts and Homeseer Speaker dot exe.  I am giving the VB only 1Gb of RAM and 8 Gb of the eMMC.
You can VNC to the Ubuntu Desktop or RDP to the W7e.  Really do not utilize the desktop and do ssh upgrades mostly.

You can also run Homeseer 3 for windows in the W7E instance.
Here is the GParted graphical representation of the eMMC disk partitioning.
Here is a command line show of the space utilized on the eMMC drive.

ICS-BTPro:~# fdisk -l
Disk /dev/mmcblk0: 58.2 GiB, 62537072640 bytes, 122142720 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 581D11C7-2FF8-4AF3-951A-01638D9BF821

Device Start End Sectors Size Type
/dev/mmcblk0p1 2048 206847 204800 100M EFI System
/dev/mmcblk0p2 206848 239615 32768 16M Microsoft reserved
/dev/mmcblk0p3 239616 47032319 46792704 22.3G Microsoft basic data
/dev/mmcblk0p4 47032320 48648191 1615872 789M Windows recovery environment
/dev/mmcblk0p5 48648192 122140671 73492480 35G Linux filesystem

The boot entries are stored in the EFI boot which you can see in the BIOS and change if you want from Ubuntu to Windows or via GRUB.

10th of July, 2019
1 - Booted to Windows 10
2 - Installed Partition Manager
3 - shrunk down Windows 10 partitions to occupy around 20Gb of the eMMC (no updates were done)
4 - created an XUbuntu ISO on a USB stick custom ==> -i xubuntu-18.04-desktop-amd64.iso --atom
5 - booted to Ubuntu 18.04 and installed Ubuntu alongside of Windows.
6 - primary default boot will be Ubuntu and second choice will be Windows 10.
7 - updated Ubuntu 18.04 via command line:
     a - sudo su
     b - sudo apt update
     c - sudo apt dist-upgrade
8 - rebooted computer
9 - configured BIOS to boot with power
10 - sound defaulting to the HDMI port and fixed it with the following:
a - Blacklist the snd_hdmi_lpe_audio :
b - Create a file under /etc/modprobe.d with the name blacklist_snd_hdmi_lpe_audio.conf containing a single line: blacklist snd_hdmi_lpe_audio
11 - install Webmin
12 - install openssh-server
13 - adjust openssh to allow root access
14 - install Mono-complete
15 - install STunnel
16 - install Mosquitto server
17 - install Oracle Virtual Box

11th of July, 2019
Started all over with the custom ISO with updated drivers as posted above.  Easy to do.  Just write new ISO on to a USB stick, boot up and have it rewrite the build I installed yesterday.
Should have read my own notes on this build that I documented under the Arm TVBox server stuff.

12th of July, 2019
Installed Oracle Virtual box on the new computer.
1 - sudo apt update
2 - sudo apt install virtualbox
3 - installed additional virtualbox stuff...
4 - exported W7e build on Beelink running
5 - imported W7e build on new Beelink...

What a PITA this was as I installed Virtualbox 5.0 (default) and it would not work with the VB I created.

Removing VirtualBox 5.0 was a real PITA. Installed VB 6.0 and all is well and working fine now.

Might add some more voice fonts...AT&T and some others.
13th of July, 2019
Just a sound review.  Noticed too that the speaker output (headphone jack) would automagically mute when rebooting.
Using Alsamixer would unmute the speakers which is a bit of a hassle.  So a quickie review of sound configuration.
To check the sound card using a terminal type
aplay -l
This will show the controller and address for sound.
1 - Disable the HDMI sound output by:
Create a file under /etc/modprobe.d/blacklist_snd_hdmi_lpe_audio.conf
nano /etc/modprobe.d/blacklist_snd_hdmi_lpe_audio.conf
Insert the following line in the file above and save it.
blacklist snd_hdmi_lpe_audio
2 - Enable the hardware pins for sound.
nano /etc/pulse/
Enable the following line.
load-module module-alsa-sink device=hw:0,1
3 - create a script to run on boot that unmutes speakers.
cd /opt/sound
sleep 10
amixer -q set "HPO L" Playback on
amixer -q set "HPO R" Playback on

I put it in the opt /sound directory and call it

IE: /opt/sound/

Test the sound in a terminal window typing speaker-test.
14th of July, 2019

Remote control / view configuration.
1 - SSH log in with user and x windows
ssh -Y [email protected]

2 - sudo update

3 - sudo apt install vino

4 - using gsettings
5 -
# Display all the preferences
gsettings list-recursively org.gnome.Vino#
# [x] Allow other users to view your desktop
# NOTE: This setting was removed
gsettings set org.gnome.Vino enabled true#
# [x] Allow other users to control your desktop
# NOTE: Reverse Boolean
gsettings set org.gnome.Vino view-only false#
# [ ] You must confirm each access to this machine
gsettings set org.gnome.Vino prompt-enabled false#
# [ ] Require the user to enter this password
gsettings set org.gnome.Vino authentication-methods "['none']"
gsettings set org.gnome.Vino vnc-password keyring
## [x] Require the user to enter this password
# Step 1. Ask for password (NOTE: Only tested with `bash` and `zsh`)
echo -n "VNC Password: " && read -s password < /dev/tty && echo ""
# Step 2. Set the preferences
gsettings set org.gnome.Vino authentication-methods "['vnc']"
gsettings set org.gnome.Vino vnc-password "$(echo $password | base64)"
# Step 3. Clear the `$password` variable
unset password
# [ ] Automatically configure UPnP router to open and forward ports#
gsettings set org.gnome.Vino use-upnp false#
# Show Notification Area Icon
# gsettings set org.gnome.Vino icon-visibility client
# ( ) always // Always
# (o) client // Only when someone is connected
# ( ) never // Never#
6 - Disable encryption (optional)
sudo gsettings set org.gnome.Vino require-encryption false
7. Activate at startup - first as it will not be on your desktop create a desktop icon for it.
sudo cp /usr/share/applications/vino-server.desktop /etc/xdg/autostart/vino-server.desktop

sudo xfce4-session-settings
Sudo reboot and connect and you will see this:
Using remote x windows login you can look at gparted and see space utilized on eMMC.

Fix this on update:

Reading package lists... Done
N: Skipping acquire of configured file 'contrib/binary-i386/Packages' as repository ' bionic InRelease' doesn't support architecture 'i386'

add [arch=amd64] piece.

Edit /etc/apt/sources.list

deb [arch=amd64] bionic contrib
# deb-src [arch=amd64] bionic contrib

Adding playonlinux

wget -q "hxxp://" -O- | sudo apt-key add -

sudo sh -c 'echo "deb hxxp:// $(lsb_release -sc) main" >> /etc/apt/sources.list.d/playonlinux.list'

sudo apt-get update

sudo apt-get install playonlinux

To remove playonlinux

sudo apt-get remove --autoremove playonlinux
Update 4th of September, 2019
Today ran out of space using the small partitioned Windows 7 embedded.
Deleted the Windows 10 partition and added a 32 Gb SD card for the /home directory.
15th of January, 2020 Update
Box is running fine with Ubuntu 18.04, Homeseer 3 Lite, Home Assistant, Oracle 7E Virtual Box.
Tried Windows 8.1 embedded on it.  I do not like it as much as Windows 7E.
One hardware concern is that the USB 2.0 and USB 3.0 ports are on the side of it versus the back because it is so small.
Note that I switched over from the 8 core ARM S912 box here because I could run a Windows Oracle virtual box on Intel and I cannot do this on the Arm S912 box.