[2025-jun-17] The SlackDocs Wiki has moved to a new server, in order to make it more performant.
This is an old revision of the document!
Table of Contents
Slackware ARM project web site | Forum | Slackware ARM development documentation | Slackware ARM installation guides
Installing Slackware on the Macbook Pro M2 (Apple Silicon) within VMWare Fusion (paravirtualization)
Platform | AArch64/ARM64 |
Hardware Model | Apple Macbook Pro M2 (VMWare Fusion - paravirtualizartion) |
Document Version | 1.00, Mar 2025 |
Author | Stuart Winter <mozes@slackware> |
Other Virtualization Platforms
If you'd prefer to use UTM, see the Installation Guide.
Supporting the Slackware ARM Project
If you like what we're doing here, please consider becoming a patron.
Download the Slackware Linux AArch64 Installer ISO image
Open a shell/terminal on the Mac:
- The Terminal application can be found within
Applications
→Utilities
Prepare a directory to hold the downloaded assets
We'll download the Slackware Linux distribution into a directory named 'slackware'.
$ cd ## this returns to the root of your home directory $ mkdir slackware $ cd slackware
Set the version of Slackware AArch64 to download
At the time of writing, the only version available is 'current'.
$ SLKVER=current
Set the Internet media distribution server
If you are using a mirror server rather than the master Slackware ARM server, set it here. The format is: <hostname>::<rsync module name>
$ SLKSRV=ftp.arm.slackware.com::slackwarearm
Download the Slackware Linux Installer
$ rsync -PavL $SLKSRV/platform/aarch64/bootware/installer-aio/slackwareaarch64-${SLKVER}/aarch64_generic.iso.asc slk-aarch64_generic.iso.asc $ rsync -PavL $SLKSRV/platform/aarch64/bootware/installer-aio/slackwareaarch64-${SLKVER}/aarch64_generic.iso slk-aarch64_generic.iso $ rsync -PavL $SLKSRV/platform/aarch64/bootware/installer-aio/slackwareaarch64-${SLKVER}/aarch64_generic.iso.md5 slk-aarch64_generic.iso.md5
The Slackware Installer images are approximately 6 GBytes in size.
Verify the Slackware Installer image
Since GPG is not provided on MacOS by default, the easiest way to verify the images is using the MD5 hash.
Hash method
$ md5 slk-aarch64_generic.iso ; cat slk-aarch64_generic.iso.md5 MD5 (slk-aarch64_generic.iso) = 6f17fe562ee790bdd21fdfb9cbbba3e7 MD5(aarch64_generic.iso)= 6f17fe562ee790bdd21fdfb9cbbba3e7
Manually verify that the MD5 sums match.
GPG method
If you have GPG installed, verify the digital signature of the Slackware Installer.
Installing the Slackware ARM GPG key
The Slackware ARM GPG key can be used to verify your downloads.
If you are able to verify the GPG signatures, you can download and import the GPG key like this:
$ curl -sSL https://www.slackware.com/infra/keys/arm/GPG-KEY | gpg --import -
$ gpg --verify slk-aarch64_generic.asc
The output will be similar to this. You are looking for 'Good signature from Slackware ARM…'
gpg: assuming signed data in `slk-aarch64_generic.iso' gpg: Signature made Mon 24 Mar 2025 06:07:44 PM GMT gpg: using RSA key F7ABB8691623FC33 gpg: Good signature from "Slackware ARM (Slackware ARM Linux Project) <mozes@slackware.com>" [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 36D3 7609 2F12 9B6B 3D59 A517 F7AB B869 1623 FC33
Download and Install VMWare Fusion
If you do not already have VMWare Fusion Professional installed, download the macOS version and install it.
VMWare Fusion Professional is free for personal use. You will need to create an account, agree to various licences and so on before you can download it.
Version of VMWare Fusion Professional tested: 13.6.3 (24585314)
Creating the Virtual Machine within VMWare Fusion
- If the window offering to create a VM doesn't initially open, you can open the
Virtual Machine Library
:
- Click
Create a custom virtual machine
- Click
Continue
- Click
Linux
- Select
Other Linux 6.x kernel 64-bit Arm
- Click
Continue
- Click
Create a new virtual disk
- Click
Continue
- Click
Customize Settings
- Set the file name of your virtual disk
- Click
Save
The Settings
window should open. If not, open it like so:
- Right-click on the VM name
- Click
Settings…
Within the VM Settings
window:
- Click
Processors & Memory
- Set the memory allowance to
4GB
- Click
Show All
(at the top of the window) to return to the mainSettings
window
- Click
CD/DVD (SATA)
- Tick
Connect CD/DVD Drive
- Click on the drop down menu, select
Choose a disc or disc image…
- Select the ISO image you downloaded previously
- Click
Open
Return to the VM's Settings
window by clicking Show All
at the top of the Settings
window.
- Click
Hard Disk (NVMe)
- Set the hard disk size to
35GB
- Click
Apply
- 35GB is sufficient unless you plan on housing large amounts of data.
- Click
Show All
at the top left of the VMSettings
window to return to the main settings - Close the VM's
Settings
window
VMWare Fusion VM Settings
There are other settings that you may wish to experiment with, such as the graphics settings.
Booting the Slackware Installer
- Click on the
Play
icon within the VM window
The system will boot into a menu.
e
to edit any of the boot loader settings if you wish - which may be useful if using the Installer as a rescue environment
Press ENTER
to boot the Slackware Installer
The system will boot within a couple of seconds, and will attempt to acquire an IP address via DHCP. If no DHCP server is available, this will take a little longer to time out.
Select a Key Map
Beginning the Setup
Creating the Partition Table
You need to create the partition table for the OS and your data to live on.
Open the fdisk Tool
fdisk /dev/nvme0n1
Create a GPT Disk Label
Create a 100MB UEFI Partition
- Type
n
and pressENTER
- Press
ENTER
for both the “partition number” and “First sector” - For the “Last sector” enter
+100M
Set the partition type to uefi
:
- Type
t
and pressENTER
- Type
uefi
and pressENTER
Create the Swap Partition
For the 2nd partition we'll create a 4GB Swap partition.
- Type
n
and pressENTER
- Press
ENTER
for the “partition number” - Press
ENTER
for the “First sector” - For the “Last sector” enter
+4G
Set the partition type to Swap
:
- Type
t
and pressENTER
- Press
ENTER
for the “partition number” - Type
swap
and press ENTER
Create the root Partition
This partition will house the OS and your data and will fill the remainder of the allocated storage:
- Type
n
and pressENTER
- Press
ENTER
for the “partition number” - Press
ENTER
for the “First sector” - Press
ENTER
for the “Last sector”
Save the Partition Layout
Begin the Installation
You may now begin the Slackware installation process.
At the shell, type the command setup
and press ENTER
Installation Essentials
We'll now perform the initial setup steps:
- Scroll down to
ADDSWAP
and pressENTER
- Press
ENTER
to accept the default offered
- Choose
No
to scanning for bad blocks
- Press
ENTER
to accept the default partition suggested for use as the root partition.
- Press
ENTER
to format the partition
- Press
ENTER
to pick the suggested file system type:
* Press ''ENTER'' to close the information dialog box:
- Press
ENTER
to format the EFI partition:
- Press
ENTER
to close the information dialog box:
Selecting the Installation Media
This edition of the Slackware AArch64 Installer contains the full set of Slackware packages.
Whilst other media installation (locally mounted directory, NFS, HTTP and others) can be selected by choosing No
, the recommendation is to accept the defaults, installing the packet set bundled with the Slackware Installer.
Selecting the Packages
Slackware packages are organised into loose groups called “series.” If you're an experienced Slackware user, you can customize which series to install. However, to keep things simple and avoid potential issues with dependencies (as Slackware does not manage them automatically), it's recommended to install all packages—at least for the initial setup.
- Press
ENTER
to proceed
- Press
ENTER
to accept the suggested prompting mode
Installation begins
In-built Entertainment
If you're short of things to occupy yourself whilst the packages install, you can play the bundled bricktick
game!
- Hold down the
alt
key and press theRIGHT arrow
key.
- Press
ENTER
- Type
bricktick
and pressENTER
Read the on-screen instructions and begin playing!
When you've had enough, and would like to check on the status of the installation:
- Hold down the
alt
key and press theLEFT arrow
key.
Post Installation Configuration
Once the packages have completed installing, there are some post configuration actions:
Mouse Configuration
Network Configuration
- Press
ENTER
to configure the network
- Enter a host name for this machine
- Enter a domain name for this machine. If you don't have a local domain, pick
example.com
- Choose
No
in response to configuring a VLAN ID:
- Pick the default suggestions to configure the network using
Network Manager
- Press
ENTER
on both dialog boxes to proceed
Automatically starting Services
Slackware uses the System-V init system, which uses a collection of rc
(run control
) scripts to control which daemons (services) start at boot time.
You can use the UP
and DOWN
arrow keys to move through the menu and press SPACE
bar to select or de-select any services.
In this example, we're selecting the rc.rpc
service as we want to mount NFS shares.
Virtual Console Font Configuration
While optional, selecting a console font is recommended—otherwise, the default text may appear quite small and hard to read.
It's generally best to choose the font currently used by the installer, though you're free to select any font you prefer.
- Use the
LEFT
arrow key to move the selection toYes
and pressENTER
- Press
t
to jump to the fonts named 't', and theDOWN
arrow to locate the fontter-728b
If you like this font, type 1
and press ENTER
. If you'd prefer to use a different font, type 2
and press ENTER
to return to the font selection menu.
Time Zone Configuration
If you'd like to select a specific time zone (rather than UTC
), select NO
and press ENTER
Select the appropriate time zone for your locale:
Europe/London
, I can press e
then use the DOWN
arrow keys to locate the final entry
- Use the arrow keys to select your appropriate time zone
- Press
ENTER
to select the time zone
Configure the Default "vi" Editor
Select the implementation of the vi
editor that you prefer. This is the default that will be used to edit crontabs
and so forth.
$EDITOR
within your shell profile
- Unless you have a preference, press
ENTER
to choose the default ofvim
Configure the Window Manager for X
Select the window manager of your choice. KDE and Xfce are both solid options when running under paravirtualization, but you may prefer one of the classic lightweight window managers if you’re looking for a more minimal setup.
Set the root Password
- Press
ENTER
to set the root password
- Type the password in once, press
ENTER
- Re-enter the password to confirm it, and press
ENTER
Complete the Setup
Boot Slackware
Login as root
Post Installation Configuration
There are a few post-installation configuration tasks to complete.
Add a plebeian user
You should add a plebeian (non-root) user using the adduser
tool.
This is documented here.
Starting X
Once you have added your plebeian user, you can login to another virtual console:
- Hold down the
ALT
key and press theRIGHT
arrow key
- Login with your plebeian user
- Type
startx
and pressENTER
Managing Slackware
Keeping the Slackware OS up to date
One of the preferred tools to keep your system up to date is slackpkg.
Loading Additional Linux Kernel Modules within the OS Proper
Often Kernel modules for discovered hardware will be automatically loaded, but occasionally you will need to manually configure the loading of some modules.
/etc/rc.d/rc.modules.local
This file is a shell script that is run as one of the last steps before the OS has fully booted. You can enter modprobe
commands here to load the specific modules you require.
Configuration files within the directory /lib/modprobe.d/
can be used to configure the parameters of the modules. Existing files within that directory serve as reference examples should you need them.
Loading Additional Linux Kernel Modules early in the boot sequence
There are a number of peripherals that may require Kernel modules loading early on in the boot sequence. An example of this would be RTCs (Real Time Clocks) or storage controllers that are required to access the file systems on which the OS lives.
To load Kernel modules during the early boot sequence, read:
/boot/local/README.txt
As root, the easiest way to begin is by renaming the example script:
mv /boot/local/load_kernel_modules.post.sample /boot/local/load_kernel_modules.post
Then add the appropriate module loading commands to: /boot/local/load_kernel_modules.post
You can also add shell code here to initialise a peripheral - writing something to the peripheral's Kernel interface, for example.
Starting Services at Boot Time
During the installation, you configured which services to start at boot time.
You can start or disable other services either manually or by using pkgtool
Manually change the permissions
As root
:
root@slackware:# cd /etc/rc.d
To enable CUPS:
root@slackware:/etc/rc.d# chmod +x rc.cups
To disable CUPS:
root@slackware:/etc/rc.d# chmod -x rc.cups
Use ''pkgtool''
root@slackware:# pkgtool
- Select
Setup
from the menu and pressENTER
- Select
services
and pressENTER
- Choose the service you want and press
ENTER
Starting a Graphical Login Manager by Default
If you prefer to use a graphical login manager, you can configure the default runlevel as 4:
su - sed -i 's?id:3:?id:4:?g' /etc/inittab reboot
headed
(monitor and keyboard) configuration
Customising the Slackware Linux Kernel
If you'd like to customise the Linux Kernel, the easiest way is to follow the HOWTO guide and use the Slackware AArch64 Kernel build script to create new packages.
Reducing Boot Time
Slackware AArch64 ships with a generic OS InitRD (Operating System Initial RAM Disk - the environment that prepares the machine to boot the Operating System Proper), so as to support a wide range of Hardware Models.
However, this isn't the optimal setup once the Slackware OS has been installed because the generic OS InitRD typically exceeds 40MB, which in some cases can add a couple of seconds to the boot time whilst it's loaded from the SD card.
The os-initrd-mgr
(Operating System Initial RAM Disk Manager) tool has an option to synchronize the OS InitRD's Kernel modules with only those presently loaded within the Operating System.
To do this:
$ su -c 'os-initrd-mgr --sync-loaded-kmods' - # note the final -
This option isn't the default, but you can make it so by following the instructions within /etc/os-initrd-mgr.conf.sample
This way when you upgrade the Kernel packages in the order described above, it'll automatically synchronize the modules.
For example, when running Linux 5.17.1, upgrading to 5.17.2 will work; but an upgrade of Linux 5.17.1 → 5.18.1 will require a reboot then to run os-initrd-mgr again to re-sync.
a/kernel
package (and unset the setting if you configured it in /etc/os-initrd-mgr.conf
).
Installing extra Software
Slackware comes with a good base of software applications, but there are plenty more available in the Open Source Ecosystem.
The best way to add new software is to use the build scripts from SlackBuilds.org.
Useful Guides and Resources
Known Issues and Feature Gaps
- No currently known issues.
More details on the development Road Map here.