sl改なえるたそ〜

てことで手元の端末に入れてみました.
Debian jessie で動かしましたが,Debian/Ubuntu系だと同じ手順で行けると思います.

先ずは開発環境の導入.

$ sudo apt-get install build-essential git

続いて,erutaso の元になっているsl のbuild に必要なパッケージ導入.

$ sudo apt-get build-dep sl

source を貰ってきて,build

$ git clone https://github.com/sgymtic/sl.git
$ cd sl
$ make
$ ./erutaso

手元の環境では ~/bin にパスを通してあるのでそこにコピーしておきました :)

昔Solaris 環境でいっぱいパッチの当てたsl 入れてたの思い出しました.遮断機とかすごい長い編成とか往復とかでなかなか邪魔でしたw

追記)
手元の環境で KININARIMASU と言わないのでsource 見たらoption ありました.

  • -a KININARIMASU というようになる
  • -F 斜めに移動

※米澤 穂信の最近の本読んでないなぁ…

GdNewHat 20 を導入して日本語環境を設定

GdNewHat 20 を導入して日本語環境に

gdnewhat

インストールの準備

公式ページのダウンロードサイトからiso イメージを入手します.

今回はx86_64 のiso ファイルを BitTorrent で入手しました.
これをUNetbootin でUSBメモリに導入してGdNewHat のUSBインストールメディアを作成しました.

GdNewHat20 の導入

作成したUSBメモリから起動してGdNewHat のインストーラを起動します.
日本語を選択してインストール.

インストーラのディスク設定時にインストーラごと落ちてしまって困ったのですが,インストーラではなくfdisk で手動設定した後インストーラで設定したら通りました.

Update

起動できたらネットワークに接続し,最新の状態にします.

$ sudo yum update -y

日本語入力の設定

日本語入力のためにibus-moac を導入して設定します.

ibus-mozc の導入

$ sudo yum install mozc ibus-mozc

ibus の設定

インプットメソッドの切り替えのショートカットが Super+space なので,Ctrl+spoace に変更します.

$ ibus-setup

で設定画面が起動します.

ibus 自動起動設定

ibus-daemon を起動すると日本語入力が出来ます.
これを自動的に起動するようにします.

「システム」->「Preferences」->「ユーザ向け」->「自動起動するアプリ」で「自動起動するアプリの設定」画面を起動します.
「追加」ボタンで以下のように登録します.
* 名前 : ibus-daemon
* コマンド: /usr/bin/ibus-daemon -d
* 説明 :

これで再起動して Ctrl+space で日本語入力ができるか確認します.

UNetBootin で opencocon の USB メモリを作る



先日,opencocon のUSB メモリシステムを作ったのですが,UNetBootin でお手軽に導入できないだろうかと試してみたところうまく行きました.
簡単に手順を書いておきます.
※UNetbootin はLinux 以外でもMacOS X/Windows でも動作するのでそれらの環境でも同様に導入は可能だと思います. :)

opencocon の入手

以下のページから最新の Live CD Edition とハッシュファイルを入手しましょう.(for Raspberry Pi の方ではありません)
ダウンロードが終わったら md5sum コマンドでハッシュを確認しましょう.

% md5sum -c opencocon-v8b-20140227.iso.md5
opencocon-v8b-20140227.iso: 完了

母艦(Debian) での準備

UNetBootin パッケージを導入します.以下はDebian jessie 環境での例です.

$ sudo apt-get install unetbootin unetbootin-translations

USB メモリの準備

opencocon 専用であれば 1GB あれば十分です.(多分256MB 以上でOK)
これを vfat でフォーマットしておきます.

UNetBootin でのopencocon 導入

  • UNetbootin を起動しましょう.

起動時にOS や設定によりroot パスワードか,sudo の設定がされていればユーザパスワードが求められます.正しく入力すると起動します.

起動したら以下の設定を行います.
* 「ディスクイメージ」のチェックボックス.
* ディスクイメージとして opencocon のiso イメージを指定します.
* 「タイプ」の設定を「USB ドライブ」にします.
* 「ドライブ」を opencocon を導入したいデバイスを指定します.
Screenshot from 2014-03-23 22:33:33

設定が終わったら「OK」ボタンを押すとUSB メモリへデータのコピーが始まります.
Screenshot from 2014-03-23 22:36:38

しばらく待つと出来上がりです :)
Screenshot from 2014-03-23 22:39:45

これで旧型PC とかで色々遊べます :)

ちなみにRaspberry Pi 版もありますよ

mozc-tool option

飛行機の機内でMozc の設定を変えようと思ったのですが,mozc-tool のオプションを覚えていない.
mozc-tool –help とかも無視される.
でも以前co したsource はあったのでその中を覗いて調べてみました.

ちなみに Mozc-1.5.1090.2 で動作確認を行いました.

手書き入力

% /usr/lib/mozc/mozc_tool --mode=hand_writing

文字パレット

% /usr/lib/mozc/mozc_tool --mode=character_palette

辞書ツール

% /usr/lib/mozc/mozc_tool --mode=dictionary_tool  

単語登録

% /usr/lib/mozc/mozc_tool --mode=word_register_dialog

プロパティ

% /usr/lib/mozc/mozc_tool --mode=config_dialog

Kobo Debian で dist-upgrade 後にもタッチパネルが使えるようにする

marekさん謹製のKobo Debian でapt-get dist-upgrade してxorg を更新するとタッチパネルが利用できなくなります.

原因は,marekさん謹製のマルチタッチドライバ(Kobo オリジナルはシングルタッチ)がxorg のバージョンに追従されないため.
解決するためにドライバをビルドしなおしてインストールする必要がある.

手順

apt-get dist-upgrade を行った後, /home/marek/src/xorg-input-kobomultitouch に移動し,ビルド&インストールを行う.
次回起動時に認識するようになる.

# cd /home/marek/src/xorg-input-kobomultitouch
# make clean
# make
# make install

開発環境は導入済みなので開発環境を導入する必要はない.

以前紹介した

を使ってもOK

Linux のDisk 確認方法

Linux マシンにSD Card や USB メモリ等を複数接続した時などにどれがどのデバイスかわからなくなった時などに役立ちそうな確認方法です。
(/dev/sda… とか /dev/mmcblk0… とか)

dmesg

よく dmesg を確認します。

% dmesg
  :
[378481.925145] usb 4-1.2: new high-speed USB device number 7 using ehci-pci
[378482.022988] usb 4-1.2: New USB device found, idVendor=056e, idProduct=6009
[378482.022991] usb 4-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[378482.022993] usb 4-1.2: Product: MF-HDU2
[378482.022994] usb 4-1.2: Manufacturer: ELECOM
[378482.022995] usb 4-1.2: SerialNumber: 0708C20C90C7B761
[378482.023271] usb-storage 4-1.2:1.0: USB Mass Storage device detected
[378482.023343] scsi9 : usb-storage 4-1.2:1.0
[378483.083291] scsi 9:0:0:0: Direct-Access     ELECOM   MF-HDU2          PMAP PQ: 0 ANSI: 4
[378483.083655] sd 9:0:0:0: Attached scsi generic sg2 type 0
[378484.049829] sd 9:0:0:0: [sdc] 62554112 512-byte logical blocks: (32.0 GB/29.8 GiB)
[378484.052425] sd 9:0:0:0: [sdc] Write Protect is off
[378484.052427] sd 9:0:0:0: [sdc] Mode Sense: 23 00 00 00
[378484.055034] sd 9:0:0:0: [sdc] No Caching mode page found
[378484.055037] sd 9:0:0:0: [sdc] Assuming drive cache: write through
[378484.064057] sd 9:0:0:0: [sdc] No Caching mode page found
[378484.064060] sd 9:0:0:0: [sdc] Assuming drive cache: write through
[378484.096077]  sdc: sdc1
[378484.103442] sd 9:0:0:0: [sdc] No Caching mode page found
[378484.103449] sd 9:0:0:0: [sdc] Assuming drive cache: write through
[378484.103454] sd 9:0:0:0: [sdc] Attached SCSI removable disk

ELECOM MF-HDU2 が /dev/sdc として認識しています。
しかし、これだと画面から流れたりどのデバイスを先に刺したかが判らなくなるといったんumount して接続しなおしをしないといけません。

/dev/disk/by-id

こんなとき /dev/disk/by-id を見ると判るかもしれません。※udev 依存

% ls -lA /dev/disk/by-id
合計 0
lrwxrwxrwx 1 root root  9  2月 23 02:42 ata-INTEL_SSDSA2CW600G3_CVPR1206005W600FGN -> ../../sda
lrwxrwxrwx 1 root root 10  2月 23 02:42 ata-INTEL_SSDSA2CW600G3_CVPR1206005W600FGN-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10  2月 23 02:42 ata-INTEL_SSDSA2CW600G3_CVPR1206005W600FGN-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10  2月 23 02:42 ata-INTEL_SSDSA2CW600G3_CVPR1206005W600FGN-part5 -> ../../sda5
lrwxrwxrwx 1 root root  9  2月 26 03:53 ata-ST9500420ASG_5VJ79GDX -> ../../sdb
lrwxrwxrwx 1 root root 10  2月 23 05:05 dm-name-luks-3baf2c17-3b18-44ee-9547-cb87b88a80ab -> ../../dm-3
lrwxrwxrwx 1 root root 10  2月 23 02:42 dm-name-sdb5_crypt -> ../../dm-0
lrwxrwxrwx 1 root root 10  2月 23 02:42 dm-name-x220-root -> ../../dm-1
lrwxrwxrwx 1 root root 10  2月 23 02:42 dm-name-x220-swap_1 -> ../../dm-2
lrwxrwxrwx 1 root root 10  2月 23 02:42 dm-uuid-CRYPT-LUKS1-1b4bc14d71604ab5b3db2096a7f61be0-sdb5_crypt -> ../../dm-0
lrwxrwxrwx 1 root root 10  2月 23 05:05 dm-uuid-CRYPT-LUKS1-3baf2c173b1844ee9547cb87b88a80ab-luks-3baf2c17-3b18-44ee-9547-cb87b88a80ab -> ../../dm-3
lrwxrwxrwx 1 root root 10  2月 23 02:42 dm-uuid-LVM-L9AiiS7dZRu2WvjdUirxz9fS4OIIqRpKmuJecuwuh7tfiQxUbaGcvv9ppr7WhxZP -> ../../dm-2
lrwxrwxrwx 1 root root 10  2月 23 02:42 dm-uuid-LVM-L9AiiS7dZRu2WvjdUirxz9fS4OIIqRpKxnaP2Gj6PtwuddX1iXfyTQq0hxGbi6o3 -> ../../dm-1
lrwxrwxrwx 1 root root 13  2月 26 05:07 memstick-SD16G_0xd39a5655 -> ../../mmcblk0
lrwxrwxrwx 1 root root 15  2月 26 05:07 memstick-SD16G_0xd39a5655-part1 -> ../../mmcblk0p1
lrwxrwxrwx 1 root root  9  2月 23 02:42 scsi-SATA_INTEL_SSDSA2CW60CVPR1206005W600FGN -> ../../sda
lrwxrwxrwx 1 root root 10  2月 23 02:42 scsi-SATA_INTEL_SSDSA2CW60CVPR1206005W600FGN-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10  2月 23 02:42 scsi-SATA_INTEL_SSDSA2CW60CVPR1206005W600FGN-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10  2月 23 02:42 scsi-SATA_INTEL_SSDSA2CW60CVPR1206005W600FGN-part5 -> ../../sda5
lrwxrwxrwx 1 root root  9  2月 26 03:53 scsi-SST9500420ASG_FEDCBA9876543210 -> ../../sdb
lrwxrwxrwx 1 root root  9  2月 27 20:52 usb-ELECOM_MF-HDU2_0708C20C90C7B761-0:0 -> ../../sdc
lrwxrwxrwx 1 root root 10  2月 27 20:52 usb-ELECOM_MF-HDU2_0708C20C90C7B761-0:0-part1 -> ../../sdc1
lrwxrwxrwx 1 root root  9  2月 26 03:53 wwn-0x5000c5002998a599 -> ../../sdb
lrwxrwxrwx 1 root root  9  2月 23 02:42 wwn-0x500151795957940c -> ../../sda
lrwxrwxrwx 1 root root 10  2月 23 02:42 wwn-0x500151795957940c-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10  2月 23 02:42 wwn-0x500151795957940c-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10  2月 23 02:42 wwn-0x500151795957940c-part5 -> ../../sda5

USB 接続のデバイスだけなら以下のようにするとすっきりしますね。

% ls -l /dev/disk/by-id/usb*
lrwxrwxrwx 1 root root  9  2月 27 20:52 /dev/disk/by-id/usb-ELECOM_MF-HDU2_0708C20C90C7B761-0:0 -> ../../sdc
lrwxrwxrwx 1 root root 10  2月 27 20:52 /dev/disk/by-id/usb-ELECOM_MF-HDU2_0708C20C90C7B761-0:0-part1 -> ../../sdc1

/dev/disk の下には他にも by-label by-path by-uuid があるようです。何かの役に立つかもしれません。

  • by-label ボリュームラベルのデバイス
  • by-path デバイス名(<パスID>-:-<パーティション>)
  • by-uuid デバイスのuuid 表示

ユーザーモードエミュレーションqemu を使って Kono on Debian のイメージを Host PC で apt-get とかする

Kobo on Debian ですが,ストレージがmicroSD のせいかよくイメージが壊れてしまいます.そのたびに書き込みなおして設定を行ってというのは大変です.ということで Kobo on Debian のイメージをホストのLinux マシンでマウントしてユーザーモードqemu を利用して apt-get したりする方法の紹介です.

ここではhost pc に Debian jessie を利用していますが,wheezy や Ubuntu 13.10 なんかでも全く同じように動作しそうです.
(他のディストリビューションでも大丈夫でしょうがパッケージ名などが異なると思われます.)

qemu-user-static パッケージを導入

先ず,ユーザーモードqemu のパッケージを導入します.これで,別のアーキテクチャのバイナリをユーザーモードで動作させることが出来ます.

% sudo apt-get install qemu-user-static

パッケージの中を見ると以下のアーキテクチャが動作するようです.

% dpkg -L qemu-user-static
/usr/bin/qemu-mipsn32-static
/usr/bin/qemu-or32-static
/usr/bin/qemu-mips-static
/usr/bin/qemu-m68k-static
/usr/bin/qemu-ppc64-static
/usr/bin/qemu-sparc-static
/usr/bin/qemu-i386-static
/usr/bin/qemu-armeb-static
/usr/bin/qemu-mipsn32el-static
/usr/bin/qemu-ppc-static
/usr/bin/qemu-ppc64abi32-static
/usr/bin/qemu-mipsel-static
/usr/bin/qemu-arm-static
/usr/bin/qemu-x86_64-static
/usr/bin/qemu-sh4-static
/usr/bin/qemu-mips64el-static
/usr/bin/qemu-sparc64-static
/usr/bin/qemu-unicore32-static
/usr/bin/qemu-sh4eb-static
/usr/bin/qemu-microblazeel-static
/usr/bin/qemu-microblaze-static
/usr/bin/qemu-mips64-static
/usr/bin/qemu-cris-static
/usr/bin/qemu-sparc32plus-static
/usr/bin/qemu-alpha-static
/usr/bin/qemu-s390x-static

ディスクイメージをマウント

Kobo on Debian のイメージを loopback mount します.イメージは複数パーティションなので,fdisk コマンドでパーティション情報を確認して mount 時に offset を指定します.

% /sbin/fdisk -l -u ./2013-08-17_kobo_debian.img

Disk ./2013-08-17_kobo_debian.img: 8014 MB, 8014266368 bytes
255 heads, 63 sectors/track, 974 cylinders, total 15652864 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000aad1a

                       Device Boot      Start         End      Blocks   Id  System
./2013-08-17_kobo_debian.img1           19456    10506239     5243392   83  Linux
./2013-08-17_kobo_debian.img2        10506240    14698495     2096128    b  W95 FAT32
./2013-08-17_kobo_debian.img3        14698496    15652863      477184   82  Linux swap / Solaris

今回利用したいのは1つめのパーティションの ./2013-08-17_kobo_debian.img1 19456 10506239 5243392 83 Linux 部分です.
先頭ブロックは 19456 で,ブロックサイズは 512 なので, 19456*512 = 9961472 が offset になります.(若しくは expr 19456 \* 512 とかしても判りやすいかもです.)

% sudo mount -o loop,offset=9961472 ./2013-08-17_kobo_debian.img /mnt

これで 2013-08-17_kobo_debian.img の第1パーティションが /mnt にマウントされました.

ユーザーモードエミュレーションQEMU コマンドをコピーする

Kobo on Debian 部分を chroot で利用したいので,ユーザーモードエミュレーションQEMU コマンドをイメージ内にコピーします.
マウント時に /usr/bin になる部分にコピーします.

% sudo cp -p /usr/bin/qemu-arm-static /mnt/debian/usr/bin

chroot してapt とかする

イメージを chroot して apt とかしてみます.

% sudo chroot /mnt/debian /bin/bash
# vi etc/apt/sources.list

名前解決に失敗するので,nameserver を設定します.以下は Google の 8.8.8.8 を指定した時の例です.chroot 前に host のresolv.conf を cp しておいてもいいかもしれません.

# cat <<__EOF__> /etc/resolv.conf
> nameserver 8.8.8.8
> __EOF__
# apt-get update
  :

後は普通に設定していきます.
設定が終了したらexit コマンドで chroot を抜け,umount コマンドでアンマウントします.

RaspberryPi の Rasbian イメージでも行けるだろうと思って試したのですが,失敗してしまいました.解決したいところです….

ADD: その後やり直したらうまく行った

Debian wheezy/jessie で mikutter する(2014/01/15版)

2014/01/15現在 mikutter は wheezy-backports と sid にあります.

先日までjessie にもあって利用していたのですが(kobo とかで)移動してしまいました.ということで jessie で sid から借りてくる方法とついでに wheezy で backports から借りてくる方法を書いておきます.
jessie の方は多分また状況が変わるかもです.

※/etc 以下のファイルを編集します.etckeeper などを使ってバージョン管理しておくと便利&安心です.

jessie

/etc/apt/sources.list に sid を追加

以下の行を追加します.

# sid
deb http://ftp.jp.debian.org/debian/ sid main

source.list のurl は wheezy に合わせて下さい.(deb http://ring.ix.oita-u.ac.jp/archives/linux/debian/debian sid main contrib non-free の場合 deb http://ring.ix.oita-u.ac.jp/archives/linux/debian/debian sid main)

/etc/apt/preferences の編集

アップデートを有効にするために /etc/apt/preferences を編集します.
以下の行を追加します.

Package: *
Pin: release a=sid
Pin-Priority: 200

#これは設定しないで手動のほうが良い場合も?

前のフィールドがあったら1行開けること.行が開いてないとうまく認識しません.

アップデート

$ sudo apt-get update

mikutter 導入

$ sudo apt-get install mikutter/sid

or

$ sudo apt-get install -t sid mikutter

wheezy

/etc/apt/sources.list に backports を追加

以下の行を追加します.

# wheezy-backports
deb http://ftp.jp.debian.org/debian/ wheezy-backports main

source.list のurl は wheezy に合わせて下さい.(deb http://ring.ix.oita-u.ac.jp/archives/linux/debian/debian wheezy main contrib non-free の場合 deb http://ring.ix.oita-u.ac.jp/archives/linux/debian/debian wheezy-backports main)

/etc/apt/preferences の編集

アップデートを有効にするために /etc/apt/preferences を編集します.
以下の行を追加します.

Package: *
Pin: release a=wheezy-backports
Pin-Priority: 200

前のフィールドがあったら1行開けること.行が開いてないとうまく認識しません.

アップデート

$ sudo apt-get update

mikutter 導入

$ sudo apt-get install mikutter/wheezy-backports

or

$ sudo apt-get install -t wheezy-backports mikutter

[告知]日経Linux 2014年2月号に Kobo on Debian/Android の記事が載ります

今回ご縁があって1/8発売の「日経Linux2014年02月号」に記事を書かせてもらいました.内容は Kobo でDebian/Android を動かすものです.

元々関西オープンフォーラム2013opencocon@shimadah君と話していて「kobo でDebian 動かしてる人居るよ.調べてみる価値はあると思う.」と聞いたのがきっかけでした.
その後 オープンソースカンファレンス2013福岡に現物を持って行ったら結構手遅れ界隈を中心に受けたのでその次の週のオープンソースカンファレンス2013大分のLT で発表したのでした.(こっちにはLT が下手なせいかLT は受けなかったorz)

このLT 資料を見た @emasakaさん経由で執筆依頼を頂き記事を書きました.

#最後の校正はTakashi.Yamanoue先生の「鹿児島組み込みシステム推進協議会懇談会」の最中にやってました><

校正時から変わっていなければ pp.75-79 に掲載されます.
内容は以下のWiki のものですが,校正も入り解りやすくなっています.

ただ,この記事執筆時から状況が変わった部分が有ります.

  • apt-get dist-upgrade した後Debian で起動するとタッチパネルが認識しなくなる.
  • mikutter のパッケージがJessie から無くなったのでapt-get install だけでは導入できなくなった.
  • Kobo mini でも動作確認が取れた.

タッチパネルが認識しなくなる問題はとりあえず dist-upgrade を避ければ大丈夫です.xorg 関連だと思うのですが,パッケージを割り出してpin を挿してそのパッケージを自動アップグレードされないような設定をすればいいと思うので調べているところです.
解決しました -> Kobo Debian で dist-upgrade 後にもタッチパネルが使えるようにする | matoken’s meme

mikutter はsid にはあるので,そちらから貰ってくることで動作すると思うので検証してまとめたいと思います.(多分 /etc/apt/sources.list, /etc/apt/preferences の書き換えで… )
とりあえずこんな感じで -> Debian wheezy/jessie で mikutter する(2014/01/15版) | matoken’s meme

その他,apt-get update Host 側で先に行ってから書き込む方法を見つけたのでこれも手順を書きたいと思っています.
書きました -> ユーザーモードエミュレーションqemu を使って Kono on Debian のイメージを Host PC で apt-get とかする | matoken’s meme

Kobo mini でも Debian したい

先日秋葉原に行ってきました.するとKobo Touch/glo が一台も見つかりませんでした><





ということで,mini を買ってしまいました.
一度も起動しないままmicroSD を差し替えようとすると….ネジ止めorz


ねじ回しを求めて


コミケ打ち上げ中にやったー!


てことで,前のエントリの e-Ink 電子書籍端末のKobo Touch にDebian を入れて遊ぶ方法 | matoken's meme と同じ手順でKobo mini でもDebian が動作するのを確認しました.解像度もKobo Touch と同じです.ホームボタンはありません.
ただ,ねじ回しが必要です><