RaspberryPi ZeroをOTGモードで使う

RaspberryPi Zeroに USB Stem を 取り付けてみました。

取り付けとRaspbianの準備に関しては PIMORONI と そこからリンクされている 公式Gist を参考にすれば簡単にできました。

Macで使う場合は、ドライバも必要ないしBonjourも動作しているのでなんの準備も必要なくSSHでつなぐことができました。 インターネット共有の設定をすればインターネットへ接続するのもOK。

ただ自分のLinuxの環境はGentooなのでドライバも無効になっていたし、Avahiも入っていなかったので少しハマりました。 まずカーネルの設定で CONFIG_USB_NET_CDCETHER を有効にするとRaspberryPiを認識できるようになります。

Device Drivers  --->
  Network device support  --->
    USB Network Adapters  --->
      Multi-purpose USB Networking Framework
        CDC Ethernet support (smart devices such as cable modems)

有効にした上で接続するとdmesgとifconfigにこのように出力されます。(なんかエラーでてるけど…)

$ dmesg
[ 1450.001875] usb 3-1 ...
more ...

Linuxで複数モニタを使うときのメモ

以前買った IGZO液晶 はたまにRaspberryPiを接続したり、 臨時のモニタとして活躍していました。ただ、最近活躍の機会もあまりないのと、 小画面で常時表示しておきたいような用途を思いついたのでデスクトップPCのサブモニタとしてしばらく使ってみることにしました。

デスクトップPCのマザーボードは H77M-ITX を使っていて、 既存のモニタはDVI経由で接続しています。 このマザーボードはDVIとHDMI両方を使ってのマルチモニタに対応しているので、素直にHDMIに接続すれば物理的な準備は終わり。

ただ縦長の解像度が問題なのか、一般的なモニタを接続した場合も同じなのかはわからないけれど、 両方のモニタを接続しているとBIOSの画面が表示されなくなりました。 (キーを押すと入れはするけれど画面の表示がされない状態) その為BIOSに入る必要がある時はIGZO液晶側の電源を切るかケーブルを抜いておく必要がありました。

次にLinux側の対応で、やりたいことは以下の3つ

  • ミラーリングになっていたのでそれぞれ別に使えるようにする。
  • 今まで使っていたモニタを今まで通りメインのモニタとして使う。
  • IGZO液晶はポートレート表示がデフォルトなので回転させてランドスケープで使う。
  • IGZO液晶はメインモニタの左側に配置する。

調べてみたら設定を変更するにはxrandrを使って動的に変更するかxorg.confに静的に書くかの2通りがありました。

その他にディスプレイマネージャにSLiMを使っていたのですが、 もう 開発が止まっているらしい のとマルチモニタに対応していないみたいなので、 LigntDM に置き換えました。 ウインドウマネージャは Awesome でこちらは対応していて特に設定の必要なく使えました。

xrandrを使うにしろ、xorg.confに書くにしろ、まずLinux側にどのように認識されているか調べる必要があります。 単純にxrandrコマンドを実行すれば現在の状況が確認できました。

$ xrandr
Screen 0: minimum 8 x 8, current 3840 x ...
more ...

秋月電子で買えるIGZO液晶を試してみた

秋月電子で SHARPの7インチIGZO液晶モジュール を購入したらあっという間に届いたので動作確認してみました。 動作確認自体は土曜に終わっていて、本当はアクリルのケースを作成してから記事を書くつもりでした。 が、月曜の夜に見積もり依頼を出して既に木曜の深夜です… メールには2営業日と書いてあったのに何が起きているんだろうなぁと少しイラッときたので先に記事だけ書いてしまうことにしました。 (ちなみに今日くらいから シリコンハウスでも購入できる みたいですね。)

組み立てと接続に関しては付属の説明書を参考にすれば特に問題なく済ませることができると思います。 注意すべきことがあるとすれば、細い方のフレキシブルケーブルのコネクタは、開く方向が太い方とは逆になっていた点くらいです。 あとは単純に壊さないように作業するだけです。(すごく壊れやすそうなので何度も作業したくない感じでした。)

映像の出力機器に関して、とりあえず普段使用している MiniDP-HDMI変換ケーブル を使ってMBAと接続してみたのですが無反応でした。 次にGentooがインストールされているデスクトップと DVI-HDMI変換ケーブル を使って接続してみたら、こちらはうまく表示されました。 MBAが悪いのか、変換ケーブルが悪いのかは切り分けることができていませんが多少相性はあるようです。 Twitterでも報告している人がいましたが接続する機器によっては映らないということがわりと当たり前に起こりそうです。こわいですね。

下の画像はデスクトップに接続して画面を左に90度回転した状態で撮影したものです。 この液晶の仕様でデフォルトでは縦画面の1200x1920で認識されるようです。 なので、横向きで使用したい場合はOS側で画面を回転させてやる必要があります。 (この仕様のせいでおそらくPC以外の機器との接続が難しくなっているのだと思われます。)

Gentoo(Linux)のXでは xrandr というコマンドがあり、これを利用すると画面を回転させることができます。 今回はこのように xrandr -o left 実行しました。

image

アクリルケースに関しては、本当はCADやIllustratorを使用して書くのかもしれませんが、木材を使った家具のイメージ作りのために SketchUp を使っていて ...

more ...

GentooとNginxでLet's Encryptを使う

Let's Encrypt がPublic Betaになったので使ってみました。 Gentooに関してはまだ実験的なサポートで、Nginxはこれからプラグインが取り込まれる予定みたいです。 (なので他の組み合わせて使うより多少不便なのかもしれない) ただ試してみた結果現状でもとても簡単に利用できました。

基本的には ドキュメントInstallationHow to run the client の章を読めば事足りて、 あとは必要に応じて User Guide も読むといいはず。

まず必要なファイルはgithubからcloneするだけ、コマンドを実行したタイミングでディストリビュージョンごとに必要なパッケージが自動でインストールされるようになっていました。 Gentooの場合は bootstrap/_gentoo_common.sh に書かれていて以下のパッケージがインストールされるようになっていました。 あと普通に実行するとGentooは実験的なサポートなので --debug をつけて実行するように言われるのでそのようにします。 ただこれは初回のパッケージのインストール時のみ必要みたいなので、次回以降はつける必要がありませんでした。

PACKAGES="dev-vcs/git
  dev-lang/python:2.7
  dev-python/virtualenv
  dev-util/dialog
  app-admin/augeas
  dev-libs ...
more ...

WN-G300UAを使ってみる

今までWiFiのアクセスポイントには WLI-UC-GNM を使用していたのですが、たまにOSごと巻き込んでクラッシュするのとアンテナがないので電波が悪い部屋があったので交換してみることに
アンテナがついている機種でLinuxでの動作実績がありそうなものを探した結果 WN-G300UARaspberryPiでの動作実績もあるみたい で良さそうだったので購入してみました
ちなみにWLI-UC-GNMは772円、WN-G300UAは1470円でした
上述の参考サイトにはモジュールのオプションでパワーマネージメントを無効にすれば普通に動くということだったのですが、これから色々ハマるとは思いもしませんでした…

  • このデバイス用のドライバがカーネルに含まれていますがまともに動作しませんでした (繋がるけれどすぐ切れるという動作 Kernel 3.14.48)
  • チップセットメーカーもドライバを提供していて参考にしていたサイトではそれを使うように説明がありました
    しかし手元のカーネルではビルドすらできませんでした
    参考にしていたサイトはRaspberryPiを使ったサイトが多かったのですが、彼らの使用しているカーネルは古かったようです

いろいろ検証した結果ArchLinuxのパッケージで使われているリポジトリとパッチを当てたものを使用すれば動作することがわかりました
Arch以外のディストリビュージョンではそのままビルドすることができないのでArchで使っているリポジトリをサブモジュールにしてMakefileとWN-G300UA用のパッチを追加したリポジトリを作成しました

以下の手順でビルドすることができます

$ git clone https://github.com/lostman-github/8192cu
$ cd 8192cu
$ git checkout WN-G300UA
$ git submodule init
$ git submodule update
$ make
$ cd -

$ git clone ...
more ...

Xvfb上でChromeを動かしてみた

外出中にFlashを使ったサイトをチェックしたいという要望が某所から出てきたので環境を作ってみた
普段から PC を持ち歩いている人には必要ないことかもしれないけれど普通の人は持ち歩いていないよね
私も荷物を持つのが嫌いなのでポケットに入るスマホと財布くらいしか持ち歩いていないです
ということで、スマホで見れるといいけれど Android の Firefox で使える Flash はもうサポートが切れているのでいまいちな感じ
で、自宅には常時起動のマシンがあるのでそこで何か用意できないかなと考えて今回 Xvfb を試してみた

Xvfb はなにかというと通常 X はクライアントからの要求を受けてドライバを経由して実際のモニタに描画するのに対し、
モニタでなくメモリ上に確保した仮想のフレームバッファに画面を描画します
このため画面がないマシンでも GUI のアプリケーションが起動できます
サーバ上で GUI のアプリを動かすにはうってつけですね
ただこのままだと外部から描画された画面を見ることができないので
x11vnc を使って外部から画面の様子をVNCクライアントを使って見れるようにしました
Chrome を選択したのは Flash を動かすのに追加でプラグインが必要ないためってだけ

必要なものをインストールする前に package.use に必要は USE フラグを追加して

app-text/ghostscript-gpl cups
media-fonts/ja-ipafonts X
net-libs/libvncserver threads ...
more ...

ibusからuim-mozcへ移行

一時期 ibus が色々話題になりましたね *1 *2
僕の環境では ibus-mozc を使っていたのですが、 1.5 系へは移行せず 1.4 系にとどまっていました
このまま放置していてもよかったんだけれど、 Gentoo のリポジトリから 1.4 が
なくなっていることに気がついたので別のインプットメソッドへ移行することにしました

Linux でのインプットメソッドで代表的なものは ibus 、 uim 、 fcitx といくつかあるけれど
Mac で MacUIM を使っているので Linux のマシンでも uim を使うことにしました
ただ Gentoo の公式リポジトリのパッケージでは mozc を uim と組み合わせることができないみたいだったので
自分で ebuild を書くか、他の人が書いたものを使わせてもらうかのどちらかがあるみたいです
今回は wjn-overlay を使わせてもらうことにしました

ここ ...

more ...

Windows10を試してみた

Windows10 Technical PreviewがでたのでKVMにインストールしてみた
このサイトにLinuxからアクセスすると「お使いのオペレーティング システムにはプレビュー版をインストールできません。」と
表示されるがUserAgentをIEに変更してから再度アクセスしたらダウンロードすることができた

QEMUはひさしぶりなので使い方を忘れていたんだけれど以下のようにすることで特に問題なくインストールして動作させることができた

$ qemu-img create -f qcow2 windows10.img 32G
$ qemu-system-x86_64 -enable-kvm -cpu host -hda windows10.img -cdrom Windows10-en-x64.iso -boot d -m 4G

ただ電源の切り方がWindows8.1から更に変更されているので少し戸惑った

Windows10 with KVM

more ...

今更Sambaをインストールした

しばらく前にASUS VivoTab Note 8を買ったり、HP Pavilion 15-n200 (AMD)が29800円だったので妻に買ったりMacBook Airもあるし
Linux以外のマシンが増えてきたので、これらのマシンからもファイルサーバを利用できるようにSambaの導入をしました
今までは自分のLinuxマシンだけだったんでNFSで間に合ってたんだけどね

Gentooでのインストールは特に気にすることなくいつも通り
自分はクライアントの機能は不要だったので -client-smbclient を指定した
デフォルトの設定ファイルをコピーして自分の設定を作っていく

# emerge -av samba
# cp /etc/samba/smb.conf.default /etc/samba/smb.conf

以下に変更した設定をメモしておく

  • workgroup = WORKGROUP
    Windowsのデフォルトに合わせる
  • hosts allow = 10.0.0.
    hosts deny = all
    LAN内のマシン以外からのアクセスを拒否する
  • load printers ...
more ...

MySQL5.1から5.5へアップデート

GentooからMySQL5.5がStableになったし5.1はmaskするよ、というお知らせが来ていました
epgrecとMediatombで使っているのですが5.5でも問題なさそうなのでアップデートしました

  1. MySQLの停止

    # /etc/init.d/mysql stop
    
  2. emergeを使用してアップデート

    # emerge -uav mysql
    # etc-update
    
  3. InnoDBが有効になっているとepgrecが遅くなるみたいなので設定を変更する *
    /etc/mysql/my.cnf に以下の二行を追加

    skip-innodb
    default-storage-engine=MyISAM
    
  4. 関連パッケージの更新

    # emerge @preserved-rebuild -a
    # revdep-rebuild --library libmysqlclient.so.16
    # revdep-rebuild --library libmysqlclient_r.so.16
    
  5. MySQLを再起動
    再起動すると /var/log/mysql/mysqld.err に以下のようなエラーが出力されて
    mysql_upgrade を実行するように指示されます ...

more ...