#lang en <> = Description = = Installation = == Boot disk == Create a bootable installation USB stick from [[https://www.freebsd.org/where.html|FreeBSD.org]]. Install the disk by: || '''OS''' || '''Command''' || || MacOS || {{{sudo dd if=FreeBSD-12.2-RELEASE-amd64-memstick.img of=/dev/diskX bs=4m}}} || || Linux || {{{sudo dd if=FreeBSD-12.2-RELEASE-amd64-memstick.img of=/dev/sdX bs=4=M}}} || == Disks == The best solution is using ZFS. Downside, it will take your whole disk. Encrypt your disk and swap file. = Configuration = == Users == Add the users: == General packages == {{{ pkg install bash htop pstree tree }}} == Kernel == {{{ svnlite checkout https://svn.freebsd.org/base/release/12.2.0 /usr/src }}} == Window manager == {{{ pkg install xorg xfce pkg install chinese/arphicttf chinese/font-std hebrew/culmus hebrew/elmar-fonts japanese/font-ipa japanese/font-ipa-uigothic japanese/font-ipaex japanese/font-kochi japanese/font-migmix japanese/font-migu japanese/font-mona-ipa japanese/font-motoya-al japanese/font-mplus-ipa japanese/font-sazanami japanese/font-shinonome japanese/font-takao japanese/font-ume japanese/font-vlgothic x11-fonts/hanazono-fonts-ttf japanese/font-mikachan korean/aleefonts-ttf korean/nanumfonts-ttf korean/unfonts-core x11-fonts/anonymous-pro x11-fonts/artwiz-aleczapka x11-fonts/dejavu x11-fonts/inconsolata-ttf x11-fonts/terminus-font x11-fonts/cantarell-fonts x11-fonts/droid-fonts-ttf x11-fonts/doulos x11-fonts/ubuntu-font x11-fonts/isabella x11-fonts/junicode x11-fonts/khmeros x11-fonts/padauk x11-fonts/stix-fonts x11-fonts/charis x11-fonts/urwfonts-ttf russian/koi8r-ps x11-fonts/geminifonts x11-fonts/cyr-rfx x11-fonts/paratype x11-fonts/gentium-plus }}} == NVIDIA == === Updated the ports === ==== nvidia-driver ==== distinfo {{{ SHA256 (NVIDIA-FreeBSD-x86_64-460.27.04.tar.gz) = b9c0e676b5e66569d2f71a25ab1e782bb8a52cbcb3e413e854b72debc37b6623 SIZE (NVIDIA-FreeBSD-x86_64-460.27.04.tar.gz) = 103234112 }}} Makefile {{{ -DISTVERSION?= 440.100 +DISTVERSION?= 460.27.04 -SUB_PATCHES= extra-patch-src-Makefile \ - extra-patch-src-nv-freebsd.h \ - extra-patch-src-nv-misc.h \ - extra-patch-src-nvidia_ctl.c \ - extra-patch-src-nvidia_dev.c \ - extra-patch-src-nvidia_linux.c \ - extra-patch-src-nvidia_pci.c -.if ${NVVERSION} >= 358.009 -# Initialize memory allocations to avoid spurious "lock re-initialization" -# errors. A little more detail can be found in bug 201340 starting around -# comment #50. -EXTRA_PATCHES+= ${FILESDIR}/extra-patch-src_nvidia-modeset_nvidia-modeset-freebsd.c -.endif }}} removed some includes In ''/boot/loader.conf'': {{{ nvidia-modeset_load="YES" }}} {{{ pkg install nvidia-xconfig nvidia-settings }}} run nvidia-xconfig ==== linix--nvidia-libs ==== distinfo {{{ SHA256 (NVIDIA-Linux-x86_64-460.27.04.run) = a654eab5ce50650c0cd1fdcc78c655d0de573a2b925c20839252ffab2cbc1ccf SIZE (NVIDIA-Linux-x86_64-460.27.04.run) = 171853284 }}} {{{ 99a100 > libnvidia-fatbinaryloader.so.${PORTVERSION} \ 109a111 > libnvidia-fatbinaryloader.so.${PORTVERSION} \ 119a122 > '\,${LINUXBASE}.*libnvidia-fatbinaryloader\.so,d' \ 122,126c125 < .if ${NVVERSION} >= 460.027 < LINUX_LIBS+= libnvidia-egl-wayland.so.1.1.5 < LINUX_LINKS+= libnvidia-egl-wayland.so.1.1.5 libnvidia-egl-wayland.so.1 < PLIST_RE+= '\,${LINUXBASE},s/(libnvidia-egl-wayland\.so)\.X/\1.1.1.5/' < .elif ${NVVERSION} >= 440.026 --- > .if ${NVVERSION} >= 440.026 }}} pkg-plist {{{ 50a51 > %%LINUX32%%%%LINUXBASE%%/usr/lib/libnvidia-fatbinaryloader.so.%%SHLIB_VERSION%% 120a122 > %%LINUXBASE%%%%LINUX_LIBDIR%%/libnvidia-fatbinaryloader.so.%%SHLIB_VERSION%% }}} == Xorg == {{{ Section "Device" Identifier "Card0" Driver "nvidia" # BusID "PCI:0:8:0:0" EndSection Section "Module" Load "freetype" Load "bitmap" Load "type1" Load "glx" EndSection }}} In ''/etc/rc.conf'': {{{ dbus_enable="YES" hald_enable="YES" }}} === Login manager === {{{ pkg install slim pkg install slim-themes slim-freebsd-themes slim-freebsd-dark-theme slim-freebsd-black-theme slim-freebsd-themes }}} In ''/etc/rc.conf'': {{{ slim_enable="YES" }}} === XFCE === {{{ pkg install xscreensaver xdg-user-dirs redshift xrandr }}} .config/user-dirs.dirs {{{ XDG_DESKTOP_DIR="$HOME/desktop" XDG_DOWNLOAD_DIR="$HOME/downloads" XDG_TEMPLATES_DIR="$HOME/templates" XDG_PUBLICSHARE_DIR="$HOME/public" XDG_DOCUMENTS_DIR="$HOME/documents" XDG_MUSIC_DIR="$HOME/music" XDG_PICTURES_DIR="$HOME/pictures" XDG_VIDEOS_DIR="$HOME/videos" }}} .config/redshift.conf {{{ [redshift] temp-day=5700 temp-night=3600 gamma=0.8 adjustment-method=randr location-provider=manual [manual] lat=52.1 lon=5.2 }}} {{{ xscreensaver -no-splash & xdg-user-dirs-update & redshift & exec startxfce4 }}} == Audio == /boot/loader.conf {{{ snd_driver_load="YES" }}} {{{ kldload snd_driver }}} Rearange your mixer to one usable Get the information. Look in your dmesg. {{{ sysctl dev.hdac.0.pindump=1 sysctl dev.hdac.1.pindump=1 dmesg |grep hdaa }}} See [[https://www.freebsd.org/cgi/man.cgi?query=device.hints|device.hints(5)]] and [[https://www.freebsd.org/cgi/man.cgi?query=snd_hda|snd_hda]] for more information. Long story short, as is the group of devices, seq is the sequence. An as of 0 is disable this device. A seq of 15 will override the 0. /boot/device.hints {{{ hint.hdac.0.cad0.nid4.config="as=0" hint.hdac.0.cad0.nid5.config="as=0" hint.hdac.0.cad0.nid6.config="as=0" hint.hdac.0.cad0.nid7.config="as=0" hint.hdac.1.cad0.nid17.config="as=0" hint.hdac.1.cad0.nid20.config="as=1 seq=0" hint.hdac.1.cad0.nid22.config="as=1 seq=1" hint.hdac.1.cad0.nid21.config="as=1 seq=2" hint.hdac.1.cad0.nid27.config="as=1 seq=15" hint.hdac.1.cad0.nid24.config="as=2 seq=0" hint.hdac.1.cad0.nid26.config="as=2 seq=1" hint.hdac.1.cad0.nid25.config="as=2 seq=15" hint.hdac.1.cad0.nid30.config="as=0" }}} change your default output: /etc/sysctl.conf {{{ hw.snd.default_unit=0 }}} reboot. (Thanks [[https://forums.freebsd.org/threads/speaker-mic-on-different-sound-devices-need-to-modify-pins.74983/|BSDForum]]. == Suspend == Suspend to memory is supported on FreeBSD. Suspend to disk isn't... You can test if your suspend to memory works by running as root: {{{ acpiconf -s 3 }}} If that works, your suspend is going to work. You can change what to do in ''/etc/rc.suspend'' and ''/etc/rc.resume''. To start your suspension as a user, you have to be of the operator group. {{{ pw group mod operator -m youruser }}} Now you can use {{{zzz}}} to suspend your system. To also get it working within your XFCE, install polkit ({{{pkg install polkit}}}) and make a new file ''/usr/local/etc/polkit-1/rules.d/85-suspend.rules'' {{{ polkit.addRule(function (action, subject) { if ((action.id == "org.freedesktop.consolekit.system.restart" || action.id == "org.freedesktop.consolekit.system.stop") && subject.isInGroup("operator")) { return polkit.Result.YES; } }); // For those who have working suspend/resume: polkit.addRule(function (action, subject) { if (action.id == "org.freedesktop.consolekit.system.suspend" && subject.isInGroup("operator")) { return polkit.Result.YES; } }); // Explicitly disallow hibernation because it's not supported by the OS. polkit.addRule(function (action, subject) { if (action.id == "org.freedesktop.consolekit.system.hibernate") { return polkit.Result.NO; } }); }}} == Bash autocompletion == Install bash and the autocomplete {{{ pkg install bash bash-completion }}} Add in your $(HOME)/.bashrc: {{{ if ! shopt -oq posix; then if [ -f /usr/local/share/bash-completion/bash_completion.sh ]; then . /usr/local/share/bash-completion/bash_completion.sh fi fi }}} == Windows shares == /boot/loader.conf {{{ smbfs_load="YES" }}} {{{ kldload smbfs }}} /etc/fstab {{{ # SMB //username@server/home /home/luser/documents smbfs rw,late 0 0 }}} /etc/nsmbrc (Hostname, username and share has to be in CAPITALS) {{{ [SERVER:USERNAME] password=your_password }}} == Sensors == /boot/loader.conf {{{ amdtemp_load="YES" }}} {{{ kldload amdtemp }}} {{{ pkg install hwstat }}} == Yubikey/U2F == {{{ pkg install yubioath-desktop yubikey-personalization-gui yubikey-manager-qt }}} In ''/etc/rc.conf'': {{{ pcscd_enable="YES" }}} {{{ service devd restart service pcscd start pw group mod u2f -m exit }}} U2F should work now, for example github. Also the tools for configuration will work. === SSH === {{{ pkg install opensc ssh-add -s /usr/local/lib/opensc-pkcs11.so }}} == Linux compat == /boot/loader.conf {{{ linux64_load="YES" }}} {{{ kldload linux64 }}} {{{ pkg install emulators/linux_base-c7 }}} /etc/fstab {{{ # Linux compat linprocfs /compat/linux/proc linprocfs rw 0 0 linsysfs /compat/linux/sys linsysfs rw 0 0 tmpfs /compat/linux/dev/shm tmpfs rw,mode=1777 0 0 }}} {{{ mount -a }}} == wine == {{{ pkg install wine wine-mono }}} == BHyve == First, check if your virtualisation is enabled in your BIOS. Mine wasn't (Gighabyte and AMD). Install packages {{{ pkg install vm-bhyve grub2-bhyve zfs create -o mountpoint=/vm pool/vm }}} in /etc/rc.conf {{{ vm_enable="YES" vm_dir="zfs:freggel/vm" }}} [[https://github.com/tub5ta/vm-bhyve|tutorial]] {{{ vm init cp /usr/local/share/examples/vm-bhyve/* /vm/.templates/ vm switch create public vm switch add public igb0 }}} Create a debian VM: {{{ vm create -t debian vmname vm iso https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.7.0-amd64-netinst.iso vm install vmname debian-10.7.0-amd64-netinst.iso vm console vmname }}}