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

自分のPCにキーロガーを設定する

キーロガー.人のPCに仕掛けるのはまずいけど自分の&自分しか使わないPCで試す分には問題ないだろうということで入れてみてます.

入れているのは以下の logkeys

導入方法

DebianやUbuntu だとパッケージがあるので logkeys パッケージを導入するだけ.

% sudo apt-get install logkeys

初期設定

/etc/default/logkeys という設定ファイルを設定します.

ENABLED=1
LOGFILE=/home/mk/.logkeys/`/bin/date +%Y%m%d-%H%M%S-$$`

# This should be updated according to your hardware
# Check README.Debian for more info
DEVICE=/dev/input/event0
  • ENABLED : 0 起動しない / 1 起動する
  • LOGFILE : ログファイルの指定
  • DEVICE : キーボードデバイス指定

自動起動してログファイルの設定,ログするキーボードデバイスの指定をします.
ログファイルは他の人から読まれないようにパーミッションを設定しておきましょう.ファイル名は試しに

/home/mk/.logkeys/`/bin/date +%Y%m%d-%H%M%S-$$`

とか書いてみたら行けました.試してみるもんですね.これで起動毎に新しいログファイルが作成されるはずです.
キーボードデバイスは /proc/bus/input/devices を見たり,実際のデバイスを cat してキー入力してみたりして見つけます.
詳細は /usr/share/doc/logkeys/README.Debian に書かれています.

以下の/proc/bus/input/devices では,頭のがkeyboad のようです.

I: Bus=0011 Vendor=0001 Product=0001 Version=ab54
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input0
U: Uniq=
H: Handlers=sysrq kbd event0 
B: PROP=0
B: EV=120013
B: KEY=402000000 3803078f800d001 feffffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7
I: Bus=0019 Vendor=0000 Product=0005 Version=0000
N: Name="Lid Switch"
P: Phys=PNP0C0D/button/input0
S: Sysfs=/devices/LNXSYSTM:00/device:00/PNP0C0D:00/input/input3
U: Uniq=
H: Handlers=event2 
B: PROP=0
B: EV=21
B: SW=1
I: Bus=0019 Vendor=0000 Product=0003 Version=0000
N: Name="Sleep Button"
P: Phys=PNP0C0E/button/input0
S: Sysfs=/devices/LNXSYSTM:00/device:00/PNP0C0E:00/input/input4
U: Uniq=
H: Handlers=kbd event3 
B: PROP=0
B: EV=3
B: KEY=4000 0 0
I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=LNXPWRBN/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXPWRBN:00/input/input5
U: Uniq=
H: Handlers=kbd event4 
B: PROP=0
B: EV=3
B: KEY=10000000000000 0
I: Bus=0010 Vendor=001f Product=0001 Version=0100
N: Name="PC Speaker"
P: Phys=isa0061/input0
S: Sysfs=/devices/platform/pcspkr/input/input6
U: Uniq=
H: Handlers=kbd event5 
B: PROP=0
B: EV=40001
B: SND=6
I: Bus=0019 Vendor=17aa Product=5054 Version=4101
N: Name="ThinkPad Extra Buttons"
P: Phys=thinkpad_acpi/input0
S: Sysfs=/devices/platform/thinkpad_acpi/input/input8
U: Uniq=
H: Handlers=kbd rfkill event6 
B: PROP=0
B: EV=33
B: KEY=18040000 0 10000000000000 0 1501b00102004 c000000001104000 e000000000000 0
B: MSC=10
B: SW=a
I: Bus=0003 Vendor=04f2 Product=b217 Version=0854
N: Name="Integrated Camera"
P: Phys=usb-0000:00:1a.0-1.6/button
S: Sysfs=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.6/1-1.6:1.0/input/input9
U: Uniq=
H: Handlers=kbd event7 
B: PROP=0
B: EV=3
B: KEY=100000 0 0 0
I: Bus=0019 Vendor=0000 Product=0006 Version=0000
N: Name="Video Bus"
P: Phys=LNXVIDEO/video/input0
S: Sysfs=/devices/LNXSYSTM:00/device:00/PNP0A08:00/LNXVIDEO:00/input/input10
U: Uniq=
H: Handlers=kbd event8 
B: PROP=0
B: EV=3
B: KEY=3e000b00000000 0 0 0
I: Bus=0001 Vendor=14f1 Product=506e Version=0001
N: Name="HDA Digital PCBeep"
P: Phys=card0/codec#0/beep0
S: Sysfs=/devices/pci0000:00/0000:00:1b.0/input/input11
U: Uniq=
H: Handlers=kbd event9 
B: PROP=0
B: EV=40001
B: SND=6
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=8"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1b.0/sound/card0/input18
U: Uniq=
H: Handlers=event10 
B: PROP=0
B: EV=21
B: SW=140
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=7"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1b.0/sound/card0/input17
U: Uniq=
H: Handlers=event11 
B: PROP=0
B: EV=21
B: SW=140
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=3"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1b.0/sound/card0/input16
U: Uniq=
H: Handlers=event12 
B: PROP=0
B: EV=21
B: SW=140
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH Headphone"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1b.0/sound/card0/input15
U: Uniq=
H: Handlers=event13 
B: PROP=0
B: EV=21
B: SW=4
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH Dock Headphone"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1b.0/sound/card0/input14
U: Uniq=
H: Handlers=event14 
B: PROP=0
B: EV=21
B: SW=4
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH Dock Mic"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1b.0/sound/card0/input13
U: Uniq=
H: Handlers=event15 
B: PROP=0
B: EV=21
B: SW=10
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH Mic"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1b.0/sound/card0/input12
U: Uniq=
H: Handlers=event16 
B: PROP=0
B: EV=21
B: SW=10
I: Bus=0011 Vendor=0002 Product=0007 Version=01b1
N: Name="SynPS/2 Synaptics TouchPad"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input7
U: Uniq=
H: Handlers=mouse0 event17 
B: PROP=5
B: EV=b
B: KEY=e520 10000 0 0 0 0
B: ABS=660800011000003
I: Bus=0003 Vendor=0000 Product=0000 Version=0004
N: Name="ACPI Virtual Keyboard Device"
P: Phys=
S: Sysfs=/devices/virtual/input/input20
U: Uniq=
H: Handlers=sysrq kbd rfkill event18 
B: PROP=0
B: EV=3
B: KEY=ffffffffffffffff ffffffffffffffff ffffffffffffffff fffffffffffffffe
I: Bus=0011 Vendor=0002 Product=000a Version=0000
N: Name="TPPS/2 IBM TrackPoint"
P: Phys=synaptics-pt/serio0/input0
S: Sysfs=/devices/platform/i8042/serio1/serio2/input/input19
U: Uniq=
H: Handlers=mouse1 event19 
B: PROP=0
B: EV=7
B: KEY=70000 0 0 0 0
B: REL=3
I: Bus=0003 Vendor=046d Product=0a29 Version=0111
N: Name="Logicool Logicool Wireless Headset"
P: Phys=usb-0000:00:1d.0-1.1/input3
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.3/0003:046D:0A29.000A/input/input27
U: Uniq=000d44b85a7d
H: Handlers=kbd event1 
B: PROP=0
B: EV=1b
B: KEY=18000 17800000000 8e000000000000 0
B: ABS=ffffff0000000000
B: MSC=10

H: Handlers=sysrq kbd event0 から実際のデバイスは /dev/input/event0 なので,これをcat して何かキーボード入力して反応があるか確認します.当たりのようです.

% sudo cat /dev/input/event0
�w�S��      �w�S��      �w�S��                  �w�S?�w�S?�w�S?p     a�w�SK
�w�SK
�w�SK
�w�w�S��.�w�S��.�w�S��     a�w�S(�^C

実際に使ってみると当たり前ですが入力したものがログファイルに吐かれています.もちろんパスワードなどもそのまま.
日本語入力したものなどはローマ字入力なのでローマ字で記録されています.フィルタにかけると読みやすくなりますね.メタ文字も<lctrl>&ltup><down>のような感じで記録されます.
root で動いているのでユーザを変更しても記録されます.
デバイスを指定しているので,外付けのキーボードを接続すると記録されません.

ちなみにプロセスはこんな感じなので色々丸見えですね.

% ps -ef| grep -i logk
root      1433     1  0  6月10 ?      00:00:25 /usr/bin/logkeys -s -u -d /dev/input/event0 -o /home/mk/.logkeys/20140610-222504-1004

キーロガーへの対策

このlogkeys であれば別のキーボードを使えば回避できます.でも全部のデバイスを記録するソフトウェアキーロガーだと回避できません.OS をLiveCD/USB などで別のものを起動してしまえば回避できます.

ソフトウェアでなく,ハードウェアキーロガーもあります.これはUSB やPS/2 ポートのキーボードの間に取り付けてロギングするものです.OS を変えても回避できません.わかりやすいものはPCの裏を見るだけで何かついてるのですぐわかりますが,キーボードの中やPC 筐体の中に仕込まれると一見しただけではわかりません.
仕込んだロガーを回収してログを回収する必要があるのですが,無線方式のものだと現地に行かなくても無線経由で回収できるので犯人の追跡も難しいです.

ちなみにそんなに特殊なものでなく普通にあちこちで売っています.おまけに安価.

画面を飛ばすものまであります.テンペストを使うよりずっとお手軽で実用的ですね><

ということで,外の端末ではセンシティブな情報は入力しないくらいしか対策は無さそうです.

Debian squeeze LTS リリース

Debian squeeze(old-stable) が今月末でサポートが切れます.しかし,i386とamd64 アーキテクチャについてはLong-Term-Support を実施して2016年02月06日までサポートを行うことになりました.このためのリポジトリがリリースされたようです.

backports もサポートされるようなので利用している人も助かりますね.
注意しないといけないのは,squeeze 全てのパッケージがサポートされるわけでは無い
LTS のリポジトリを登録しないといけないところです.
サポート状況のチェックツールもリリースされました.ツールのパッケージは debian-security-support で,コマンドは check-support-status です.

https://wiki.debian.org/LTS/Development#Add_squeeze-lts_to_your_sources.list
を参考にsource.list を書き換えて(mirrorにも対応しているので日本に向けるといいと思います)

/etc/apt/sources.list

# squeeze-lts
deb http://ftp.jp.debian.org/debian squeeze-lts main contrib non-free
deb-src http://ftp.jp.debian.org/debian squeeze-lts main contrib non-free
# backports(非利用時は以下は不要)
deb http://backports.debian.org/debian-backports squeeze-backports main
deb-src http://backports.debian.org/debian-backports squeeze-backports main

以下のような感じで行けました.

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install debian-security-support
$ check-support-status
Security support has ended for one or more packages
Unfortunately, security support for some packages needed to be stopped
before the end of the regular security maintenance life cycle.
The following packages found on your system are affected by this:
* Source:libplrpc-perl, ended on 2014-05-31 at version 0.2020-2
Details: Not supported in squeeze LTS
Affected binary package:
- libplrpc-perl (installed version: 0.2020-2)
* Source:zabbix, ended on 2014-05-31 at version 1:1.8.2-1squeeze5
Details: Not supported in squeeze LTS
Affected binary packages:
- zabbix-agent (installed version: 1:1.8.2-1squeeze2)
- zabbix-frontend-php (installed version: 1:1.8.2-1squeeze2)
- zabbix-server-mysql (installed version: 1:1.8.2-1squeeze2)
Security support is limited for one or more packages
Unfortunately, security support for some packages had to be limited.
The following packages found on your system are affected by this:
* Source:php5
Details: See README.Debian.security for the PHP security policy
Affected binary packages:
- libapache2-mod-php5 (installed version: 5.3.3-7+squeeze19)
- php-pear (installed version: 5.3.3-7+squeeze19)
- php5 (installed version: 5.3.3-7+squeeze19)
- php5-cli (installed version: 5.3.3-7+squeeze19)
- php5-common (installed version: 5.3.3-7+squeeze19)
- php5-curl (installed version: 5.3.3-7+squeeze19)
- php5-gd (installed version: 5.3.3-7+squeeze19)
- php5-gmp (installed version: 5.3.3-7+squeeze19)
- php5-mcrypt (installed version: 5.3.3-7+squeeze19)
- php5-mysql (installed version: 5.3.3-7+squeeze19)

実はWheezy への以降は済んでいたのですが,LTS を試したいのでsqueeze 環境を復活させました :p

Debian でパッケージ導入時のダイヤログを抑制する

Debian でmysql-server 等を導入するとパスワード設定ダイヤログが出てくる.
Screenshot from 2014-05-30 06:20:11
これを抑制できないか試してみた.

microHOWTO: Perform an unattended installation of a Debian package

export DEBIAN_FRONTEND=noninteractive
apt-get update -q
apt-get install -q -y -o Dpkg::Options::=”—force-confdef” -o Dpkg::Options::=”—force-confold” apache2 mysql-server

これを参考に

% sudo DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server

でダイヤログ出さずに導入できた.
でもmysql-server の場合パスワード設定しないと結構まずい.
即パスワード設定するとか

% mysqladmin -u root password ‘password’

daemon止めるとかしないとだと思う.

% sudo /etc/init.d/mysql stop

「赤城さんのお風呂タイマー @艦これ」をDebian jessie で試す

赤城さんのお風呂タイマー @艦これ というソフトを見つけて,Linux でも動作するよと書かれていたので気になっていました.
これをDebian jessie 環境でビルドしてみました.(が,動作していませんorz)

ソースコードからビルドすれば、Linux や Mac でも動作することを確認しています。

クリーンな環境でビルドしてないので足りないものもあるかもしれませんが,こんな感じで必要なパッケージを導入します.

% sudo apt-get install liblua5.1-0-dev libyaml-cpp-dev libboost1.53-dev libopencv-highgui-dev libluabind-dev doxygen xdot libcsnd-dev lua5.2 mercurial build-essential

bitbucket からsource を貰ってきます.

% hg clone https://bitbucket.org/satofumi/bath_timer

make します.

% cd bath_timer
% make

実行ファイルを叩いてみます.

% bath_timer/bath_timer
zsh: segmentation fault  bath_timer/bath_timer

orz
カレントディレクトリで実行したりテーマファイルをコピーしたりしてみましたがうまく行きませんでした><
テーマはディレクトリ構成とかがよくわからなかったのでWindows のものをCP したりしてみました.

ということで,とりあえずいつものkoedoyoshidaさんの艦これタイマーに戻ります….

ちなみに,どうやってブラウザと通信しているんだろうと疑問だったのですが,こちらに解説が.通信しているわけではなくOCR で読み取っているんですね.眼から鱗.

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

ユーザーモードエミュレーション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 と同じです.ホームボタンはありません.
ただ,ねじ回しが必要です><