User Tools

Site Tools


freebsd:freebsd_3tweaks

This is an old revision of the document!


FreeBSD Tweaks

Maybe useful to some…

ZeroConf

  • avahi & multicast dns
    pkg install -y avahi-app nss_mdns
  • enable avahi daemon in rc.conf:
    avahi_daemon_enable="YES"
  • modify the hosts: line in nsswitch.conf:
    hosts: files dns mdns

User Account

  • by default root shell is csh and user is sh - edit .shrc to get prettier prompt
      PS1="`whoami`@\H:\w\$ "
  • (IF using slim) to enable x environment after slim login, create ~/.xinitrc for each user:
      exec /usr/local/bin/mate-session

Git

  1. 'git log' output does not show colorized output
    • can see the escape sequence
    • so, as user, type
      git config --global core.pager "ls -r"

Network Configuration

Note DHCP client is dhclient - simply run dhclient <interface> when booting to console and using something like USB tethering.

Configure (wireless) network interface (in case was not done during installation)

  • FreeBSD has network interface name - based on the driver name (e.g. sis, re)
    • to find this, use pciconf -lv
  • for normal wired connection (e.g. re0), add to 'rc.conf'
    ifconfig_re0="DHCP"
  • for a wireless connection (e.g. ath0), add in
    wlan_ath0="wlan0"
    ifconfig_wlan0="DHCP"
  • for a secured wireless connection (e.g. WPA protected), add in
    wlan_ath0="wlan0"
      ifconfig_wlan0="WPA SYNCDHCP"

    also, append '/ etc/wpa_supplicant.conf'

      network={
          ssid="the_ssid"
          psk="the_psk"
      }
  • not sure why but wlan0 was not auto-created?
    • from official handbook, do ifconfig wlan0 create wlandev ath0
    • to start up and scan, do ifconfig wlan0 up scan
    • or just scan, do ifconfig wlan0 list scan

Graphics

Driver for ASUS E5450 Graphics Card (based on Radeon 5450?)

  • install driver
    pkg install -y xf86-video-ati
  • to load on startup, edit rc.conf:
    kld_list="radeonkms"

For Intel Graphics (Asus H81M-K Motherboard)

  • install driver
    pkg install -y xf86-video-intel
  • to load on startup, edit rc.conf:
    kld_list="i915kms"
  • install something? (for kernel?)
    pkg install -y drm-kmod
    • some older ones require drm-fake-kmod instead

Web Server

Web Server (Apache)

  • find apache package(s)
    pkg search apache2 | grep -e "^apache2"
  • install apache package(s)
    pkg install -y php56 mod_php56 php56-mbstring php56-mcrypt php56-zlib php56-curl php56-gd php56-json
  • to load on startup, edit rc.conf:
    apache24_enable="YES"
  • default document path is /usr/local/www/apache24/data/

Server Script (PHP)

  • find php package(s)
    pkg search php5 | grep -e "^php5"
  • install php package(s)
    pkg install -y apache24
  • configure /usr/local/ etc/apache24/Includes/php.conf:
      <IfModule dir_module>
        DirectoryIndex index.php index.html
        <FilesMatch "\.php$">
          SetHandler application/x-httpd-php
        </FilesMatch>
        <FilesMatch "\.phps$">
          SetHandler application/x-httpd-php-source
        </FilesMatch>
      </IfModule>
  • copy template configuration file # cp /usr/local/ etc/php .ini-production /usr/local/ etc/php .ini

Data-base (mysql/mariadb)

  • install package(s)
    pkg install mariadb103-server mariadb103-client php56-mysqli
  • to load on startup, edit rc.conf:
    mysql_enable="YES"
  • by default, it listens to remote request at port 3306. to check:
    # lsof -i4 -i6
    # sockstat -4 -6
  • to allow local access only, edit rc.conf:
    mysql_args="--bind-address=127.0.0.1"
  • now, to make sure all is okay:
    # lsof -i4 -i6 | grep mysql
    # netstat -an | grep 3306
    # sockstat -4 -6 | grep 3306

Creating Disk Layout for Bootable USB

Using GPT

freebsd_gpt_disk_layout.txt
creating disk layout (gpt) for freebsd
- assuming disk is da0 (change accordingly for other designation)
 
0- clean existing partitions/slices
 
# gpart destroy -F da0
 
(manual op) 
find total sector count using diskinfo
# diskinfo -v da0
backup/secondary gpt table is at the last 34 sector
# echo '<total> - 34' | bc
<offset>
# dd if=/dev/zero of=/dev/da0 bs=512 seek=<offset>
 
1- create gpt and bios boot scheme
 
# gpart create -s gpt da0
da0 created
# gpart add -t freebsd-boot -l gpboot -b 40 -s 1004K da0
da0p1 added
# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 da0
partcode written to da0p1
bootcode written to da0
 
2- create efi partition
 
# gpart add -t efi -l gpefiboot -s 127M da0
da0p2 added
# newfs_msdos /dev/da0p2
...
 
3- copy efi binary
 
# mount -t msdosfs /dev/da0p2 /mnt
# mkdir -p /mnt/EFI/BOOT
# cp /boot/boot1.efi /mnt/EFI/BOOT/
# umount /mnt
 
4- create partition/slice for root and swap
 
# gpart add -t freebsd-ufs -l gprootfs -s 14G da0
da0p3 added
# gpart add -t freebsd-swap -l gpswap da0
da0p4 added
 
5- format/prepare fs for root
 
# newfs -U /dev/da0p3

Using MBR (just in case… :p)

freebsd_mbr_disk_layout.txt
# gpart create -s mbr da0
# gpart bootcode -b /boot/mbr da0
# gpart add -t freebsd da0
# gpart set -a active -i 1 da0
# gpart create -s bsd da0s1
# gpart bootcode -b /boot/boot da0s1
2023/08/29 13:04

Label for Partitions/Slices

This is nice to have in / etc/ fstab when device assignment may change (e.g. usb drive on different machine may be assigned differently)

For ufs,

# tunefs -L <label> /dev/da0p?

To check if assigned,

# ls /dev/ufs

For swap,

# glabel label <label> /dev/da0p?

To check if assigned,

# ls /dev/label

Then, / etc/ fstab entry can be like,

/dev/label/<label>	none	swap	sw	0	0
/dev/ufs/<label>	/		ufs		rw	1	1

Disk Utility ''gpart''

Show partition

# gpart show

Resize partition

# gpart resize -i 3 da0

Not really gpart stuff, but don't forget to grow FS to fit new size

# growfs /dev/da0p3

Access to Linux ExtFS

At the moment, full R/W access for Ext2, Journal-less for Ext3 and R/O for Ext4.

# kldload ext2fs
# mount -t ext2fs /dev/<slice> <mount-path>
freebsd/freebsd_3tweaks.1739509576.txt.gz · Last modified: by azman