Kobo で mikutter が起動しなくて困る

IMG_20140902_071214
1月ほど前のオープンソースカンファレンス関西1日目にchroot で debian を起動した Kobo やAndroid を入れた Kobo を展示したりしていたのですが,mikutter を起動しておこうと思ったらエラーを吐いて起動しませんでした.
この時久々に起動したので大量のアップデートを行ったので環境が変わったのでした.デモの前に前もって確認しないとダメですよね….
エラーはKobo のコンソールを流れてしまい,スクロールバックの方法もよくわからない.ssh 経由で確認したいけれど会場のWi-Fi 経由では無理そうだったのでその時は諦めました.(開発者も居たのに!)

てことでさっき確認したのでメモ.

ssh 経由で起動してみるとこんな感じでした.

$ mikutter --confroot=/tmp/mikutter
/usr/share/mikutter/core/mui/cairo_cell_renderer_message.rb: line 10
   GLib-GObject-WARNING **:Attempt to add property GtkCellRendererMessage::message-id after class was initialised
/usr/lib/ruby/vendor_ruby/gettext/text_domain.rb:100:in `=~': incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string) (Encoding::CompatibilityError)
        from /usr/lib/ruby/vendor_ruby/gettext/text_domain.rb:100:in `block in translate_singular_message'
        from /usr/lib/ruby/vendor_ruby/gettext/text_domain.rb:99:in `each'
        from /usr/lib/ruby/vendor_ruby/gettext/text_domain.rb:99:in `translate_singular_message'
        from /usr/lib/ruby/vendor_ruby/gettext/text_domain_manager.rb:104:in `block in translate_singular_message'
        from /usr/lib/ruby/vendor_ruby/gettext/text_domain_manager.rb:84:in `block (2 levels) in each_text_domains'
        from /usr/lib/ruby/vendor_ruby/gettext/text_domain_manager.rb:83:in `each'
        from /usr/lib/ruby/vendor_ruby/gettext/text_domain_manager.rb:83:in `block in each_text_domains'
        from /usr/lib/ruby/vendor_ruby/gettext/text_domain_manager.rb:81:in `each'
        from /usr/lib/ruby/vendor_ruby/gettext/text_domain_manager.rb:81:in `each_text_domains'
        from /usr/lib/ruby/vendor_ruby/gettext/text_domain_manager.rb:103:in `translate_singular_message'
        from /usr/lib/ruby/vendor_ruby/gettext.rb:118:in `gettext'
        from /usr/share/mikutter/core/plugin/settings/basic_settings.rb:4:in `block in <top (required)>'
        from /usr/share/mikutter/core/plugin.rb:21:in `instance_eval'
        from /usr/share/mikutter/core/plugin.rb:21:in `create'
        from /usr/share/mikutter/core/plugin/settings/basic_settings.rb:3:in `<top (required)>'
        from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /usr/share/mikutter/core/plugin/settings/settings.rb:4:in `<top (required)>'
        from /usr/share/mikutter/core/miquire_plugin.rb:138:in `load'
        from /usr/share/mikutter/core/miquire_plugin.rb:138:in `load'
        from /usr/share/mikutter/core/miquire_plugin.rb:130:in `block in load'
        from /usr/share/mikutter/core/miquire_plugin.rb:127:in `each'
        from /usr/share/mikutter/core/miquire_plugin.rb:127:in `load'
        from /usr/share/mikutter/core/miquire_plugin.rb:130:in `block in load'
        from /usr/share/mikutter/core/miquire_plugin.rb:127:in `each'
        from /usr/share/mikutter/core/miquire_plugin.rb:127:in `load'
        from /usr/share/mikutter/core/miquire_plugin.rb:97:in `block in load_all'
        from /usr/share/mikutter/core/miquire_plugin.rb:37:in `block in each_spec'
        from /usr/share/mikutter/core/miquire_plugin.rb:32:in `each'
        from /usr/share/mikutter/core/miquire_plugin.rb:32:in `each'
        from /usr/share/mikutter/core/miquire_plugin.rb:35:in `each_spec'
        from /usr/share/mikutter/core/miquire_plugin.rb:95:in `load_all'
        from /usr/share/mikutter/core/boot/load_plugin.rb:7:in `<top (required)>'
        from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
        from /usr/share/mikutter/core/miquire.rb:98:in `miquire_original_require'
        from /usr/share/mikutter/core/miquire.rb:95:in `file_or_directory_require'
        from /usr/share/mikutter/core/miquire.rb:76:in `block in miquire'
        from /usr/share/mikutter/core/miquire.rb:75:in `each'
        from /usr/share/mikutter/core/miquire.rb:75:in `miquire'
        from /usr/share/mikutter/core/miquire.rb:18:in `miquire'
        from /usr/share/mikutter/mikutter.rb:38:in `<main>'

言語環境周りぽいなてことで LANG を確認してみると空

$ echo $LANG

LANGja_JP.UTF-8 を設定してあげると動きました.

$ LANG=ja_JP.UTF-8 mikutter
/usr/lib/ruby/vendor_ruby/gtk2.rb: line 13
   Gtk-WARNING **:Locale not supported by C library.
        Using the fallback 'C' locale.
/usr/share/mikutter/core/mui/cairo_cell_renderer_message.rb: line 10
   GLib-GObject-WARNING **:Attempt to add property GtkCellRendererMessage::message-id after class was initialised
/usr/share/mikutter/core/plugin/display_requirements/display_requirements.rb:5: warning: already initialized constant CACHE_DIR
/usr/share/mikutter/core/plugin/aspectframe/aspectframe.rb:12: warning: previous definition of CACHE_DIR was here
/usr/share/mikutter/core/plugin/notify/notify.rb:6: warning: already initialized constant DEFINED_TIME
/usr/share/mikutter/core/plugin/extract/extract.rb:8: warning: previous definition of DEFINED_TIME was here

とりあえずは起動メニューにこれを設定してあげると良さそうです.

追記)
最近は $ LC_ALL=ja_JP.UTF-8 mikutter なのかな?

chroot 環境で `/dev/null’ が使えなくて困る

Kobo の chroot 環境で debian を動かしたりしているのでたまにアップデートを行うのですが,実機だと遅いのでPC のchroot 環境で実行したりします
#アーキテクチャの違いはqemu で吸収. > ユーザーモードエミュレーションqemu を使って Kono on Debian のイメージを Host PC で apt-get とかする | matoken’s meme

そこで今回 apt-get update 中に以下のようなエラーが発生.

/bin/sh: 1: cannot create /dev/null: Permission denied

/dev/null を確認するとぱっと見デバイスは問題なさそうだけど使えない.

# ls -la /dev/null
crw-rw-rw- 1 root root 1, 3 Sep 2 02:57 /dev/null
# echo hoge > /dev/null
bash: /dev/null: Permission denied

エラーメッセージで検索するとkinnekoさんのページがヒット.

あーなるほど!

chroot 元で確認してみると確かに nodev が.

% mount |grep rootfs
/dev/sdc1 on /media/mk/rootfs type ext4 (rw,nosuid,nodev,relatime,data=ordered,uhelper=udisks2)

dev を付けて remount してみると

% sudo mount -o remount,dev /dev/sdc1
% mount |grep rootfs
/dev/sdc1 on /media/mk/rootfs type ext4 (rw,nosuid,relatime,data=ordered,uhelper=udisks2)

chroot しなおさなくても使えるようになった.毎回チェックしてるんですかね.

# echo hoge > /dev/null

てことで update 出来た :)

# apt-get install -f

eol な Ubuntu をアップグレードする

以前こんなメールを書いたことがあったのですが実際試してみたことはありませんでした.

やったことはありませんが,同様の手順でUbuntu でも11.04/11.10/12.04(lts)
の順にアップグレードして,来月リリースされるであろう14.04(lts) にアップグレードとするといけるかもしれません.
アップグレードは都度source list をold-releases に向けてdist-update することで行けそうな感じがします.
http://old-releases.ubuntu.com/ubuntu/

Disk を整理していてUbuntu 13.04 の入ったDisk が出てきたので実際に試してみました.

を見ると13.04,13.10 はeol なので, 13.04 -> 13.10 -> 14.04 と上げていく必要があるようです.

source.list を書き換えるためにコードネームを確認します.

を見るとこんな感じみたいです.

  • 13.04 -> raring
  • 13.10 -> saucy
  • 14.04 -> trusty

てことで,13.04 の source.list はこんな感じ.

/etc/apt/sources.list

deb http://jp.archive.ubuntu.com/ubuntu/ raring main restricted

先ずは13.04 の最新にするために source.list を先ず http://old-releases.ubuntu.com/ubuntu/ に書き換えます.

deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted

#実際は複数行あると思うので全ての有効な行を書き換えます.以降も同様.

アップデートしてアップグレードします.

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade

次に 13.04 -> 13.10 に上げる為に source.list のコードネームを saucy に書き換えます.

deb http://old-releases.ubuntu.com/ubuntu/ saucy main restricted

アップデートしてアップグレードします……アップデートできません.

http://old-releases.ubuntu.com/ubuntu/dists
の下を見ると saucy がありません.
http://jp.archive.ubuntu.com/ubuntu/dists/ の下を見るとあります.未だ old-re;eases に移動していないようです.eol になってもすぐに移動するとみんな困るから暫くは移動しないんでしょうね.

てことでこんな感じに書き換えて

deb http://jp.archive.ubuntu.com/ubuntu/ saucy main restricted

アップデートしてアップグレードします.

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade

これで 13.10 に上がりました.
14.04 へも同様に上げられるはずですが,せっかくなので do-release-upgrade で上げました.

$ sudo do-release-upgrade

そんなこんなで 14.04 になりました.

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.1 LTS
Release:        14.04
Codename:       trusty

ちなみにどうでもいい環境だからポンポンアップグレードしていますが,本来ならリリースノートなど読んでバックアップ取ってテスト環境で検証してとかしてから行ったほうがいいですね.

uMap で LUG/BUG Map を作ってみる

以前東海道らぐの定例IRCで日本のLUGは今どれだけあるんだろうというような話が出ました.
その時出てきたものを榎さんが以下にまとめてくれていました.
https://enoki.titanpad.com/lug-list

これをuMap で地図に並べてみました.

フルスクリーン表示

ついでに?
http://www.bug.gr.jp/organizantion.html
に書かれていたBUG も一緒に並べてみました.(実際活動してるかは未確認です><)
レイヤーをLUG/BUG に分けているので左上のレイヤー切り替えでどちらか片方のみを表示することも出来ます.

今回はTuxとデーモンくんの画像を使ってみました.デーモンくんは透過画像と差し替えたいところです><

ここ間違ってるよとか,ここにもあるよと行った情報お待ちしていますo




祝OpenStreetMap10周年

8/9はOpenStreetMap 10周年ということで世界各地でパーティが開かれました.

OpenStreetMap 10th Anniversary Birthday party – OpenStreetMap Wiki

このページを見て,地図上にピンを立ててみると楽しいかもしれないと思い日本のパーティ会場をプロットしてみました.

今度の土曜のOSM 10周年パーティ会場をプロット http://t.co/NYCqi01S5R #osmjp

— (「ΦωΦ)「 (@matoken) August 7, 2014


フルスクリーン表示

これを見た @ikiyaさんが世界版やりませんか?ってことで全世界分もプロットしてみることに.

@matoken ありがとうございます! 相談ですがせっかくなのでドンとこのumapで全世界やりませんか? http://t.co/lOh0iuvX7F 

— ikiya (@ikiya) August 7, 2014

@ikiya 浜松反映しましたー.そんなに数多くないので全世界も行けそうですね.今出先なので帰ってから試してみますー

— (「ΦωΦ)「 (@matoken) August 7, 2014





フルスクリーン表示

WikiPage に載せてもらったり,
OpenStreetMap 10th Anniversary Birthday party – OpenStreetMap Wiki

本家ML に投稿してもらったりしました.
[OSM-talk] OSM 10th Anniversary Birthday party World Map

初め世界中合わせてもそんなに数ないからすぐだなーとか思っていたのですが,よく見るとアメリカは別ページにまとめられていたり,座標がないところは地名から探したりと結構時間かかっちゃいました.
#実はOSM 使わずにGoogleMap 使っているところも多かった…
uMap はgeojson の読み込みとかもできるのでもし座標データがあれば機械的にマッピングも出来るんですけど今回は手作業でした><



さて,自分はというと台風で外に出られないこともあってサーベイは諦めて桜島の東側から基板地図情報2500をトレースして黒神の辺りまで入力してました.(埋没鳥居で有名かも).早いとこ桜島トレース終わらせたいです.

RaspberryPi B+ でUSB で1.2A を利用できるようにする(失敗)

“Raspberry Pi Model B+のUSBポートに1.2Aの電力を供給する – あっきぃ日誌” http://akkiesoft.hatenablog.jp/entry/20140727/1406443999

を見て /boot/config.txt 編集しないとB+ でUSB に1.2A の電力を供給できないことを知りました.
で,/boot/config.txt 規定値のまま,safe_mode_gpio=4 登録,max_usb_current=1登録.両方登録のパターンで試したんですがいずれもHDD スピンアップしませんでしたorz

電源はGPIO から河野総統謹製のラズベリーポット(ラズベリーハブの電源部分のみ+αのもの),microUSB からAnker の40W USB 電源の2パターンを試しました.
HDD はSeagate Momentus XT 500GB/4GB SSD付きハイブリッド7200rpm を500円位で秋葉原で売っていた適当なケースに入れたものです.5400rpmとかなら行けるのかなとか?

Y型のUSB cable を使って片方から給電したら動くのでHDD は問題なくRaspberryPi B+ からの電気が足りないせいなはず.ちなみにPC(Lenovo X220)だとUSB x1で動作します.

OS 色々いじってるので一旦初期状態にしてからまた試してみようかと思います.

IMG_20140730_080938

鹿児島Linux勉強会-第03回-に参加

7/25(金)に鹿児島らぐの鹿児島Linux勉強会に行ってきました.

今回は鹿児島中央駅前のよかプラザでの開催でした.
IMG_20140725_173144
#カタカナでリナックスというのを見るとこないだのLinuxConのスタッフTシャツを思い出します :)

今回はATND での集まりが悪くもしかしたら2人での開催になりそうと思っていたのですが,始まってみると6人でした.
今回は前半はLinux読書会でLinux標準教科書の輪読,後半は発表で私は以下のよな発表を行いました.

その他Vimネタ,Seti@homeネタが披露されました.

自分の発表は最後にしてもらって(スライド完成してなかったorz)
終了時間見ながら発表したのですが,共同購入をしていたRaspberryPi B+ の受渡し時間を考慮してなくて終了後適当なベンチで受け渡しとなってしまいましたorz

IMG_20140723_233409

終了後は有志(4人)で魚とか食べて

IMG_20140725_211837IMG_20140725_213943IMG_20140725_215719IMG_20140725_215823IMG_20140726_002543

その後漫画喫茶に泊まりました.公共交通機関欲しいです
#この日は公共交通機関があっても乗れなかった気はしますが><

IMG_20140726_0314405vD2ZXwC---1

2007年と現在のOSMの比較が出来るSITE

Twitter の #osmjp ハッシュタグで以下の書き込みを見かけました.

2007年のOSMデータといまのデータ。ヨコに並べるとまさに隔世の感、あります。 http://t.co/7OWoJSh1eI #osmjp

— nyampire (@nyampire)

July 26, 2014

九州の辺りをみると真っ白><
Screenshot from 2014-07-30 06:49:31
“OSM Then And Now” http://mvexel.github.io/thenandnow/#8/32.697/130.897

OSM を知ったのは2006年頃だったのですが,当時はこんな感じでデータのインポートもトレースも出来ず基本GPSロガーを使ってマッピングするしか無い頃でした.
これは無理だ><って感じでなかなか手を出してなかったんですが数年でかなり埋まってすごいなと思ったもんでした.もちろん今の時点でもまだまだ建物の情報やPOIも少ないのですが建物は衛星写真や基板地図情報のトレースも出来ますし,スマホが普及してPOIの入力もお手軽に出来るようになって編集方法もすごくお手軽になってます.

そのうち自分のやっている入力方法もまとめてみたいところです.

RaspberryPi の新モデル「RaspberryPi B+」到着

注文

Adarfuit

Raspberry Pi Model B+ 512MB RAM ID: 1914 – $39.95 : Adafruit Industries, Unique & fun DIY electronics and kits
発売日の7/14 に一番安い FIRST-CLASS PACKAGE INTERNATIONAL SERVICE ($12.05) で注文.7/22到着.
台数制限があって1度に注文できるのは1台までだった.

$39.95 + $12.05 = $52.00

RSオンライン(日本)

発売日にRS品版でカートに入れると出てきたが注文できなかった.7/16から正式に注文できるようになった.しかし,イギリスから発送で4営業日掛かるとのこと.日本在庫だと次の日に届くのだけど….
RS-jp だと現在販売しておりませんとなるな

8000円以上注文で送料無料.3台以上で送料無料になる.今回は共同購入として6台注文.
7/16注文.7/22に伝票番号(佐川)がメールで届き,7/23に到着.
恐らく3連休がなければその分早く届いた.

\3,940 + 税 = \4,255.20

外観

外箱,取扱説明書,コネクタの色などが少しずつ違う.

Element14

IMG_20140722_185800IMG_20140722_185837IMG_20140722_185858IMG_20140722_193037IMG_20140722_193055IMG_20140722_194758IMG_20140723_003627IMG_20140723_003640IMG_20140723_003715

RS

IMG_20140723_233300IMG_20140723_233409IMG_20140723_233427IMG_20140723_233434IMG_20140723_233443IMG_20140723_233508IMG_20140723_233517IMG_20140723_233535IMG_20140723_233548

トラブル?

RaspberryPi B でアダプタ経由で動作するmicroSDで起動しなかった
3枚試して2枚NG

  • NG
    ノーブランド 1GB(XMBC)
    Panasonic 1GB(opencocon v8a)
  • OK
    ADATA 16GB(NOOBS Rasbian)

ちなみにNG のCard を再度RaspberryPi B に挿してみると起動した.
Panasonic の1GB の opencocon はdd しなおしてみたけどダメだった.
症状は電源投入時に PWR / ACT 共に点灯 -> ACT消灯.HDMI の画面は反応なし.

相性が厳しくなってる?

#初め試した2枚が連続でダメだったので初期不良かと焦った><

基板ネジ径の変更

IMG_20140724_012554IMG_20140724_012402

B ではM3 のネジが使えていたが,B+ には使えなかった.
確認してみると2.9mm -> 2.75mm に変更になっていた.穴を広げるかM2.5を利用.

raspi-config 20131216-1 簡易説明

raspi-config 20131216-1 簡易説明

前書いたのが古くなっているのでざっと書いてみました.
B+ も出たしそろそろ新しいバージョンが出そうな気がするけど….

┌──────────────────────────────┤ Raspberry Pi Software Configuration Tool (raspi-config) ├──────────────────────────────┐
│ Setup Options                                                                                                         │
│                                                                                                                       │
│    1 Expand Filesystem              Ensures that all of the SD card storage is available to the OS                    │
│    2 Change User Password           Change password for the default user (pi)                                         │
│    3 Enable Boot to Desktop/Scratch Choose whether to boot into a desktop environment, Scratch, or the command-line   │
│    4 Internationalisation Options   Set up language and regional settings to match your location                      │
│    5 Enable Camera                  Enable this Pi to work with the Raspberry Pi Camera                               │
│    6 Add to Rastrack                Add this Pi to the online Raspberry Pi Map (Rastrack)                             │
│    7 Overclock                      Configure overclocking for your Pi                                                │
│    8 Advanced Options               Configure advanced settings                                                       │
│    9 About raspi-config             Information about this configuration tool                                         │
│                                                                                                                       │
│                                                                                                                       │
│                                  <Select>                                  <Finish>                                   │
│                                                                                                                       │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

1 Expand Filesystem

2GB より大きな容量の SD Card を利用した場合 2GB しか利用できないので前領域が利用できるように領域確保します.
NOOBS を使って Rasbian を導入した場合は NOOBS が自動的に面倒を見てくれるので利用する必要はありません.

2 Change User Password

パスワードの変更が出来ます.

3 Enable Boot to Desktop/Scratch Choose whether to boot into a desktop environment, Scratch, or the command-line

起動時にデスクトップ,Scratch,コマンドラインのどれかで起動できるように設定します.規定値はコマンドラインです.

Console Text console, requiring login (default)

テキストコンソールを起動するよう設定します(規定値)

Desktop Log in as user ‘pi’ at the graphical desktop

pi ユーザでデスクトップ環境を自動起動するよう設定します.

Scratch Start the Scratch programming environment upon boot

スクラッチを起動するよう設定します.

4 Internationalisation Options

国際化関連の設定メニューです.

I1 Change Locale

ロケールの設定を行います.日本語は ja_JP.UTF-8 です.
コンソールをメインに使う場合は標準では日本語が表示できないので en_US.UTF-8 にしたほうがいいかもしれません.コンソールで日本語を表示するには後述の fbterm の使い方を参照してください.

コマンドラインで以下のコマンドでも設定可能です.(Debianでの設定方法)
$ sudo dpkg-reconfigure locales

I2 Change Timezone

タイムゾーンの変更が出来ます.
日本時間にする場合は, Asia->Tokyo を選択します.

コマンドラインで以下のコマンドでも設定可能です.(Debianでの設定方法)
$ sudo dpkg-reconfigure tzdata

I3 Change Keyboard Layout

キーボードのキーマップを変更出来ます.
コマンドラインで以下のコマンドでも設定可能です.(Debianでの設定方法)
$ sudo dpkg-reconfigure keyboard-configuration

日本語のキーマップがメニューに出てこない場合は,/etc/default/keyboard を以下のように変更します.

XKBMODEL="jp106"
XKBLAYOUT="jp"

その後以下のコマンドで反映します.
$ sudo /etc/init.d/keyboard-setup restart

5 Enable Camera

RaspberryPi 標準のカメラモジュールを利用できるようにします.USB 経由のカメラなどは Disable のままでOK です.

6 Add to Rastrack

Rastrack (http://rastrack.co.uk) への登録が出来ます.

7 Overclock

オーバークロックが行えます.オーバークロックを行うと RaspberryPi の寿命が縮む可能性があるのに注意してください.また,不安定になる可能性があります.不安定になったら控えめなオーバークロックを試してみてください.
http://elinux.org/RPi_Overclocking に更に解説があります.

8 Advanced Options

A1 Overscan

画面に黒い帯が表示されている場合に改善されます./boot/config.txt で微調整も可能です.(恐らくコンポジット出力のための設定)

A2 Hostname

ホスト名を変更できます.ホスト名は大文字込時を区別しないASCII文字の aからz,数字の 0から9 及びハイフンg利用できます.但しハイフンは先頭と最後には利用できません.

A3 Memory Split

GPU に割り当てるメモリを設定します.16/32/64/128/256MB が指定でき,規定値は128MB です.割り当てたメモリはメインメモリから割り当てられるのでその分メインメモリの割当量が減ります.

A4 SSH

ssh server の有効,無効の設定が出来ます.規定値では有効です.

A5 SPI

SPI の自動読み込みの有効,無効の設定が出来ます.

A6 Audio

オーディオ出力は自動的に切り替わりますが,強制設定が出来ます.

A7 Update

OS のアップデートを行います.
apt-get や aptitude コマンドを実行してもいいです.

9 About raspi-config

このコマンドの説明が表示されます.