ほぼ雑記的メモ
放置していたFreeBSD RELEASE-10へのアプグレードですが、OSはほぼ問題なく移行できました。まぁ問題はその後の設定なんですけどね。
とりあえずここまで。あとlinux関係のモジュールでいくつかエラーが出てたのう・・・
9.1まではこちらの記事にあるこちらのパッチが適用できたのですが、9.2からは数ヶ所rejectされるようになってしまいました(ちなみに /usr/ports/net/stf-6rd-kmodから入れても同じようなことになるような感じ)
なので手動でセコセコ直す作業が発生。疲れた~。 一応sakuraのVPSではちゃんと動いているようです。 疲れたついでに9.2用のパッチをここにおいときます。
前は/etc/rc.confに
jail_sysvipc_allow="YES"
としとけば動いたんですが、9.2からは
jail_jail171_parameters="allow.sysvipc=1"
のように書かないとダメっぽい。これ以上詳しくは追ってない・・
cannot start jailと出て起動しなく。手動では起動するので/etc/rc.d/jailが何か変更になったぽい。で追っていくとIPv6の指定の仕方が不味いということに気がつきました。パラメータのIPのリストをみてIPv4のときはip4.addr, IPv6のときはip6.addrで指定するように変わったようです。で、/etc/rc.confには以下のようにかいていたのですが
jail_jail171_hostname="jail171.jail" jail_jail171_ip="192.168.253.171,2400:XXXX:100::192.168.253.171" jail_jail171_rootdir="/jails/jail171" jail_jail171_procfs_enable="YES" jail_jail171_devfs_enable="YES" jail_jail171_exec_start="/bin/sh /etc/rc" jail_jail171_exec_stop="/bin/sh /etc/rc.suhtdown" jail_jail171_mount_enable="YES"
2400:XXXX:100::192.168.253.171が *.*.*.*にマッチしてしまいIPv4のアドレスだと思われてしまうようです。故に全部:で区切って書けば問題なさげです。あるいは/etc/rc.d/jailの以下の部分:
*.*.*.*
# Identify type {inet,inet6}. case "${_addr}" in *\.*\.*\.*) _type="inet" ;; *:*) _type="inet6" ;; *) warn "jail_extract_address: type not identified" ;; esac
これを
# Identify type {inet,inet6}. case "${_addr}" in *:*) _type="inet6" ;; *\.*\.*\.*) _type="inet" ;; *) warn "jail_extract_address: type not identified" ;; esac
とするとよいようです。
起動して何かしようとすると、
VirtualBox cannnot talk to klauncher Not connected to D-Bus server. FreeBSD
のようなエラーが出て動かないという。まさかファイルのダイアログが開けなくて動かないとか・・・うーん。
で、検索してみると、このあたりがズバリそれのようです。
[Solved] DBus running but not working - The FreeBSD Forums
上のリンクを読んでみると分かる通り解決方法はdbusのダウングレード。何か負けてるような気もしますが、詳細を追ってる時間がないのでオイラもそれに習いダウングレードで解決を目指すことにしました。負け犬。
ダウングレードは古いソースをもってきて自分でmakeしてinstallすればいいんですけど、どうせならportsで管理しておきたいところ。そこで、 portdowngadeとportmasterでダウングレードすることにしました。portdowngradeは /usr/ports/ports-mgmt/portdowngrade/にあるのであらかじめ installしておきます。
ちなみにこのブログ書いてる時点でdbusのバージョンは 1.6.12 です。このバージョンがinstallされていると仮定します。
# portdowngrade devel/dbus
とやるとdbusの更新履歴がずらずらと出てきます。見ると
r312209
が 1.4系の最終バージョンのようなので、このときのportsのディレクトリをチェックアウトしてきます。
# cd /home/hoge # portdowngrade devel/dbus 312209
このチェックアウトは/usr/portsの下とかでやらないほうがよいでしょう。自分のホームディレクトリとかでやります。するとdbusというディレクトリにr281729のportsのdbusのディレクトリが現れます。
その後
# portmaster -w -o <dbusを展開したディレクトリ> /var/db/pkg/dbus-1.6.12
とやります。これでdbusを再起動したら大体動いているようです。もっとも他のdbusを使うpkgはdbusのバージョンが1.6.12だと思ってるから何か予期せぬ問題が発生するやもしれませんけどね・・・まぁそんときはそんときということで。とりあえず今は何事もなく動いているようです。
新しいPCにFreeBSDを環境を構築しているのですが、acroread8が以下のようなメッセージを吐いて動かないという・・・
Freebsd linux NIS getpwuid_r(): failed due to unknown user id XXXX
LinuxエミュがNIS引いてないのが原因。
/compat/linux/etc/nsswitch.conf
をNISを見るように修正で対処。古いPCではちゃんと対処してたんですがね・・・ すっかりそういう対処をしたというのを忘れていたようで。 あるいは妖精さんが対処してくれてたのかなぁ?
/usr/obj/arm.armv6/PATH/tmp/usr/bin (PATHはコンパイルしたソースのパスが入るので適宜修正)
MRuby::CrossBuild.new('armv6') do |conf| toolchain :gcc conf.cc do |cc| cc.command = "/usr/obj/arm.armv6/PATH/tmp/usr/bin/cc" end conf.linker do |linker| linker.command = "/usr/obj/arm.armv6/PATH/tmp/usr/bin/cc" end conf.archiver do |archiver| archiver.command = "/usr/obj/arm.armv6/PATH/tmp/usr/bin/gnu-ar" end end
setenv TARGET arm setenv TARGET_ARCH armv6
export TARGET=arm export TARGET_ARCH=armv6
make MALLOC_PRODUCTION=yes buildworld make WITH_FDT=yes KERNCONF=RPI-B buildkernel
MAKEOBJDIRPREFIX
# mount /dev/da2s2a /mnt
make DESTDIR=/mnt KERNCONF=RPI-B-issei installkernel make DESTDIR=/mnt installworld
auditdistd:*:78:77::0:0:Auditdistd unprivileged user:/var/empty:/usr/sbin/nologin
make DESTDIR=/mnt distribution
# make buildkernel KERNCONF=RPI-B-hoge WITH_FDT=yes # make installkernel KERNCONF=RPI-B-hoge
Powered by Red Leaf ( Rev. c78c769f2 ), © Issei Numata, 2007-2021