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




鹿児島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

自分の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

OSunC2014川越に遠隔参加

2014-05-10 13.28.32
5/10 の OpenSourceUN-Conference2014川越 がUstreamで中継されるということでUstream 経由で参加しました. 当日は家だと回線が細い&不安定なので(光回線はよ><)ネットカフェで視聴しました.
「今日の 行けないんで誰か の宣伝してくれないでしょうか(ぉ http://kagolug.org/ 」
とか前日に投げたところ「東海道らぐってな〜に?」の中と「鹿児島Linux勉強会ってなーに」として発表してもらえました.はしもとさん,koedoyoshidaさんに感謝!

発表内容はこんなかんじでした.
Twitter 等で発表資料を見かけた人はURL をつけてます.

#発表したい人は当日以下のページを編集してねって感じになってました.
##今は編集不可になってるよう.

当日のTwitter つぶやきのまとめです.

自宅でUst視聴すると色々割り込みが入るのでネットカフェで視聴したのは当たりでした. 問題はネットカフェが自動車で30分位のところに1件.後はフェリーを使って鹿児島市内へという感じで選択肢が数無いところですね.運転をするのでお酒も飲めないし><
でも久々に小江戸らぐの空気に触れられて楽かったです.

「赤城さんのお風呂タイマー @艦これ」を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 で読み取っているんですね.眼から鱗.

Linux でバッテリー状況確認方法幾つか

以前は /proc/acpi/battery/BAT0 以下のあたりを見てバッテリ状況を確認できていました.

最近は /proc 以下は非推奨になっていてそこでは情報が見られません. /sys/class/power_supply/BAT0 あたりで見られるようになっています.

でも値が生データのようです.

% cat /sys/class/power_supply/BAT0/uevent
POWER_SUPPLY_NAME=BAT0
POWER_SUPPLY_STATUS=Unknown
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Li-ion
POWER_SUPPLY_CYCLE_COUNT=0
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=11100000
POWER_SUPPLY_VOLTAGE_NOW=12816000
POWER_SUPPLY_POWER_NOW=0
POWER_SUPPLY_ENERGY_FULL_DESIGN=93240000
POWER_SUPPLY_ENERGY_FULL=78080000
POWER_SUPPLY_ENERGY_NOW=78010000
POWER_SUPPLY_CAPACITY=99
POWER_SUPPLY_MODEL_NAME=42T4940
POWER_SUPPLY_MANUFACTURER=SANYO
POWER_SUPPLY_SERIAL_NUMBER= 4572

acpi コマンドでも少し情報は見られますが少ないです.

% acpi -bi
Battery 0: Unknown, 99%
Battery 0: design capacity 7275 mAh, last full capacity 6092 mAh = 83%

acpitool だと詳細な情報が見られます.

% acpitool -B
Battery #1     : present
Remaining capacity : 78010 mWh, 99.91%
Design capacity    : 93240 mWh
Last full capacity : 78080 mWh, 83.74% of design capacity
Capacity loss      : 16.26%
Present rate       : 0 mW
Charging state     : Unknown
Battery type       : Li-ion 
Model number       : 42T4940
Serial number      : 4572

今回 * Lenovo のバッテリー自主回収 | matoken’s meme

の時知ったのですが,upower というコマンドもありました.多分HAL 依存です.

% upower -d|grep -i device
Device: /org/freedesktop/UPower/devices/line_power_AC
Device: /org/freedesktop/UPower/devices/battery_BAT0
% upower -i /org/freedesktop/UPower/devices/battery_BAT0
native-path:          BAT0
vendor:               SANYO
model:                42T4940
serial:               4572
power supply:         yes
updated:              2014年04月02日 05時54分34秒 (6 seconds ago)
has history:          yes
has statistics:       yes
battery
present:             yes
rechargeable:        yes
state:               fully-charged
energy:              78.01 Wh
energy-empty:        0 Wh
energy-full:         78.08 Wh
energy-full-design:  93.24 Wh
energy-rate:         7.137 W
voltage:             12.816 V
percentage:          99%
capacity:            83.7409%
technology:          lithium-ion

proc や sys で覚えるよりコマンドの方で覚えといたほうがまた変わったときも吸収されて長く使えるかも?
それともコマンドが対応できなかったり無くなっちゃうか….

追記)
Gnome のGUI だと「電源使用率の統計(gnome-power-statistics)」で見られます.多分upower を利用してるような気がします.
Screenshot from 2014-04-02 20:17:14

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 斜めに移動

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