Hatena::ブログ(Diary)

はてなの鴨澤 Twitter

2016-12-25 RasPi作業メモ このエントリーを含むブックマーク このエントリーのブックマークコメント

工作少年がやってきて、RasPiが動かないというのでいろいろトラブルシュート。

  • 動かないのは前回あげたPi1 Bと自分で購入したPi3両方
  • 電源はPi3と一緒に買った2.5Aのやつ
  • モニタは三菱のRDT1713VMというアナログ+DVIのもの
  • HDMI-VGA変換で接続
  • キーボードは有線、マウスは無線

という環境。症状としては

  • RasPi3は起動するけどエラーと出る
  • Pi1は画面が出ない

とのこと。ウチの環境(800x600の古いモニタ + HDMI-VGA変換)に合わせて/boot/config.txtのHDMI設定を変えてたかもしれないので、まずはウチで動いてた状態に戻す。キーボードマウスも動いてたものに交換。

→やっぱり画面出ない。HDMIモニタに繋いでも動かない。

ネットワーク経由で入ろうとしたけどIPアドレスどうしてたか忘れた。もう、全部焼き払うことにする。

昨今のRaspberry Pi情報に追いつく

NOOBS
Raspbian
PIXEL
    • 新しいデスクトップ環境。Raspbianを入れたら勝手に動く。
    • 2015-02-16-raspbian-wheezy当時はデフォではXは動かなかったけど、いまは動く。
    • ちゃんと使ってないけどデスクトップのメニュー内容とかはwheezyと同じ感じ。
すばらしい、と思ったこと

Raspbianをddで書き込んだSDカードをRasPiに突っ込んで起動すると、勝手にパーティションを切って最大限に利用してくれる。

コントロールしたいことがある場合は困るかもしれないけど、32GBとかのやつでも何も考えずに進むのは正直感動した。

この自動拡張を抑止したいときは http://raspberrypi.stackexchange.com/questions/47773/disable-auto-file-system-expansion-in-new-jessie-image-2016-05-10 にあるように、/boot/cmdline.txtからinit=/usr/lib/raspi-config/init_resize.shの行を除けばよいらしい。

インストールの流れ

NOOBS
    • 起動するとインストールイメージを選ぶ画面が出るけどネットが繋がってなければRaspbianしか選べない
    • 起動してインストールイメージ選んでインストールという流れ
    • Pi1はこれでいけたけど、Pi3は途中でイメージが壊れてると言い出した
Raspbian
    • 起動→勝手に/をリサイズ→PIXEL起動。ちょう便利。

電源

  • Pi3はけっきょく電源っぽい感じ。ACアダプタスマホの2Aのやつに変えたらPIXELが起動するところでコケるようになった。
  • ウチにPi3環境がないので入れ替え確認ができないのがイタかった。
  • 電源はSwitch Scienceのやつが欲しいねやっぱり。
  • いま思ったけど、ATX電源の5VをUSBに変換するアダプタとか作っとくと便利かも。
  • USB簡易テスターみたいなやつがぜんぜん信用出来ない…。ちゃんとした電流計が使いたい。

モニタ

  • Pi1が起動するようになったので三菱のモニタを使えるように/boot/config.txtを編集
  • http://elinux.org/RPi_Configuration を見るべし
  • hdmi_force_hotplug=1 をやって動かないところで時間切れで諦めたけど、hdmi_safe=1 を試すべきだった

まとめ

だいぶ勘が鈍ってた。五里霧中な感じで4時間くらい作業してこの状態、というのはだいぶ情けない。電源はもっとマトモなのを手配しとく必要があるし、HDMIまわりはちゃんとメモを作る必要がある(追記2に書いた)。

追記

追記2: どろぬまhdmi-vga変換

現状
すばらしいコマンドがあるよ
  • モニタの対応hdmiモードを調べるコマンドが http://elinux.org/RPiconfig の"Which values are valid for my monitor?"に載ってる。
    • CEA(hdmi_group=1)でサポートしてるモード: /opt/vc/bin/tvservice -m CEA
    • DMT(hdmi_group=2)でサポートしてるモード: /opt/vc/bin/tvservice -m DMT
    • 現在のモード: /opt/vc/bin/tvservice -s

それぞれ

pi@raspberrypi:~ $ /opt/vc/bin/tvservice -m CEA
Group CEA has 9 modes:
  (prefer) mode 1: 640x480 @ 60Hz 4:3, clock:25MHz progressive 
           mode 2: 720x480 @ 60Hz 4:3, clock:27MHz progressive 
           mode 3: 720x480 @ 60Hz 16:9, clock:27MHz progressive 
  (native) mode 4: 1280x720 @ 60Hz 16:9, clock:74MHz progressive 
           mode 16: 1920x1080 @ 60Hz 16:9, clock:148MHz progressive 
           mode 17: 720x576 @ 50Hz 4:3, clock:27MHz progressive 
           mode 18: 720x576 @ 50Hz 16:9, clock:27MHz progressive 
           mode 19: 1280x720 @ 50Hz 16:9, clock:74MHz progressive 
           mode 31: 1920x1080 @ 50Hz 16:9, clock:148MHz progressive 
pi@raspberrypi:~ $ /opt/vc/bin/tvservice -m DMT
Group DMT has 10 modes:
           mode 4: 640x480 @ 60Hz 4:3, clock:25MHz progressive 
           mode 5: 640x480 @ 72Hz 4:3, clock:31MHz progressive 
           mode 6: 640x480 @ 75Hz 4:3, clock:31MHz progressive 
           mode 8: 800x600 @ 56Hz 4:3, clock:36MHz progressive 
           mode 9: 800x600 @ 60Hz 4:3, clock:40MHz progressive 
           mode 10: 800x600 @ 72Hz 4:3, clock:50MHz progressive 
           mode 11: 800x600 @ 75Hz 4:3, clock:49MHz progressive 
           mode 16: 1024x768 @ 60Hz 4:3, clock:65MHz progressive 
           mode 17: 1024x768 @ 70Hz 4:3, clock:75MHz progressive 
           mode 18: 1024x768 @ 75Hz 4:3, clock:78MHz progressive 
pi@raspberrypi:~ $ /opt/vc/bin/tvservice -s
state 0x12000a [HDMI CEA (1) RGB full 4:3], 640x480 @ 60.00Hz, progressive
pi@raspberrypi:~ $ 

となった。現在のモードは正しいけど、1920x1080とかぜったい対応してない。

考察?
  • 変換アダプタがhdmiモニタとして振る舞い、実モニタ側とはちゃんと通信してないように見える。
    • 通信しないテキトー仕様もありえるけど、VGAケーブルが細いやつで通信線が通ってないとかありえるんじゃないかと思ったり。
役に立った設定、期待に反した設定など
  • DMTのmode 16-18はこのモニタに適切に見えるけど、モニタの対応クロックが24-61KHzなためか映らなかった(tvserviceコマンドの出力はMHzとあるけどKHzだよね?)。RasPiでサポートされてないmode 15(1024x768@43Hz)がたぶんベストマッチ。
  • なぜかhdmi_group=1のhdmi_mode=4および5(720p@60Hzおよび1080i@60Hz)が映る。後者はちらつくけど前者は結構きれい。
  • hdmi_group=1, hdmi_mode=1のVGA固定はかなり強力に思える。hdmi_safe=1より役に立った。
  • hdmi_safe=1: これは、hdmi_force_hotplug=1, hdmi_ignore_edid=0xa5000080, config_hdmi_boost=4, hdmi_group=2, hdmi_mode=4, disable_overscan=0, overscan_left=24, overscan_right=24, overscan_top=24, overscan_bottom=24 を設定した状態らしい。ところがぜんぜん動かない。
  • framebuffer_width=800とframebuffer_height=600の組み合わせ: これだけ設定してもダメっぽい
    • →後から試したらgroup2のmode8-11全滅だったので800x600の設定だったのがアカンかったかも。
    • →640と480でやってもダメだった。
最終的に
  • 疲れた。
  • けっきょくhdmi_group=1のhdmi_mode=5(720p)の、さらにdisable_overscan=1にした。
    • disable_overscan=1で周囲に黒い部分があったのが消えて完璧。
    • でも縦横比は16:9なので4:3だと縦長になっちゃう。
  • マトモなhdmiモニタに繋ぐときはこの設定をコメントアウトする。コメントアウトしない場合:
pi@raspberrypi:~ $ /opt/vc/bin/tvservice -m CEA
Group CEA has 12 modes:
           mode 1: 640x480 @ 60Hz 4:3, clock:25MHz progressive 
           mode 2: 720x480 @ 60Hz 4:3, clock:27MHz progressive 
           mode 3: 720x480 @ 60Hz 16:9, clock:27MHz progressive 
  (prefer) mode 4: 1280x720 @ 60Hz 16:9, clock:74MHz progressive 
  (native) mode 5: 1920x1080 @ 60Hz 16:9, clock:74MHz interlaced 
           mode 6: 720x480 @ 60Hz 4:3, clock:27MHz x2 interlaced 
           mode 16: 1920x1080 @ 60Hz 16:9, clock:148MHz progressive 
           mode 17: 720x576 @ 50Hz 4:3, clock:27MHz progressive 
           mode 18: 720x576 @ 50Hz 16:9, clock:27MHz progressive 
           mode 20: 1920x1080 @ 50Hz 16:9, clock:74MHz interlaced 
           mode 22: 720x576 @ 50Hz 16:9, clock:27MHz x2 interlaced 
           mode 31: 1920x1080 @ 50Hz 16:9, clock:148MHz progressive 
(failed reverse-i-search)`tvserviceC': /opt/vc/bin/^Cservice -m 
pi@raspberrypi:~ $ /opt/vc/bin/tvservice -m DMT
Group DMT has 17 modes:
           mode 4: 640x480 @ 60Hz 4:3, clock:25MHz progressive 
           mode 5: 640x480 @ 72Hz 4:3, clock:31MHz progressive 
           mode 6: 640x480 @ 75Hz 4:3, clock:31MHz progressive 
           mode 9: 800x600 @ 60Hz 4:3, clock:40MHz progressive 
           mode 10: 800x600 @ 72Hz 4:3, clock:50MHz progressive 
           mode 11: 800x600 @ 75Hz 4:3, clock:49MHz progressive 
           mode 16: 1024x768 @ 60Hz 4:3, clock:65MHz progressive 
           mode 17: 1024x768 @ 70Hz 4:3, clock:75MHz progressive 
           mode 18: 1024x768 @ 75Hz 4:3, clock:78MHz progressive 
           mode 21: 1152x864 @ 75Hz 4:3, clock:108MHz progressive 
           mode 35: 1280x1024 @ 60Hz 5:4, clock:108MHz progressive 
           mode 36: 1280x1024 @ 75Hz 5:4, clock:135MHz progressive 
           mode 47: 1440x900 @ 60Hz 16:10, clock:106MHz progressive 
           mode 48: 1440x900 @ 75Hz 16:10, clock:136MHz progressive 
           mode 51: 1600x1200 @ 60Hz 4:3, clock:162MHz progressive 
           mode 58: 1680x1050 @ 60Hz 16:10, clock:146MHz progressive 
           mode 68: 1920x1200 @ 60Hz 16:10, clock:154MHz progressive 
pi@raspberrypi:~ $ /opt/vc/bin/tvservice -s
state 0x12000a [HDMI CEA (4) RGB lim 16:9], 1280x720 @ 60.00Hz, progressive
pi@raspberrypi:~ $ 

コメントアウトすると:

@raspberrypi:~ $ /opt/vc/bin/tvservice -m CEA
Group CEA has 12 modes:
           mode 1: 640x480 @ 60Hz 4:3, clock:25MHz progressive 
           mode 2: 720x480 @ 60Hz 4:3, clock:27MHz progressive 
           mode 3: 720x480 @ 60Hz 16:9, clock:27MHz progressive 
           mode 4: 1280x720 @ 60Hz 16:9, clock:74MHz progressive 
  (native) mode 5: 1920x1080 @ 60Hz 16:9, clock:74MHz interlaced 
           mode 6: 720x480 @ 60Hz 4:3, clock:27MHz x2 interlaced 
           mode 16: 1920x1080 @ 60Hz 16:9, clock:148MHz progressive 
           mode 17: 720x576 @ 50Hz 4:3, clock:27MHz progressive 
           mode 18: 720x576 @ 50Hz 16:9, clock:27MHz progressive 
           mode 20: 1920x1080 @ 50Hz 16:9, clock:74MHz interlaced 
           mode 22: 720x576 @ 50Hz 16:9, clock:27MHz x2 interlaced 
           mode 31: 1920x1080 @ 50Hz 16:9, clock:148MHz progressive 
pi@raspberrypi:~ $ /opt/vc/bin/tvservice -m DMT
Group DMT has 17 modes:
           mode 4: 640x480 @ 60Hz 4:3, clock:25MHz progressive 
           mode 5: 640x480 @ 72Hz 4:3, clock:31MHz progressive 
           mode 6: 640x480 @ 75Hz 4:3, clock:31MHz progressive 
           mode 9: 800x600 @ 60Hz 4:3, clock:40MHz progressive 
           mode 10: 800x600 @ 72Hz 4:3, clock:50MHz progressive 
           mode 11: 800x600 @ 75Hz 4:3, clock:49MHz progressive 
           mode 16: 1024x768 @ 60Hz 4:3, clock:65MHz progressive 
           mode 17: 1024x768 @ 70Hz 4:3, clock:75MHz progressive 
           mode 18: 1024x768 @ 75Hz 4:3, clock:78MHz progressive 
           mode 21: 1152x864 @ 75Hz 4:3, clock:108MHz progressive 
           mode 35: 1280x1024 @ 60Hz 5:4, clock:108MHz progressive 
           mode 36: 1280x1024 @ 75Hz 5:4, clock:135MHz progressive 
           mode 47: 1440x900 @ 60Hz 16:10, clock:106MHz progressive 
           mode 48: 1440x900 @ 75Hz 16:10, clock:136MHz progressive 
           mode 51: 1600x1200 @ 60Hz 4:3, clock:162MHz progressive 
           mode 58: 1680x1050 @ 60Hz 16:10, clock:146MHz progressive 
  (prefer) mode 68: 1920x1200 @ 60Hz 16:10, clock:154MHz progressive 
pi@raspberrypi:~ $ /opt/vc/bin/tvservice -s
state 0x120006 [DVI DMT (68) RGB full 16:10], 1920x1200 @ 60.00Hz, progressive
pi@raspberrypi:~ $ 

ちゃんと認識して(tvservice -mの出力結果は変わらず)、ちゃんと自動設定してくれる(tvservice -sの結果は変わる)。普通に使ってると当たり前のことが、とても素晴らしい。

2016-12-16 琉子のものがたり このエントリーを含むブックマーク このエントリーのブックマークコメント

あるところに琉子という美しいおんながおりました。

琉子には米男という夫がおりました。

子供はありませんでしたが、二人は仲良く暮らしているのだと、米男は思い込んでおりました。

しかし琉子の心は冷え切っておりました。


米男は流れてきたやくざ者でした。

琉子の父もやくざ者でした。名を日雄ともうします。

日雄がむかし、華なる旧家にはいりこみ、富をうばおうとしたときに、華家にみずから助太刀にあらわれたのが米男でした。


米男は正義の人でした。

日雄をさんざんやっつけました。

刀を全部こわしました。

にどと暴れぬと誓わせました。


琉子は日雄が斬られそうになったとき、後ろから押されて斬られました。

命はなんとか助かりました。

米男ののぞみで琉子を日雄は差し出しました。

琉子の分家は米男の正義に都合のよいところにありました。


米男との暮らしは、はじめのうち、それはひどいものでした。

たくさん殴られました。

大事なものを捨てられました。

一人で食べて残飯を投げよこし、おまえは自分で稼ぐこともできぬといいました。

家の中で排泄して琉子に片付けさせました。


日雄が琉子を返せといいだしました。

日雄は商売がうまくいき、みちがえるような暮らしになっておりました。

日雄と米男はいつのまにか親友と言い合うようになっておりました。

米男は琉子を返そう、他の娘も返そう、とうけあいました。

だから少し都合してくれないか、とももうしました。


籍は抜けました。

実家からお金が入るようになって、生活は楽になりました。

ところが米男は出ていきません。

正義のためだともうします。

あたりで喧嘩がないようにするのが自分の正義だと。


華家がしだいに栄えはじめ、刀を持たない日雄は華家がこわくなりました。

むかしやったりやられたりしたことを、たがいにおぼえているのです。


米男は他の娘達の家もまわりますが、刀は琉子の家にもってまいりました。

いつも鍛錬しております。家で刀を振り回します。花火をします。

ときどき琉子に当たります。


琉子が怒ると、米男はすぐに謝ります。

すまない、こらえよ、感謝する、皆のためだともうします。

日雄も見舞いをよこします。

ほんとうに反省しているように思います。

でもまた同じことをします。


このまま波風を立てずに生きることもできます。


日雄は前より貧乏になりましたが、琉子への援助は欠かしません。

米男も目をみてあやまります。ひどいことももうしません。


それでも琉子は忘れておりません。

米男がどれだけ勝手であったか。どれほど自分をないがしろにしていたか。

こびりついた米男のものを掃除することが、いまでもときどきあるのです。


琉子は忘れておりません。

日雄が自分を後ろから押したことを。差し出したことを。

そして日雄が本当の親ではないことも。


日雄は親の言うことは聞くものだともうします。

しかし琉子の本当の親は、むかし日雄に殺されておりました。

本当の親もけっしてよい親ではありませんでした。

それでも悲しいことでした。


このまま波風を立てずに生きることもできます。


日雄はいつももうします。華家の者はあぶない、米男がいてくれるのが一番よい。ほかのことは考えるだけ無駄であると。

日雄はちかごろよぼよぼにおとろえました。

しわしわの口で、かしこくなれ、と叱ります。


琉子の本当の親がいたじぶん、華家とは仲良くやっておりました。

気むずかしい人たちですが、おだてておればひどいことはされませんでした。

やかましくておそろしいのは日雄も華家もおなじです。


生きやすいよのなかになりました。

家を出て一家をかまえる娘たちがふえました。

せけん知らずの琉子でしたが、ちかごろ手に職をつけました。

なんとか生きてはいけるのです。


琉子という美しいおんながおりました。

琉子には米男という夫がおりました。

子供はありませんでしたが、二人は仲良く暮らしているのだと、米男は思い込んでおりました。

しかし琉子の心は冷え切っておりました。


このまま波風を立てずに生きることもできます。

2016-09-14 「2番じゃダメなんでしょうか」 このエントリーを含むブックマーク このエントリーのブックマークコメント

蓮舫さんをここぞと叩く人たちが、また「2番じゃダメ?」を攻撃してたので、そこらについて判断材料になりそうなことを置いておきます。


そもそもこの発言は根本的に誤解されたままになってて、当時から気持ち悪かったんだけど、放置してても正確なことは伝わらず、伝説が残るばかりなので、書いておく必要があるように思うのです。


ニコニコには全やり取りの音録が残ってます。 http://www.nicovideo.jp/watch/sm8793858

また、これについての2011年のやり取りも要点をよく示していると思います。

http://togetter.com/li/214426


音録を最初から聞くとよくわかるんだけど、そもそも事業仕分けってのは

  • 財務省が「これはダメだろ」というのをピックアップして
  • やりたい側に必要性を説明させたうえで
  • 意義があるなら残す

というプロセスです。俎上に上がる時点で半分死んでるものが多い。


当時の次世代スパコン、いまの「京」の開発は、NEC日立の撤退でベクターマシンを捨てて、にもかかわらずそのまま膨大な予算を取って、そのまま進むことだけ考えているという、だいぶ無理筋なものでした。利権的な配分でぜんぜん擁護できない。


そこらへんは自民党河野太郎議員も当時の仕分けの方々と同じ認識だし

http://web.archive.org/web/20111115193950/http://www.taro.org/2011/11/post-1117.php

HPC専門家として仕分けに参加した金田教授の認識もそうです。

http://itpro.nikkeibp.co.jp/article/COLUMN/20091225/342666/


仕分けにおける「首切り役人」は財務省主計局です。彼らの基準は妥当性や透明性ですが、論述はわりに簡潔で短い。これに対して予算を取る側が長めの時間をもらって防衛する。そしてさまざまな立場の仕分け人が質問する。


このスーパーコンピュータの仕分けのプレゼンは、最初の方からぐだぐだです。要点を外したまま、質問されても同じ方針で説明を続けるばかり。予算の妥当性について聞かれているのに、ふわーっとした話しかできてません。研究者仕分け人からは、もっと本質的というか、プロジェクトの妥当性そのものについても聞かれてますが、やっぱりふわーっとした説明


蓮舫さんの「2番じゃダメなんでしょうか」は、上の動画の30数分からの流れで金田教授がメタメタに切ったあと、まだ文科省理研の側が同じようなことを繰り返すばかりなので、もっと具体的に予算の意義を、という意味合いで48分ごろに発言されてます。予算を付ける方向で発言してるのは蓮舫さんだけで、完全に助け船であることが見て取れると思います。


これに対する文科省理研の回答までお聞きになられるとよいと思うけど、やっぱりロマンがどうのこうのと、ふわーっとお答えになります。


廃止1、休止6、削減5、という結果になったのは「2番じゃダメなんでしょうか?」発言とはぜんぜん関係ありません。今回聞き直して思ったけど、よく言われてるようにプレゼンが悪かったというのも主因ではなく、プロジェクトそのものが間違っていた感じです。最終的に復活したのは完全に政治的な動きでしかありませんでした。


「2番じゃダメなんでしょうか?」を文脈無視でマスコミが騒いで、ノーベル賞級の方々も、明らかにそれだけを読んで勘違いして騒いでました(彼らは明らかにプロセスを見てません。そんな時間はないということでしょう)、科学予算が減る!という雰囲気が出たためにやり玉にあげられますが、それは彼女の罪ではありません。


1100億を費やして「京」をそのまま続けたことが正解だったか、ほかの使い道はなかったか(たとえば東工大TSUBAMEシリーズは年間10億程度の予算だそうです)、あれをシンボルに「科学立国」を語った皆さんは、考えた方がよいように思っています。

2016-03-14

netatalk3 on FreeBSD 10.2-RELEASE-p13

備忘録。

現状:

繋がった。旧サーバーから引き継いだTime Machineバックアップにちゃんと繋がったので一安心。

やったこと:

# /usr/local/etc/rc.d/dbus start
# /usr/local/etc/rc.d/avahi start
# /usr/local/etc/rc.d/avahi-daemon start
# /usr/local/etc/rc.d/avahi-dnsconfd start
# afpd -d -F /usr/local/etc/afp.conf
  • 接続できなかったのでafpdを止めて以下のコマンドを使って起動したら接続できた。
# /usr/local/etc/rc.d/netatalk start

参考:

FreeBSD10 で netatalk3 を使って TimeMachine サーバにする|FreeBSD|@OMAKASE
全般的に。
  • 「以下のパッケージもインストールする」のdatabases/py-bsddb、databases/py-gdbm、databases/py-sqlite3、x11-toolkits/py-tkinterは入れなくても動いた。
  • /etc/pam.confを作ることになってるけど、/etc/pam.d/があったので、この中にnetatalkというファイルを作り、次のようにした:
auth    required        pam_unix.so     try_first_pass
account required        pam_unix.so     try_first_pass
session required        pam_permit.so


FreeBSD で netatalk 3.1 – 不定期な記録
afp.confのファイルパーミッションとかを。その他もいろいろ示唆的でよかった。

過去:

macから「サーバ”xxxxx”への接続で問題が起きました。 サーバ上に共有が存在しません。共有名を確認してから、やり直してください。」が出る。

サーバ側のログ(x.x.x.xはipアドレス、xxxxはユーザ名):

Mar 14 15:38:31.621074 afpd[38719] {dsi_tcp.c:241} (info:DSI): AFP/TCP session from x.x.x.x:54447
Mar 14 15:38:31.624242 afpd[38482] {main.c:151} (info:AFPDaemon): child[38719]: done
Mar 14 15:38:31.690958 afpd[38720] {dsi_tcp.c:241} (info:DSI): AFP/TCP session from x.x.x.x:54448
Mar 14 15:38:31.692346 afpd[38720] {uams_dhx2_pam.c:329} (info:UAMS): DHX2 login: xxxx
Mar 14 15:38:31.727305 afpd[38720] {uams_dhx2_pam.c:214} (info:UAMS): PAM DHX2: PAM Success
Mar 14 15:38:31.729145 afpd[38720] {uams_dhx2_pam.c:709} (info:UAMS): DHX2: PAM Auth OK!
Mar 14 15:38:31.729222 afpd[38720] {auth.c:236} (note:AFPDaemon): Login by xxxx (AFP3.4)
Mar 14 15:38:35.100606 afpd[38720] {cnid_dbd.c:160} (error:CNID): getfd: connect CNID server localhost: Connection refused
Mar 14 15:38:35.101066 afpd[38720] {cnid_dbd.c:160} (error:CNID): getfd: connect CNID server localhost: Connection refused
Mar 14 15:38:35.101547 afpd[38720] {cnid_dbd.c:176} (error:CNID): tsock_getfd: no suitable network config from CNID server (localhost:4700): Unknown error: 32767
Mar 14 15:38:35.102622 afpd[38720] {cnid_dbd.c:152} (error:CNID): getfd: getsockopt says: Connection refused
Mar 14 15:38:35.102895 afpd[38720] {cnid_dbd.c:160} (error:CNID): getfd: connect CNID server localhost: Connection refused
Mar 14 15:38:35.103026 afpd[38720] {cnid_dbd.c:176} (error:CNID): tsock_getfd: no suitable network config from CNID server (localhost:4700): Connection refused
Mar 14 15:38:35.103128 afpd[38720] {cnid_dbd.c:407} (error:CNID): transmit: connection refused (volume xxxx's home)
Mar 14 15:38:35.103337 afpd[38720] {volume.c:857} (error:AFPDaemon): afp_openvol(/home/xxxx): Fatal error: Unable to get stamp value from CNID backend
Mar 14 15:39:40.631764 afpd[38720] {auth.c:835} (note:AFPDaemon): AFP logout by xxxx
Mar 14 15:39:40.632498 afpd[38720] {dsi_stream.c:504} (error:DSI): dsi_stream_read: len:0, unexpected EOF
Mar 14 15:39:40.632658 afpd[38720] {afp_dsi.c:517} (note:AFPDaemon): afp_over_dsi: client logged out, terminating DSI session
Mar 14 15:39:40.633198 afpd[38720] {afp_dsi.c:108} (note:AFPDaemon): AFP statistics: 0.65 KB read, 0.55 KB written
Mar 14 15:39:40.633276 afpd[38720] {dircache.c:615} (info:AFPDaemon): dircache statistics: entries: 0, lookups: 0, hits: 0, misses: 0, added: 0, removed: 0, expunged: 0, evicted: 0
Mar 14 15:39:40.635542 afpd[38482] {main.c:151} (info:AFPDaemon): child[38720]: done

再起動すれば繋がる、という話があるけどまだ再起動してない。

↓(update) afpdの再起動

<未解決>FreeBSD with Netatalk3ではまる - FreeBSDいちゃらぶ日記を参考に"afpd -d -F /usr/local/etc/afp.conf" でafpdを起動してたんだけど、こいつを止めて

# /usr/local/etc/rc.d/netatalk start

としたら接続成功。サーバ側ログ:

Mar 14 15:49:14.617975 afpd[38778] {dsi_tcp.c:241} (info:DSI): AFP/TCP session from x.x.x.x:54656
Mar 14 15:49:14.621114 afpd[38771] {main.c:151} (info:AFPDaemon): child[38778]: done
Mar 14 15:49:15.014611 afpd[38779] {dsi_tcp.c:241} (info:DSI): AFP/TCP session from x.x.x.x:54657
Mar 14 15:49:15.016669 afpd[38779] {uams_dhx2_pam.c:329} (info:UAMS): DHX2 login: xxxx
Mar 14 15:49:15.053005 afpd[38779] {uams_dhx2_pam.c:214} (info:UAMS): PAM DHX2: PAM Success
Mar 14 15:49:15.054865 afpd[38779] {uams_dhx2_pam.c:709} (info:UAMS): DHX2: PAM Auth OK!
Mar 14 15:49:15.054942 afpd[38779] {auth.c:236} (note:AFPDaemon): Login by xxxx (AFP3.4)
Mar 14 15:49:15.897419 afpd[38781] {dsi_tcp.c:241} (info:DSI): AFP/TCP session from x.x.x.x:54658
Mar 14 15:49:15.901445 afpd[38771] {main.c:151} (info:AFPDaemon): child[38781]: done
Mar 14 15:49:15.935422 afpd[38782] {dsi_tcp.c:241} (info:DSI): AFP/TCP session from x.x.x.x:54659
Mar 14 15:49:15.939814 afpd[38771] {main.c:151} (info:AFPDaemon): child[38782]: done
Mar 14 15:50:09.714009 afpd[38785] {dsi_tcp.c:241} (info:DSI): AFP/TCP session from x.x.x.x:54662
Mar 14 15:50:09.717024 afpd[38771] {main.c:151} (info:AFPDaemon): child[38785]: done
Mar 14 15:50:09.721605 afpd[38786] {dsi_tcp.c:241} (info:DSI): AFP/TCP session from x.x.x.x:54663
Mar 14 15:50:09.724419 afpd[38771] {main.c:151} (info:AFPDaemon): child[38786]: done

ようやく解決っぽい。

libhoge.laを排除する

9.1Rくらいのシステムから引き継いだpkgなんかがあったりして無駄な苦労が絶えないうちのサーバ

FreeBSD10 で netatalk3 を使って TimeMachine サーバにする

を参考にnetatalk3を入れなおそうとしてたら止まりました。

libtool:   error: cannot find the library '/usr/local/lib/libiconv.la' or unhandled argument '/usr/local/lib/libiconv.la'
Makefile:575: ターゲット 'afpd' のレシピで失敗しました
gmake[6]: *** [afpd] エラー 1
・
・
Stop.
make: stopped in /usr/ports/net/netatalk3
root@heliopora:/usr/ports/net/netatalk3 # 

libiconv.laが無い、またはその引数がおかしくてlibtoolがエラー。エラーメッセージをそのままぐーぐるさまに突っ込んだところ、libiconv.laをコンパイルしなおしてコピればいいという情報もあったけど、freebsd.orgのフォーラムに、"consolekit fails to compile | The FreeBSD Forums "というスレッドがあって、最後のところにこんなコメントが:

/usr/ports/UPDATING:

20140909:
  AFFECTS: users seeing build errors about missing *.la files
  AUTHOR: tijl@FreeBSD.org

  We are in the process of adjusting or, if possible, removing libtool archives
  (*.la files) from all ports because they can otherwise cause overlinking
  between packages.  This is the problem where in the dependency chain A->B->C
  an extra link is added from A to C even if A does not use C directly.  This
  makes some updates to port C expensive because then both A and B have to be
  rebuilt instead of just B.

  This is mostly behind the scenes work that you won't notice.  In fact most
  ports have already been converted.  You may however run into build errors
  about missing *.la files if a port update in the past went wrong and left
  behind *.la files with references to other *.la files that are no longer
  there.  In this case, please run the following command:

  find /usr/local/lib -name '*.la' | xargs grep -l 'libfoo\.la' | xargs pkg which
  (Replace libfoo\.la with the *.la file that is missing.)

  This command will print a list of *.la files that refer to the missing *.la
  file and what package they belong to.  First, where it says "not found in the
  datatbase", remove the *.la file.  After removing all such files, where it
  says "installed by package X", rebuild X.  Eventually the list printed by
  that command will be empty and the build error should be gone.

これでした。.laファイル(libtool archive)は依存解決で損だから廃止だよ、解決法はこちら。という内容です。

手順はこんな感じ:

  1. 問題のlibiconv.laを参照してる他の.laファイルを洗い出す。コマンドは find /usr/local/lib -name '*.la' | xargs grep -l 'libfoo\.la' | xargs pkg which です。(libfoo\.laは問題の.laファイル、今回ならlibiconv.laに置き換える)
  2. 出てきたXX.laについて、"was not found in the database"ならそのまま消す。
  3. 消し終わったら"installed by package X"のXをビルドし直す。
  4. ビルドエラーは消える。

とのことなので、さっそく実行。

find /usr/local/lib -name '*.la' | xargs grep -l 'libiconv\.la' | xargs pkg which
/usr/local/lib/libcdio.la was not found in the database
・
・
/usr/local/lib/librpmbuild.la was installed by package rpm-3.0.6_15
・
・
/usr/local/lib/gtk-2.0/2.10.0/printbackends/libprintbackend-cups.la was not found in the database
/usr/local/lib/gtk-2.0/2.10.0/engines/libpixmap.la was not found in the database

20個くらい見つかった"was not found in..."の.laファイルは全部削除。

"was installed by package..."であるところのrpm-3.0.6_15は最新のportsに無いので再ビルドできず、試しにpkg removeしてみると:

#	pkg remove rpm-3.0.6_15
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 1 packages (of 0 packages in the universe):

Installed packages to be REMOVED:
	rpm-3.0.6_15

The operation will free 3 MiB.

Proceed with deinstalling packages? [y/N]: y
[1/1] Deinstalling rpm-3.0.6_15...
[1/1] Deleting files for rpm-3.0.6_15: 100%

依存するパッケージは無いようなので、もうそのまま削除。

なんかさらに問題が爆発したらどうしよう、と思いながらnetatalk3のディレクトリに戻ってmake install cleanしたところ、コンパイルもサクッと通ってあっというまに解決!

なんかすげースッキリしました。

2016-02-23

ブッ壊れたFreeBSDシステムを復旧

freebsd-updateしてカーネルが入れ替わってリブートして、まではちゃんとできてたのに、次にリブートしたらシステムドライブ(USBメモリ)のrootファイルシステムどころかパーティション情報まで消滅してて入れなおしてる。これは作業ログ。

インストール

FreeBSD-10.2-RELEASE-amd64-memstick.img

普通に「全部入り」でインストールしたけど、最小構成で入れてZFS(5台のRAID-Z)が復旧してからソースとかポートを入れればよかった。

  • todo: postfixが入ってないのをどうにかすること。

PPP

pppoeでルータにしてるので、これが復活しないと家のネットから外に出ていけない。

普通につながっただけですばらしい気分になった。

  • todo: ファイヤウオールの設定

WiFiアクセスポイント

いろいろあってちびファイをアクセスポイントにしている。

外に持ちだした時にもそのまま使えるように、Freebsdマシンをdhcpサーバにしてたらしく、WAN側のIPアドレスが取れず繋がらなかった。固定IPアドレスとか設定して解決。当初アドレスの打ち間違いで繋がらず、なんかdhcpの呪いかなにかかと思った。

zfsの復活

zfsはいろいろ賢いから自動で復帰してくれると思ったけどそうはいかなかった。

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1281671767 を見て

# zpool import

# zpool import tank

で復活。

# zfs list

で見てみたら、マウントポイントが設定されてるやつはそのままマウントされてた。

マウントされてないやつはあらためて

# zfs set mountpoint=/usr/local tank/local

てな具合で設定してマウント。ここらは http://docs.oracle.com/cd/E19253-01/819-6260/6n89n6cii/index.html とかを参考に。

/usr以下などのインストール済みシステムファイルを踏み潰さないようにzfsのマウントポイントをうごかすのは

# zfs set mountpoint=none tank/usr

などとする。

  • todo: /usr以下などのインストール済みシステムファイルをzfsUSBメモリから移す
  • todo: なぜか/usr/local/etc/以下にどっかにいってしまった設定ファイルがある。特にpostfixの仮想ホストがやばい。

電源管理

CPU

インストール時にpowerdを動かすようにしたら普通に動いた。

ただし sysctl -a dev.cpu.0.freq で800MHzまでしか落ちない。sysctl -a dev.cpu.0.freq_levels で確認しても1300/4406 1100/3550 800/2356の3段階しかなかった。

HDD

サーバを止めてたときにすばらしく静かだった。HDDの音がわりにうるさいことに気づいた。

camcontrol idle ada0 -t 600

camcontrol idle ada1 -t 600

camcontrol idle ada2 -t 600

camcontrol idle ada3 -t 600

camcontrol idle ada4 -t 600

とやったけど、zfsを動かしたら定期的にアクセスするのであんまり意味はないもよう。

  • todo: もうちょっと意味の有りそうな設定をさがす。

その他

死んだUSBメモリはそのまま持ってるけど、どうにかならないかしら。