Setup OpenBSD as a daily driver using only the included, core programs. Based on OpenBSD 7.6. --- {{TOC}} ## Requirements - USB device - Ethernet connection (with active internet) - A cup of coffee The real requirements are having patience and a passion for keeping things minimal. It's important to remeber that this setup isn't the most user-friendly. There will be no config files to edit or download in this guide. We will be using the `xenodm` login manager paired with the default stacked window manager `fvwm`. And that's it. You have been warned! ## Installation Make sure you have the latest OpenBSD image formatted on a USB device (or burned to a CD if that's your cup of tea!) and that your computer/laptop is set to boot from USB via the BIOS. Also make sure you are connected to the internet via ethernet cable (don't worry, we'll setup WiFi in a minute!) Boot into the device and input the following when guided through the installer: 1. Boot from USB 2. Choose `Install` 3. Keyboard layout: `us` 4. Hostname: `x220` (or whatever you choose) 5. Network: `em0` 6. IPv4: `autoconf` 7. IPv6: `none` 8. Network interface: `done` 9. Password for root 10. Start sshd by default? `yes` 11. X Window System start with xenodm? `no` 12. Setup user? `username` (follow setup user steps) 13. Allow root ssh login? `no` 14. Timezone 15. Which disk? Use internal (`sd0` etc.) 16. Encrypt root disk? `no` 17. Use `WHOLE` disk 18. Use `AUTO` layout 19. Which disk to initialize: `done` 20. Location of sets: `http` 21. HTTP Proxy URL? `none` 22. HTTP Server? `1` (Toronto) 23. Confirm again 24. Server directory? `pub/OpenBSD/7.6/amd64` 25. Set names? `done` 26. Drink some coffee while it verifies (depends on network speed) 27. Location of sets? `done` 28. Congrats! 29. Reboot and remove USB device ## First Boot Tweaks ### User Permissions Before we do anything, we should give our main user full access via `doas`. Login as `root` and run the following: su - echo "permit nopass :wheel" >> /etc/doas.conf Now you can logout or reboot the machine. doas reboot Running any of the commands might present you with a permissions error. If that happens, simply add `doas` to the start of every command. ### Firmware Once your machine reboots, login as your created user. The next steps will help you ensure you have the latest firmware. Simply run the command: `fw_update` ### WiFi To enable wifi on your device, run the following command (filling in the proper details where need be) ifconfig iwn0 up ifconfig iwn0 scan echo "join WIFI-NAME wpakey PASSPHRASE" >> /etc/hostname.iwn0 echo "dhcp" >> /etc/hostname.iwn0 echo "inet6 autoconf" >> /etc/hostname.iwn0 echo "up powersave" >> /etc/hostname.iwn0 dhclient iwn0 Take note of the `iwn0`, as this might differ on your machine. (You can check this by running `ifconfig`) You might also need to run `doas sh /etc/netstart` after. ### Performance Boost This step is optional and targeted towards devices with batteries (laptops, IoT devices etc). Properly setup apmd: rcctl enable apmd rcctl set apmd flags -A rcctl start apmd ## Login Manager Remember when we chose `No` when the installer asked us "X Window System start with xenodm?". Well, now we want to enable that before our next reboot: doas rcctl enable xenodm Now reboot your device again. doas reboot ## The First *Real* Login ## Configs Okay, I *know* I said there wouldn't be any configs included in this guide. Frankly, you should be having zero problems working with all those defaults now that you've run through this guide! BUT - I wanted to include some *very minor* configuration tweaks that might make things a little more intuitive for newcomers. Feel free to ignore these entirely! ## Contribute I'm far from an OpenBSD expert! Please [help improve this project](https://git.sr.ht/~bt/openbased)!