FreeBSD 11-STABLE symbol の 'KERNBASE' can not be undef の件2017年10月11日 12時30分08秒

取り合えず、どの変更が原因か調べる。

前回のカーネルバージョンは 324186。 324421 は既に駄目。 324300 も駄目。 324299 は大丈夫。

コンパイルエラーを手っ取り早く見付ける為なので、モジュールは全て無効にする。

% cd /usr/src
% make buildkernel -j 3 MODULES_OVERRIDE=''
もしかしたら、一ファイルだけをコンパイルする方法もあるのかも知れないが、これで十分。

問題を見付けたかと思ったら、rm /usr/obj/usr/src/sys/GENERIC/mpboot.o の後に、324300 を試したら大丈夫。324385 は大丈夫。324400 は大丈夫。324472 も大丈夫。結局 HEAD に戻しても大丈夫。ファイルを消したら何が変わったのだろうか…

良く使う mail のコマンド2017年09月22日 12時44分24秒

いわゆる /bin/mail のメールクライアント。日常的に使うコマンドでは無くなったが、cron job 等から受け取ったメールをローカルで点検したりする時に使う。

作業の順番に。

h
表題のリストを見る。
数字
h で表示されている番号のメールをみる。一気にスクロールする mail クライアントも。
page 数字
番号のメールを PAGER を使って見る。個人的には less が一番使いやすい。
d 数字
番号のメールを消す。数字-数字の形で二つの数をハイホンで繋ぐと、その範囲のメールを全て消す。
q
終了。

nfs の umount が返らない2017年07月02日 11時33分59秒

FreeBSD で最近よく /usr/src と /usr/obj を nfs でマウントしている。make installworld installkernel の後に、umount /usr/src /usr/obj をやるのだが、umount が返って来ない。ctrl-c をやるとファイルシステムは無くなっている。

どのバージョンから起き始めたのか分からないが、現在のシステムは FreeBSD 11.1-RC1。

ネットワークスイッチを一文で説明してみる2017年03月28日 11時59分16秒

「コンピュータの線を繋いで、二つのコンピュータにお話させる伝声管」でどうだろうか。

子供達はむしろ有線での通信を見たことが滅多に無い気がする。逆に簡単にまとめるのが難しい。

ハブは、電気信号の増幅と複数の接続に使い、信号は全ての方向に流れていたが、スイッチは Mac アドレスを用いて個体を認識するので、信号の衝突を防ぎ効率が良い。

Dynamic Programming を一文で説明してみる。2017年03月24日 19時17分33秒

Dynamic Programming は「大きな問題をいくつもの細かい問題に分けて解いていく方法」。

小さい子供達にも、教えられるようにと思って、簡潔な言葉でまとめてみることにした。少々語弊が入るかも知れないが、そこはある程度目をつぶって。

以前からこの名前の付け方は、芳しくないと思っていた。日本語では「動的計画法」などと言われる。時折、あれ、どんな技法だったけと、忘れてしまう。

簡単に要約すると、「分割統治法」。Divide and Conquer と言われる、大きな問題を小さな問題郡に分けて、単純化して再帰的に解くと言うこと。また、この再帰時に、前回求めた結果を再利用する「メモ化」も技法の一部に入る。

自宅からニューヨークのバスは 186 番2017年03月06日 14時00分51秒

ニューヨークへ行くバスの路線番号を探すのは何故だか大変。普段は乗らないので、必要になるたびに調べていたが、結構時間が掛かる。

一番近くのバス停に止まるのは 186 George Washington Bridge Bus Terminal の様だ。これは、一時間に、一、二本であまり本数は無いようだ。

橋を渡るだけなら、ジョージワシントン橋に行けば、多い時には毎分通過する。渋滞の時間を過ぎると本数は減るが、それでもまあまあ来る。

FreeBSD でカーネルスペースのメモリを調べる2016年08月01日 11時57分53秒

メーリングリストに流れたコマンド例。
% vmstat -m | sort -rnk 2,3 | head -n 10
    sysctloid  5257   167K       -     5394  16,32,64,128
       devbuf  3858  3107K       -     5107  16,32,64,128,256,512,1024,2048,4096,8192,65536
       acpica  2274   120K       -   122889  16,32,64,128,256,512,1024,2048,4096
          bus  1461    72K       -     8788  16,32,64,128,256,1024
      i915gem   878   155K       -   564247  16,32,64,128,256,512,1024,2048,4096,8192
         GEOM   655   101K       -     6016  16,32,64,128,256,512,1024,2048,8192,16384
         umtx   552    52K       -      552  64,128
       module   543    35K       -      544  64,128
     gem_name   473    16K       -     6444  16,2048
     drm_sman   437    28K       -     4193  64
         kobj   385   770K       -     1202  2048
      kdtrace   344    69K       -     1729  64,256
vmstat の -m でカーネルメモリの割当を表示し、第二、第三コラムで並べ直している。出力は私の機械での例。

古い機種で FreeBSD が動かなくなっていた2016年07月06日 21時21分51秒

FreeBSD 10.1 は起動できるが、10.2 から駄目なようだ。ほとんど電気を付けていなかった機種なので、最近になって気が付いた。

暇を持て余すようだったら、原因の切り分けをしてみたいものだが…。取り敢えず、stable/10 の 276686 辺りから探る必要がありそう。

10.1 RELEASE は不安定な気がする2015年02月01日 10時03分04秒

FreeBSD 10.1 RELEASE に移行して結構たつが、やっぱりパニックが起きる。三台ある機械の中で一台でしか再現がしない。zfs などメモリを使う物によわい。また Xorg を利用中にも落ちることがある。こちらも同じカーネルメモリの枯渇。

vm_thread_new: kstack allocation failed

がその時に出るエラー。

最初は Xorg や zfs 、vt コンソールを疑っていたが、どうもそうではないようだ。単純に make -C /usr/src buildworld -j 300で、問題を起こせる。vfork が失敗して、プロセスを作ることが出来なくなる。

他の二台で試したが、-j 300 でも大丈夫。問題のある機械で 11-CURRENT と 10.0-RELEASE を試したが、こちらも問題無し。10.1-RELEASE にのみに起きているみたいだ。

FreeBSD 10.0 で動かなくなったもの2014年06月18日 10時42分35秒

FreeBSD 10.0 の動作確認をしているが、ggated/ggatec の GEOM gate と mount_ntfs が動いていないようだ。ただ、どちらの二つとも長年パッチを当あてていたので、手元の問題の可能性の方が高い。

GGATE は rctp を使ったり、ipv6 のサポートとその他細々したのから独自修正も当てていた。8 系から 9.x だか 10.x にだかの変更で、スペースの量の調整が行われ、パッチが当たらなくなり、面倒臭くなってこちらの変更は取り敢えず捨てた。なので、素の状態のはずだが。もう少し様子を見る必要がある。

mount_ntfs の方は、mount のファイルシステムの認識を弄っていたので、直接ではないが、もしかしたら影響があったのかも知れない。外部 mount の呼び出しで、誤認識を良くしていたから書き換えていたのだが、nmount で新たにサポートが増えていたとしたら、おかしくなっているだろう。

そんなわけで今回は自分の環境の防備録。