In the old days, virtual machine choices were limited to VMware, Proxmox, and VirtualBox with the first two requiring a dedicated hardware platform before you ever got started. So it looked like VirtualBox solved the problem of being able to use existing hardware for other functions as well as being able to host virtual machines. And all was well in the Intel world until Apple created its M1 chip integrating the CPU, GPU, Neural Engine, I/O, and more into a single system on a chip (SoC). Because it was based on the ARM architecture, VirtualBox no longer worked. And, despite a new beta claiming ARM compatibility, it still fails at least as a platform for Debian 11, Ubuntu 22.04, and Incredible PBX 2027.
Last week we introduced WSL, the new kid on the virtual machine block for Windows 11. And today we turn our attention to the Mac platform with Apple’s UTM offering. In a word, it’s fantastic: machine-speed virtual platforms that coexist with other Mac apps, relatively easy to install, and simple to backup and restore. So… farewell VirtualBox and hello UTM.
While UTM will run on AMD64 Macs, our focus today is the new generation of M1 and M2 Macs. There are many to choose from including multi-colored iMacs as well as MacBook Air and Pro notebooks. You won’t be disappointed by the migration. And UTM is unique in that it can reliably run both ARM applications and x86_64 apps. So let’s get started. This is a three-step process today. First, we’ll install Apple’s UTM app on your M1 or M2 machine. Second, we’ll build an Ubuntu 22.04 x86_64 platform running as a virtual machine under UTM. Third, we’ll install Incredible PBX 2027-U on the Ubuntu platform.
Before we get started, here are a couple of tips. Creating the Ubuntu 22.04 platform is a little tedious. So, once you go through the 30-minute setup process, your very next step should be to shut it down and clone it. In that way, you never have to spend time setting up the Ubuntu virtual machine platform again. You can simply reuse what you’ve already built. Our second tip is to make backups of both your original Ubuntu virtual machine AND your Incredible PBX 2027-U machine. Then store those backups off site. We’ll document the procedure below.
Installing Apple’s UTM Application
UTM requires macOS 11.3 or later. You have two ways to install Turing Software’s UTM app. You can download and install it through Apple’s App Store for $9.99 in which case you get automatic updates and also fund future development of the platform. Or you can download and install the application from GitHub at no cost and handle the installation and updates yourself. You get exactly the same software from either location. If you elect to use the free version, download the UTM.dmg file to your desktop. Then double-click on the file and drag the UTM app to your Applications folder. From there, you can run it as you would any other Mac application. To update the UTM app, you simply replace the existing installation and all your virtual machines will be retained.
Installing Ubuntu 22.04 (x86_64) VM
This is not a difficult procedure, but it has a lot of steps and takes about half an hour so hang in there and don’t skip any steps. If you’re lazy and would prefer the quick-and-dirty method to install the Ubuntu 22.04 UTM image, skip to the next section of this tutorial… but you won’t learn how to do it yourself.
1. Download the Ubuntu 22.04 Server ISO to your Desktop.
2. Open the UTM app from your Applications folder.
3. Click "Create a New Virtual Machine" icon.
4. On the Start menu, choose Emulate to emulate the AMD64 platform on your Mac M1 or M2.
5. In the Operating System menu, choose Linux. Click Browse. Select Ubuntu 22.04 ISO on your desktop. Click Continue.
6. Change the Memory setting to 2048 MB. Change CPU Cores to 2. Click Continue.
7. For the Virtual Machine Size, we recommend 20GB but the choice is yours. Click Continue.
8. On the Shared Directory menu, just click Continue.
9. On the Summary menu, check Open VM Settings. Click Save.
10. In the VM Settings, enter Incredible PBX 2027 for Name.
11. Click Network tab. Change the Network Mode to Bridged (Advanced). Click Save.
12. Start your virtual machine app by clicking on it in the Start menu.
NOTE: DO NOT MINIMIZE THE UTM APP! You’ll need to return to it and remove the ISO before reboot.
13. Click "Try to Install Ubuntu Server" to kick off the Ubuntu install.
14. After about 3 minutes of setup, the install prompts will appear.
15. Choose your Language (default English) and press ENTER.
16. Choose your Keyboard (default English US) and press ENTER.
17. In the Type Install, tab down to Ubuntu Server (minimized) and press Space Bar.
Tab down to Done and press ENTER.
18. On the Network menu, your default DHCPv4 IP address should be shown. Press ENTER.
19. On the Proxy menu, press ENTER.
20. For the Ubuntu mirror, press ENTER.
21. On the Storage Layout menu, tab to LVM option and press Space Bar.
Tab down to Done and press ENTER.
22. Review File System Summary. If all OK, press ENTER.
23. On the Confirm menu, tab to Continue and press ENTER to continue.
24. Set up your profile. We recommend:
Your name: nerd (we’re going to destroy this account later)
Your server name: ubuntu
Username: nerd (we’re going to destroy this user account later)
Password: password (type it twice)
Tab to Done and press ENTER.
25. If you want to pay for Ubuntu Pro, you can do it on the next screen.
Otherwise, press ENTER.
26. On the SSH Setup menu, press space bar to enable SSH. Tab to Done. Press ENTER.
27. On Server Snaps menu, use the Down cursor to scroll to Done and press ENTER.
28. You’re now at the 15-minute mark and the screen will say Install complete! It’s not.
The Ubuntu install will now continue in unattended mode. Have a cup of coffee.
Return in about 7 minutes and await the Reboot Now prompt at the bottom of the screen.
29. Press ENTER and immediately switch back to the UTM app’s Main Menu.
30. Scroll down to CD/DVD line and click the Option bar and choose Clear.
31. UTM will now reboot into your new Ubuntu server.
If it redisplays the initial Ubuntu install menu, verify Step #30 completed.
Then kill the virtual machine and restart it.
32. Log in as nerd with the password you set up above.
33. Now set up a password for the root user:
sudo passwd root
34. Log out as user nerd: exit
35. Login as root.
36. Remove the nerd user account:
userdel -r nerd
37. Install the nano editor:
apt install nano -y
38. Edit the sshd_config file to allow remote root SSH access:
nano -w /etc/ssh/sshd_config
39. Adjust and uncomment the following settings:
Save the file: Ctrl-X, Y, then ENTER
40. Restart SSH: systemctl restart ssh
Now you’re ready to install Incredible PBX 2027-U. But, before you do anything else, shutdown the VM. Then right-click on the VM and choose Clone to make a duplicate. Now fire up the duplicate and install Incredible PBX 2027-U by following the steps in our current tutorial.
Installing Ubuntu 22.04 UTM Tarball
If you completed the steps above, you can skip this section. But, if Lazy is your middle name, here’s an alternate method that saves you some time. Begin by downloading the ubuntu2204utm.tar.gz file from our Incredible PBX repo to your Desktop. Then run the Terminal app and issue the following commands:
cd ~/Library/Containers/com.utmapp.UTM/Data/Documents tar zxvf ~/Desktop/ubuntu2204utm.tar.gz
Now run the UTM app. Then start the Ubuntu 22.04 virtual machine. Login as root with default password of password. Now begin the Incredible PBX 2027-U install procedure as documented in our tutorial here.
Installing Debian 11.6.0 UTM Tarball
If you would prefer to build your Incredible PBX 2027 server on the Debian 11 platform, begin by downloading the debian116utm.tar.gz file from our Incredible PBX repo to your Desktop. Then run the Terminal app and issue the following commands:
cd ~/Library/Containers/com.utmapp.UTM/Data/Documents tar zxvf ~/Desktop/debian116utm.tar.gz
Now run the UTM app. Then start the Debian 11.6 virtual machine. Login as root with default password of password. Now begin the Incredible PBX 2027-D install procedure as documented in our tutorial here.
Making Backups of UTM Applications
The trick to backing up and transferring an existing UTM image is to create a tarball of the desired .utm directory in ~/Library/Containers/com.utmapp.UTM/Data/Documents. The ubuntu2204.tar.gz file is about 2 gigabytes in size. Then untar it on the target platform in the same directory after installing the UTM app on that platform. It’s quite difficult to navigate to this directory with Finder so you’re better off using Terminal. The only other wrinkle after transferring a backup image to an Intel Mac is you’ll have to edit the UTM’s Network setting (right-click on .utm app in UTM GUI). Adjust the setting to match your new platform. So, on your target machine, run ifconfig and decipher the name of the adapter that actually shows your machine’s LAN IP address. It was en0 on our MacBook Air M1 and en1 on our old iMac Intel machine. YMMV.
TIPS: If you want LAN access to the virtual machine from devices other than the Mac on which the VM is installed, you’ll need to edit the UTM, click +New in the Devices section of the Edit menu and choose Network. Click Save to update settings. This will enable Shared Network Mode in addition to Bridged Mode, and a LAN IP address will be assigned on VM restart. When first logging into virtual machine, do NOT issue the unminimize command.
A snapshot of this tutorial in PDF format is available here.
Originally published: Monday, March 27, 2023
Need help with Asterisk? Visit the VoIP-info Forum.
Special Thanks to Our Generous Sponsors
FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.
BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.
The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.
VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.