Skip to content

Mini PC setup

Created: 2023-12-15 19:41:10 -0800 Modified: 2023-12-15 21:28:22 -0800

(kw: “power on boot”) (note: this requires a keyboard and monitor)

Set the machine to turn on as soon as power is received by following these instructions:

  • Boot up the machine
  • Go to UEFI firmware settings (shouldn’t need to press a key for this since a menu should show up with what to boot into, but if you do, it’s delete)
  • Choose Chipset → PCH-IO Configuration → State after G3 → Set to S0 State
  • Save and exit

Note that sudo shutdown now will still permanently power off the device; it’s just when you plug in AC power that the machine will boot (meaning it’ll turn itself back on after a power outage).

(note: this requires a keyboard and monitor)

  • Download a net-install version of Debian, e.g. 12.4.0-amd64
  • Install onto USB stick with these instructions (that includes converting the ISO to an IMG file)
  • Plug the USB drive in.
  • Go to the UEFI boot settings (just ignore Grub if you have the UEFI options)
    • Go to the “Save & Exit” menu, and under “Boot Override”, choose the USB drive
  • Choose “Install” on the Debian menu. Use defaults for everything except:
    • Hostname: mini-pc-beelink
    • Root password (use weak password just while setting it up since we’ll change it later)
    • Full name for the new user: adam
    • Username for your account: adam
    • Password for new user (use a weak password just while setting it up since we’ll change it later)
    • “Choose software to install”
      • ❌ Debian desktop environment (no need)
      • ✅ SSH server
      • ✅ standard system utilities
  • Remove USB drive
  • Reboot
  • Log in
  • Get SSH set up so that we can ditch the keyboard
    • Switch user to root: su
    • vi /etc/ssh/sshd_config
    • Search for PasswordAuthentication and enable it
    • Run systemctl restart sshd
    • Type ip a to get local IP address
    • Then, from macOS:
      • ssh-copy-id adam@192.168.0.154
    • Then you can SSH with ssh adam@192.168.0.154
    • Then, after you’re able to SSH, disable PasswordAuthentication
      • vi /etc/ssh/sshd_config
      • systemctl restart sshd
  • At this point, you can disconnect the keyboard and display since SSH should be working.
  • Set a static IP through the router. If my current router doesn’t support this, then set it through the machine itself.
  • Add yourself to sudo and install a bunch of stuff
    • su -
      • (this starts a login shell so that you’ll have the right environment, otherwise usermod won’t be usable)
    • usermod -aG sudo adam
    • Change to strong passwords for “root” and “adam” now: passwd (use a password manager)
    • Note: this next step is done by Ansible, but feel free to run it anyway:
      • apt install sudo btop htop screen curl git vim unzip build-essential

I use Ansible to set up the machine for Abbott (see the scripts here). At the very least, it can install programs like bat that I use everywhere.

  • Make an inventory.ini:
[minipc]
192.168.0.212
  • Make a playbook.yml:
- name: Set up mini PC
hosts: minipc
become: yes
tasks:
- name: Install packages
ansible.builtin.package:
name:
- sudo
- btop
- ripgrep
state: present
  • Run ansible-playbook -i inventory.ini playbook.yaml -K
    • The password that you provide should be for adam, and adam should be able to run sudo su.