コンピュータ

NetBSD/amd64 on CloudCore VPS (2)

【追記 2013-03-19】以下は書いた当時の情報であり、2013年3月現在、ここに書いたような方法(x86_errata()の無効化)を用いてもCloudCore VPSでNetBSDは動作しません。

前のエントリを書いた後すぐに、ISOイメージからのbootができるようになりました。
(ただしbetaと書かれています。)

イメージアップロードに関する情報は、VPSのコントロールパネルのOSインストールの項にあります。秘密鍵ファイルのダウンロードもそこにあります。build.shで普通にiso-imageを作成し、NetBSDのsftpで以下のようにアップロードして起動できました。

$ sftp -i 秘密鍵ファイル名 -P 接続先ポート 接続先ユーザ@接続先ホスト
sftp> put ISOファイル名 /iso

併せてインストール時にvirtioのオン・オフが選べるようになり、NetBSDをvirtioオンでインストールした場合、ディスクやネットワークがvirtio経由のld, vioifになります。

アクセスの速さは…あまり変わりませんでした。

NetBSD/amd64 on CloudCore VPS

【追記 2013-03-19】以下は書いた当時の情報であり、2013年3月現在、ここに書いたような方法(x86_errata()の無効化)を用いてもCloudCore VPSでNetBSDは動作しません。

KDDI Web Communications の CloudCore VPS、最安とまではいかないがそこそこ安いのと(トップにある945円/月は1年契約のときの値段ですが)、「提供予定」に普段使っているNetBSDが入っていたので様子を見ていたところ、

CentOS 5.8/CentOS 6.2/Fedora 16/Scientific Linux 6.2/Ubuntu 12.04 提供開始のお知らせ

なお、かねてよりOSインストール機能の一環にて提供予定としておりました、
「NetBSD」につきましてご報告させていただきます。

お客様からのご要望も高く、ご期待に添えるべく技術検証を重ねてまいりましたが、
サービスとして提供できるレベルに至らず、提供を見合わせることとなりました。
ご期待を寄せていただいていたお客様方へは深くお詫び申し上げます。
誠に申し訳ございませんでした。

とまあ、残念なお知らせが載っていたので、雲野コアさんに愛を伝えるべくどういう問題かを把握すべく試用してみました。

Back Street Net(神戸さんのサイト)のさくらVPSの例(とてもわかりやすくて助かります)を参考に if_wm.c にパッチをあてて、イメージを作成。
(VNCコンソールなのでinstallbootのオプション,console=com0,speed=115200は削りました。)

イメージの書き込みは、他のサポートされているOSのインストーラを途中で止めて、ネットワークの設定をしてイメージを転送してddでディスクに書き込むだけなので、特にトリッキーなテクニックを使う必要もなく比較的簡単です。私はFreeBSDのインストーラを使いました。(今後ISOイメージからの起動ができるようになるそうなので、もっと簡単になりそうです。)

すると、…起動に失敗します。

理由は、多分以下のスレッドのものと同じですが、
Current-Users archive: Boot fail as kvm guest
要は、sys/arch/x86/x86/errata.cのx86_errata()でCPUがAMDと判定されるとMSRへのアクセスがありますが、KVM上では通らないという事のようです。今のところ、AMDのCPU以外では何もしないようになっているので、さくらVPS(IntelのCPUに見える)等では問題ないということでしょう。

「KVM上の場合は何もしない」というコードをどう書くのが正しいかわからないので、x86_errata()が何もしないようにソースを直接書き換えて、再度コンパイルしてイメージを作り、さらにACPIとSMPをdisable(起動メニューの4番)したところ起動しました

一応、インストールした後負荷をかけてみたりしましたが、動いているようです。ただ、「サービスとして提供できるレベルに至らず」という文面が気になるところです。

契約して使うかどうかは迷っています。

何処をどう直すのがスジかという話ですが、KVMとかハイパバイザの類の上でどうせCPU依存の特殊なことはできないのであれば、それらがCPUの種類を隠蔽してくれるのがいい気がしますが、どうでしょうか。

binutilsが正しく作れないことがある件

NetBSDでmingw-w64を作っていて、クロスのgccもbinutilsも出来上がったのに、それでコンパイルしたバイナリをWindowsに持っていって実行しようとすると“not a valid WIN32 application”(日本語版だと「有効なWIN32アプリケーションではありません」)などと言われる。

結論から書くと、binutilsのldのldscriptsが正しく作れていなかった。

configureでSHELLとして何故か/bin/shではなく/bin/kshが選ばれるが、このシェルだとgenscripts.sh(から呼ばれているscripttempl/pep.scなど)がエラーになる。

エラーなので止まってくれれば良いのだが、実際にはそのまま進んで、make installすると途中で打ち切られた(実質中身のない)ldscriptsがインストールされてしまう。

出来上がったgcc+binutilsを使ってコンパイルしたときに、一見すると正しいPE32(+) executableに見えるモノが出来てしまうので、なかなか原因がわからなかった。しかし、以前にも、違うパターンとはいえ同じ部分でハマったことがあったのだった。http://est.ceres.ne.jp/2008/07/02/post_241/…すぐに気がつくべきだった。

回避方法としては、binutilsのconfigureを実行する際、CONFIG_SHELL=/bin/sh …/configure …とでもすれば良い。多分。

configure: error: libmpfr not found or uses a different ABI.

クロスコンパイラを用意していた時の話。

いまどきの gcc は、gmp, mpfr, mpc といったライブラリが必要で、一緒に作る場合は gcc のソースディレクトリの中に展開して、バージョン番号のない形にリネームしておく、とかいう話はどこにでも書いてあるけれど、mpc のコンパイル前の configure でコケる。

configure: error: libmpfr not found or uses a different ABI.

gccのconfigureの際、gcc のソースがあるのが ${SRCDIR}、コンパイルするのが ${BUILDDIR}、とすると、

$ cd ${BUILDDIR}
$ ${SRCDIR}/configure --prefixとかtargetとか指定したいオプション… 
   --with-mpfr-include=${SRCDIR}/mpfr/src 
   --with-mpfr-lib=${BUILDDIR}/mpfr/src/.libs

…とすれば回避はできる。(gcc-4.6.2で確認)

こんな指定をさせる仕様ではないと思うのだが。

時々フリーズする Intel RAID / Windows 7

仕事用に購入した HP Z400 Workstation (Windows 7 x64) は概ね快適ですが、時々アプリケーションが固まる(しばらく経つと復帰する)ので,イベントビューアを見たところ,System に”The device, DeviceIdeiaStor0, did not respond within the timeout period.”という Error あり。

7 ではなく Vista としか書いてませんが,以下のものに近いと判断。

Windows Vista* とインテル® RAID で起こりうる問題
http://www.intel.com/jp/support/chipsets/imsm/sb/cs-025783.htm

「インテル® ラピッド・ストレージ・テクノロジー」の最新版を入れて経過観察中…。

SH-03C 購入

6年以上使ったmova端末の電池が1日もたなくなってしまったので,docomoショップに行ったところ,もう同じ型の電池がないとのこと。

ガラケーにするかスマートフォンにするか悩んだ末,SH-03Cを購入。
http://www.nttdocomo.co.jp/product/foma/smart_phone/sh03c/

概ね良い感じではあるが,いくつか問題が。

WiFiの設定をしてみたが接続できない。SSIDをAbcd(本当は違うけど)と入力したが,実際にはABCDだったので,設定を作り直したところ何故か ABCD が二つになってしまった。
消したら両方消えたので,その後作り直したら治った。

spモード(iモードメールの代わり)を使うために,専用アプリが必要で,専用アプリを入れるためにGoogleアカウントが必要。しかし,Googleアカウントを新規作成しても既存のアカウントでログインしても,サーバと安定した接続ができないというエラーで止まる。WiFiでも3Gでも駄目。

ググったら似たような報告はあったが,これといった解決法はなく,そんなエラーが出たり出なかったりとのこと。確かにしばらく放置したら解決した。

それで試しにメールを送ってみたが,受け取れない。これは単に,spモードのメール取得や設定がWiFi接続だとできないだけだった。(2011年2月上旬からできるようになる予定らしい?)

前途多難だが,通話とメールとtwitterその他よく使うものは動いたのでとりあえずは良しとする。

IBMのサーバがUSBデバイスからBootしようとする件

IBMのPCサーバ(今はLenovoになったThinkCentreなどのPCも?)にうっかりUSBのフラッシュメモリを挿したまま再起動すると,そっちからBootしようとして失敗して止まる(あるいはディスクからのBootを諦めてPXE/DHCPなど別の方法で起動しようとする)。失敗したら次のディスクを探しに行く,ということであれば問題ないと思うのだが,すくなくとも私の周囲にある機種はみんな同じ挙動。

BIOS Setup にある起動順序の設定は簡素なもので,USBのデバイスからのBoot可否や順序の設定はない。とにかく内蔵のドライブ(単体)やRAIDよりUSBにぶら下がっているデバイスが優先(というか見え方としては上書き?)されてしまう。

とりあえず,USB Legacy Support を Disable にすれば回避できる(あたりまえ?)が,他にちゃんとした方法はないのだろうか?

GT216 な GeForce 210

ASUS EN210 SILENT/DI/1GD2 という NVIDIA GeForce 210 のファンレスビデオカードを買ったが,

Wikipediaによると,
http://ja.wikipedia.org/wiki/GeForce#GeForce_GT_200_Series

NVIDIA GeForce 210:
 コア名: GT218
 コアクロック: 589MHz
 CUDAコアクロック: 1402MHz
 メモリクロック: 1000MHz
 メモリバス: 64bit
 CUDAコア数: 16

NVIDIA GeForce GT220:
 コア名: GT216
 コアクロック: 625MHz
 CUDAコアクロック: 1380MHz
 メモリクロック: 1380MHz
 メモリバス: 128bit
 CUDAコア数: 48

・・・しかし,今回購入した品(実測)は,

NVIDIA GeForce 210:
 コア名: GT216 (GT220と同じ?)
 コアクロック: 475MHz
 CUDAコアクロック: 1100MHz
 メモリクロック: 800MHz
 メモリバス: 128bit (GT220と同じ?)
 CUDAコア数: 24 (210より多くてGT220より少ない?)

210というよりは,GT220のシェーダー(CUDAコア)を半分にしたチップで,(ファンレスのために?)各種クロックを下げたみたいな感じなのかな?

まあ,なんにせよ古いオンボードビデオのPCへの増設なので,速くなって満足。

iTunes のアンインストール

家のWindows PCのファイルシステムの一部が壊れて,いくつかのアプリの動作がおかしくなった。

大半はアンインストール後に再インストールで解決したが,iTunesだけは再インストールしてもiTunesHelper.exeがエラーを起こす症状が治らなかった。

iTunesをインストールするときに他にもいろんなものがインストールされるので,単純にiTunesだけアンインストールしてもダメ,ということらしい。

XP: http://support.apple.com/kb/HT1925?viewlocale=ja_JP
Vista, 7: http://support.apple.com/kb/HT1923?viewlocale=ja_JP

インストーラが全部まとめてインストールしてくれるんだから,アンインストーラも全部(あるいは選択的に)まとめてアンインストールしてくれてもいいと思うのだが。

Microsoft Word 等で書かれた図を EPS に変換する

Word の図を変換云々で検索すると,スクリーンショットを使う方法をはじめ bitmap にしてしまう方法ばかりが出てくる。

書籍に使う場合でも,600dpi くらいになるように拡大して取り込めれば使えないことはないのだが…。

いろいろ試行錯誤した結果,比較的楽でどんな場合でもそれなりにうまくいくのは,図そのものや図のあるページをAdobe AcrobatでPDFに変換して,PDFをAdobe Illustratorで取り込む(必要に応じて切り出す)方法。トリッキーというかアドホックなつくりの図(テキストボックスを駆使したものなど)でもいける。

まあ,Illustratorは安くはないけど。フリーのツール等もいろいろ試したが,微妙にそれぞれ不具合があるので,Illustrator CS4のデモ版で試した後,結局購入した。