最近の変更サイトマップ

FreeBSD 11.0RにしたらVirtualBoxが動かなくなった(´・ω・`)

先日、家鯖をFreeBSD 11.0-RELEASEに更新してからVirtualBoxが動かなくなった。起動しようとするとVirtualBox: supR3HardenedExecDir: sysctl failedとエラーを吐いて終了する。sysctlに失敗するってどういうこっちゃ。

当該ソースはSUPR3HardenedMain.cppの1243行目付近で、VirtualBox自身の実行ファイルパスを取得してる部分。

# else /* RT_OS_FREEBSD */
    int aiName[4];
    aiName[0] = CTL_KERN;
    aiName[1] = KERN_PROC;
    aiName[2] = KERN_PROC_PATHNAME;
    aiName[3] = getpid();
 
    size_t cbPath = sizeof(g_szSupLibHardenedExePath);
    if (sysctl(aiName, RT_ELEMENTS(aiName), g_szSupLibHardenedExePath, &cbPath, NULL, 0) < 0)
        supR3HardenedFatal("supR3HardenedExecDir: sysctl failed\n");
    g_szSupLibHardenedExePath[sizeof(g_szSupLibHardenedExePath) - 1] = '\0';
    int cchLink = suplibHardenedStrLen(g_szSupLibHardenedExePath); /* paranoid? can't we use cbPath? */
 
# endif

何の変哲もないコードだし、特に最近変わったような雰囲気もない。原因切り分けのため、上記コードと同じ事をする簡単なテストコードをでっちあげて実行してみたら、同じように失敗する。

#include <sys/param.h>
#include <sys/sysctl.h>
#include <stdio.h>
 
int main(void)
{
    int pid = getpid();
    int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, pid };
 
    printf("pid = %d\n", pid);
 
    size_t bufSize = 1024;
    char buf[bufSize];
    int result = sysctl(mib, 4, buf, &bufSize, NULL, 0);
    if (result < 0)
    {
        perror("sysctl");
    }
 
    return 0;
}
-------- 実行結果 --------
$ ./sysctltest
pid = 66245
sysctl: No such file or directory

supR3HardenedExecDirでググるとprocfsをマウントし忘れてんじゃね?という投稿が出てくるが、今回の問題箇所はprocfsを不要とするための部分なのでprocfsをマウントしようがしまいが変わらない(大体今までprocfsマウントしてなくても動いてたし…)、と思いつつ藁をも掴む思いでマウントしてみたけど、やっぱり何の解決にもならなかった\(^o^)/

portsでソースからのインストールも試みたけどビルドがコケるし、もぅマヂ無理。リスカしょ…。

参考サイト

PortsにNetatalk 3.1.10がキテタ━━━(゚∀゚)━━━ !!!!!

家鯖をFreeBSD 11.0-RELEASEに上げたタイミングで、Netatalk 3.1.8に更新したのだが、どうにもBonjourで広告されなさげ。OS更新で諸々おかしくなったか?と思い、NetatalkやmDNSResponderを再ビルドしても症状変わらず。

afpd -Vしてみたら、なんとZeroconfがAvahiになってた。間違いなくmDNSResponderを選んでるんだけどな…。

$ afpd -V
afpd 3.1.8 - Apple Filing Protocol (AFP) daemon of Netatalk
 
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version. Please see the file COPYING for further information and details.
 
afpd has been compiled with support for these features:
 
          AFP versions:    2.2 3.0 3.1 3.2 3.3 3.4
         CNID backends:    dbd last tdb
      Zeroconf support:    Avahi
  TCP wrappers support:    Yes
         Quota support:    No
   Admin group support:    Yes
    Valid shell checks:    Yes
      cracklib support:    No
            EA support:    ad | sys
           ACL support:    Yes
          LDAP support:    No
         D-Bus support:    Yes
     Spotlight support:    No
         DTrace probes:    No
 
              afp.conf:    /usr/local/etc/afp.conf
           extmap.conf:    /usr/local/etc/extmap.conf
       state directory:    /var/netatalk/
    afp_signature.conf:    /var/netatalk/afp_signature.conf
      afp_voluuid.conf:    /var/netatalk/afp_voluuid.conf
       UAM search path:    /usr/local/libexec/netatalk-uams//
  Server messages path:    /var/netatalk/msg/

portsの更新ログ見ると、10/10に「Fix build with mDNSResponder」とあったので、portsがバグってたっぽい。と、ここで、11-RELEASEにした際Portsツリーを更新してなかったことに気付く。

portsnap fetch extractしてportmaster netatalk3したところ、無事mDNSResponderで広告されるようになった。

$ afpd -V
afpd 3.1.10 - Apple Filing Protocol (AFP) daemon of Netatalk
 
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version. Please see the file COPYING for further information and details.
 
afpd has been compiled with support for these features:
 
          AFP versions:    2.2 3.0 3.1 3.2 3.3 3.4
         CNID backends:    dbd last tdb
      Zeroconf support:    mDNSResponder
  TCP wrappers support:    Yes
         Quota support:    No
   Admin group support:    Yes
    Valid shell checks:    Yes
      cracklib support:    No
            EA support:    ad | sys
           ACL support:    Yes
          LDAP support:    No
         D-Bus support:    Yes
     Spotlight support:    No
         DTrace probes:    No
 
              afp.conf:    /usr/local/etc/afp.conf
           extmap.conf:    /usr/local/etc/extmap.conf
       state directory:    /var/netatalk/
    afp_signature.conf:    /var/netatalk/afp_signature.conf
      afp_voluuid.conf:    /var/netatalk/afp_voluuid.conf
       UAM search path:    /usr/local/libexec/netatalk-uams//
  Server messages path:    /var/netatalk/msg/

3.1.7では問題なかったので、もしかして最近までずっとバグってた系・・・?

FreeBSD 10.1-RELEASEを11.0-RELEASEに更新

FreeBSD 11.0-RELEASEが出たとのことで、家鯖を更新することにした。

10.1-RELEASE-p10からひとっ飛びにあげようとしたら「The update metadata is correctly signed, but failed an integrity check.」と言われて出来なかったので、まずは10.3-RELEASEに更新。もしかするとパッチレベルあげるだけで事足りたかも?

# freebsd-update upgrade -r 10.3-RELEASE
# freebsd-update install
# reboot
# freebsd-update install

10.3-RELEASE-p7になったところで、再度更新を試みたら無事に通った。今回は更新方法がちょっと特殊らしいので要注意。

# : > /usr/bin/bsdpatch
# freebsd-update upgrade -r 11.0-RELEASE
# freebsd-update install
# reboot
# freebsd-update install

ここで本来はports/packagesの11.0-RELEASE対応を行うべきだが、とりあえずシステムだけさっさと更新して、ports/packagesの更新は追々行うことにする。この際、忘れずに/etc/rc.conf/boot/loader.confで有効にしているサードパーティ製ソフトを無効化すること。特にloader.confの方を忘れると起動時にカーネルパニック起こして泣きを見る事になり兼ねない(経験談)。

# pkg-static install -f pkg
# freebsd-update install
# reboot

正しく更新されたか確認。

$ freebsd-version -ku
11.0-RELEASE-p1
11.0-RELEASE-p1

参考サイト

ApacheがCannot load mod_authn_file.soと言って起動しない

社内wikiを立ち上げようと、FreeBSD 10.2-RELEASEにpkgでApache 2.4を入れてservice spache24 startしたら、次のエラーで起動しなかった。

Performing sanity check on apache24 configuration:
httpd: Syntax error on line 66 of /usr/local/etc/apache24/httpd.conf: Cannot load libexec/apache24/mod_authn_file.so into server: Cannot open "/usr/home/www/libexec/apache24/mod_authn_file.so"
Starting apache24.
httpd: Syntax error on line 66 of /usr/local/etc/apache24/httpd.conf: Cannot load libexec/apache24/mod_authn_file.so into server: Cannot open "/usr/home/www/libexec/apache24/mod_authn_file.so"
/usr/local/etc/rc.d/apache24: WARNING: failed to start apache24

mod_authn_file.soってLoadModuleの最初の行じゃないですかー、何でこんな所でコケてるんですかー、やだー!

/usr/local/libexec/apache24/mod_authn_file.soは間違いなくあるし、マジ意味わかんないですケド…。今までずっとports使ってたところ、今回はpkgで導入したのでそのせい?なんて思ったりしたが、いくら何でも基本中の基本のモジュールの読み込みに失敗するパッケージが落ちてくるとは考えられない。

で、まぁ上記のログをよく見てみるとCannot open “/usr/home/www/libexec/apache24/mod_authn_file.so”となってるんですな。うん、これは明らかにオカシイですな。

結局原因はというと、DocumentRootを書き換えたつもりでServerRootを書き換えてたという…。みんなも気をつけようね!

DokuWikiにはSessionとXML Parserが必要

前項の社内WikiというのはDokuWikiな訳だが、無事Apacheが起動したので次はDokuWikiのインストーラを起動したみたところ、start_session(), utf8_encode(), utf8_decode()関数がないと言われて進めなかった。これらもpkgでサクッとインスコ。これらだけならphp56-session, php56-xmlを入れれば事足りるが、php56-extensionsを使って標準っぽいモジュール群を入れておく。

pkg install php56-extensions php56-openssl php56-gd php56-mbstring

DokuWikiの動作にはGDとOpenSSLもあった方がいいのでついでに。mbstringは他のPHPスクリプトで使われてそうだから、これも一緒に。

最終的に導入されたモジュールはこんな感じ。

$ php -m
[PHP Modules]
Core
ctype
date
dom
ereg
filter
gd
hash
iconv
json
libxml
mbstring
mhash
mysqlnd
openssl
pcre
PDO
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
Zend OPcache
zlib

[Zend Modules]
Zend OPcache

これでようやくDokuWikiが使えるようになった。

閃輝暗点がやってきた

先日、会社で昼ごはん食べてたら、右目の視界に違和感を覚えた。視界の右側境界から下部に掛けてザワザワしたノイズのようなものが見え、最初は飛蚊症かとも思ったが、明らかに視界が歪んでおり、中二病的に言えば次元の狭間を垣間見てる感じ。

図 1: ファーストインパクト(Wikipediaより転載。Häggström, Mikael. "Medical gallery of Mikael Häggström 2014")

調べたところ閃輝暗点っぽい。要は偏頭痛の前兆現象だ。確かに自分は軽度の偏頭痛持ちなので、これが見えても何ら不思議ではない。「閃輝暗点見えたったww」「やべえwwwDecomo君死んじゃうwwww」なんて軽口を同僚と叩いてるうちに症状は収まったが、閃輝暗点後は猛烈な頭痛になるケースが多いらしいので、転ばぬ先の杖ってなもんで、念のためロキソニンを服用。これはまぁ偏頭痛持ちの人じゃないと分からんと思うけど、物凄い偏頭痛は本当にヤバイのよね…。

これで一安心かと思いきや、間もなくセカンドインパクトがやってきた。

図 1: セカンドインパクト(Wikipediaより転載)

この画像のように、マジでカラフルな三角形もといGL_TRIANGLE_STRIPが見えてビビった。それから頭痛が始まったが、ロキソニンを飲んでおいたおかげか、そこまで酷いものではなかった。ま、大事を取って早退したけどw

それにしても、脳って不思議だなー。実際の視覚情報とは全く無関係の幾何学模様が見えるのも不思議だし、見えるモノについても、もっと個人差があっても良さそうなものだが、”閃輝暗点”という共通認識が形成される程度には普遍的な事象の訳でしょ?自分が見たのも、上記2画像まさにそのものだったし。何らかの進化上の合理性があるからなのか、あるいは、ただのバグだったとしても何故同じバグり方をするのか。人体の神秘だね!

尚、僕は偏頭痛の存在を知るまで、人類はみな一様に何でもない時に頭痛が起きるものだと思ってたよ!(´・ω・`)

start.txt · 最終更新: 2016-05-07 17:46 by decomo
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0