Difference between revisions of "Platform Notes (FreeBSD)"

From FreeM Wiki
Jump to navigation Jump to search
(Created page with "== Port Status == FreeBSD is a Tier 3 Port == Verified Releases == FreeM 0.58.0 will build but not run. == Testing Details == * ESXi Virtual Machine (64-bit) * FreeBSD 1...")
 
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
== Port Status ==
 
== Port Status ==
FreeBSD is a [[Tier 3 Port]]
+
FreeBSD is a [[Tier 1 Port]]
  
 
== Verified Releases ==
 
== Verified Releases ==
FreeM 0.58.0 will build but not run.
+
* FreeM 0.62.3 (27 Mar 2025)
 +
* FreeM 0.62.2 (23 Mar 2025)
 +
* FreeM <code>cvs-current</code>
 +
* FreeM 0.62.1
  
 
== Testing Details ==
 
== Testing Details ==
* ESXi Virtual Machine (64-bit)
+
* Bare-metal amd64 system
* FreeBSD 12.1-RELEASE amd64
+
* FreeBSD 14.1-RELEASE-p2 amd64
* gcc 9.2.0
+
* gcc 13.2.0
* autoconf 2.69
+
* autoconf 2.72
* automake 1.16.1
+
* automake 1.17
  
 
== Required Kernel Tuning ==
 
== Required Kernel Tuning ==
Coming soon
+
=== Shared Memory ===
 +
FreeM in its default configuration requires just under 17MiB of shared memory. You can check the relevant kernel parameter with the following command:
 +
 
 +
<pre>
 +
$ sudo sysctl kern.ipc.shmmax
 +
</pre>
 +
 
 +
If <code>kern.ipc.shmmax</code> is less than <code>17000000</code>, add the following lines to <code>/etc/sysctl.conf</code> and reboot:
 +
 
 +
<pre>
 +
kern.ipc.shmmax=17000000
 +
</pre>
 +
 
 +
=== Address Space Layout Randomization ===
 +
FreeM is incompatible with address space layout randomization (ASLR), which is enabled by default on FreeBSD 13.2 and newer on 64-bit platforms.
 +
 
 +
To use FreeM on FreeBSD 13.2 and newer, add the following lines to <code>/etc/sysctl.conf</code> and reboot:
 +
 
 +
<pre>
 +
kern.elf64.aslr.pie_enable=0
 +
kern.elf64.aslr.enable=0
 +
</pre>
 +
 
 +
If you do not wish to globally disable ASLR on your system, you can use FreeM by disabling it per-process with each invocation by using the following syntax:
 +
 
 +
<pre>
 +
$ proccontrol -m aslr -s disable freem
 +
</pre>
 +
 
 +
Particularly astute system administrators will likely want to script this, which is an exercise left to the reader.
  
 
== Starting Daemon Automatically ==
 
== Starting Daemon Automatically ==
Coming soon
+
* Copy <code>scripts/freebsd-rc/freem</code> to <code>/usr/local/etc/rc.d</code>
 +
* Type the following commands with root privileges:
 +
# pw group add freem
 +
# pw user add freem -m -g freem
 +
# sysrc freem_enable="YES"
 +
# chmod +x /usr/local/etc/rc.d/freem
 +
* For each user who needs to run FreeM, type the following command:
 +
# pw group mod freem -m ''username''
 +
* Reboot
  
 
== Port Challenges ==
 
== Port Challenges ==
* FreeBSD is unfriendly to FreeM's shared memory architecture
+
None.
  
[[Category:Tier 3 Ports]]
+
[[Category:Tier 1 Ports]]
 
[[Category:Platform Notes]]
 
[[Category:Platform Notes]]

Latest revision as of 18:00, 15 April 2025

Port Status

FreeBSD is a Tier 1 Port

Verified Releases

  • FreeM 0.62.3 (27 Mar 2025)
  • FreeM 0.62.2 (23 Mar 2025)
  • FreeM cvs-current
  • FreeM 0.62.1

Testing Details

  • Bare-metal amd64 system
  • FreeBSD 14.1-RELEASE-p2 amd64
  • gcc 13.2.0
  • autoconf 2.72
  • automake 1.17

Required Kernel Tuning

Shared Memory

FreeM in its default configuration requires just under 17MiB of shared memory. You can check the relevant kernel parameter with the following command:

$ sudo sysctl kern.ipc.shmmax

If kern.ipc.shmmax is less than 17000000, add the following lines to /etc/sysctl.conf and reboot:

kern.ipc.shmmax=17000000

Address Space Layout Randomization

FreeM is incompatible with address space layout randomization (ASLR), which is enabled by default on FreeBSD 13.2 and newer on 64-bit platforms.

To use FreeM on FreeBSD 13.2 and newer, add the following lines to /etc/sysctl.conf and reboot:

kern.elf64.aslr.pie_enable=0
kern.elf64.aslr.enable=0

If you do not wish to globally disable ASLR on your system, you can use FreeM by disabling it per-process with each invocation by using the following syntax:

$ proccontrol -m aslr -s disable freem

Particularly astute system administrators will likely want to script this, which is an exercise left to the reader.

Starting Daemon Automatically

  • Copy scripts/freebsd-rc/freem to /usr/local/etc/rc.d
  • Type the following commands with root privileges:
# pw group add freem
# pw user add freem -m -g freem
# sysrc freem_enable="YES"
# chmod +x /usr/local/etc/rc.d/freem
  • For each user who needs to run FreeM, type the following command:
# pw group mod freem -m username
  • Reboot

Port Challenges

None.