FreeBSD に ipfilter の SA2017年05月01日 11時32分19秒

ipfilter の SA が出ている。対象はサポートされている全てのバージョン。FreeBSD 10.3-RELEASE と 11.0-RELEASE がそれに当たる。

ipfilter は ipfw や pf 等と並ぶファイアーウォール。パニックを引き起こす事が出来る。回避策はないそうだが、使っていなければ問題はない。

古い dynabook に FreeBSD の 非 SMP カーネルを入れてみる2017年05月02日 10時38分40秒

まずは、SMP をサポートしないカーネルを作る。UP はそのままでは分かりづらい名前だが、シングル CPU を指す名前だ。最初にコードを見たときは、すぐには思い出せなかった。

11-stable のコードで試す。sys/i386/conf/UP ファイルを作って、SMP を無効にする。

include GENERIC

ident           UP

# To make an SMP kernel, the next two lines are needed
nooptions       SMP                     # Symmetric MultiProcessor Kernel
#device         apic                    # I/O APIC
#nooptions      EARLY_AP_STARTUP

カーネルを構築して、古い dynabook に入れて再起動してみた。落ちるには落ちるが、少し前進したようだ。

panic()
make_dev_sv()
make_dev()
agp_generic_attach()
agp_i810_attach()
device_attach()
bus_generic_attach()

ニューヨークは雨続き2017年05月08日 14時22分01秒

最近、天気が良くない。気温も若干下がり気味で、摂氏二十五度前後で暑いと感じた先週とはうって変わって、今週はだいたい摂氏二十度前後。くもりや小雨の日が多く、風の強い日が多い。

特に、金曜日に大雨が降った。それこそ、バケツをひっくり返した様な雨。外に置きっぱなしだった、バケツと乳児用のお風呂が縁までいっぱいになっていた。

先週は暖かくなったせいで、花粉が大量に飛んでいたが、この大雨で一気に流れ去った。黄色く染まっていた道路も、清掃車が通った後みたいに綺麗になっていた。

今週も曇って、若干肌寒い日が続くようだ。

make_dev_sv 関数を覗く2017年05月09日 20時37分36秒

make_dev_sv の実装は sys/kern/kern_conf.c にあるようだ。残念ながら、panic の前のメッセージは kdb の出力で流れて読めないのだが、運良く、panic が関数内の一つのみ。

関数のこの部分で panic を起こしている様だった。

    dev = newdev(&args, dev_new);
    if ((dev->si_flags & SI_NAMED) == 0) {
        res = prep_devname(dev, fmt, ap);
        if (res != 0) {
            if ((args.mda_flags & MAKEDEV_CHECKNAME) == 0) {
                panic(
            "make_dev_sv: bad si_name (error=%d, si_name=%s)",
                    res, dev->si_name);
            }

hint.agp.1.disabled="1" で dynabook は動くようだ2017年05月10日 12時30分36秒

古い dynabook に FreeBSD の 非 SMP カーネルを入れてみたらmake_dev_sv 関数で落ちるようになった。メッセージには
vgapci1: <VGA-compatible display> at device 2.1 on pci0
agp1: <Intel 8285xM (85xGM GMCH) SVGA controller> on vgapci1
make_dev_sv: bad si_name (error=17, si_name=agpgart)
と残っている。

調べると、855GM搭載機が FreeBSD 10.2-RELEASE にて kernel panic にて類似したケースが見付かった。そちらから [FreeBSD-users-jp 95594] FreeBSD 10.2-RELEASE VGA panic が参照されていて、/boot/loader.conf で agp1 が無効化出来るとある。

hint.agp.1.disabled="1"
hint.drmn.1.disabled="1"

私の環境では drmn のエラーやデバイスは無いので、agp だけで大丈夫だろう。試すと、10 系でも dynabook が起動できた。11.0-RELEASE でも起動できたが、11.1-PRERELEASE の 11-STABLE だと、SMP カーネルでは駄目だった。

カーネル自体は起動するようになったが、この dynabook のキーボードが幾つか壊れている。そのため、USB キーボードも動作しなくては起動しても使えない。現状では 10 系と 11.0-RELEASE ではうまく USB キーボードを使えないようだ。11.1-PRERELEASE だと SMP では動かない。もう少し USB 関連を見直せば、キーボードは動くかも知れない。

dynabook での SMP カーネルのパニックメッセージ2017年05月12日 12時07分28秒

hint.agp.1.disabled="1"UP カーネル で 11.1-PREREELASE の 11-STABLE が起動した。11.0-RELEASE でも起動は確認したが、折角なので、新しい方で試そうと思う。

CPU を探している時に落ちるので、/var/log/message 等には残らないので厄介な、カーネルパニック。手書きで写してみた。取り敢えず分かっているのは、atpic_assign_cpu が呼ばれてはいけないと言うこと。

panic
atpic_assign_cpu
intr_assign_cpu
intr_event_bind
intr_bind
nexus_bind_intr
bus_generic_bind_intr
bus_bind_intr
atrtc_attach
device_attach
bus_generic_attach
acpi_attach
bus_generic_attach
device_attach
bus_generic_new_pass
root_bus_configure
configure
mi_startup

SRE / devops2017年05月15日 12時26分50秒

Google が Site Reliability Engineering の本を無料公開している。SRE チーム、devops として新しい役割のようだ。

make_dev_credv が FreeBSD のバグレポートにあった2017年05月16日 12時33分25秒

agppart の問題は [panic] make_dev_credv: bad si_name (error=17, si_name=agpgart)に載っていた。結構、あちこちの人達が影響を受けていたようだ。

GNU make で現在のディレクトリ名を取得2017年05月17日 14時51分27秒

CURDIR が現在のディレクトリのフルパス持っているので、notdir で落す。
DIRNAME = $(notdir $(CURDIR))

クランク側のギアを使うのは止めた2017年05月18日 12時42分22秒

クランク側のギアがゆるいと感じていた Specialized の Sirrus Sport だが、やはりチェーンが落ちやすい。そのため、直線でスピードにのっている時のみにこちらのギアはあげるようにした。なお、早めにギアを落としておかないと、止まったときに苦労する。

そのため、普段はかなりの部分を低ギアに固定して使っている。これで、チェーンが落ちたり、絡まったりするのがほぼ無くなった。後部のギアだけでもかなり差があるので、結構足りている。