Difference between revisions of "Platform Notes (Mac OS X)"
Line 68: | Line 68: | ||
== Port Challenges == | == Port Challenges == | ||
− | + | The shared memory architecture of FreeM had to be rewritten to support Apple's System V IPC changes for their Unified Memory Architecture. | |
− | |||
[[Category:Platform Notes]] | [[Category:Platform Notes]] | ||
[[Category:Tier 2 Ports]] | [[Category:Tier 2 Ports]] |
Latest revision as of 07:02, 16 May 2025
Contents
Port Status
The Mac OS X port is a Tier 2 Port.
The main branch will compile on macOS Monterey (12.6.8) on Intel, and it can run if the kern.sysv.shmmax
parameter is correct (see below).
Verified Releases
- FreeM Lite
- FreeM 0.65.1-rc0
Build Notes
In order to build FreeM on macOS, you will need to install the following:
- Apple XCode command-line tools
- Homebrew
Then, install the following with the brew package manager:
- automake
- autoconf
- gcc
- libtool
- texinfo
- texi2html
- git
Testing Details
We build the macOS port on the following hardware:
- MacBook Air (Early 2015) running macOS Monterey (12.6.8)
- M1 Mac Mini running macOS Sequoia
Required Kernel Tuning
You will need to set the kern.sysv.shmmax
sysctl parameter to at least 17002496 (the value must be a multiple of the system page size; generally 4096).
To determine the current setting, see below:
$ sudo sysctl -a | grep shmmax kern.sysv.shmmax: 4194304
In the above example, the shmmax
value is 4194304
, and thus insufficient for proper FreeM operation.
See your macOS version below for instructions on modifying this value.
All Versions
- Find the file
com.startup.sysctl.plist
file in thescripts
subdirectory of the FreeM distribution - Copy it to
/Library/LaunchDaemons
- Change the ownership of
/Library/LaunchDaemons/com.startup.sysctl.plist
toroot:wheel
- Run
sudo launchctl load /Library/LaunchDaemons/com.startup.sysctl.plist
- Reboot
See the following example:
$ sudo cp scripts/com.startup.sysctl.plist /Library/LaunchDaemons/ $ sudo chown root:wheel /Library/LaunchDaemons/com.startup.sysctl.plist $ sudo launchctl load /Library/LaunchDaemons/com.startup.sysctl.plist
Starting the FreeM Daemon Automatically
Coming soon.
Port Challenges
The shared memory architecture of FreeM had to be rewritten to support Apple's System V IPC changes for their Unified Memory Architecture.