Akio's information server

FreeBSD Tips

gitを用いたソースコードの取得とOSのアップデート

記載日: 2024-07-28
更新日: 2024-08-01
# pkg install git
# git clone -o freebsd https://git.FreeBSD.org/src.git /usr/src
# cd /usr/src
# git checkout releng/14.1
# make buildworld
# make buildkernel
# make installkernel
# reboot
# etcupdate -p
# make installworld
# etcupdate -B ← 上手く動かない。 mergemaster -UPiF で手動で更新するほうが良さそう。

OSのメジャーアップデートの場合のパッケージの更新は以下のようにする。
# pkg-static upgrade -f

FreeBSD 14からは、デフォルトのmtaがsendmailからdmaに変更になったようなので、引き続きsendmailを利用したい場合は、
/usr/share/examples/sendmail/mailer.conf
の内容を
/etc/mail/mailer.conf
に書き写す必要がある。

ext4fuseを用いたext4ディスクのマウント(read-only)

記載日: 2016-04-06
# pkg install ext4fuse
# kldload fuse.ko

# vi /boot/loader.conf
--------------------------------------------
fusefs_load="YES"

# ext4fuse /dev/da0p1 /mnt/ext4usb

NFS設定

記載日: 2016-03-29
Server
# vi rc.conf
nfs_server_enable="YES"
mountd_enable="YES"
rpc_lockd_enable="YES"
rpc_statd_enable="YES"
rpcbind_enable="YES"

# touch exports
# service rpcbind start
# service mountd start
# service nfsd start
# service statd start
# service lockd start

# vi exports

root@nfs_server:/etc # cat exports 
/usr    -maproot=root -network 192.168.1.0 -mask 255.255.255.0

# service mountd reload
# showmount -e

Client
/etc/fstab
nfs_server_name:/usr         /usr            nfs     rw      0       0

Hyper Estraier

記載日: 2015-11-20
http://fallabs.com/hyperestraier/intro-ja.html

Create
estcmd gather -il ja -sd casket /home/www/public_html

Update
estcmd gather -cl -il ja -sd -cm casket /home/www/public_html/
estcmd purge -cl casket
estcmd optimize casket

zfsにswapを追加

記載日: 2015-11-19
# zfs create -V 8G zroot/swap
# zfs set org.freebsd:swap=on zroot/swap
# zfs set checksum=off zroot/swap

# zfs list zroot/swap
NAME         USED  AVAIL  REFER  MOUNTPOINT
zroot/swap  8.25G   867G    64K  -

freebsd-updateでのupgrade

記載日: 2015-11-16
updateに失敗するときは、
/etc/freebsd-update.conf
を
ServerName update4.FreeBSD.org
あるいは、
ServerName update5.FreeBSD.org
に書き換えて試すといいとのこと。

# cp -Rp /etc /etc.old
# freebsd-update -r 10.2-RELEASE upgrade

ディスクにラベルをつける

記載日: 2015-11-10
dmesgで目的のディスクのデバイス名を調べる
ada0: <Samsung SSD 840 EVO> ATA-9 SATA 3.x device

# gpart show /dev/ada0
=>        34  1953525101  ada0  GPT  (932G)
          34           6        - free -  (3.0K)
          40        1024     1  freebsd-boot  (512K)
        1064  1946156024     2  freebsd-ufs  (928G)
  1946157088     7368046     3  freebsd-swap  (3.5G)
  1953525134           1        - free -  (512B)

# glabel label -v ssd_boot /dev/ada0p1
# glabel label -v ssd_root /dev/ada0p2
# glabel label -v ssd_swap /dev/ada0p3

/etc/fstab
# Device        Mountpoint      FStype  Options Dump    Pass#
/dev/label/ssd_root     /mnt/ssd        ufs     rw      1       1

のようにしてマウントする。

外付けのUSBディスクをUFSでフォーマットする

記載日: 2015-10-29
dmesgで追加したディスクのデバイス名を調べる。
今回は、da0で認識された。

gpart show da0
gpart destroy -F da0
gpart create -s GPT da0
gpart add -t freebsd-ufs da0
newfs -U da0p1
mkdir /mnt/usb1
mount /dev/da0p1 /mnt/usb1

ブートさせるなら、
gpart bootcode -b /dist/boot/pmbr da0
gpart add -s 128 -t freebsd-boot da0
gpart bootcode -p dist/boot/gptboot -i da0

スワップを作るなら、
gpart add -s 1G -t freebsd-swap da0

gpart show da0
で構成がわかる。

platexが動かなくなったら

記載日: 2015-07-22
# texconfig rehash

PostgreSQLのinitdb

記載日: 2015-06-22
# UTF-8でinitdbしたい場合
% initdb --encoding=UTF-8 --locale=ja_JP.UTF-8

sendmailのdhキーの作り直し

記載日: 2015-06-17
# cd /etc/mail/certs
# openssl dhparam -out dh.param 2048
 
# openssl dhparam -out dh.param 4096
だとかなり時間がかかる。

CPUのコアの温度取得

記載日: 2015-05-18
# kldload coretemp
amd系はamdtemp
# sysctl dev.cpu | grep temperature

無線LANの設定

記載日: 2015-05-15
BUFFALO WLI-UC-GNM2 Wireless LAN Adapter

/etc/rc.confに
wlan_load=”YES”
wlan_xauth_load=”YES”
wlan_wep_load=”YES”
wlan_tkip_load=”YES”
wlan_ccmp_load=”YES”
wlan_amrr_load=”YES”
runfw_load=”YES”
rt2561sfw_load=”YES”
rt2661fw_load=”YES”
rt2561fw_load=”YES”
wlans_run0=”wlan0″
ifconfig_wlan0=”DHCP ssid myssid wepmode on wepkey hoge1 deftxkey 1″
wpa_supplicant_enable=”YES”



root@:~ # wpa_passphrase 0123456789AB XXXXXXXX > /etc/wpa_supplicant.conf
root@:~ # cat /etc/wpa_supplicant.conf
network={
	ssid="0123456789AB"
	#psk="XXXXXXXX"
	psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}
root@:~ # wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf

Xorgでの日本語キーボードの設定

記載日: 2015-05-15
xorg-serverが1.14になってから、HALからdevdに戻ったそうで、日本語キーボードの設定方法が変わったようです。

# mkdir /etc/X11/xorg.conf.d
# vi /etc/X11/xorg.conf.d/input.conf

Section "InputClass"
        Identifier              "Keyboard Defaults"
        Driver                  "keyboard"
        MatchIsKeyboard         "on"
        Option                  "XkbRules" "xorg"
        Option                  "XkbModel" "jp106"
        Option                  "XkbLayout" "jp"
        Option                  "XkbOptions" "ctrl:nocaps"
EndSection

これで、日本語キーボードとして認識されるようになりました。

NTFSドライブをマウントする

記載日: 2014-10-28
pkg install fusefs-ntfs
cd /boot/kernel
kldload fuse.ko

/boot/loader.confに
fuse_load="YES"

/etc/rc.confに
fusefs_enavle="YES"

を記載する。

ntfs-3g /dev/da0s1 /mnt

Subversion でのソースコードの更新

記載日: 2014-04-16
修正日: 2016-01-09
subversion は、portsかPackageからインストールする。
svnliteがデフォルトでインストールされているので、通常はsvnliteで大丈夫。

古い /usr/src をリネームして、新しい空の /usr/src を作る。

svnlite checkout svn://svn.freebsd.org/base/releng/10.2 /usr/src

メモリスティックでのインストール

記載日: 2011-10-18
dd if=FreeBSD-9.0-BETA3-amd64-memstick.img of=/dev/da1 bs=10240

HASTとZFS

記載日: 2010-08-06
ZFSをHASTでレプリケーションできないか検討した。

今回は、/etc/hast.conf は以下のとおりにした。
resource shared {
   on  host1 {
        local /dev/ad6
        remote tcp4://10.0.0.2
   }
   on  host2 {
        local /dev/ad6
        remote tcp4://10.0.0.1
   }
}

host2# hastctl create shared
host2# hastd
host2# hastctl role secondary shared

host1# hastctl create shared
host1# hastd
host1# hastctl role primary shared
host1# zpool create zfs /dev/hast/shared

host1側に
Filesystem        1K-blocks      Used     Avail Capacity  Mounted on
zfs               957874126        18 957874108     0%    /zfs

のように、host2にレプリケーションされたzfsがマウントされました。

HASTで高信頼性レプリケーション

記載日: 2010-08-05
http://wiki.freebsd.org/HAST
を参考にした。

/etc/hast.conf を作る。

resource shared {
   on  host1 {
        local /dev/ad6s1d
        remote tcp4://10.0.0.2
   }
   on  host2 {
        local /dev/ad6s1d
        remote tcp4://10.0.0.1
   }
}

host1, host2の/etcにhast.confを置く。

host1 host2で
# hastctl create shared
# hastd
をそれぞれ実行する。

host2で、
# hastctl role secondary shared

host1で、
# hastctl role primary shared
# newfs -U /dev/hast/shared
# mount -o noatime /dev/hast/shared /shared

# hastctl status shared
shared:
  role: primary
  provname: shared
  localpath: /dev/ad6s1d
  extentsize: 2097152
  keepdirty: 64
  remoteaddr: tcp4://10.0.0.2
  replication: memsync
  status: complete
  dirty: 969918119936 bytes

同期が進むとdirtyが0になるはず。

host1 host2両方の /etc/rc.conf に
hastd_enable="YES" 
を追加する。

64bit modeのkernelの作り方

# cd /usr/src
# rm -rf /usr/obj/*
# make cleandir ; make cleandir
# make TARGET_ARCH=amd64 buildworld
# make KERNCONF=GENERIC TARGET_ARCH=amd64 buildkernel

FreeBSD 8.0でのxorgの設定

kinput2, cannaで日本語入力する場合 /etc/rc.conf hald_enable="YES" dbus_enable="YES" cannaserver_enable="YES" moused_enable="NO" rootになって Xorg -configure を実行して、/rootにできた、xorg.confを /etc/X11にコピーする。 /etc/X11/xorg.confに Section "ServerFlags" Option "AllowEmptyInput" "off" EndSection を追加する。 Section "InputDevice" Identifier "Keyboard0" Driver "kbd" Option "XkbRules" "xorg" Option "XkbModel" "jp106" Option "XkbLayout" "jp" # Option "XkbVariant" "jp" Option "XkbCompat" "" EndSection とする。 .cshrcに setenv XMODIFIERS @im=kinput2 setenv LANG ja_JP.eucJP setenv LC_CTYPE ja_JP.eucJP を追加。 .xinitrcは、 #!/bin/sh export LANG=ja_JP.EUC export XMODIFIERS='@im=kinput2' xsetroot -solid DodgerBlue4 kinput2 -canna& xclock -geometry 100x100-0+0 & firefox3 -geometry 0x0 & twm とした。 .twmrcに、 menu "app" { "Application" f.title "firefox" f.exec "firefox3&" "kterm" f.exec "kterm&" } のように、アプリを追加した。

platexがうまく動かない場合

ログインシェルの環境変数の
TEXMF=/usr/local/share/texmf
等の指定を除くと、うまくいく。

graphicx.styがないと言われた場合

mktexlsr
を実行する。

platex supertabular環境

/usr/ports/print/latex-supertabular をインストールする。 \documentclass[a4j]{jarticle} \usepackage[dvipdfm]{graphicx,color} \usepackage{supertabular} \begin{document} \tablefirsthead{\hline Name & Value & Comment \\ \hline } \tablehead{\hline Name & Value & Comment \\ \hline } \tabletail{\hline} \tablelasttail{\hline} \begin{supertabular}{lll} Apple & 3 & Test\\ \end{supertabular} \end{document}
[戻る]
$Id: tips.html,v 1.3 2010/01/06 14:12:26 miyao Exp $
Copyright © 2002 - 2010 Akio Miyao. All Rights Reserved.