[FreeBSD-users-jp 96031] Re: linprocfs and mfs on 10.3-RELEASE-p16

Hiroki Sato hrs @ allbsd.org
2017年 2月 6日 (月) 11:55:26 UTC


maruyama @ ism.ac.jp (丸山直昌) wrote
  in <ydlr33bybme.fsf @ samanta.ism.ac.jp>:

ma> VIMAGE のことは忘れていました。
ma>
ma> Date: Thu, 01 Sep 2016 14:04:04 +0900
ma> Subject: [FreeBSD-users-jp 95966] FreeBSD と PC-BSDの違い
ma>
ma> に書いた通り、 10.3での元祖 FreeBSD と PCBSDの違いは
ma>
ma> usr/src/sys/amd64/conf/GENERIC PCBSD/usr/src/sys/amd64/conf/GENERIC
ma> usr/src/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c
ma>
ma> だけで、少ないとは言え違うので、可能性だけ言えば、動かなくなる機能はある
ma> わけですが、私は jail は使っていないので、まあこのままFreeBSD プロジェク
ma> ト側の freebsd-update サーバを使ってみます。 PC-BSDの update サーバーは
ma> 手抜きでどうしようもありません。

 VIMAGE が入っている場合、jail を使っているかどうかと関係なく
 ネットワーク周りのコードがごっそり変わりますので、
 不具合はこれからも出ると思います。

 先のメールにあった

ma> link_elf_obj: symbol vnet_entry_ifnet undefined

 は、グローバル変数である ifnet の参照(カーネルモジュールの
 リンク時のシンボル解決)に失敗していることを示しています。

 linprocfs は proc/net/dev をサポートするために ifnet を使います。
 ifnet の構造体は VIMAGE がある場合とない場合とで大きく異なります。
 具体的には、ある場合は vnet_entry_ifnet という名前に置き換えられ、
 ない場合は ifnet という名前のままです。

 そのため、linprocfs.ko を読んだ時点で上記のエラーが出るという情報から
 推測すると、PC-BSD に含まれている linprocfs.ko と
 FreeBSD プロジェクトがリリースしている GENERIC カーネルとを
 組み合わせた場合なのだと思います。GENERIC カーネルには
 vnet_entry_ifnet が定義されていませんので、カーネルモジュールの
 ロードに失敗します。

 なぜ再現しないのかはわかりませんが、
 「freebsd-update によってカーネル本体だけ差し替えられた」という
 想像が正しいなら、カーネルモジュールのうち、ifnet を参照するものは
 全滅しています。これには linprocfs だけでなく、
 ipfw や pf, if_vlan などが含まれますので、影響は大きいです。

 自己責任で使われるのは自由だと思いますが、
 メーリングリストに報告しても有益なアドバイスを得られる可能性は
 非常に低いのではないでしょうか。

-- Hiroki
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: 無し
型:         application/pgp-signature
サイズ:     181 バイト
説明:       無し
URL:        <http://lists.freebsd.org/pipermail/freebsd-users-jp/attachments/20170206/c949d1e5/attachment.sig>


freebsd-users-jp メーリングリストの案内