Difference between revisions of "Platform Notes (Mac OS X)"
(Update testing details to reflect recent macOS Monterey testing efforts.) |
|||
(9 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). | ||
== Verified Releases == | == 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 == | == 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 <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: | ||
+ | |||
+ | <pre> | ||
+ | $ sudo sysctl -a | grep shmmax | ||
+ | kern.sysv.shmmax: 4194304 | ||
+ | </pre> | ||
+ | |||
+ | In the above example, the <code>shmmax</code> value is <code>4194304</code>, and thus insufficient for proper FreeM operation. | ||
+ | |||
+ | 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 | ||
+ | * Copy it to <code>/Library/LaunchDaemons</code> | ||
+ | * Change the ownership of <code>/Library/LaunchDaemons/com.startup.sysctl.plist</code> to <code>root:wheel</code> | ||
+ | * Run <code>sudo launchctl load /Library/LaunchDaemons/com.startup.sysctl.plist</code> | ||
+ | * Reboot | ||
+ | |||
+ | See the following example: | ||
+ | |||
+ | <pre> | ||
+ | $ 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 | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Starting the FreeM Daemon Automatically == | ||
+ | Coming soon. | ||
== 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.