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
- Hostname:
- 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
- Switch user to root:
- At this point, you can disconnect the keyboard and display since SSH should be working.
Remaining setup if you want to do this manually and not with Ansible or something
Section titled Remaining setup if you want to do this manually and not with Ansible or something- 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
Running Ansible
Section titled Running AnsibleI 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
:
- Make a
playbook.yml
:
- Run
ansible-playbook -i inventory.ini playbook.yaml -K
- The password that you provide should be for
adam
, andadam
should be able to runsudo su
.
- The password that you provide should be for