FreeBSD Tips: Difference between revisions

From misc notes
Jump to navigation Jump to search
No edit summary
No edit summary
Line 29: Line 29:
となった。-j は soft update のオプション扱いなようで、"-n" + "-j" で journaled soft-updates ということらしい。
となった。-j は soft update のオプション扱いなようで、"-n" + "-j" で journaled soft-updates ということらしい。


むかしむかし softupdate が実装された頃は現役で FreeBSD さわってて、どんな状態で落ちても、ファイルシステムの一貫性は保たれて、その後の boot 時にはすぐに mount でき使える利点がある。しかし処理中のファイル操作の整合性を復帰されるために fsck を実行する事は必要で、それを background fsck と呼ばれる方法で稼働中に行える。しかし、この処理は、
むかしむかし softupdate が実装された頃は現役で FreeBSD さわってて、どんな状態で落ちても、ファイルシステムの一貫性は保たれて、その後の boot 時にはすぐに mount でき使える利点がある。しかし処理中のファイル操作の整合性を復帰されるために fsck を実行する事は必要で、それを background fsck と呼ばれる方法で稼働中に行える。しかし、この処理は一旦スナップショットをとり、裏で fsck を実行する仕組みになっており、スナップショットをとる間はシステムコールができない状態が出来、大容量ボリュームの場合不具合がある。
運用上よくある回避策は、background fsck の起動を抑制して、負荷の少ない真夜中に bgfsck を実行させる。
 





Revision as of 08:27, 13 July 2022

  • 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 が実装された頃は現役で FreeBSD さわってて、どんな状態で落ちても、ファイルシステムの一貫性は保たれて、その後の boot 時にはすぐに mount でき使える利点がある。しかし処理中のファイル操作の整合性を復帰されるために fsck を実行する事は必要で、それを background fsck と呼ばれる方法で稼働中に行える。しかし、この処理は一旦スナップショットをとり、裏で fsck を実行する仕組みになっており、スナップショットをとる間はシステムコールができない状態が出来、大容量ボリュームの場合不具合がある。 運用上よくある回避策は、background fsck の起動を抑制して、負荷の少ない真夜中に bgfsck を実行させる。



  • 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 では消えないので安心)

過去ログ

昔のものは、雑多なメモ