Monday, September 17, 2018

Install Solus on Old Mac Mini (late 2009)

This is part of a series of post on installing various Linux distribution on old Mac Mini 2009. Surprisingly, Solus is one of the successful installation. The system could not installed the wifi driver but we managed to work out the solution on building the driver. 

Preparing USB Drive

Solus suggested we use Etcher to burn the image to USB. We manage to burn the iso image using Etcher.

Booting Up Solus

As usual, boot up the USB driver using option key (alt key). Select to try Solus and the system will boot into Solus.

Installing Solus

On the desktop double click Install OS as shown below:

Once the installation wizard is brought up, the following screen appear:

Select the language of your choice as shown below.

Click Next to continue.

This screen allows the system to auto-detect your location. Usually, we skip this part. Click Next to continue.

Select a keyboard layout and click Next.

Select the desire time zone and click Next.

Over here, we set to erase entire disk and install a fresh copy of the OS. Click Next.

We usually do not use LVM volume. Leave it blank and click Next.

We can set the host name and also set the boot loader. For Mac Mini use ESP.

Create the default user with user name and password. Click Next when done.

This screen will show what you have configured. Double check the user name and click Next when ready.

The wizard will show the details of your setup. Confirm everything and click Install when ready.

This pop-up will confirm with the installation. Click Ok when ready.

The system will proceed to install and configure the system. It will take quite a while. Once the installation is completed, the following screen appear.

Restart the system when ready.

Post Installation Setup

System Update

We can use the software app to update the system. Alternatively, we can use the following update command:

sudo eopkg upgrade

Install SSH Server

To install SSH server use the command below:

sudo eopkg install openssh-server

To start the service use the command below:

sudo systemctl start sshd

To activate the service on boot use the command below:

sudo systemctl enable sshd

Install RealVNC Server

To install RealVNC, download the generic package from RealVNC website. Unzipped and extract the package into a folder. Then, navigate into the folder using the command:

cd VNC-Server-6.3.1-Linux-x64-ANY/VNC-Server-6.3.1-Linux-x64

To install RealVNC use the following command:

sudo ./vncinstall

To start and enabled service on boot, use the command below:

sudo systemctl start vncserver-x11-serviced.service
sudo systemctl enable vncserver-x11-serviced.service

Please note that if we configure the license from the wizard, the system could not complete the registration due to insufficient privilege. Apparently, the wizard could not ask for a privilege password. Use the following command to run the wizard as an administrator

sudo vnclicensewiz

Install Broadcom Wifi Driver

As mentioned at the top of the post, Solus OS did not provide old Broadcom wifi driver, we have to build ourselves. We use the build solution provide the following website. 

To build the driver, first we need to install all the necessary packages. Install the following packages:

sudo eopkg it -c system.devel -y
sudo eopkg it linux-current-headers -y
sudo eopkg it linux-lts-headers -y

Next, we need to download and install the b43-fwcutter. Please note that it is better to use root privilege for the task:

cd Downloads
sudo su
# Extract the fwcutter files
tar xjf b43-fwcutter-018.tar.bz2
cd b43-fwcutter-018
# Use make to build fwcutter
make install
cd ..

Reboot the system when done.

After the system rebooted, we can download the drivers:

cd Downloads
sudo su
export FIRMWARE_INSTALL_DIR="/lib/firmware"
tar xjf broadcom-wl-5.100.138.tar.bz2
b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" broadcom-wl-5.100.138/linux/wl_apsta.o

Reboot the system again.

Finally, to activate the wifi driver, use the command below:

modprobe b43

To enable and activate the driver on boot, use the command below: 

echo "b43" | sudo tee /etc/modules-load.d/b43.conf


Once we fixed the driver issue, the system is actually pretty stable. Additional software can be installed from the software installation app.


Friday, September 14, 2018

Install RealVNC on MX Linux

We encounter problem when installing RealVNC server on MX Linux. In this post, we are going to highlight the issue we encounter and our workaround solution.


First, we would like to introduce some background on MX Linux. MX Linux still believes in System V to manage software services. While most distribution have migrated to systemd, MX Linux still relies on init script to run services. However, MX Linux still install systemd in the OS but it disable systemd by default.


We encounter issue when we download and install RealVNC server. The software packages installed successfully, but the software configure the server services in systemd file. This is because the software packages detects that systemd was installed and therefore, it assumes that systemd is active. We could not force the software to configured in init script.

Workaround Solution

We manage to get the software to generate the init script by removing systemd from MX Linux. This action also breaks the system. We use a virtual machine to generate the init script and destroy the virtual machine.

Download the service you want or you can download both files.  Place these files under /etc/init.d/.

To start RealVNC services use the following command:

/etc/init.d/vncserver-x11-serviced start

To enable service when system bboots use the command below:

update-rc.d vncserver-x11-serviced defaults

Please refer to RealVNC site for further information.


Thursday, September 13, 2018

Introduction to Docker Series

We have written a series of posts introducing the basics of docker. We focus on working with docker and creating image. We did not cover scalable deployment using docker.

Please refer to the following post:
Introduction to Docker - Day 1
Introduction to Docker - Day 2
Introduction to Docker - Day 3
Introduction to Docker - Day 4
Introduction to Docker Day 5
Introduction to Docker Day 6 (Final)


Wednesday, September 12, 2018

Install MX Linux on Mac Mini (late 2009)

We manage to install MX Linux successfully without any modification on the drivers. After installation, we just need to add our desired software.

The only concern is that MX Linux uses System V instead of Systemd. While MX uses init.d to kick start servcies, systemd was installed but disabled in the background. This cause confusion when we install some software packages. These software packages detects systemd was installed and configure the software services using systemd file. This scenario happened when we try to installed RealVNC server. There're workaround to resolved this issue.

Preparing USB

We download MX Linux iso image from the website. MX Linux is a variant of Debian. Once we downloaded the image, we burn the iso image to USB using Etcher. For those who need a tutorial for burning image to USB please refer to the Ubuntu tutorial.

Installing MX Linux

Once we booted into the live image, we can test the OS without installing the system. To install MX, double click the installation icon on the top left corner.

Once the installation wizard is launched, the following screen will appear:

Click Next to proceed.

Select the target drive in 1a. We can use partition tools to remove old partition if we are using an existing drive.

For 1c, we choose to auto-install using entire disk. Click Next when done.

A pop-up will ask if it is ok to format the entire disk. Click Yes.

The system will start installing files. Once the files are copied and installed, the following screen will appear.

The system ask us to select the boot method. Select ESP for Mac Mini system. Click Next.

A pop-up will appear asking to confirm the location of  bootloader. Click Yes.

Next, we are asked to select our host name. Enter your preferred computer name. Click Next when ready.

The screen above allow us to set the keyboard layout, time format, time zone and we can also enable or disable services. Click Next when ready.

For this screen we set default user and password including the root password. Click Next when done.

This screen appear after the configuration, click Finish.

A pop-up appear for us to confirm reboot. Reboot the system when ready.

Post Installation Setup

System Update

To perform system update, we can use the software app or use the following command:

sudo apt update
sudo apt-get upgrade

Please note that software upgrade could not be perform from the command line. Use the software update app instead.

Installing Chrome

Google Chrome website and download Chrome. Next, open a terminal and navigate to where the downloaded package is located. Use the command:

sudo apt install ./<google-chrome-packages.deb>

Installing OpenSSH Server

To setup SSH server, use the following command to configure and install OpenSSH:

sudo apt-get install openssh-server

System V vs Systemd

Systemd was installed in MX Linux but it was disabled by default. MX Linux still reply on System V to manage software services. This does not create much problem except that some software packages created the systemd file instead of init script.

We can boot into MX Linux with systemd enabled by choosing an image with systemd enabled from the boot loader. However, MX Linux with systemd is not quite stable and it hangs a  few time.

Install RealVNC

We have a problem when installing RealVNC. Please refer to our other post for work around solution.

Related Post

Please also check out the main post on re-purposing old Mac Mini.  This post also include the installation of Ubuntu on Mac Mini. We have also include hardware specification and other consideration in the main post.

Please also check out the summary result of testing various Linux distribution on Mac Mini (late 2009).
Install Linux on Mac Mini (late 2009) Result Summary


Tuesday, September 11, 2018

Install Antergos on Virtual Machine

We do not have our luck when installing Antergos on old Mac Mini (late 2009). Same as other Arch Linux system, the system keeps having soft lock and hangs. While we manage to stabilized the system after upgrading the video driver and kernel in Manjaro. We could not perform such upgrade in Antergos. So we decided to test Antergos using Virtual Box.

The main advantage of Antergos is that we can use the same iso image to install different desktop environment. 

Preparing USB or ISO Image

If you are going to install on a physical machine, you can burn the iso image to an USB drive using command dd. For virtual machine, we just need to attached the iso image to the virtual CD-ROM.

Preparing Virtual Machine

To install Antergos into virtual machine, please make sure that we have a minimum of 10GB virtual HDD space. It is best to set the virtual HDD size to at least 20GB. Otherwise installation will failed.

Installing Antergos

Once we boot into the iso image, we are given a choice to start installation or boot into the live image. Usually, we select to boot into live image. Once the system is loaded, the following screen will appear.

Select Install It.

Select the language and click >.

This screen will make sure that we have all the necessary hardware requirement before we can proceed with the installation. Click >.

This screen allows us to set locale using our location information. Click >.

Next select the time zone. Click >.

Over here, we choose the keyboard type. Click >.

This screen allow us to select the desktop environment of our choice. We choose Deepin instead of default Gnome. Click > when ready.

Click on the lower left corner to show advanced features. After that select the software you want. The screen above and the screen below are our choice of software packages. 

Click > after you have selected the software.

This screen allow us to manage the package mirrors. Usually we leave it as default. Click > when done.

This screen allows us to choose to install the OS by erasing the entire HDD or we can install the OS alongside other OS. Click >.

On this screen we got to select the HDD. Click > when done.

We can confirm installation summary before we begin installation.

On this screen we set the host name and the default username. Click >. The installation will proceed. 

Once installation is completed. we are given a notice to reboot the system. Reboot the system when ready.

Post Installation

As usual, post installation involves in updating the system and installing the desired software.

Related Post

Please also check out the main post on re-purposing old Mac Mini.  This post also include the installation of Ubuntu on Mac Mini. We have also include hardware specification and other consideration in the main post.

Please also check out the summary result of testing various Linux distribution on Mac Mini (late 2009).
Install Linux on Mac Mini (late 2009) Result Summary


Monday, September 10, 2018

Install Linux on Mac Mini (late 2009) Result Summary

We started out to install various Linux distribution on our old Mac Mini (late 2009). We have tried many Linux distribution. Most of the Linux distribution installed without any major issue. However, there are issue and problems to solved along the way.


The most successful distributions are Debian/Ubuntu class of Linux. You can installed Fedora or CentOS if you are willing to give up the wifi capabilities. Alternatively, you can install the latest Wifi-USB adapter or if you have the time, you can attempt to build the Broadcom driver from scratch. This is due to the lack of drivers. We have issue with Arch Linux distributions on Mac Mini. It hangs frequently. We don't think it is hardware issue since other distributions works fine.

We have tried many Debian/Ubuntu class of Linux distribution. Debian, MX Linux and Elementary OS are the most successful installation. Ubuntu and Linux Mint have intermittent wifi connection issue.

Related Post

Main Post

Please check our the main post on re-purposing old Mac Mini.  This post also include the installation of Ubuntu on Mac Mini. We also list down the hardware specification of the Mac Mini and other consideration in the main post.
Revive Old Mac Mini (2009) with Linux

Successful Installation

Elementary OS: Elementary OS is our most successful implementation. Please note that the UI of this OS resembles Mac.

MX Linux: We have no major issue with MX linux. In fact we do not need to do anything for drivers. It works after installation and updates. However, the developer still believes in system V. Systemd is installed but disabled. This cause problem where some software packages configure systemd file instead of init.d file. Other than systemd and system V issue. It works perfectly.   
Install MX Linux on Mac Mini (late 2009)

Debian OS (KDE Plasma): We tried KDE desktop since most Linux distro install Gnome as default. We are quite tired of Gnome. Installation of Debian did not post major problem other than it could not detect wifi driver. Installation of the driver afterwards is successful without any intermittent connection problem. Only issue is that KDE Plasma take up more CPU and RAM resources.
Install Debian on Old Mac Mini (late 2009)

Intermittent Wifi Connection  

Ubuntu 18.04: No major issue except intermittent wifi connection. 

Linux Mint 19: We have have pretty good success in Linux Mint. The only minor problem that bug us is the intermittent connection on wifi.

Use Without Wifi

Cent OS 7: Cents OS 7 is much more stable than Fedora, however, there is no Broadcom driver. We can either build the driver ourselves using make or we use another Wifi Adapter.
Install CentOS 7 on Old Mac Mini (late 2009)

Fedora 28: Fedora is our least successful implementation. 

Try at Your Own Risk

Manjaro: Manjaro is our next least successful implementation. It hangs frequently. we manage to improve the condition so that it hangs less frequently.

Antergos: We have no luck in this distribution. It is worst than Manjaro. At least we can stablized Manjaro. Antergos keeps hanging.
Install Antergos on Virtual Machine


Friday, September 7, 2018

Install CentOS 7 on Old Mac Mini (late 2009)

This installation is also one of the less successful installation. However, we manage to get it work without wifi enabled. For those of you who want to use wifi, we suggest to use an USB wifi adapter.

Main Issue

The main issue is with the Broadcom wifi driver. Mac Mini (late 2009) uses Broadcom wifi chipset and thus we required Broadcom drivers. However, Broadcom drivers are not open sourced. This is in conflict to the open source principal adopted by the Red Hat Community.  In summary, there will be no rpm build for Broadcom drivers. We have to compile and build the package ourselves. We have attempted to compile our driver, but we encounter many dependencies issue. Since there are many Linux distribution that works, we decided not to waste our time on building the driver.

Another main issue we encounter is the ethernet driver. Mac Mini uses Nvidia ethernet chip for the network port. The latest version of CentOS has stop supporting these old network drivers. Therefore, CentOS was installed without any network drivers or network connection. However, there is a community created repo that still supply the driver. However, manually download and installing the driver is also difficult because of dependency issue. What we do is to use another USB wifi adapter to establish a temporary connection and  install the necessary driver.

Preparing USB

When we download Gnome Live iso image, we could not convert it into bootable USB. We tried Fedora Media Writer, dd command and Etcher software without any success. We only manage to use the Live iso image for virtual machine installation. For installation on Mac Mini, we downloaded the DVD iso instead. Once we download the DVD iso, we can burn into USB using Fedora Media Writer.

Installing CentOS

Booting the USB did not present much problem. For DVD iso, there is no live image, we proceed to installation from the first screen.

Select Install CentOS 7.

For the graphical install wizard, select the language of choice. Click Continue when done.

The system will bring us to the main installation summary. Most of the item are populated for us but we can change them according to our preference. The objective is to remove all red message before we can begin installation.

First, check the localization setup and change according to your preference. Next open software selection. The following screen appears.

The default is minimal install, but we need to install a full desktop. Select Gnome Desktop on the left table and choose your preferred program on the right table. The table below shows our choice.

Click Done when ready.

The system will check with our local media and confirm our software selection.

Once the software section is ready, we proceed to fix the hard disk. Please note that we would not get the screenshot on the actual PC. We are using similar screenshot on virtual machine. So the drive information is not accurate. 

Usually for Fedora class of OS, we would preferred customized partition. we select manual configuration and click to ask system to automatically partition for us using standard partition instead of LVM. LVM is meant for multiple drive environment which is not useful for our use case. 

Once everything is ready (without any red message), we can proceed with installation. Please take note on the network section. We should supply the network driver if we have one. Otherwise we will fix the network issue later. Click Begin Installation.

While the system is installing, we can set the root password and create a user. Select Root Password.

Enter the root password and click Done when ready. Click User Creation.

Enter the user information and password. Click Done when ready.

The system will continue installation.

Once the installation is completed, we will be asked to reboot the system. Click Reboot when ready. After the system is rebooted,  we need to accept the user license at the beginning stage.

Click on Licensing. Check the acceptance box and click Done.

We have the last opportunity to add network driver. Click Finish Configuration when done. Then we are ask to login . After we have login, the following wizard appear.

Select the language and click Next.

Select the keyboard and click Next

Enable location service if desired. Click Next.

We can add online services. However, we usually do it later. The final ready to go page appear as below.

Once we click Start Using Cent OS, the following get started page appear.

Explore the tutorial if you are first time user. Close the page when done.

Post Installation Setup

Fix Network Driver

Before we can do any patches, we need to resolve the network driver issue. As mentioned at the top of the post, Red Hat has officially stop supporting old Nvidia network driver. We need to install the driver from a community supported EL repo (elrepo). For Nvidia driver, the community named the package as kmod-forcedeth.

We have tried to download and install the driver but we encounter many dependencies issue.  Once solution is to set the USB drive as a local repo. Then we can install the downloaded driver. Please search the web on how to enable local repo using USB drive. We did not use this method because it is too time consuming for us. We use another common USB adapter to enable network temporary.

We perform update, enable repo and install the network driver using the procedure below:

Using the following command to update system

sudo yum update -y

Next we enable EL Repo that supports old network drivers. You can find the inform at

Use the following command to install and enable the repo:

rpm --import
rpm -Uvh

Before we install the driver, we also enable EPEL repo for additional packages:

yum install

Finally, we install the package that contains Nvidia network drivers. Using the command below to install:

sudo yum install -y kmod-forcedeth

After installation, verify that the ethernet port is active and connected. Reboot the system to confirm. Once we verified that the lan port is ready, we can remove the USB adapter.

Enable Repo

CentOS only enable the main repo. We have to enable all third party repo manually. Use the following procedure to enable repo. We repeat the repo procedure for those who skip the network section.

Enable ELRepo

rpm --import
rpm -Uvh

Enable EPEL repo

yum install

Enable RPM Fusion (Multimedia stuff)

sudo yum localinstall --nogpgcheck

Once repos are enabled, perform a system update.

Install Google Chrome

We would not install Chrome from the web, so we download and save the file. Next we use terminal and navigate to the location of the file. Use the command to install Google Chrome:

sudo yum install ./google-chrome-stable_current_x86_64.rpm

Install VLC Media Player

Use the command below:

sudo yum install vlc

Install ExFat Filesystem

ExFat File System is a Microsoft developed file system that fixed the size limit on FAT32. We can search for related package using the command below:

sudo yum info *exfat*

The search result shows that 2 package are related to exFAT. We need to install both of them. They are exfat-utils and fuse-exfat. Use the following command to install them:

sudo yum install -y fuse-exfat exfat-utils

Fix Bluetooth Audio Problem

For CentOS 7, we can connect Bluetooth headset but we could not enable the audio. We only need to install the audio controller using the command below:

sudo yum install pavucontrol

Install Plex Media Server

Similarly, we need to download Plex Media Server rpm version. Once it is downloaded, use the command to install:

sudo yum install ./plexmediaserver-

After installation, there is no software icon that lead us to the server. We need to start and enable the server using the command below:

systemctl start plexmediaserver
systemctl enable plexmediaserver

Next, we need to navigate to the server using the web address

Related Post

Please also check out the main post on re-purposing old Mac Mini.  This post also include the installation of Ubuntu on Mac Mini. We have also include hardware specification and other consideration in the main post.

Please also check out the summary result of testing various Linux distribution on Mac Mini (late 2009).
Install Linux on Mac Mini (late 2009) Result Summary