Difference between revisions of "Platform Notes (Mac OS X)"
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
== Port Status == | == Port Status == | ||
− | The Mac OS X port is a [[Tier | + | 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 <code>kern.sysv.shmmax</code> parameter is correct (see below). | |
− | The main branch will compile on macOS Monterey (12.6.8) on Intel, | ||
− | |||
− | |||
== Verified Releases == | == Verified Releases == | ||
− | + | * [[FreeM Lite]] | |
+ | * FreeM 0.65.1-rc0 | ||
== Build Notes == | == Build Notes == | ||
Line 32: | Line 30: | ||
* MacBook Air (Early 2015) running macOS Monterey (12.6.8) | * MacBook Air (Early 2015) running macOS Monterey (12.6.8) | ||
+ | * M1 Mac Mini running macOS Sequoia | ||
== Required Kernel Tuning == | == Required Kernel Tuning == | ||
− | You will need to set the <code>kern.sysv.shmmax</code> sysctl parameter to at least | + | You will need to set the <code>kern.sysv.shmmax</code> 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: | To determine the current setting, see below: | ||
Line 48: | Line 47: | ||
See your macOS version below for instructions on modifying this value. | See your macOS version below for instructions on modifying this value. | ||
− | === | + | === All Versions === |
* Find the file <code>com.startup.sysctl.plist</code> file in the <code>scripts</code> subdirectory of the FreeM distribution | * Find the file <code>com.startup.sysctl.plist</code> file in the <code>scripts</code> subdirectory of the FreeM distribution | ||
Line 69: | 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 | + | [[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.