User Tools

Site Tools


project:bsd:freebsd

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
project:bsd:freebsd [2019/07/15 15:27] – [Kernel Porting to ARM Board] maxfxproject:bsd:freebsd [2019/07/16 10:19] (current) – delete page move to kernellab maxfx
Line 1: Line 1:
-====== Introduction to FreeBSD ====== 
- 
-[[https://www.freebsd.org/doc/faq/introduction.html#idp44569720 | Introduction to FreeBSD]] 
- 
- 
-====== README noobs ====== 
- 
-[[https://brmlab.cz/project/bsd/freebsd/info_for_noobs | light introduction to FreeBSD ]] 
- 
-====== Tips and tricks ====== 
- 
-==== Tuning tips ==== 
-[[https://calomel.org/freebsd_network_tuning.html|FreeBSD network tuning]] 
- 
-[[https://calomel.org/network_performance.html|Network performance]] 
- 
-[[https://cooltrainer.org/a-freebsd-desktop-howto/|https://cooltrainer.org/a-freebsd-desktop-howto/]] 
- 
-[[http://www.packetwatch.net/documents/guides/2008030201.php|http://www.packetwatch.net/documents/guides/2008030201.php]] 
- 
-[[https://home.nuug.no/~peter/pf/en/|Firewalling with OpenBSD's PF packet filter]] 
- 
-[[https://www.freebsdnews.com/2017/07/18/building-bsd-home-router-pt-4-installing-pfsense/|Building-bsd-home-router-pt-4-installing-pfsense/]] 
- 
-[[https://www.digitalocean.com/community/tutorials/a-comparative-introduction-to-freebsd-for-linux-users|comparative-introduction-to-freebsd-for-linux-users ]] 
- 
-[[http://truelogic.org/wordpress/2015/09/24/freebsd-how-to-clean-and-rebuild-all-ports-with-portmaster/|How to clean and rebuild all ports with Portmaster]] 
- 
-[[http://www.wonkity.com/~wblock/docs/html/disksetup.html|http://www.wonkity.com/~wblock/docs/html/disksetup.html]] 
- 
-[[http://www.freebsdmadeeasy.com/tutorials/freebsd/schedule-tasks-with-crontab.php|schedule-tasks-with-crontab]] 
- 
-[[http://blog.up-link.ro/how-to-set-up-a-freebsd-router-step-by-step-tutorial/|Freebsd router step by step]] 
- 
-[[https://unixblogger.com/2011/10/18/the-pain-of-an-realtek-rtl8111rtl8168-ethernet-card/|The pain of a Realtek (RTL8111/RTL8168) ethernet card]] 
- 
-[[http://blog.ataboydesign.com/2014/04/23/freebsd-10-mounting-usb-drive-with-ext4-filesystem/|Mounting drive with ext4 filesystem]] 
- 
-[[https://www.garron.me/en/bits/change-permissions-recursively.html|Change permissions]] 
- 
-[[https://unrelenting.technology/articles/freebsd-on-the-thinkpad-x240|Freebsd on the Thinkpad x240]] 
- 
-==== How to Become a FreeBSD Committer ==== 
- 
-[[https://wiki.freebsd.org/BecomingACommitter|How to Become a FreeBSD Committer]] 
- 
- 
-====== Lecture about FreeBSD  ====== 
- 
-==== Lecture from Net ==== 
-[[https://www.youtube.com/watch?v=wwbO4eTieQY|FreeBSD: Not a Linux Distro, George Neville-Neil ]] 
- 
-[[https://www.youtube.com/watch?v=ps67ECyh0sM|FreeBSD is not a Linux distribution: Philip Paes]] 
- 
-[[https://www.youtube.com/watch?v=nwbqBdghh6E|FreeBSD Kernel Internals, Dr. Marshall Kirk McKusick ]] 
- 
-[[https://www.youtube.com/watch?v=UfiTV9QWhM4|An Overview of Locking in the FreeBSD Kernel - Kirk McKusick, EuroBSDcon 2012 ]] 
- 
-[[https://www.youtube.com/watch?v=E04LxKiu79I|An Overview of Security in the FreeBSD Kernel, Dr. Marshall Kirk McKusick ]] 
- 
-[[https://www.youtube.com/watch?v=ds77e3aO9nA|A Narrative History of BSD, Dr. Kirk McKusick]] 
- 
-[[https://www.youtube.com/watch?v=_oWcfUt9QUs|Systems, Science and FreeBSD, George Neville-Neil]] 
- 
-[[https://www.youtube.com/watch?v=cofKxtIO3Is|Convincing a Linux guy to use FreeBSD :-) ]] 
- 
-[[https://www.youtube.com/watch?v=Ib7tFvw34DM|The Trouble with FreeBSD ]] 
- 
-[[https://www.youtube.com/watch?v=D-iKNtfBySg|The Realities of DTrace on FreeBSD, by George Neville Neil (EuroBSDcon 2017)]] 
- 
-[[https://www.youtube.com/watch?v=WnCClGMzB58|Tuning FreeBSD for routing and firewalling, by Olivier Cochard-Labbé (EuroBSDcon 2017)]] 
- 
-[[https://www.youtube.com/watch?v=NMUf6VGK2fI|Brian Kidney: The Realities of DTrace on FreeBSD - BSDCan 2017 ]] 
- 
-[[https://www.youtube.com/watch?v=XnO4S7kb7vg|What is FreeBSD by Gavin Atkinson]] 
- 
-[[https://www.youtube.com/watch?v=A5rmG2j4Lk8|Case Study: Switching from Linux to FreeBSD ]] 
- 
-[[https://www.youtube.com/watch?v=Mri66Uz6-8Y|Jordan Hubbard - FreeBSD: The Next 10 Years]] 
- 
-[[https://www.youtube.com/watch?v=TneLO5TdW_M|Rick Reed - WhatsApp: Half a billion unsuspecting FreeBSD users]] 
- 
-[[https://www.youtube.com/watch?v=CehSeSVgEUA|LFNW 2018: Switching to the BSDs: A crash course in FreeBSD, FreeNAS, TrueOS and OpenBSD ]] 
- 
-==== ZFS video ==== 
- 
-[[https://www.youtube.com/watch?v=8f9TREeqb5o|An introduction to the implementation of ZFS by Kirk McKusick]] 
- 
-[[https://www.youtube.com/watch?v=IQp_FglfzUQ|ZFS Internals Overview by Kirk McKusick ]] 
- 
-==== FreeBSD Video ASIANBSDCON 2018 ==== 
- 
-[[https://www.youtube.com/watch?v=e1B_6iGY2lU|P01A: Institutionalizing FreeBSD Isolated and Virtualized Hosts -- Michael Dexter]] 
- 
-[[https://www.youtube.com/watch?v=SLlzep0IxVY|P02A: Tuning FreeBSD for routing and firewalling -- Olivier Cochard Labbe]] 
- 
-[[https://www.youtube.com/watch?v=bwbLuQDoxuQ|P03A: PC BSD evolves into TrueOS - Kris Moore]] 
- 
-[[https://www.youtube.com/watch?v=Y5cx9hEhxfE|P04A: FreeBSD ARM32ARM64 Porting to a new board - Emmanuel Vadot]] 
- 
-[[https://www.youtube.com/watch?v=NeJ2ztPasso|P05A: Profiling the FreeBSD kernel boot -- Colin Percival]] 
- 
-[[https://www.youtube.com/watch?v=FzF9e4jrnJ4|P06A: Role based Access Control in BCHS Web Applications -- Kristaps Dzonsons]] 
- 
-[[https://www.youtube.com/watch?v=vOVoylirkUU|P07A: OpenBSD/x-ray: OpenBSD on medical x-ray machines -- Henning Brauer]] 
- 
-[[https://www.youtube.com/watch?v=bBLSvTQY7xw|P08A: Improving netdump hardware support and performance with iflib -- Sam Gwydir]] 
- 
-[[https://www.youtube.com/watch?v=9mOFFovdAw0|P09A: Introducing FreeBSD VPC -- Sean Chittenden]] 
- 
-[[https://www.youtube.com/watch?v=lcrnXQ7xp7k|AsiaBSDCon 2018 Work in Progress Session and Closing]] 
- 
-==== FreeBSD Video ASIANBSDCON 2017 ==== 
- 
-[[https://www.youtube.com/watch?v=9zyF7Kbxj3o|AsiaBSDCon 2017 Opening - Hiroki Sato]] 
- 
-[[https://www.youtube.com/watch?v=tuqADfhqwa8|P01A: Understandings NFSv4 ACLs - John Hixson]] 
- 
-[[https://www.youtube.com/watch?v=V_HqMATqtlA|P01B: Bulk building in the many core era - Joerg Sonnenberger]] 
- 
-[[https://www.youtube.com/watch?v=5Cni50vnlto|P01C: OpenBSD pf+rdomains create splendid multi tenancy firewalls - Philipp Buehler]] 
- 
-====== Introduction to Kernel porting ====== 
- 
-==== Boot kernel ==== 
-[[http://distkeys.com/blog/2014/07/08/boot-freebsd/ | Boot Freebsd ]] 
- 
-[[http://distkeys.com/blog/2014/08/03/inside-freebsd/ | Debug System Call ]] 
- 
-[[http://distkeys.com/blog/2014/08/04/debug-freebsd-open/ | Open System Call ]] 
- 
-==== Kernel porting tips ==== 
- 
-[[https://www.digitalocean.com/community/tutorials/how-to-install-and-manage-ports-on-freebsd-10-1|https://www.digitalocean.com/community/tutorials/how-to-install-and-manage-ports-on-freebsd-10-1]] 
- 
-[[https://bsdimp.blogspot.cz/2007/10/building-bootable-freebsdi386-images.html|https://bsdimp.blogspot.cz/2007/10/building-bootable-freebsdi386-images.html]] 
- 
-[[https://www.cl.cam.ac.uk/research/security/ctsrd/pdfs/201403-asiabsdcon2014-freebsd-smp-boot.pdf|https://www.cl.cam.ac.uk/research/security/ctsrd/pdfs/201403-asiabsdcon2014-freebsd-smp-boot.pdf]] 
- 
-[[https://www.bsdcan.org/2008/schedule/attachments/49_2008_uboot_freebsd.pdf|https://www.bsdcan.org/2008/schedule/attachments/49_2008_uboot_freebsd.pdf]] 
- 
-[[http://www.strugglingcoder.info/index.php/category/freebsd/|http://www.strugglingcoder.info/index.php/category/freebsd/]] 
- 
-[[http://www.isysop.com/unpacking-and-repacking-u-boot-uimage-files/|http://www.isysop.com/unpacking-and-repacking-u-boot-uimage-files/]] 
- 
-[[http://www.isysop.com/unpacking-and-repacking-u-boot-images-part-2/| http://www.isysop.com/unpacking-and-repacking-u-boot-images-part-2/]] 
- 
-[[https://github.com/bitboss-ca/freebsd-arm-tools|https://github.com/bitboss-ca/freebsd-arm-tools]] 
- 
-[[http://blog.khubla.com/freebsd/building-u-boot-for-chromebook|http://blog.khubla.com/freebsd/building-u-boot-for-chromebook]] 
- 
-[[http://www.nikoopour.com/2015/03/|http://www.nikoopour.com/2015/03/]] 
- 
-[[https://raybsd.blogspot.cz/2012/12/|https://raybsd.blogspot.cz/2012/12/]] 
- 
-[[http://distkeys.com/blog/2014/08/03/inside-freebsd/|http://distkeys.com/blog/2014/08/03/inside-freebsd/]] 
- 
- 
- 
-==== Kernel Porting to ARM Board ==== 
- 
-[[https://www.bidouilliste.com/blog/2015/11/27/Porting-FreeBSD-to-a-new-ARM-Board-Part-1/|https://www.bidouilliste.com/blog/2015/11/27/Porting-FreeBSD-to-a-new-ARM-Board-Part-1/]] 
- 
-[[https://www.bidouilliste.com/blog/2015/11/27/Porting-FreeBSD-to-a-new-ARM-Board-Part-2/|https://www.bidouilliste.com/blog/2015/11/27/Porting-FreeBSD-to-a-new-ARM-Board-Part-2/]] 
- 
-[[https://www.bidouilliste.com/blog/2015/11/27/Porting-FreeBSD-to-a-new-ARM-Board-Part-3/|https://www.bidouilliste.com/blog/2015/11/27/Porting-FreeBSD-to-a-new-ARM-Board-Part-3/]] 
- 
- 
-[[https://kernelnomicon.org/?p=327 | Netbooting ARM/MIPS devices: kinds of kernel and u-boot ]] 
- 
- 
-==== FreeBSD Kernel for beringer ==== 
- 
-[[https://bsdmag.org/basic-unix-queuing-techniques/|https://bsdmag.org/basic-unix-queuing-techniques/]] 
- 
-[[https://bsdmag.org/unix-kernel-system-calls/|https://bsdmag.org/unix-kernel-system-calls/]] 
- 
-[[https://bsdmag.org/dynamic-memory-allocation-unix-systems/|https://bsdmag.org/dynamic-memory-allocation-unix-systems/]] 
- 
-==== Extended firmware interface (Efi) ==== 
-[[https://bsdmag.org/beyond-bios-the-extended-firmware-interface-efi/ | https://bsdmag.org/beyond-bios-the-extended-firmware-interface-efi/ ]] 
- 
-====== Making a New Port ====== 
- 
-[[https://networking.ringofsaturn.com/Unix/createportpatch.php|Creating a FreeBSD Port Patch]] 
- 
-[[http://zewaren.net/site/node/172|Build your own FreeBSD ports and make packages out of them using jails, poudriere and portshaker ]] 
- 
-[[https://www.freebsd.org/doc/handbook/ports-poudriere.html|Building Packages with Poudriere]] 
- 
-[[https://github.com/freebsd/poudriere/wiki|Poudriere wiki]] 
- 
-[[http://www.freebsd.cz/doc/en/books/porters-handbook/own-port.html|Making a New Port]] 
- 
-====== Jails ====== 
- 
-[[https://clinta.github.io/freebsd-jails-the-hard-way/|https://clinta.github.io/freebsd-jails-the-hard-way/]] 
- 
-[[https://www.cyberciti.biz/faq/howto-setup-freebsd-jail-with-ezjail/|https://www.cyberciti.biz/faq/howto-setup-freebsd-jail-with-ezjail/]] 
- 
-[[https://www.cyberciti.biz/faq/how-to-install-and-configure-jails-on-freenas-corral-10/|https://www.cyberciti.biz/faq/how-to-install-and-configure-jails-on-freenas-corral-10/]] 
- 
-[[https://gundersen.net/32bit-jail-on-64bit-freebsd/|https://gundersen.net/32bit-jail-on-64bit-freebsd/]] 
- 
-[[https://medium.com/chris-opperwall/quick-jail-updating-in-freebsd-f7c6bb52c6de|https://medium.com/chris-opperwall/quick-jail-updating-in-freebsd-f7c6bb52c6de]] 
- 
-[[https://www.kirkg.us/posts/how-to-configure-a-freebsd-jail-on-a-digital-ocean-droplet/|https://www.kirkg.us/posts/how-to-configure-a-freebsd-jail-on-a-digital-ocean-droplet/]] 
- 
-[[https://www.cockroachlabs.com/blog/critters-in-a-jar-running-cockroachdb-in-a-freebsd-jail/|https://www.cockroachlabs.com/blog/critters-in-a-jar-running-cockroachdb-in-a-freebsd-jail/]] 
- 
-[[https://www.cyberciti.biz/faq/how-to-configure-a-freebsd-jail-with-vnet-and-zfs/|https://www.cyberciti.biz/faq/how-to-configure-a-freebsd-jail-with-vnet-and-zfs/]] 
- 
- 
- 
- 
- 
-====== Desktop tips ====== 
- 
- 
-==== Sound ==== 
-[[https://wiki.jriver.com/index.php/Mixing|https://wiki.jriver.com/index.php/Mixing]] 
- 
-[[https://people.freebsd.org/~ariff/SOUND_4.TXT.html|https://people.freebsd.org/~ariff/SOUND_4.TXT.html]] 
- 
-==== Steam on FreeBSD ==== 
- 
-[[https://github.com/SteamOnFreeBSD/SteamOnFreeBSD|Steam on FreeBSD]] 
- 
-==== Bitcoin Full Node ==== 
- 
-[[https://bsdmag.org/5374-2/|https://bsdmag.org/5374-2/]] 
- 
-==== Tuning Power Laptops ==== 
- 
-[[https://wiki.freebsd.org/TuningPowerConsumption|https://wiki.freebsd.org/TuningPowerConsumption]] 
- 
- 
-==== Optimus on Freebsd - Hot fix ==== 
- 
-Comment out Nvidia-related parts from your [[https://www.freebsd.org/cgi/man.cgi?xorg.conf|xorg.conf ]]: 
- 
-<code> 
-... 
- 
-Section "Device" 
-    Identifier  "Card0" 
-    Driver      "intel" 
-    BusID       "PCI:0:2:0" 
-EndSection 
- 
-#Section "Device" 
-#   Identifier  "Card1" 
-#   Driver      "nvidia" 
-#   BusID       "PCI:1:0:0" 
-#EndSection 
- 
-... 
-</code> 
- 
-Then add the following bits to [[https://www.freebsd.org/cgi/man.cgi?rc.conf|rc.conf(5) ]]: 
- 
-<code> 
-kld_list='i915kms' 
-</code> 
- 
-==== NTPD synchronize ==== 
- 
-<code> 
-ntpdate_enable="YES" 
-ntpdate_hosts="in.pool.ntp.org" 
-</code> 
- 
-Or manually update time and date <WRAP center round important 60%> securelevel on 2 then you cannot set time only about second. </WRAP> 
- 
-<code> 
-ntpdate -b pool.ntp.org 
-sudo service ntpd start 
-</code> 
- 
-==== Disable Beep ==== 
- 
-<code> 
-# sysctl hw.syscons.bell=0 
-</code> 
- 
-or if you use XFCE 
- 
-<code> 
-set bell-style none 
-</code> 
- 
-==== Change standard shell to fish ==== 
- 
-You must add line in /etc/shells for example fish shell 
- 
-<code> 
-/usr/local/bin/fish 
-</code> 
- 
-Change shell and path your favorite shell 
- 
-<code> 
-chsh -s /usr/local/bin/fish 
-</code> 
- 
-=== Aliases === 
- 
-[[http://bin63.com/cool-bash-aliases-for-freebsd|Cool aliases ]] 
- 
-=== Paths for shell === 
- 
-If you need PATH for example compiler or some options 
- 
-<code> 
-# ASAN settings 
-set -x ASAN_SYMBOLIZER_PATH /usr/local/llvm50/bin/llvm-symbolizer 
-set -x ASAN_OPTIONS verbosity=1 
-set -x ASAN_OPTIONS symbolize=1 
-set -x ASAN_OPTIONS detect_stack_use_after_scope=1 
- 
-# UBSAN settings 
-set -x UBSAN_SYMBOLIZER_PATH /usr/local/llvm50/bin/llvm-symbolizer 
-set -x UBSAN_OPTIONS verbosity=2 
- 
-# MSAN 
-set -x MSAN_SYMBOLIZER_PATH /usr/local/llvm50/bin/llvm-symbolizer 
-set -x MSAN_OPTIONS fsanitize-memory-track-origins=2 
-set -x MSAN_OPTIONS verbosity=2 
-set -x MSAN_OPTIONS symbolize=1 
-</code> 
- 
-==== Nano tuning ==== 
- 
-<code> 
-set constantshow 
-set smooth 
-set autoindent 
-set casesensitive 
-set historylog 
-set morespace 
- 
-syntax "comments" ".*" 
-color blue "^#.*" 
- 
-## nanorc files 
-include "/usr/local/share/nano/asm.nanorc" 
-include "/usr/local/share/nano/awk.nanorc" 
-include "/usr/local/share/nano/c.nanorc" 
-include "/usr/local/share/nano/cmake.nanorc" 
-include "/usr/local/share/nano/css.nanorc" 
-include "/usr/local/share/nano/debian.nanorc" 
-include "/usr/local/share/nano/fortran.nanorc" 
-include "/usr/local/share/nano/gentoo.nanorc" 
-include "/usr/local/share/nano/groff.nanorc" 
-include "/usr/local/share/nano/html.nanorc" 
-include "/usr/local/share/nano/java.nanorc" 
-include "/usr/local/share/nano/makefile.nanorc" 
-include "/usr/local/share/nano/man.nanorc" 
-include "/usr/local/share/nano/mgp.nanorc" 
-include "/usr/local/share/nano/mutt.nanorc" 
-include "/usr/local/share/nano/nanorc.nanorc" 
-include "/usr/local/share/nano/objc.nanorc" 
-include "/usr/local/share/nano/ocaml.nanorc" 
-include "/usr/local/share/nano/patch.nanorc" 
-include "/usr/local/share/nano/perl.nanorc" 
-include "/usr/local/share/nano/php.nanorc" 
-include "/usr/local/share/nano/pov.nanorc" 
-include "/usr/local/share/nano/python.nanorc" 
-include "/usr/local/share/nano/ruby.nanorc" 
-include "/usr/local/share/nano/sh.nanorc" 
-include "/usr/local/share/nano/tcl.nanorc" 
-include "/usr/local/share/nano/tex.nanorc" 
-include "/usr/local/share/nano/xml.nanorc" 
-</code> 
- 
-==== QT Creator - Debugging ==== 
- 
-I cannot debug C/C++ programs because message "No symbol table is loaded. Use the \"file\" command" 
- 
-Best solution is install //devel/gdb// with path ///usr/local/bin/gdb// 
-====== Mount ====== 
- 
-==== Mount msdosfs ==== 
- 
-<code> 
-# ls /dev/da* 
-# mount_msdosfs /dev/da0 /media/usb 
-</code> 
- 
-==== ReMount /etc/fstab ==== 
- 
-<code> 
-mount -av 
-</code> 
-==== Mount ext2/ext3/ext4 ==== 
- 
-Fuse-ext2 mounts an ext2/ext3/ext4 partition or image file 
- 
-For control kernels fuse modules is command: 
- 
-<code> 
-kldstat 
-</code> 
- 
-If you don't have fuse.ko module in the kernel you use this command 
- 
-<code> 
-kldload fuse 
-</code> 
- 
-Then mount your partition 
- 
-<code> 
-fuse-ext2  /dev/your_partition /media/ 
-</code> 
- 
-==== Mount NTFS ==== 
- 
-For mounting ntfs file system you must kernel module loaded. 
- 
-For control kernels fuse modules is command: 
- 
-<code> 
-kldstat 
-</code> 
- 
-and load FUSE kernel module: 
- 
-<code> 
-kldload fuse 
-</code> 
- 
-and then you can mount ntfs filesystem. 
- 
-<code> 
-# ls /dev/da* 
-# ntfs-3g  /dev/your_partition  /mnt/ 
-</code> 
- 
-==== Automounting Removable Media ==== 
- 
-Uncomment in config file in /etc/auto_master 
- 
-<code> 
-/media        -media        -nosuid 
-</code> 
- 
-Add lines to /etc/devd.conf 
- 
-<code> 
-notify 100 { 
-    match "system" "GEOM"; 
-    match "subsystem" "DEV"; 
-    action "/usr/sbin/automount -c"; 
-}; 
-</code> 
- 
-Reload service 
- 
-<code> 
-service automount reload 
-service devd restart 
-</code> 
- 
-and added configuration /etc/rc.conf 
- 
-<code> 
-autofs_enable="YES" 
-</code> 
- 
-====== Ports ====== 
- 
-===== Portmaster ===== 
- 
-<code> 
-portmaster -L - Check all update for ports 
-portmaster -a - Upgrade ports 
-portmaster -af - Rebuild of installed application 
-</code> 
- 
- 
-===== Build ports with Poudriere ===== 
- 
-Create it ports tree for poudriere  
-<code> 
-poudriere ports -c 
-</code> 
- 
-Configure poudriere, file system, ram, etc... 
-<code> 
-/usr/local/etc/poudriere.conf 
-</code> 
- 
-List port tree 
-<code> 
-poudriere ports -l 
- 
-PORTSTREE METHOD   TIMESTAMP           PATH 
-default   portsnap 2019-07-10 21:47:49 /usr/local/poudriere/ports/default 
-</code> 
- 
-Create it jail for build and the target system  
-<code> 
-poudriere jail -c -j freebsd_11-2x64 -v 11.2-RELEASE -a amd64 
-</code> 
- 
- 
-List the jails 
-<code> 
-sudo poudriere jail -l 
- 
-JAILNAME        VERSION          ARCH  METHOD TIMESTAMP           PATH 
-freebsd_11-2x64 11.2-RELEASE-p11 amd64 ftp    2019-07-10 20:48:07 /usr/local/poudriere/jails/freebsd_11-2x64 
-</code> 
- 
- 
-Copy your port files to /usr/local/poudriere/default/ 
-and then build it port for example 
- 
-<code> 
-sudo poudriere testport -o lang/halide -j freebsd_11-2x64 
-</code> 
- 
- 
-===== Debug ports ===== 
- 
-Just put the following line to /etc/make.conf. Then recompile port with debug symbol. 
- 
-<code> 
-WITH_DEBUG=    yes 
-</code> 
- 
-more information in 
- 
-<code> 
-/usr/ports/Mk/bsd.port.mk 
-</code> 
- 
-===== Debug Makefile ports ===== 
- 
-Debug makefile for your port 
- 
-<code> 
-make -d A 
-</code> 
- 
-====== Compiling programs ====== 
- 
-===== Simple setup ===== 
- 
-How to fast setup MYSQL Database 
- 
-The first step is the installation 
- 
-<code> 
-sudo pkg install mysql56-server 
-</code> 
- 
-next step is enable in /etc/rc.conf 
- 
-<code> 
-sudo sysrc mysql_enable=yes 
-</code> 
- 
-Remember to run mysql_upgrade the first time you start the MySQL server after an upgrade from an earlier version. 
- 
-Now start MYSQL Server 
- 
-<code> 
-sudo service mysql-server start 
-</code> 
- 
-then set database 
- 
-<code> 
-sudo mysql_secure_installation 
-</code> 
- 
-====== Jails ====== 
- 
-Simple script for create jail on zfs filesystem 
- 
-<code bash> 
-#!/bin/sh 
- 
-######################################################################## 
-# Donwload amd64 base, ports tree FreeBSD OS 
-# and unpack base OS to your jail folder 
-######################################################################## 
- 
-set +x 
- 
-name_jail="freebsd11_2" 
-arch_jail="amd64" 
-version_jail="11.2-RELEASE" 
- 
-# Create new zfs dataset for jail - only once 
-#zfs create -o mountpoint=/usr/local/jails zroot/jails 
- 
-# Create jail folder 
-zfs create zroot/jails/$name_jail 
- 
-rm  /tmp/base.txz 
-rm  /tmp/ports.txz 
- 
-echo "Fetching package from FreeBSD server ..." 
- 
-fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/$arch_jail/$version_jail/base.txz -o /tmp/base.txz 
-fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/$arch_jail/$version_jail/ports.txz -o /tmp/ports.txz 
- 
-mkdir -p /usr/local/jails/$name_jail 
- 
-echo "Unpacking Freebsd base OS ..." 
-tar -xf /tmp/base.txz -C /usr/local/jails/$name_jail 
-tar -xf /tmp/ports.txz -C /usr/local/jails/$name_jail 
- 
-cp /etc/resolv.conf /usr/local/jails/$name_jail/etc 
-</code> 
- 
-<code bash> 
-#!/bin/sh 
- 
-######################################################################## 
-# Donwload i386 base, ports tree FreeBSD OS 
-# and unpack base OS to your jail folder 
-######################################################################## 
- 
-set +x 
- 
-name_jail="freebsd386" 
-arch_jail="i386" 
-version_jail="11.2-RELEASE" 
- 
-# Create new zfs dataset for jail - only once 
-#zfs create -o mountpoint=/usr/local/jails zroot/jails 
- 
-# Create jail folder 
-zfs create zroot/jails/$name_jail 
- 
-rm /tmp/base.txz 
-rm /tmp/ports.txz 
- 
-echo "Fetching package from FreeBSD server ..." 
- 
-fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/$arch_jail/$version_jail/base.txz -o /tmp/base.txz 
-fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/$arch_jail/$version_jail/ports.txz -o /tmp/ports.txz 
- 
-mkdir -p /usr/local/jails/$name_jail 
- 
-echo "Unpacking Freebsd base OS ..." 
-tar -xf /tmp/base.txz -C /usr/local/jails/$name_jail 
-tar -xf /tmp/ports.txz -C /usr/local/jails/$name_jail 
- 
-cp /etc/resolv.conf /usr/local/jails/$name_jail/etc 
- 
-echo "Done" 
-</code> 
- 
-/etc/jail.conf 
- 
-<code> 
-# /etc/jail.conf 
- 
-# Global settings applied to all jails. 
- 
-exec.start = "/bin/sh /etc/rc"; 
-exec.stop = "/bin/sh /etc/rc.shutdown"; 
-exec.clean; 
-mount.devfs; 
-allow.raw_sockets; 
- 
-# The jail definition for freebsd386 
-freebsd386 { 
-    host.hostname = "freebsd386.domain.local"; 
-    path = "/usr/local/jails/freebsd386"; 
-    interface = "lagg0"; 
-    ip4.addr = 10.0.2.15; 
-} 
-</code> 
- 
-Packet forwarding 
- 
-/etc/pf.conf 
- 
-<code> 
-# /etc/pf.conf 
-#Define the interfaces 
-ext_if = "em0" 
-int_if = "lagg0" 
-jail_net = $int_if:network 
- 
-#Define the NAT for the jails 
-nat on $ext_if from $jail_net to any -> ($ext_if) 
-</code> 
- 
-Run jail 
- 
-<code> 
-bsd@ ~> sudo jail -c freebsd386 
-bsd@ ~> jls 
-bsd@ ~> sudo jail -m jid=1 (number of jail) 
-</code> 
- 
-====== Introduction ZFS ====== 
- 
-[[http://tate.cx/improving-zfs-performance/]] 
- 
-===== Mount ZFS ===== 
- 
-<code> 
-zpool import 
-</code> 
- 
-For control command mount. 
- 
-===== Mount ZFS from Live CD ===== 
- 
-<code> 
-zpool import -fR /media zroot 
-</code> 
- 
-===== Tuning zfs on i386 ===== 
-If you will have i386 OS you must set wm.kmem_size="512M" and vm.kmem_size_max="" is minimal value.  
- 
-This is little tunables 
-more information on http://www.freebsd.cz/doc/handbook/zfs-advanced.html 
-<code> 
-vfs.zfs.prefetch_disable=0 
-vm.kmem_size="512M" 
-vm.kmem_size_max="768M" 
-vfs.zfs.arc_max="40M" 
-vfs.zfs.vdev.cache.size="5M" 
-</code> 
- 
- 
-===== Resize partition ===== 
- 
-We added space for virtual disk (VirtualBox, or other) 
-but we have disk CORRUPT  
-<code> 
-lol@ ~/> gpart show ada0 
-=>      40  41942960  ada0  GPT  (39G) [CORRUPT] 
-        40      1024      freebsd-boot  (512K) 
-      1064       984        - free -  (492K) 
-      2048   4194304      freebsd-swap  (2.0G) 
-   4196352  37744640      freebsd-zfs  (18G) 
-  41940992      2008        - free -  (1.0M) 
-</code> 
- 
-Fix is easy :  
-<code> 
-gpart recover ada0 
-</code> 
- 
-Now we need resize partion 3. 
-<code> 
-lol@ ~/> gpart show  
-=>      40  81919920  ada0  GPT  (39G) 
-        40      1024      freebsd-boot  (512K) 
-      1064       984        - free -  (492K) 
-      2048   4194304      freebsd-swap  (2.0G) 
-   4196352  37744640      freebsd-zfs  (18G) 
-  41940992  39978968        - free -  (19G) 
-</code> 
- 
-<code> 
-lol@ ~/> zpool list 
-NAME    SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT 
-zroot  17.9G  17.3G   621M            76%    96%  1.00x  ONLINE  - 
-</code> 
- 
-For device is Busy , we have set this value: 
-<code> 
-lol@ ~/> sysctl kern.geom.debugflags=16 
-kern.geom.debugflags: 0 -> 16 
-</code> 
- 
-Now resize partition number 3  
-<code> 
-lol@ ~/> gpart show  
-=>      40  81919920  ada0  GPT  (39G) 
-        40      1024      freebsd-boot  (512K) 
-      1064       984        - free -  (492K) 
-      2048   4194304      freebsd-swap  (2.0G) 
-   4196352  37744640      freebsd-zfs  (18G) 
-  41940992  39978968        - free -  (19G) 
- 
-lol@ ~/> sudo gpart resize -i 3 ada0 
- 
-ada0p3 resized 
- 
-lol@ ~/> gpart show  
-=>      40  81919920  ada0  GPT  (39G) 
-        40      1024      freebsd-boot  (512K) 
-      1064       984        - free -  (492K) 
-      2048   4194304      freebsd-swap  (2.0G) 
-   4196352  77723608      freebsd-zfs  (37G) 
-</code> 
- 
-Last step with zfs pool:  
-<code> 
-lol@ ~/> sudo zpool set autoexpand=on zroot 
-lol@ ~/> sudo zpool online -e zroot ada0p3 ada0p3 
-</code> 
- 
-Control space in zpool.Size of zroot is right. 
-<code> 
-lol@ ~/> zpool list 
-NAME    SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT 
-zroot    37G  17.3G  19.7G            36%    46%  1.00x  ONLINE  - 
-</code> 
- 
-<code> 
-lol@ ~/Desktop> sudo sysctl kern.geom.debugflags=0 
-kern.geom.debugflags: 16 -> 0 
- 
-</code> 
- 
-====== Virtualbox ======  
-===== Virtuabox in FreeBSD ===== 
- 
-Added line with kernel module to /boot/loader.conf 
- 
-<code> 
-vboxdrv_load="YES" 
-</code> 
- 
-Added line for bridged or host-only networking to /etc/rc.conf 
-<code> 
-vboxnet_enable="YES" 
-</code> 
- 
-Added to group 
-<code> 
-pw groupmod vboxusers -m yourusername 
-chown root:vboxusers /dev/vboxnetctl 
-chmod 0660 /dev/vboxnetctl 
-</code> 
- 
-Permanent permisions added lines to /etc/devfs.conf 
-<code> 
-own     vboxnetctl root:vboxusers 
-perm    vboxnetctl 0660 
-</code> 
- 
-===== FreeBSD as guest Virtualbox ===== 
- 
-Write to /etc/rc.conf 
- 
-<code> 
-vboxguest_enable="YES" 
-vboxservice_enable="YES" 
-</code> 
- 
-======  Wifi and FreeBSD  ======  
- 
-===== How to setup WIFI card ===== 
-<code> 
-pciconf -l - look for if see wifi hardware 
-sudo ifconfig wlan0 create wlandev wpi0 
-sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf 
-</code> 
- 
-===== How to setup USB WIFI ===== 
- 
-Add kernel module to /boot/loader.conf 
-<code> 
- 
-# Kernel module for wifi  
-if_ath_load="YES" 
-if_iw_load="YES" 
- 
-# Next wifi kernel modules 
-wlan_wep_load="YES" 
-wlan_ccmp_load="YES" 
-wlan_tkip_load="YES" 
-</code> 
- 
- 
-Add to configure /etc/rc.conf this lines. 
-Configure you wifi device. 
-<code> 
-wlans_run0="wlan0" 
-create_args_wlan0="wlanmode sta country CZ indoor" 
-</code> 
- 
- 
-Look to your hardware if you have drivers. 
-<code> 
- 
-# Look for if see wifi hardware (wpi, run0) 
-pciconf -l  
- 
-# Create a device with name wlan0 
-sudo ifconfig wlan0 create wlandev wpi0 
- 
-# Create wpa_supplicant configure file with ssid network  
-sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf 
- 
-# Scan your wifi networks 
-ifconfig wlan0 up scan  
-SSID/MESH ID    BSSID              CHAN RATE   S:    INT CAPS 
-lol        00:13:46:49:41:76   11   54M -90:96   100 EPS  WPA WME 
-trololo    00:11:95:c3:0d:ac    1   54M -83:96   100 EPS  WPA 
- 
-# IP address from DHCP server 
-sudo dhclient wlan0 
-</code> 
- 
-====== GELI ====== 
-<code> 
-Install CD -> Partition -> Shell 
- 
-gpart create -s gpt vtbd0 
-gpart add -t freebsd-boot -s 512k -a 4k vtbd0 
-gpart add -t freebsd-ufs -a 1M vtbd0 
-gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 vtbd0 
- 
-geli init -b -g vtbd0p2 
-geli attach vtbd0p2 
- 
-newfs -j /dev/vtbd0p2.eli 
-mount /dev/vtbd0p2.eli /mnt 
- 
-- /tmp/bsdinstall_etc/fstab 
-/dev/vtbd0p2.eli / ufs rw,noatime 1 1 
- 
-- /tmp/bsdinstall_boot/loader.conf 
-geom_eli_load="YES" 
- 
-exit (installer will continue) 
- 
-Change  /dev/vtbd0p2.eli to gptid/rawuuid (gpart list): 
-/dev/gptid/015ceb9a-90a4-11e6-b8fc-1392a9ed1847 / ufs rw,noatime 1 1 
-</code> 
- 
-====== FreeBSD Kernel ====== 
- 
-=== Source code FreeBSD kernel === 
-<code> 
-sudo pkg install subversion   
-sudo svn checkout https://svn0.us-east.FreeBSD.org/base/stable/you_version_system /usr/src 
-svn up /usr/src 
-</code> 
- 
- 
-=== Profiling and debugging kernel === 
-{{ :project:freebsd:profiling_debugging_freebsd_kernel_321772.pdf |}} 
- 
-=== Performance observality tools === 
- 
-{{:project:freebsd:freebsd_performance_observability_tools.png?600|}} 
-}===== Kernel module ===== 
- 
-<code> 
-Simple kernel module. 
-https://github.com/Martinfx/FreeBSD-Kernel-module 
-</code> 
- 
-====== FreeBSD Security ======  
-===== Security on FreeBSD ===== 
- 
-To check the status of the securelevel on a running system: Add to /etc/sysctl.conf 
- 
-<code> 
-kern.securelevel=2 
-security.bsd.see_other_uids=0 
-security.bsd.stack_guard_page=1 
-net.inet.ip.random_id=1 
-</code> 
- 
-more : [[http://www.freebsd.cz/doc/faq/security.html|http://www.freebsd.cz/doc/faq/security.html]] 
- 
-===== Enabling and Utilizing Process Accounting ===== 
- 
-Tracking information such as CPU statistics and executed commands.  
- 
-<code> 
-touch /var/account/acct 
-chmod 600 /var/account/acct 
-accton /var/account/acct 
-echo 'accounting_enable="YES"' >> /etc/rc.conf 
-</code> 
- 
-======  ACPI ====== 
- 
-===== IBM ACPI ===== 
- 
-If you use notebooks, is better enable acpi driver in /boot/loader.conf For IBM notebooks is command: 
- 
-<code> 
-acpi_ibm_load="YES" 
-</code> 
- 
-===== HP ACPI ===== 
- 
-If you use notebooks, is better enable acpi driver in /boot/loader.conf For HP notebooks is command: 
- 
-<code> 
-acpi_hp_load="YES" 
-</code> 
- 
-More : [[https://www.freebsd.org/cgi/man.cgi?acpi_ibm|https://www.freebsd.org/cgi/man.cgi?acpi_ibm]] 
- 
-====== Linux® Binary Compatibility ====== 
- 
-<code> 
-# kldload linux 
-# kldload linux64 
- 
-# kldstat - you can look for modules 
-   72 0xffffffff80200000 1fa7c38  kernel 
-    1 0xffffffff821a9000 30aec0   zfs.ko 
-    2 0xffffffff824b4000 adc0     opensolaris.ko 
-... 
-23    1 0xffffffff827bc000 389f4    linux64.ko 
- 
-and add line to /etc/rc.conf: 
-linux_enable="YES" 
-</code> 
- 
-====== Troubleshooting with FreeBSD ====== 
- 
-===== SSH ===== 
-==== Too many authentication failures ==== 
-If You are not able to authenticate via ssh and message "Too many authentication failures" is logged in /var/log/auth.log you probably have more than 2 keys loaded in your ssh agent that are failing to authenticate. To solve this unload keys you are not using from ssh agent (ssh-add -d path/ ssh-add -D), use ssh -i path_to_key or create an appropriate section in your ~/.ssh/config with IdentityFile. 
- 
-===== BOOT on FreeBSD ===== 
- ==== Fatal double fault FreeBSD 10.3 - i386 , FreeBSD 11 - i386  ==== 
- 
-The fatal double fault is a problem on FreeBSD - i386 with ZFS file system. 
- 
-As described in /usr/src/UPDATING entry 20121223, rebuilding the kernel with options KSTACK_PAGES=4 has been observed to resolve the boot-time crash.  
-This, however, is not an ideal solution for inclusion in the GENERIC kernel configuration, as increasing KSTACK_PAGES  
-implicitly decreases available usermode threads in an environment that is already resource-starved.  
- 
-You must do this steps for new kernel: 
-<code> 
-# mkdir -p /usr/src 
-# svnlite co svn://svn.freebsd.org/base/releng/10.2 /usr/src 
-# make -C /usr/src kernel-toolchain 
-# printf "include GENERIC\noptions KSTACK_PAGES=4\n" > /usr/src/sys/i386/conf/ZFS 
-# make -C /usr/src buildkernel KERNCONF=ZFS 
-# make -C /usr/src installkernel KERNCONF=ZFS 
-</code> 
- 
- 
-For FreeBSD 10.3 - More information on page https://www.freebsd.org/releases/10.3R/errata.html 
-For FreeBSD 11.0 - More information on page https://www.freebsd.org/releases/11.0R/errata.html 
- 
-==== How to boot from live CD ==== 
- 
-If is a problem with boot on FreeBSD and cannot run the system. 
-Back to FreeBSD menu and choose option 3. ( Escape to loader prompt ) 
-For help in command line is command help or ? (list of commands ) 
-help set are options for the command set  
- 
-For boot from CD is commnad  
-<code> 
-set boot_cdrom (for mount filesystem) 
-boot 
-</code> 
- 
-Look for a mounted filesystem with command mount.If you haven't zfs filesystem mounted you must run command and connect zpool : 
-<code> 
-zpool import -f zroot 
-</code> 
- 
- 
-==== How to mount disk with geli from live CD  ==== 
- 
-Boot live system ... 
- 
-<code> 
-geli attach /dev/ada0p3 
-password:  
-</code> 
- 
-The command mount only part of filesystem. 
-For example /usr; /tmp; /var; but not /boot 
-<code> 
-zpool import -f /mnt zroot 
-</code> 
- 
-The command mount /boot etc.. 
-<code> 
-zfs mount zroot/ROOT/default 
-</code> 
- 
- 
  
project/bsd/freebsd.1563204454.txt.gz · Last modified: 2019/07/15 15:27 by maxfx