How to run SONM Supplier on a Macbook Pro Late 2011 using dual boot method

This article discusses how to setup SONM to run on a Macbook, tested on the Macbook Pro 8,2, these directions should work for most Macbook Pros with Radeon cards. Currently SONM software is only available on Ubuntu, so in order to run SONM on a macbook, Ubuntu or a dual boot with MacOS is required, this article discusses the dual boot method.

Of course another simple solution would be to run Virtual Box inside of MacOS and then install SONM, the advantage of this method is that it allows for full use of the host machine.

Step by Step process for setting up Dual boot of macOS and Ubuntu:

Start with a fresh install of MacOS

Create Ubuntu USB live install USB

Install a proper boot manager:

Now download rEFInd from here:

https://sourceforge.net/projects/refind/files/latest/download

After downloading, extract it. Navigate to the extracted folder in terminal, and run the following command:

./install.sh

If prompted for your password, enter it. Then run:

sudo mkdir -p /EFI/refind/drivers
cp /refind/drivers_x64/ext4_x64.efi /EFI/refind/drivers/.

Reboot your MacBook with the Ubuntu USB drive inserted. The rEFInd boot menu should appear. Select the Ubuntu EFI image for boot.

When GRUB has loaded, make sure you highlight “Try out Ubuntu” boot entry and hit the “e” key to edit the boot line, in order to fix broken graphical output with standard options. Add the following lines after ”load_video”:

outb 0x728 1
outb 0x710 2
outb 0x740 2
outb 0x750 0

This will turn off the radeon GPU to avoid conflicting GPUs resulting in no output at all.

It has been reported that “load_video” is non-existent in the current install medium’s grub configuration. If this is the case for you , insert the above code after “set gfxpayload=keep” as well.

Furthermore, in the kernel line, add the following after “quiet splash”:

i915.lvds_channel_mode=2 i915.modeset=1 i915.lvds_use_ssc=0

Press F10 to boot.

Once Ubuntu has loaded (it will take a short while), select “Install Ubuntu” from the desktop. Follow the installation instructions. I created a 512 MB boot partition with ext4 starting after 128MB of free space after the MacOS partition (MacOS likes to have 128MB of free space after its partition) and the rest I used for “/”, also ext4. Assign the mount points (“/boot” for the boot partition, / for the other one).

You might want to add another partition for swap, but if you have at least 4 GB of RAM you should be alright even without.

Do not mount the MacOS partition or the EFI partition.

Setting up Ubuntu to work

Once completed, you can reboot. The MacBook will boot directly into GRUB. Now highlight the first line (Ubuntu) again and press ‘e’. Add the same lines and kernel parameters listed above.

After having logged in to gnome, start a terminal and enter the following:

sudo nano /etc/default/grub

Change the line GRUB_CMDLINE_LINUX_DEFAULT=“quiet splash“ to

GRUB_CMDLINE_LINUX_DEFAULT=“quiet splash i915.lvds_channel_mode=2 i915.modeset=1 i915.lvds_use_ss

Uncomment (remove the “#” before) the line “GRUB_TERMINAL=console” .

Exit and save changes

Now run:

sudo nano /etc/grub.d/10_linux

Locate the line : echo “insmod gzio” | sed “s/^/$submenu_indentation/”

Search for ‘gzio’ with CTRL+W in nano

Code to be entered immediately before the line with ‘gzio’ :

echo “outb 0x728 1” | sed “s/^/$submenu_indentation/”
echo “outb 0x710 2” | sed “s/^/$submenu_indentation/”
echo “outb 0x740 2” | sed “s/^/$submenu_indentation/”
echo “outb 0x750 0” | sed “s/^/$submenu_indentation/”
echo “insmod gzio” | sed “s/^/$submenu_indentation/”

Save the file, return to the terminal and run the following:

sudo update-grub
sudo apt-get update
sudo apt-get dist-upgrade

Reboot system, when the screen goes black and turns bright again, hit and hold the ALT/Option key to bring up the Apple bootloader. It will show the option ‘EFI BOOT’. Select it and rEFInd is there again. Boot into MacOS and re-run the rEFInd installation routine again in terminal:

cd <directory to which refind has been unpacked>/refind/
./install.sh

Now that you have successfully setup a dual boot, boot into Ubuntu, and setup a new account on the SONM GUI.

For details on the SONM GUI setup, see here: https://medium.com/@almondelectriccompany/how-to-use-sonm-gui-wallet-cf23e776fb45

Once you have created your wallet, use the autoinstaller script to install SONM, replacing ‘YOUR_MASTER_ADDRESS’ with the address created in the GUI :

sudo bash -c “$(curl -s https://raw.githubusercontent.com/sonm-io/autodeploy/master/sonm-auto-deploy-supplier.sh)" -s YOUR_MASTER_ADDRESS

Within a few minutes, SONM will install and begin running benchmarks. You will need to confirm your new worker on the SONM GUI. Under the market menu.

After this you are done. The bots included with SONM will automatically rent our your hardware or mine the most profitable coin. Note that with a laptop , it isn't recommended to run 24/7 so this is not a long term supplier solution. However running a supplier on your laptop can be great as it allows you to rent your own space and run/test custom docker images prior to your KYC approval completing.