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

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

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 版もありますよ

電波を見て NotePC を検知して盗難

#asiabsdcon を眺めていて見かけたTweet ですが,

これは怖いなー.助手席とか置いてたら一瞬ですね><

最近だとWardriving も特に何も知識なくてもAndroid とかにAPP を入れるだけ(rootもいらない)で出来るのですごくカジュアル&怪しまれずに探れますね.
そういえばゲーム機とかですれ違い通信とかを有効にしてるのも危なさそうだ.

ちょっと違うけどアメリカの免許証のスキミングなんかも車外から可能だそうですが,日本の免許証とかどうなんでしょうねとか色々怖くなって来ました><

Windows でdd を試みる(Kobo イメージ書き込み)

Kobo Debian のmicroSD Card への書き込みにWindows を利用している方がバイナリエディタ使ったりしてるのですが,Windows のdd じゃ出来ないのかな?と疑問に思っていました.
マンガ喫茶に寄った時にWindows 端末が触れたので試してみました.

はじめWin32 Disk Imager で試そうとしたのですが,seek/skip の使い方がわからない(実装されてない?)ので諦めて,dd for windows で試しました.

#rawwrite とか懐かしすぎる!

ほぼ,Linux 版と同じ使い方ですが,デバイスの指定方法が違いました.
以下の例では, F: に書き込んだ場合ですが, \\.\F: と指定するようです.

>dd if=E:\2014-02-11_kobo_debian.img of=\\.\F: bs=4M
rawwrite dd for windows version 0.3.
Written by John Newbigin <jn@it.swin.edu.au>
This program is covered by the GPL.  See copying.txt for details
Error writing file: 87 パラメーターが間違っています。
1023+1 records in
1023+0 records out

seek も使えます.

>dd if=E:\glo_hwconfig.bin of=\\.\F: bs=512 count=1 seek=1024 count=2
rawwrite dd for windows version 0.3.
Written by John Newbigin <jn@it.swin.edu.au>
This program is covered by the GPL.  See copying.txt for details
2+0 records in
2+0 records out

ところで,フォーマット前のドライブレターが割り当てられてないデバイスに対してはどうやって書き込むんでしょうね?

modcrew の防水加工サービスの話を聞いてきた

先日の日曜は秋葉原に寄って来ました.
丁度modcrew の防水加工サービスが開店したばかりという事でお店を覗いて話聞いて来ました.

お店はこちらの2F .

横の階段ではなく店内を突っ切って奥の階段を登っていきます.
するとカウンターだけのお店.
そこでどんなかんじか聞いて来ました.

聞いてきたことをざっとまとめると,

  • iPhone4 以降対応.
  • Android は今のところ非対応.
    • しかし,Galaxy4s は検証済み.他のも対応するだろう.
    • 未保証で良ければ非対応機種もやる.
  • 14:00締め切りで一括で処理して18:00 に受け渡し(もしかしたらこのへん時間間違ってるかも)
  • 14:00 を過ぎてからの受付は次の日開店時受け渡し.
  • 1年ほど効果は続く.1年毎に防水加工したほうが良い.#でも1年未満で皆さん買い換えますよね的な(ぉ
  • コネクタなどはそのまま使える.
    • コーティング剤がコネクタとこすれて剥がれるので問題ない.
    • コーティング剤は液晶面などにも塗布されるが元々ガラスなので拭きとる.

こんな感じだったかなー.
コーティング処理済みのiPhone も見せてもらったけどぱっと見未加工品と違いわかりませんでした.

これだけだと不安だけど保険にいいかなと思いました.

聞き違いや勘違いなんかもあるかもなので加工時はお店で聞いてくださいね.

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

デジタルガジェットで手書きマッピングしたい

OpenStreatMap のマッピング方法の一つにWalking Paper というものがあります。
これはマッピングしたい位置のOpenStreetMap 地図を印刷して、その紙に手書きでマッピングしてその紙をスキャンしてそれを見ながらマッピングするというものです。

OSM 地図印刷 -> 手書きマッピング -> 取り込んでPC マッピング

#最近だとコンビニで印刷もスキャニングもできるので楽ですね :)

これをタブレットなどのデバイスでできると便利そうだなーと思っていたのでした。
iPad 等では手書きがいまいちかなとか。enchantmoon はすごく相性良さそうだけど解像度が足りなさそう。
SHARP のd電子ノート(WG-S20/WG-N20)も解像度が足りなさそう…。
そもそも液晶画面だと外で見えにくいんですよね><

というところにソニー デジタルペーパー DPT-S1 というデバイスが出ました。

これは電子ペーパーだし、手書きもWACOM だしとよさげ。
ネックは100k という値段でしょうか…。

誰か試してみませんか?

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 表示