PC以外で動くFreeBSD / 佐藤広生 DSC00916

  • コアチームはお金・政治を担当する。コード書きは専門家にまかせる。
  • AsiaBSDCon 3月14〜17日。東京理科大(JR飯田橋)。英語。日本語でも何かやるべきという声もある。 http://www.asiabsdcon.org
  • i386のサポートは切ってしまった。i486以降。pc98(まだ動く),ia64(itanium),sparc64(ultraSPARC以降),powerpc(32bit無印,MacG4,G5,まだツリーにはいっていない.powerPCでしか動かないもの),powerpc64,arm,mips(juniperのコードがちょろちょろでてきてる.動くものをみることはほとんどない).
  • EPSON NP11 (Intel ATOM) ふつうのPCアキテクチャのちっちゃいパソコン.
  • OpenBlockS A6 (ARM9E) Intel,PowerPCをつかっていた
  • DreamPlug (ARM9E) marvellのチップをつかっていてopenblocksとおなじ
  • TL-WR1043ND (MIPS32) 無線LANルータにむりやりつっこんだ。
  • BSD系の源流は4.3BSDでDEC VAX全盛期(?) 1977年
  • VAX以外で動くようになったのは4.4BSDから。
  • FreeSBDはi386 PCでちゃんと動くように、NetBSDはなんでも動くように、というメンタリティーからスタートした。今はちがう。
  • FreeBSDは長いあいだi386でしか動かなかった。
  • 7.xからいろいろツリーがはいってきた。alphaは消された。
  • 組み込みに対応していかないとヤバイぞ、と。
  • マルチコア(32 coreとか)に対応してほしいとの要望がネットワークアプライアンスをつくってるところから。
  • ARMよりMIPSの方がマルチコアのチップがある。
  • FreeBSD/xxxと表記する。
  • 段階: Tier-1(リリースをちゃんとつくる、パッケージも、セキュリティ勧告もする)、 Tier-2(デベロッパがやる気があるときだけリリースされるが、ちゃんとビルドできるようにはなっている)。
  • Tier-1は歴史的にi386,amd64のみ。SPARCはずっとリリースしているけどTier-2。
  • i386,amd64,pc98,ia64,sparc64はちゃんとつかえる。
  • powerpc,powerpc64はパッケージがビルドできなかったりする。
  • arm,mipsはリリースがないので自分でつくらないとだめ。
  • i386,amd64ならIntelやSupermicroなど協力関係にあるベンダのがトラブルすくなし。Dell,HPは動くかどうか気にしてくれてない。
  • pc98のマルチコアマシン(存在するが)は全然入手できないのでたぶん動かない。
  • 机に乗っているのはUltraSPARC2のもの。野心的なメーカーがつくって消えていった。
  • SPARCのはOpenFirmware(IEEE1275)が動いていてUFSのパーティションをそのまま読めるのでローダ。ディスクラベルはVTOC8くらいしか。2TB越えのはたぶんダメ?
  • SPARCマシン24時間コンパイルぶっ通しで動かしているが安定している。
  • itanium:あまりでまわらない。すべてのCPUでチェックしているわけではない。(Marced,Madison,Deerfieldあたり)
    • HP rx2600,zx6000 (PCアキテクチャにIA64をつっこんでるような感じ)
    • SGI Altix 350 一部だけFreeBSDにできるらしい。NUMAになっている。undocumentedなのでサポートしてない。入手はしやすい。
    • EFI shell(OpenFirmwareとコンセプトは同じ)からFATパーティション上のローダを実行。UFSサポートはオプション、FATは必須になっている。PXE(ピクシー)もつかえる。
    • チップセットがぜんぜんちがうので、コードを書かないとDMA周りが動かないが、安定している。
  • powerpc,powerpc64
    • リリースCDをMac G4/G5につっこめば動く。
    • 組み込み向けのは外に出せないコードがあるのでソースツリーにははいっていない。ボードの値段が高いので敷居高い。
    • パッケージで動かないものがある。FreeBSDの責任じゃないけど。
    • OpenFirmwareからAPM(Apple Partition Map)のローダーを読む。MacのOpenFirmwareはかなりてきとう。コマンドをたたくと止まってしまったり... ちょっと操作手順を変えるとおかしくなる。リモートで管理するとかなりストレスがたまる... OSがあがってしまえば関係ないが...
    • SPARC64にくらべると安定度は低い。リブートしてしまったり。
    • Appleはサーバから撤退してしまったとか、ノウハウはたまってない。
    • Firmwareがシリアルにでてこないのでリモートからの管理は大変。
    • デバイスのサポートは全部はいっている。
    • おとしあなたくさん。
  • arm,mips
    • いばらの道
    • 構成を自動検出する仕掛けがない。→ リリースがつくれない → すべての機器用のカーネルをつくって配布?
    • ARMファミリ
      • ARM + 数字 + 機能 (ARM9TDMI,ARM9E,Coretex-A8)
    • ARMアーキテクチャ.
      • ARMv4T,ARMv5TEJ,ARMv6..
    • 規格をコンソーシアムできめてる; ARM9(ファミリ) + ARMv5TEH(アーキテクチャ) = ARM926EJ-S リファレンス実装
    • Marvell 88F6281 = ARM9 + ARMv5TE
    • ARM9 (ARMv5TE):Marvell SoC: Orion,Kirkwood が比較的数が出てて入手しやすい。ちょっと古い2007,2008年ごろ。
    • ARM11(ARMv6): Raspberry Pi 最近のだと。(ARMv6以降のはFreeBSDが動くかどうかあやしいがARM11はやっと動くようになった)
    • Cortex-A9はやっとカーネルのメッセージがでたところくらい。まだ動かない。
  • mips
    • いばらの道
    • アーキテクチャ: MIPS32(24K,1004K..),MIPS64(5K,20K.,,,) (昔はMIPS I,II,III,...とやってたが)
    • NetLogic XLR/XLS: コア32とかのMP。チップがでてこない。
    • OpenWRTプロジェクト: linuxをBSDにおきかえようぜってことで情報が豊富なので参考になる。
    • Atheros AR71xx, Ubiquiti Router Station Pro(1万円くらい,miniPIC *2) FreeBSDがちゃんと動く。
  • 組み込み機器
    • キーボード・スクリーンといった入出力デバイスがないので、そうやって操作するんだ?とか。
    • 記憶デバイスがないのでどうやってつっこむのか?とか。
    • PC以外のデバイスにはプログラムを入れるところがそもそもない。(iPhoneならjailbreakとかして)
    • PCはBIOS,EFIだが、PC以外ではOpenFirmware,U-Boot,Redoot.
    • IPL(initial program loader)はデバッグがたいへん。ここのバグがあるとたいへん。みんな自分がつくるのはイヤ。
    • U-Bootはコードがぜんぶ出ているので、各社改造がしやすい。U-Bootに慣れていれば、けっこうなんとかなる。
    • 汎用のIPLをつかってないデバイスはかなり難易度が高い。
  • まず知らないといけないこと: IPLの種類、入出力デバイス、OSの保存場所
    • FreeBSDが対応してれば試すことはできる。
    • 基本はリバースエンジニアリングする。開発ボードならわかるけど。linuxを参照したり、えらい人にきいたり。
  • buildworldの初期の段階でコンパイラが作られる。
  • OpenBlockS A6 (ARM)
    • U-Boot
    • 0x900000にカーネルをロードすると動く。ELFではなくて生バイナリで。U-Bootが認識するフォーマットにするのが礼儀正しいが、まだコードがない。
    • クロスコンパイル
      • make TARGET_ARCH=arm TARGET=arm make -j4 buildworld
      • make TARGET_ARCH=arm TARGET=arm make -j4 buildkernel KERNCONF=OPENBLOCKS_A6
      • OBJDIRは/usr/obj/arm.arm/usr/src...になる
      • PCにinstallしちゃだめ
      • 複数archでビルドするとぶつかっちゃう。どうするかはこれから...
      • make TARGET_ARCH=arm TARGET=arm make -j4 installworld distriution DESTDIR=/armroot
      • cp OPENBLOCKS_A5/kernel.bin /armroot #ナマバイナリをコピーする
    • パーティションは前半U-Boot用にFAT,後ろをUFSにする。
    • いきなりカーネルをよみこんでいるのでモジュールはstaticにくっつけておく必要がある。
  • DreamPlug A6
    • OpenBlockSとほとんど同じ。クロックはOpenBlockS(600MHz)の2倍の1.2GHzだかかなり熱くなる。
    • SDカードからブートするので簡単。シリアルは変換アダプタが必要。
    • Hit any key が3秒でるのですばやくキーで止める。
    • SDはUSBの下にぶらさがっているのでmass storageとしてみえる。
    • bluetoothとwlanはドライバがない。linuxのドライバはあるが動作があやしい。
  • TP-LInk TL-WR1043ND (MIPS)
    • 海外ではポピュラーだが、日本では認可されてないので使うと電波法的にアウト.. (この会は犯罪を助長する会ではないので、ゼッタイニツカワナイデクダサイ)
    • 中身はLAN *4, WAN *1.
    • シリアルコンソールはないが、基盤上では端子があるので、むりやり外にひっぱってつなぐ。3.3V。
    • U-Bootは "tlp" って打てば止まる!
    • イメージをつくるのはかなりたいへん。
    • 記憶装置がないのでフラッシュメモリにおさまるようにしないといけない。マニュアルなどは削る。viやtopは入ってない。tftpでネットワーク越しに転送する。
    • tftpでRAMに読み込んでから cp.b でフラッシュに書き込む。けっこう時間がかかる。
    • 802.11nのAPとして動作するのは、このチップくらい。
  • まとめ
    • NetBSDなどとくらべるとクロスコンパイルがいけてない。これから拡充予定。
    • 起動がむつかしいが動いてしまえばPCと大差なし。
  • おしらせ
    • フォローアップMLを今朝つくった: http://lists.allbsd.org にアクセスして freebsd-ja に入会申請。

[2012-11-02 20:57]

  • Q: gccからllvmになる?
  • A: 組み込みに関してはgccのままでいく。arm,mipsのサポートがllvmがよわい。binutilsに入ったGPLv3あたらしいarchのコードをどうするか。FreeBSD独自のパッチを入れていく方向でしばらく作業。llvmの品質がつかえるようになったところで切り替えることになるはず。ここ2〜3年は変化ないはず。11/5に切り替える予定。portsはがんばって変える。
  • Q: SPARCとかのマシンは動かしている?
  • A: ずっとbuildをつづけている。パッケージをつくったり。拾ったりヤフオクで戦ったりして入手している。プロジェクトのマシンはデータセンターに入れないといけないが、15〜20Aも喰うのできらわれている。あまってるワークステーションがあったらゆずってほしい。

[2012-11-02 21:03]

...プロジェクタ再起動...

DSC00955

[2012-11-02 21:07]

FreeBSD勉強会 / 後藤大地DSC00957

  • http://atnd.org/events/33453: ZFS活用とチューニング
  • FreeBSD勉強会を相談できる場所にしたい。アンケートに質問を書く。
  • http://www.bsdconsulting.co.jp/ バックエンドはユニゲージ開発手法で。USPの100%子会社なので。
  • @BSDc_tweet
  • BSDcのFreeBSDセミナーは初心者をひきつけたいが、来た人はFreeBSDバリバリだったorz
  • FreeBSD勉強会は、より深く技術を学びたい人向け。
  • おれたち少数派! 協力せざるをえない!
  • http://wiki.freebsd.org/201211VendorSummit
  • FreeBSD Expert Digital Edition 2: 1月出版予定
    • ビッグデータネタ: クラスタを3回もつくりなおした

DSC00958

[2012-11-02 21:17]

デモ〜懇親会

  • UST中継はやってくれる人がいればやってもいい (後藤)

DSC00961DSC00963

[2012-11-02 22:57]

DSC00969

[2012-11-03 00:14]

会社到着。まっくら。めずらしい。

マルエツでカップ麺と温野菜サラダを買って夕食に。

DSC00977DSC00978