投稿

2015の投稿を表示しています

NetBSD/amd64 current on Toshiba dynabook R63/PS

はじめに Vaio Pro 11を使っていましたが、早々にキートップが外れる、SSDが外れる、SSDが遅いと言う問題に当たってしまいました。確かにDRMKMSにもちゃんと対応していて、良いマシンですが、結局東芝の直販サイトで安売りしているdynabook R63/PSに乗り換えることになってしまいました。 ここでは、dynabook R63/PSで、NetBSD/amd64 current (6.99.24)を使う方法について、書きたいと思います。 サポート状況 最初にdmesgを示します。これは、GENERICカーネルでdtraceサポートを有効化しただけのカーネルです。 Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 The NetBSD Foundation, Inc. All rights reserved. Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. NetBSD 7.99.24 (DTRACE7) #271: Mon Dec 14 23:27:23 JST 2015 ryo_on@brownie:/usr/world/7.99/amd64/obj/sys/arch/amd64/compile/DTRACE7 total memory = 8103 MB avail memory = 7849 MB rnd: seeded with 128 bits timecounter: Timecounters tick every 10.000 msec timecounter: Timecounter "i8254" frequency 1193182 Hz quality 100 TOSHIBA dynabook R63/PS (PRB63PS-NDC) mainbus0 (root) ACPI: RSDP 0x0000…

Python psutilとsysctl(3)について

はじめに Let's Encryptのベータテストに応募したところ、テストユーザーになることができました。 そこで、証明書の取得方法を調べてみると、Pythonで書かれたクライアントを使って取得することが分かりました。 Pythonで書かれているのだから、クロスプラットフォームなのに違いないと最初は思ったのですが、psutilというモジュールを使っており、これが各プラットフォームに独自のCで書かれたコードをたくさん持っていました。 psutil 3.3.0をNetBSDでだいたい動くようにする中で分かった、NetBSD独自のシステム情報の取得の仕組みを紹介します。 psutilは、ごく最近OpenBSDのサポートが追加されました。また、FreeBSDのサポートは以前からされています。 NetBSDサポートの追加は、この2つのOS用のコードをうまく再利用しつつ進めました。 psutilは、Python System and process Utilitiesの略で、プロセスやシステムの情報をアーキテクチャーによらず統一した方法で呼び出せる仕組みです。
https://pythonhosted.org/psutil/
にドキュメントがあり、実行例も丁寧に記述されています。なので、動作確認も比較的容易です。 NetBSDで動くようにするためのパッチは、
http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/sysutils/py-psutil/patches/
にあります。 こういう類いのプログラムを書く経験がほとんどないので、より良い実装方法がありましたら、教えていただければ助かります。 システムの情報を入手する仕組み システムの情報をユーザーランドのプログラムが入手するには、カーネルに問い合わせをして教えてもらわなくてはなりません。今回psutilでNetBSDをサポートするに当たって調べたところ、以下の2つの仕組みが用意されているようです。 sysctlライブラリー関数kvmライブラリーに定義されている関数類 今回は、sysctlライブラリー関数の方を使っているのですが、私の理解できた範囲で、両方について説明してみます。 sysctlライブラリー関数 sysctlについては、sysctl(3)とsysctl(7)のマニュア…

QEMU Contribute/SubmitAPatch

とりあえず、誤訳もあるだろうが、読んでみたので、掲載しておく。 http://wiki.qemu.org/Contribute/SubmitAPatch Edition: 22:04, 8 October 2015 Jsnow Licensed under GNU Free Documentation License 1.2. 貢献/パッチを提出する QEMUは(バグの修正であれ新しい機能の追加であれ)コードの貢献を歓迎しています。 しかし、私たちはたくさんのパッチを受け取っており、パッチを提出するためのガイドラインを用意しています。 これらに従うことによって、私たちのコードレビューを容易にし、より早くあなたのパッチがコミットされることになります。 全てのQEMUへの貢献は、qemu-develメーリングリストに「パッチとして送られ」なくてはいけません。パッチの貢献は、バグトラッカーにポストしたり、フォーラムにポストしたり、外部にホストしてそのリンクを送ったりしてはいけません。 メーリングリストにポストするのに、購読する必要はありません(メーリングリストのポリシーとして、CCを全て保持し、購読していない人が始めたスレッドに入り続けられるように、全員に返信することになっています)。 購読するならば、配信されてくる電子メールが非常に多いのを覚悟してください。一週間に100通を越えることがよくあります。 メーリングリストはモデレートされています。ある電子メールアドレスからの最初のポストは(購読しているにしろ、していないにしろ)、モデレーターがあなたの電子メールアドレスをホワイトリストに追加するまでしばらく時間がかかります。 パッチの書き方英語を使う 正しい英語であれば助かります。 もし不安があるならば、codespell等のプログラムを、コードと文書の中の最も一般的な綴りの間違いを見つけるのに使ってください; QEMUのコーディングスタイルを使う 私たちのコーディングスタイルに従っているか確認するために、提出する前に、「scripts/checkpatch.pl 」を実行してください。 特にCプリプロセッサーが絡む場合には、checkpatch.plが絶対正しいと言うことはありません。常識も使ってください。 以下も参照してください。 QEMU Coding St…

TOPPERS/FMPをqemu-system-arm -M vexpress-a9で動かす

pkgsrc/cross/arm-none-eabi-binutilsとarm-none-eabi-gcc5と言うパッケージを作っていて、これらが正しいバイナリーを生成してくれるか試したいと思っていた。
と同時に、一度リアルタイムオペレーティングシステムと言うのを試してみたいとも思っていた。
そこで、arm-none-eabi-*を使ってビルドすることになっているTOPPERS kernelを試してみることにした。ビルドしたら、そのバイナリーが正しく動作するか確認しないといけない。私はRaspberry PiとCubieboard 2を持っているのだが、TOPPERS/JSP、TOPPERS/ASP、TOPPERS/FMPともに、これらのボードには移植されていないようである。
Skyeye のARMエミュレーション用に移植されているのだが、どうやらCodeSourcery Liteが必要らしく、CodeSourcery Liteは既に無料で配布されていないし、それをNetBSDで動かすのも面倒に違いないので、Skyeye用は試すこともしなかった。
エミュレーターと言えばqemuと思って検索してみると、TOPPERS/FMP kernelは、qemu 1.3.0にパッチを当てたものに移植されているらしい。
https://www.toppers.jp/fmp-e-download.html
に、QEMU Versatile Express Cortex-A9 (4 cores)簡易パッケージとして、TOPPERS/FMP 1.2.2が掲載されている。
TOPPERS/FMPの最新版は1.3.0なので、最新版でないのは少し引っかかるが、試してみることにした。

まず、TOPPERS新世代カーネル用コンフィギュレーターと言うものをビルドしないといけないらしい。

https://www.toppers.jp/cfg-download.html

によると、最新版は1.9.4なので、それを試してみることにした。
Makefile中でGNU makeをmakeとして呼んでいるので、そこを$(MAKE)に変更すれば、NetBSD/amd64 currentでも他には修正は必要ない。
パッチは、

https://www.toppers.jp/TOPPERS-USERS/2015-Octo…

Vaio Pro 11のACアダプターの追加購入

イメージ
Vaio Pro 11のACアダプターを持ち忘れてしまうことが多いので、もう一台を検討してみた。

正規版は、https://vaio.com/products/acc/VJ8AC10V9/ にあるVJ8AC10V9な訳だが、ソニーストアで扱ってもらえるようになって、買えないと言う状態ではなくなったが、6,980円は結構な出費になる。
そこで、秋葉原で中古ACアダプターを扱っている店をいくつか探してみた。
まず、VJ8AC10V9については、中古品は見付けられなかった。その他のソニー製の10.5VのACアダプターも見当たらない。同じ10.5Vのものも、見付けられない。しかし、10VのものはNECの製品がいくつか出品されていた。
最終的には、ショップインバース http://www.shop-inverse.net/ でNEC製PC-VP-BP72を1,500円で購入した。これは、10V 4AのACアダプターである。無事に使用できた。DC側のコネクターの形状も問題ない。
他にも4A以上のNEC製のACアダプターも売られていたが、大きさが小さいものがよかったので、PC-VP-BP72にした。
手軽に買えると言う点では、以前に記事を書いたように、Amazon.co.jpで買うのが良いのだろうが、実店舗で買う方が半額程度になる結果となった。

Windows 7 Professional用のNFSクライアントを使う (NFS 4.1のみ)

Windows 7 Professional 32-bitなマシンがある。
NFSをマウントするには、Services for Unix (SFU)を使うのが定石なのだと思うが、ProfessionalにはSFUは用意されていない。
調べてあると、
http://citi.umich.edu/projects/nfsv4/windows/
にNFSクライアントがLGPLv3で公開されている。
しかし、Gitサーバーは既に機能していないようだ。

https://github.com/kofemann/ms-nfs41-client
に、リポジトリーがミラーされていて、README.mdが整備されている。
https://github.com/kofemann/ms-nfs41-client/blob/master/README.md
基本的にこれに従えば良いが、つまずいた箇所を書いておく。

これを、
https://msdn.microsoft.com/en-us/library/windows/hardware/ff557573%28v=vs.85%29.aspx
からリンクされている、Windows Driver Kit 7.1.0
https://www.microsoft.com/en-us/download/details.aspx?id=11800
を使って、Visual C++ 2010 Expressでビルドしてみる。
まず、README.mdにあるように、build.vc10\env.prop.exampleをenv.propと言うファイル名にコピーし、Windows Driver Kitのディレクトリー名を、実際の値に合わせてやる。今回の場合は、C:\WinDDK\7600.16385.0になっていたものを、C:\WinDDK\7600.16385.1に書き換えた。

Visual C++ 2010 Expressから、build.vc10\ms-nfs41-client.slnを開いて、daemonプロジェクトをビルドしてみる。

すると、依存するプロジェクトのビルドが始まるが、MFC (Microsoft Foundation Class)の一部である、afxres.hが見付からないいと言うエラーでlibtirpcプロジェクトがビルドできない。
これは、m…

Visual C++ 2010 Expressで、LNK1123エラーが出てビルドが完了しない場合

Windowsでのプログラミングも、C++も分からないのだが、Visual C++ 2010用の小さなプログラムをビルドする用事があって、Visual C++ 2010 Expressをインストールした。
ビルドしてみたのだが、「LNK1123: COFFへの変換中に障害が発生しました」とエラーが出て、リンクが完了しない。
Visual Studio 2010 SP1と言うのが、Expressにも適用できるようで、Windows Updateからインストールしたら、このエラーは出なくなった。

QNX 6.5をVMware ESXi 5.5上にインストールする

2011年の3月に、QNX 6.5のNon-commercial licenseを取得して、pkgsrcでしばらく遊んでいた。
その時には、VMware PlayerかVirtualBoxかを使っていたのだと思うのだが、今は、VMware ESXiを使っている。

QNX 6.5のインストールイメージは、

http://www.qnx.com/download/group.html?programid=20905

からbootableなものをダウンロードしてくれば良いのだが、今はNon-commercial licenseの配布はしていないようにも見える。

ところで、VMeware ESXiは、標準では、SCSIの仮想ハードディスクを提供してくれるのだが、QNX 6.5では、BusLogicのコントローラーにしても、認識してもらえない。

http://www.qnx.co.jp/developers/docs/6.5.0/index.jsp?topic=%2Fcom.qnx.doc.momentics_release_notes%2Frel_6.5.0.html

によると、Updating disk driverというのを実行すれば良いらしいのだが、私の知識では、ディスクドライバーをアップデートすることはできなかった。

http://virtuallyfun.superglobalmegacorp.com/2014/07/21/using-ide-hard-disks-on-vmware-esxi-5-5/

によると、仮想マシンの作成時にオペレーティングシステムとしてOS/2を選んでおけばIDEのハードディスクが提供されるらしい。QNX 6.5のようにIDEが必要な場合には、OS/2を選ぶのを忘れないようにしないといけない。まあ、64ビットでIDEが必要になった場合には困るけれども。

最近のSafari Books Onlineのこと

Safari Books Onlineというサービスがあって、英語の技術書であれば、結構いろいろな書籍を定額で参照できる。
https://www.safaribooksonline.com/

2010年とか2012年ころに、日本語話者で使っている人はいたようだが、最近の様子を書いている人はいないようなので、書いておく。

私が使い始めた2014年には個人向けにはBookshelfとLibraryというコースがあったのだが、2015年5月1日現在は、個人向けにはProというコースだけのようである。
Bookshelfの契約者には、Pro相当へアップグレードできるオファーがあったので、その頃に変わったのだと思う。
いずれにしても、今は、個人ではPro以外の選択肢はないようだ。

読める書籍については、O'Reilly以外もあるし、必ずしも計算機科学やソフトウェアの解説書だけではないので、自分で検索してみるか、Free Trialに申し込んでみたら良いと思う。どういう書籍やビデオがあるかの検索は、ログインしていなくてもできる。
昔のSafari Books Onlineについての記事を読むと、PDFファイルとしてダウンロードできたような記述があるが、現在はその機能はない。ただ、私の読んだ全ての書籍は、章ごとにHTMLとなっていて印刷できるので、必要であれば、PDFファイルに変換して持っておけば良いように思う。HTMLとしてダウンロードしておけるかは、試していない。
ビデオはダウンロードできないようだ。

Androidでの閲覧は、ウェブブラウザー以外に、Safari To Goというアプリケーションを使うことができるが、この機能は貧弱なので、あまり便利ではない。唯一価値があるとしたら、3冊を上限として、オフラインで閲覧できることだと思う。
iOSにはもっとちゃんと使えるアプリケーションが用意されているので、早くAndroid版も用意して欲しい。

http://www.oreilly.co.jp/safari/
にO'Reilly Japanが簡単な解説を書いてくれているのだが、Bookshelf/Library時代の解説なので、直して欲しい。

「ホントにゼロからの簿記3級」ふくしままさゆき著 Kindle版

昨日まで、Amazon.co.jpでは、プライム会員向けにKindleの3,000円引きキャンペーンをしていた。
私もそれに乗って購入したのだが、Kindleオーナーライブラリーの機能は、貸し出しエラーが出て使えなかった。
しかし、英語UIにしたりリセットしたりして、貸し出ししてもらえるようになったので、ちょうど目についた標記の書籍を読んでみた。

内容としては、一般の簿記の教科書を補足するような内容であった。簿記特有の良い回しとか、用語について、どれは理解しておかなくてはいけなくて、どれは概念さえ理解して仕訳できれば良いか、説明してあったので良いと思う。
こう言う勘所は、ちゃんと勉強した上でないと、自力では行き着けないので、教えてもらえると助かると思う。

「条文の読み方」法令執務用語研究会著 有斐閣刊

法学と言うのを学びたいと常々思っているのだが、なかなか学ぶ機会がない。
昼の仕事に関連する部分については、嫌でも学ぶことになるのだが、法学一般についてや法学の基本的な考え方については、全く学べていない。

そうであれば、本来はこの本ではないのかもしれないが、用語が分かることは必要であるので、読んでみた。

似たような単語の使い分け等を説明してくれているので、法令を読むのに非常に役立つと思う。でも、覚えておかないといけないので、もう何回か読み直す必要はありそうだ。
それと、これはこの本のせいではないのだが、法令には文脈で解釈しなくてはいけないケースが存在すると言うことが書かれていて、唯一の意味だけに解釈可能にはなっていないのがちょっと不満に思った。

AndroidのK-9 Mail

Androidには、標準でGoogleによる「メール」というアプリケーションがインストールされていて、POP3やIMAP4の電子メールサーバーにアクセスできる。
しかし、SMTPサーバーを指定するのにあまり自由度がない。

Open Sourceで良いものがないか探してみたところ、K-9 Mail
https://play.google.com/store/apps/details?id=com.fsck.k9&hl=en
と言うのが、いろいろ自由に設定できるし、私の要件には合っていた。

まず、SMTPサーバーを自由に設定したかった。これは、K-9 Mailでは自由に設定できる。
次に、フッターに広告が入らないことが望ましかった。有料の電子メールクライアントアプリケーションの無料版では、フッターの広告を消せないものばかりだった。
K-9 Mailも、標準ではK-9 Mailを使っている旨のメッセージが入るが、ちゃんと消すことができる。

他にも、複数アカウントへの対応も可能なのは良い点だと思うが、私は使っていない。

Firefox 37.0.2 for Androidがクラッシュしなくなった

しばらく前から、Firefox for Androidは、すぐにクラッシュして終了してしまうので、使い物にならなくなっていた。
久しぶりにFirefox 37.0.2 for AndroidをPanasonic P-02Eにインストールしたところ、今のところ全くクラッシュしないので、また使い始めることができそうだ。

この問題は、日本語ロケールのAndroidに特有に問題だったのか、全く注意を向けてもらえていなかったように思う。私もbug reportとかしなかったけれども。

Vaio Pro 11/13用のサードパーティーのACアダプター

イメージ
Vaio株式会社の製造するようになったVaio Pro 11/13だが、総代理店であるソニーストアでは、専用ACアダプターは品切れになっていて購入できない。
また、メジャーなメーカーで互換性のあるACアダプターは現在は製造されていない。

Amazon.co.jpを検索すると、使えそうな物が少なくとも2つ販売されている。
そのうち、レビューのない方を購入してみたので報告する。

前提として、Vaio Pro 11/13のACアダプターは、SONY Vaio type P等のACアダプターの電流値が大きくなったものである(純正品のVJ8AC10V9は、10.5V、3.8Aの出力である)。

まずは購入していない物について述べておく。


これは、レビューを読む限りでは、NEC等の10V出力のACアダプターのプラグ部分を付け替えたもののようである。それはそれでありなのだと思うが、品質にはばらつきがあってもおかしくない。


次に購入したものについて述べる。


これを注文した訳だが、届いたものは、Anthin API324-1024というACアダプターであった。これは、10V、2.4A直流出力のACアダプターである。
データシートも入手できる。

http://www.anthin.co.jp/spec/ST-0229%20%20%20API324-1024.pdf

私は知識が不足しているので、このACアダプターのプラグ部分を改造しているのかを判断することはできない。

この10V、2.4Aの仕様でも充電できたので、問題なく使えると言えそうである。
Amazonプライム対応なので、トータルコストとしては、こちらの方が安くすむ。

他にも、既に販売終了しているが、ELECOM ACDC-SY1036BKと言うVaio type P用のサードパーティーのACアダプターも使えるはずである。これは、10.5V出力らしい。
見かけたら買っておいても良いかもしれない。

http://www2.elecom.co.jp/cable/ac-adapter/acdc-sy1036/

Buffalo WLI-UC-GNM2をMicrosoft Windows 7 Professional 32-bitで使う場合の注意

Buffalo WLI-UC-GNM2は、パッケージを捨ててしまうと、実機に型式が書かれていないので何と言う機械なのか分からなくなってしまう問題がある。
USBのVendor ID/Product ID=0x0411/0x01eeであれば、WLI-UC-GNM2である。

これをWindows 7 Professional 32-bitで使う場合には、必ず、

http://buffalo.jp/download/driver/lan/old/wli-uc-gnm2.html
WLI-UC-GNM2シリーズ設定CD Ver.1.00(2011年8月1日)

からダウンロードできるwliucgnm2-100.exeファイルに入っているデバイスドライバーを使わなければならない。
もっと新しいバージョンがいくつかBuffalo社のウェブサイトでは公開されているが、少なくともWindows 7 Professional 32-bitで使う場合には、それらのデバイスドライバーを正常にインストールできない。

zoho Email hostingで、サブドメインを設定する

zoho Email hostingでは、無料では一つの独自ドメインで電子メールを受信できるようになっている。
しかし、公式サイトの説明では、独自ドメインのサブドメインで受信できるようにする方法が分かりにくかった。
結果としては、CNAME認証をすれば良い。
ウェブサイト認証でも良いが、そのサブドメインを電子メールでのみ使う場合には、適用できないので、お勧めしない。

pkgsrc/pkgtools/libkverを使って、chroot環境のunameを偽る方法

pkgsrc/pkgtools/libkverを使うと、uname -r等を偽ることができる。
これによって、unameの情報を使うプログラムをだまして実行することができる。

pkgsrcのbinary packagesは、uname -sやuname -rを埋め込んでいる。
例えばNetBSD/amd64 current上でchroot環境を用意し、
NetBSD/amd64 6.1用のbinary packagesを作る場合に、libkverを使うことで
他のマシンでpkg_addが可能なbinary packageとすることができる。

こうしないと、NetBSD 6用のlibraryにリンクしているのに、
binary packageとしては、7.99.*用の情報が埋め込まれていて、
pkg_addしにくいbinary packageになってしまう。
また、pkgsrcのMakefileはunameの結果を使って条件分岐する箇所
があるので、buildに失敗するpackagesもあるはずである。

pkgsrc/pkgtools/libkverを使う場合については、

http://comments.gmane.org/gmane.os.netbsd.devel.packages/13587

にあるような手順が書かれているが、手作業でchroot環境を起動させる
場合については、若干分かりにくいように感じたので、手順を書いておく。
ちなみに、pkgsrc/sysutils/sudoを使っていないのは、sudoがLD_*という
環境変数を切り替え先の実行ユーザーに渡さない仕様であるからである。
先にsu(1)でrootになっておく。

(1) chroot環境の外側でlibkverをinstallする。

# cd /usr/pkgsrc/pkgtools/libkver
# make install
# make clean


(2) chrootに一度入り、chroot環境の内側でもlibkverをinstallする。

# chroot /usr/tmp/chroot/netbsd-6/root /bin/ksh
# cd /usr/pkgsrc/pkgtools/libkver
# make install
# make clean
# exit


(3) libkv…