FreeBSD Tips
- FreeBSD リハビリwメモ
あらためて softupdate 考
今リハビリ中のバージョンは 13.1-RELEASE で、インストール時に言われるままにパーティションきってファイルシステムつくると、こうなっている。
tunefs: soft updates: (-n) enabled
tunefs: soft update journaling: (-j) enabled
tunefs: gjournal: (-J) disabled
/dev/ada0p2 on / (ufs, local, soft-updates, journaled soft-updates)
(実際には noatime は追加してます)
Webで過去の記事を見ているときに
/dev/ada0p2 on / (ufs, local, journaled soft-updates)
こうなってるのばかりで、なにか変更があったのかと、
tunefs -n disable /dev/ada0p2
してみたら、
/dev/ada0p2 on / (ufs, local)
となった。-j は soft update のオプション扱いなようで、"-n" + "-j" で journaled soft-updates ということらしい。
softupdate はどんな状態で落ちても、ファイルシステムの一貫性は保たれて、障碍後の boot 時に(正しく umount されていない) fsck -p (preen モード)で軽く修復後はすぐに mount できてすぐに使える利点がある。preen モード(手動 fsck は不要な程度の)問題の修復や、しかし回収可能な削除領域を復帰されるために(ガベッジコレクション的)は必要で、それを background fsck と呼ばれる方法で稼働中に行える。しかし、この処理は一旦スナップショットをとり、裏で fsck を実行する仕組みになっており、この仕組みが大容量ボリュームの場合はとても重くて遅く、不具合といって良いほどにとらえられている。 運用上よくある回避策は、background fsck の起動を(停止ではなく)抑制して、負荷の少ない真夜中に bgfsck を実行させる。
/etc/rc.conf
background_fsck_delay="-1"
/etc/crontab
0 4 * * * root /etc/rc.d/bgfsck forcestart
このあたりは過去の知識。
FreeBSD から離れていた間に実装された journaled soft-updates をいろいろつついて経験中...
journaled soft-updates は dump -L (ライブでの dump) は現在のところは動かない(というか UFS snapshot が使えない)ので、dump -L を使う運用では journal は使えない。
journal をオフにした場合(tunefs -j disable)は、必ず .sujournal を削除しないとまずいらしい。
# enter single user mode
tunefs -j disable /{デバイス}
fsck -y {デバイス}
mount -o rw {デバイス} {マウントポイント}
chflags noschg,nosunlnk {マウントポイント}/.sujournal
rm {マウントポイント}/.sujournal
mount -o ro {デバイス} {マウントポイント}
fsck {デバイス}
mount -o rw {デバイス} {マウントポイント}
reboot
journaled soft-updates は background fsck は動かないので、それにともなう諸問題も無し
JOURNALED FILESYSTEM, CANNOT RUN IN BACKGROUND
関連リンク集
Soft updates, hard problems JournalしているUFSでfsckに失敗 FreeBSD/SUJ (Soft Updates Journaling) FreeBSDの .sujournal が邪魔の場合 rsyncのためにSoft-Updates Journalingを切る。 Remove FreeBSD journal FreeBSD Enterprise Storage
- FreeBSD リハビリwメモ
linux の世界ではもはや当たり前につかってる ccache を使ってみる。(私がコミットしている OSS project では ccache が無いと不便なぐらい)
"/usr/local/share/doc/ccache/ccache-howto-freebsd.txt" 見たら "WITH_CCACHE_BUILD=yes" だけでイケるぜって書いてたが実際はこんな感じで有効になった
WITH_CCACHE_BUILD=yes
CCACHE_DIR=/var/cache/ccache
CCACHE_BIN=/usr/local/bin/ccache
sloppiness については "time_macros, pch_defines" を設定してみた。(不具合は経験してなく、hit rate はあがるはず)
- FreeBSD リハビリwメモ
なぜ最初からこうなってないのか不思議なんだが.. make.conf に追加
DEFAULT_VERSIONS+= bdb=18
- FreeBSD リハビリwメモ
make config で設定したオプションがある場所
/var/db/ports/<port>/options
- FreeBSD リハビリwメモ
/usr/src/UPDATING や /usr/ports/UPDATING はちゃんと読め!
portmaster --check-depends
pkg check -sa
でいろいろ出てきたら、ちゃんと対処
- MacBook6,1 (13-Inch, Late 2009) unibody polycarbonate white 再生計画 その6
kernel や kernel module の再構成の時に、ports で入った kernel module をビルドし忘れないように、
PORTS_MODULES=x11/nvidia-driver-340 net/bwn-firmware-kmod
これ系は /etc/src.conf ?
- MacBook6,1 (13-Inch, Late 2009) unibody polycarbonate white 再生計画 その5
内蔵 Touchpad の設定をいろいろいじくったが、MacOS で使い慣れている事ができないのがストレス。
Drag を MacOS と同じやり方にしたいが見つからず。ストレスフルなので、USB マウスを使っている。
- MacBook6,1 (13-Inch, Late 2009) unibody polycarbonate white 再生計画 その4
keymap いろいろ
syscons...失礼。いまはvtだった。us.iso.macbook.kbd があるのだが caps lock を ctrl に変更するのにスマートな方法探したが、やっぱり keymap 書き換えしかなさそう。
同様に X11 の環境では option で caps lock を ctrl に変更できるのだが、
setxkbmap -model macbook -layout "us(mac)" -option "ctrl:nocaps"
この設定では `~ のキーがおかしい。いろいろスマートな方法探したが、これも keymap 書き換えた。
setxkbmap -option "altwin:ctrl_win"
Mac流のショートカットが一部動く。(手癖wのストレスは少しは解消)
作った keymap は custom という名前にしておくのが良いとわかった
- MacBook6,1 (13-Inch, Late 2009) unibody polycarbonate white 再生計画 その3
asmc モジュールを修正した。
--- a/asmc/asmc.c
+++ b/asmc/asmc.c
@@ -173,6 +173,12 @@ struct asmc_model asmc_models[] = {
},
{
+ "MacBook6,1", "Apple SMC MacBook Core 2 Duo (13-inch, Late 2009)",
+ ASMC_SMS_FUNCS, ASMC_FAN_FUNCS2, ASMC_LIGHT_FUNCS_DISABLED,
+ ASMC_MB61_TEMPS, ASMC_MB61_TEMPNAMES, ASMC_MB61_TEMPDESCS
+ },
+
+ {
"MacBook7,1", "Apple SMC MacBook Core 2 Duo (mid 2010)",
ASMC_SMS_FUNCS, ASMC_FAN_FUNCS2, ASMC_LIGHT_FUNCS_DISABLED,
ASMC_MB71_TEMPS, ASMC_MB71_TEMPNAMES, ASMC_MB71_TEMPDESCS
--- a/asmc/asmcvar.h
+++ b/asmc/asmcvar.h
@@ -157,6 +157,18 @@ struct asmc_softc {
"Heatsink 1","Heatsink 2" \
"Memory Bank A", }
+#define ASMC_MB61_TEMPS { "TB0T", "TB1T", "TB2T", "TC0D", "TC0P", \
+ "TH0P", "TN0D", "TN0P", "TN1D", "Th1H", \
+ "Ts0P", "Ts0S", NULL }
+
+#define ASMC_MB61_TEMPNAMES { "enclosure_bottom0", "battery_1", "battery_2", "cpu_package", "cpu_proximity", \
+ "hdd_bay", "northbridge0_diode", "northbridge0_proximity", "mpc_die2", "heatsink1", \
+ "palm_rest", "memory_proximity", }
+
+#define ASMC_MB61_TEMPDESCS { "Enclosure Bottom 0", "Battery 1", "Battery 2", "CPU Package", "CPU Proximity", \
+ "HDD Bay", "Northbridge Diode", "Northbridge Proximity", "MPC Die 2", "Heatsink 1", \
+ "Palm Rest", "Memory Proximity", }
+
#define ASMC_MB71_TEMPS { "TB0T", "TB1T", "TB2T", "TC0D", "TC0P", \
"TH0P", "TN0D", "TN0P", "TN0S", "TN1D", \
"TN1E", "TN1F", "TN1G", "TN1S", "Th1H", \
dev.asmc.0.sms.z: 262
dev.asmc.0.sms.y: 10
dev.asmc.0.sms.x: 1
dev.asmc.0.temp.memory_proximity: 46
dev.asmc.0.temp.palm_rest: 33
dev.asmc.0.temp.heatsink1: 60
dev.asmc.0.temp.mpc_die2: 72
dev.asmc.0.temp.northbridge0_proximity: 58
dev.asmc.0.temp.northbridge0_diode: 67
dev.asmc.0.temp.hdd_bay: 48
dev.asmc.0.temp.cpu_proximity: 63
dev.asmc.0.temp.cpu_package: 70
dev.asmc.0.temp.battery_2: 30
dev.asmc.0.temp.battery_1: 31
dev.asmc.0.temp.enclosure_bottom0: 30
dev.asmc.0.fan.0.targetspeed: 2000
dev.asmc.0.fan.0.maxspeed: 6200
dev.asmc.0.fan.0.minspeed: 2000
dev.asmc.0.fan.0.speed: 1996
dev.asmc.0.fan.0.id: Exhaust
dev.asmc.0.%parent: acpi0
dev.asmc.0.%pnpinfo: _HID=APP0001 _UID=0 _CID=SMC-MCP
dev.asmc.0.%location: handle=\_SB_.PCI0.LPCB.SMC_
dev.asmc.0.%driver: asmc
dev.asmc.0.%desc: Apple SMC MacBook Core 2 Duo (13-inch, Late 2009)
ちゃんと温度やファンの回転数はとれているが、とりあえず使い道はないw
- 再生計画 雑多なメモ
pkg info -D nvidia-driver-340
- MacBook6,1 (13-Inch, Late 2009) unibody polycarbonate white 再生計画 その2
/etc/loader.conf に
wsp_load="YES"
マウスやタッチパッドを動的に管理しようとした仕組みが悪さしている。libinput が動的に発見するデバイスがすべて sysmouse 収斂されるのでいろいろ便利ではあるが、細かな設定が難しい。
NaturalScrolling が touchpad で設定すると mouse で逆さま。mouse で設定すると touchpad で逆さま。Xfce の Mouse コンパネで必要に応じて換える運用にした。
- MacBook6,1 (13-Inch, Late 2009) unibody polycarbonate white 再生計画
WiFi driver ではまる
BCM4322 - WIFI Card - Freebsd 11.2 not working Introduce bwn(4) support for the bhnd(4) bus. Broadcom BCM4321 Wireless connection configuration problems Make Broadcom WLAN work (e.g., for MacBooks)
option BWN_DEBUG
option BWN_GPL_PHY
kernel option を追加して kernel 作って、かつ ports から bwn-firmware-kmod を install
/etc/loader.conf に
if_bwn_load="YES"
bwn_v4_ucode_load="YES"
bwn_v4_n_ucode_load="YES"
FreeBSD 自体が現状では 802.11ac に対応していない。そのために TP-Link の新しい機種は TP-Link 側で 11n のみの設定にしても 11ac としてしか広報しないようで動かなかった...
- ほぼ 20 年ぶりに FreeBSD をホゲるw
なので、↓ の記述は 大昔なはなしです。(最後に触ったのは RELENG_8 かなぁ..)(今は 13.1-RELEASE) (初めて触ったのは 2.x の末期だな)
- Amazon EC2 の FreeBSD AMI がテスト中 (嬉!)
FreeBSD on EC2 status FreeBSD on EC2 FAQ
なので、いろいろまとめ中
FreeBSD AMI Recipe
- たんなるメモ26
本当にたんなるメモです。数字は意味ありません。
/boot/loader.conf hint.acpi.0.disabled="1" kern.maxusers=256 kern.ipc.nmbclusters=32768 kern.ipc.semmni="256" kern.ipc.semmns="960"
/etc/make.conf KERNCONF=GENERIC WITHOUT_X11=yes #WITHOUT_CDDL=yes #X11BASE=/usr/local EMACS_PORT_NAME=emacs21 SUP_UPDATE= yes SUPFLAGS= -g -L 2 SUPHOST= cvsup4.jp.freebsd.org SUPFILE= /usr/local/etc/cvsup/stable-supfile PORTSSUPFILE= /usr/local/etc/cvsup/ports-supfile DOCSUPFILE= /usr/local/etc/cvsup/doc-supfile
/etc/syslog.conf touch /var/log/all.log chmod 600 /var/log/all.log *.* /var/log/all.log
/etc/sysctl.conf # FreeBSD-EN-09:05.null security.bsd.map_at_zero=0 # Set it in case of large memory system. vm.defer_swapspace_pageouts=1 vm.disable_swapspace_pageouts=1 vm.idlezero_enable=0 # Check vfs.ufs.dirhash_mem value # (for NFS Server: 16777216 more, Web Server: 4194304) #vfs.ufs.dirhash_maxmem=4194304 #vfs.ufs.dirhash_maxmem=16777216 #vfs.ufs.dirhash_maxmem=33554432 #vfs.ufs.dirhash_maxmem=67108864 # Shared Memory tweaking (see also /boot/loader.conf) kern.ipc.shmmax=134217728 #kern.ipc.shmmax=1073741824 kern.ipc.shmall=32768 #kern.ipc.shmall=262144 kern.ipc.semmap=256 # See man tuning(7) kern.maxfiles=65536 kern.maxfilesperproc=58982 kern.ipc.somaxconn=8192 kern.ipc.maxsockbuf=524280 # rfc1323 #net.inet.raw.maxdgram=16384 #net.inet.raw.recvspace=16384 #net.inet.tcp.sendspace=65536 #net.inet.tcp.recvspace=65536 #net.inet.udp.recvspace=65536 #net.inet.udp.maxdgram=16384 # net.inet.icmp.icmplim=600 #net.inet.tcp.always_keepalive=0 #net.inet.tcp.msl=600 #net.inet.tcp.blackhole=2 #net.inet.udp.blackhole=1 # ICMP redirect off net.inet.ip.redirect=0 net.inet6.ip6.redirect=0 net.inet6.icmp6.rediraccept=0
/etc/ssh/ssh_config #ForwardAgent yes #EnableSSHKeysign yes TCPKeepAlive no ServerAliveInterval 60 ServerAliveCountMax 15
/etc/rc.conf # HOST Settings hostname="foo.bar.example.com" ifconfig_em0="inet 192.168.1.3 netmask 255.255.255.0" defaultrouter="192.168.1.254" # Basic Settings keyrate="fast" keymap="jp.106" saver="NO" sshd_enable="YES" usbd_enable="YES" moused_enable="NO" accounting_enable="YES" ipv6_enable="NO" icmp_drop_redirect="YES" inetd_enable="YES" inetd_flags="-wW -R 2048" kern_securelevel_enable="NO" fsck_y_enable="YES" background_fsck="NO" local_startup="/usr/local/etc/rc.d" # BIND Settings named_enable="YES" # Sendmail Settings sendmail_enable="YES" # NTP Settings ntpdate_enable="YES" ntpdate_hosts="192.168.1.21" ntpd_enable="YES" # Ports Settings snmpd_enable="YES" snmpd_flags="-Lsd -Lf /dev/null" # RPC Settings rpcbind_enable="NO"
(特殊設定)
diff /usr/include/sys/socket.h /usr/src/sys/sys/socket.h diff /usr/include/sys/select.h /usr/src/sys/sys/select.h
4096 8192U
- たんなるメモ25
いま -> RELENG_7 -> RELENG_8
/boot/device.hints hint.uart.0.*
WITHOUT_CDDL=yes
http://www.mail-archive.com/freebsd-stable@freebsd.org/msg91065.html
http://www.freebsd.org/cgi/query-pr.cgi?pr=148538
- お便利なtool
net-mgmt/tcptrack sysutils/smartmontools
- たんなるメモ24
perl5.10 に上げたときいろいろ発見した件
libchk
とか
portsclean -L
/usr/local/libdata/ldconfig/
で
# /etc/rc.d/ldconfig start
あーやっぱり FreeBSD が大好きです。
- たんなるメモ23
- tzsetup(8)
- /etc/mergemaster.rc
- うれしす
AUTO_UPGRADE=yes AUTO_INSTALL=yes IGNORE_FILES='/etc/motd' PRESERVE_FILES=yes VERBOSE=yes FREEBSD_ID=yes
- Firefox35
- 要注意
Firefox 3.5 and HTML5 Certain functions used to display HTML5 elements need the sem module. If your Firefox crashes with the following message while viewing a HTML5 page: "Bad system call (core dumped)" you need to load the sem module (kldload sem). To load sem on every boot put the following into your /boot/loader.conf: sem_load="YES"
- たんなるメモ23
portsnap fetch portsnap extract portsnap update
portsnap fetch portsnap update ezjail-admin update -P
- ついでに freebsd-update 系メモ
- projects: freebsd-update-server
- Linux にあるお便利ツール @FreeBSD
watch @Linux ===> sysutils/topless @FreeBSD ps auxf @Linux ===> sysutils/pstree @FreeBSD
- *BSD 系の login name 問題
- CGI 等で sendmail を起動する際 -f を指定しなかった場合の sender の挙動とかとか
id -p
- で確認してみそ
- apache を起動する時に id -p して、login という項目が表示されていればビンゴ!
- (see man 2 setlogin, getlogin)
- (そーいやぁ 昔は exec login しろっていってたよなぁ...)
- (*BSD のシステム運用の際は今も昔も要注意)
- たんなるメモ22
- FreeBSD の devfs 系
/sbin/devfs rule -s 1 delset /sbin/devfs rule -s 1 add hide /sbin/devfs rule -s 2 delset /sbin/devfs rule -s 2 add path null unhide /sbin/devfs rule -s 2 add path zero unhide /sbin/devfs rule -s 2 add path crypto unhide /sbin/devfs rule -s 2 add path random unhide /sbin/devfs rule -s 2 add path urandom unhide /sbin/devfs -m /foo_chrootdir/dev ruleset 1 /sbin/devfs -m /foo_chrootdir/dev rule applyset /sbin/devfs -m /foo_chrootdir/dev rule -s 2 applyset
/sbin/devfs rule showsets /sbin/devfs rule -s 1 show /sbin/devfs rule -s 2 show
- extended rc 系では
umount /foo_chrootdir/dev 2>/dev/null devfs_domount /foo_chrootdir/dev devfsrules_hide_all devfs -m /foo_chrootdir/dev rule -s 2 applyset
- rulesetは rcvar の 'devfs_rulesets' で定義
- (増加する ttyp*, ptyp* も hide (謎))
- FreeBSD ports でスマートなカスタマイズ方法
- /usr/ports/hoge/fugaで
Makefile.local scripts/ほげら
- を駆使してなんとかする
- (ほげら: 最後に独自パッチをあてたければ、post-patch とか)
- (Makefile.local も scripts/以下 も make update では消えないので安心)
過去ログ
昔のものは、雑多なメモ