Skip to content

Instantly share code, notes, and snippets.

@kritoke
Created December 17, 2024 11:49
Show Gist options
  • Save kritoke/0630f448b4afd7e37a5344c541a45e83 to your computer and use it in GitHub Desktop.
Save kritoke/0630f448b4afd7e37a5344c541a45e83 to your computer and use it in GitHub Desktop.
FreeBSD Desktop Install and Tuning Notes
pkg update
freebsd-update fetch
freebsd-update install
pkg install drm-kmod
sysrc kld_list+=i915kms
pkg install libva-intel-driver mesa-libs mesa-dri
pkg install xorg-minimal budgie lightdm-gtk-greeter-settings
sysrc dbus_enable="YES" lightdm_enable="YES"
install microcode:
pkg install cpu-microcode
install fonts:
pkg install \
cantarell-fonts \
droid-fonts-ttf \
inconsolata-ttf \
noto-basic \
noto-emoji \
roboto-fonts-ttf \
ubuntu-font \
webfonts
pkg install terminus-font terminus-ttf
/boot/loader.conf:
# Shared memory, max process increases
kern.ipc.shmseg="1024"
kern.ipc.shmmni="1024"
kern.maxproc="100000"
## Graphics Card power saving (Intel GPUs)
# Skip unnecessary Mode Sets at boot time
compat.linuxkpi.i915_fastboot=1
# Enable power saving Display C-STATES
compat.linuxkpi.i915_enable_dc=2
# Enable Frame Buffer Compression
compat.linuxkpi.i915_enable_fbc=1
# Intel Core thermal sensors
coretemp_load="YES"
# Asynchronous I/O
aio_load="YES"
cpu_microcode_load="YES"
cpu_microcode_name="/boot/firmware/intel-ucode.bin"
In /etc/sysctl.conf:
Code:
# Allow users to mount disks
vfs.usermount=1
# Autodetect the most recent sound card.
hw.snd.default_auto=1
# Enable shared memory for Chromium
kern.ipc.shm_allow_removed=1
# Prevent shared memory from being swapped to disk.
kern.ipc.shm_use_phys=1
# Enhance desktop responsiveness under high CPU usage
kern.sched.preempt_thresh=224
# Bump up maximum number of open files
kern.maxfiles=200000
# Increase VFS read-ahead (better disk performance - particularly for SSDs)
# FreeBSD Default: 64
vfs.read_max=128
# Enhance shared memory X11 interface
kern.ipc.shmmax=67108864
kern.ipc.shmall=32768
##################################
# Network performance tuning
#
# The default values for many of these sysctls are optimized for the latencies
# of a local network. The modifications below should result in better TCP
# performance over connections with a larger RTT (like the internet), but at
# the expense of higher memory utilization.
#
# source: trust me, bro
###############################
kern.ipc.maxsockbuf=2097152
kern.ipc.soacceptqueue=1024
kern.ipc.somaxconn=1024
net.inet.tcp.abc_l_var=44
net.inet.tcp.cc.abe=1
net.inet.tcp.cc.algorithm=htcp
net.inet.tcp.cc.htcp.adaptive_backoff=1
net.inet.tcp.cc.htcp.rtt_scaling=1
net.inet.tcp.ecn.enable=1
net.inet.tcp.fast_finwait2_recycle=1
net.inet.tcp.fastopen.server_enable=1
net.inet.tcp.finwait2_timeout=5000
net.inet.tcp.initcwnd_segments=44
net.inet.tcp.keepcnt=2
net.inet.tcp.keepidle=62000
net.inet.tcp.keepinit=5000
net.inet.tcp.minmss=536
net.inet.tcp.msl=2500
net.inet.tcp.mssdflt=1448
net.inet.tcp.nolocaltimewait=1
net.inet.tcp.recvbuf_max=2097152
net.inet.tcp.recvspace=65536
net.inet.tcp.sendbuf_inc=65536
net.inet.tcp.sendbuf_max=2097152
net.inet.tcp.sendspace=65536
net.local.stream.recvspace=65536
net.local.stream.sendspace=65536
Disable various scripts:
sysrc -v -f /etc/periodic.conf \
daily_backup_aliases_enable=NO \
daily_backup_gpart_enable=NO \
daily_backup_passwd_enable=NO \
daily_clean_disks_verbose=NO \
daily_clean_hoststat_enable=NO \
daily_clean_preserve_verbose=NO \
daily_clean_rwho_verbose=NO \
daily_clean_tmps_verbose=NO \
daily_show_info=NO \
daily_show_success=NO \
daily_status_disks_enable=NO \
daily_status_include_submit_mailq=NO \
daily_status_mail_rejects_enable=NO \
daily_status_mail_rejects_enable=NO \
daily_status_mailq_enable=NO \
daily_status_network_enable=NO \
daily_status_security_enable=NO \
daily_status_uptime_enable=NO \
daily_status_world_kernel=NO \
daily_status_zfs_zpool_list_enable=NO \
daily_submit_queuerun=NO \
monthly_accounting_enable=NO \
monthly_show_info=NO \
monthly_show_success=NO \
monthly_status_security_enable=NO \
security_show_info=NO \
security_show_success=NO \
security_status_chkmounts_enable=NO \
security_status_chksetuid_enable=NO \
security_status_chkuid0_enable=NO \
security_status_ipf6denied_enable=NO \
security_status_ipfdenied_enable=NO \
security_status_ipfwdenied_enable=NO \
security_status_ipfwlimit_enable=NO \
security_status_kernelmsg_enable=NO \
security_status_logincheck_enable=NO \
security_status_loginfail_enable=NO \
security_status_neggrpperm_enable=NO \
security_status_passwdless_enable=NO \
security_status_pfdenied_enable=NO \
security_status_tcpwrap_enable=NO \
weekly_locate_enable=NO \
weekly_show_info=NO \
weekly_show_success=NO \
weekly_status_security_enable=NO \
weekly_whatis_enable=NO
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment