Last year my parents upgraded to a new 27" iMac, and honestly I don’t blame them. The past decade had not been kind to that machine. What once felt like a pretty reasonable home computer solution was now glacially slow and infuritating. However I had fond memories with it as a kid so when I realized they still had the computer when coming in town for the holidays I figured I could get some more mileage out of it.

I was already aware of how annoying the upgrade procedures were for these models so I ruled that out. And I wasn’t particularly enthused about spending money on an over decade old machine given that I already had a laptop and desktop of my own (the latter of which is in dire need of an upgrade anyways..) so I decided to turn it into an all-in-one home server.

Installing Linux

Nowadays, I primarily use my 2021 14" M1 Pro as my daily driver and as much as I enjoy MacOS (sometimes) I knew I could get some extra mileage from the hardware if I installed Linux. Historically I have pretty much exclusively used Debian based distros but after a horrible experience with Pop-OS package manager nuking itself every upgrade cycle and Ubuntu’s annoying ‘Ubuntu Pro’ tty advertisements I figured I’d branch out. My first thought was to try out Arch but I didn’t want to spend all day on the installation so I figured I’d try Fedora Server. With how much little RAM I had I didn’t want to waste some of it on a DE if I was just going to be ssh’ing in anyways.

The procedure was as simple as flashing a USB drive as usual and holding down the option/alt key while it booted up and selecting the drive as the boot option.

neofetch image

Much to my surprise, almost everything worked out of the box! Although to be fair at the time of installation the hardware was already almost 12 years old.

I quickly installed vsftpd

dnf install vsftpd -y

and copied all of my music and books over.

It’s worth noting that wih Fedora Server SELinux is enabled by default. It will block any attempt to read/write via ftp. You can add rule exceptions or disable SELinux entirely easily through the web portal on port 9090.

Issues and Troubleshooting

I did run into a few annoying issues though. The first noticeable problem was the mounted /dev/mapper/fedora-root partition was only 15G despite /dev/sda3 having over 440G more available! Initially I thought I had messed up somewhere during the installer but apparently that is normal LVM behavior in fedora. I fixed this with a simple command

lvresize -L +440G --resizefs /dev/mapper/fedora-root

Since I couldn’t find a way to turn the monitor off I figured I may as well try to make it useful. I found a tool to stream youtube videos in the terminal.

git clone https://github.com/pystardust/ytfzf

and follow the build instructions in the README.

Setting up a bluetooth keyboard in headless linux is a pain so I just stdout everything to /dev/tty0

ytfzf >> /dev/tty0

I’ve been using the display as a virtual window to distract my cat with videos of birds.

Audio

I forget if audio worked out of the box but I ended up needing to install the pipewire-pulseaudio.socket extension so I could use the pamixer utility to change the volume in the shell.

git clone https://github.com/cdemoulins/pamixer

and follow the build instructions in the README

Screen brightness

The screen brightness is stuck, however this is a known issue. After some digging I found that Fedora maintainers are aware of this and will be patched in the 6.2.7-300.fc38 kernel update.

Overall this was a pretty painless endevour and I found a free solution to backing up my music and book archives. If you find one of these machines available for cheap (or free) I’d say theyre worth picking up.