maruy...@ism.ac.jp (丸山直昌) wrote
  in <ydlr33bybme....@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

Attachment: pgpJzebKSgE7s.pgp
Description: PGP signature

メールによる返信