2012年9月30日日曜日

Nexus 7 と キーボード

Nexus 7 を買おうかどうか迷っている。
この前購入した、auのISW13Fは、テザリング機能がついているので、使ってみたい。
動機としては、その程度なので安く買えるやつがいい。Nexus 7は、性能のわりには2万円しないので、かなり良い。
しかし、基本性能はISW13Fとほぼ一緒。画面がでかいのが最大の特徴になるだろう。
かなりカブっているので、両方でほぼ同じ事ができる。 将来、ISW13Fが古くなり、より高機能なものを必要とするとき、Nexus 7ならOSやソフトウエアを入れ替えられると言う利点があるが、ISW13Fが古くなったときはおそらくNexus 7も古くなっているだろう。
また、Nexus 7ではauアプリは使えないし、auのチューニングの恩恵も得られない。さらにOneSEGも外付けUSBで見ることになるだろう。
テザリングをちょっとするだけで、飽きてしまい、使わなくなってしまったらやはり無駄だ。

Nexus 7がノートパソコンのように使えるなら、話は違ってくる。
自宅のVAIO PCG-C1 VRX/Kは、もう10年選手だ。Lubuntuを入れているが、RAMが足りず、Xを動かすにはつらい。
さらに、最新のLinux 3.x.x系のFrameBufferそのままでは、VAIO C1独特の1024x480の解像度を使えない。
いくら何でも640x480で使う気にはならないので、atyfbを改造してFrame buffer terminalで何とか使っている。(ブラウジングもmailも携帯で十分。遊びのプログラミングのみ。改造内容について詳しくは、この記事の一番下を参照)
だが、新しいkernelが出る度にatyfbを改造しなければならないので手間である。

自宅の母艦PCも今はLinux(Ubuntu)なので、Nexus 7でLinuxが動くなら、VAIO-C1よりマシだろう。
CPUパワーも、メモリも数倍上だ。
たぶんXも使い物になるだろう。

プログラミングするには、キーボードが必要だ(絶対必要と言うわけではないが、あった方が圧倒的に良い)。
Androidで使えるキーボードについてちょっと調べたら、BlueToothでつなぐらしい。BlueToothのキーボードを探すと、ゴロゴロ出てくる。
日本語キーボードだけでは無く、英語キーボードも色々あり選べる。なんか嬉しくなり♪、試しに何か買ってこようと、大宮のソフマップへ行ってみた。
自宅から約7km。歩いて1時間半といった距離。気分もいいし、天気もいい。散歩ついでに歩いて行くことにした。
さすがに昼間歩けば、体も熱くなり大汗をかいた。お店の中に入っても、あまり冷房は効いていないようだ。
キーボード売り場へ行き物色を始めるが、英語キーボードが極端に少ない。あんなにゴロゴロあったのに、お店にはわずかしか無い。たくさん歩いてきたのが少しバカに思えた。

よーく探すと、下の方にかなりボロくなった箱で、REUDO RBK-2000BTIIというのがあった。
キーのサイズは普通のキーボードと同じ(最上段の数字キーが小さい)。折りたたみ式で、スマホ用スタンドがついている。悪くない。かなり良いのだが、値段がバカに高い。9,800円もする。
ほぼ同じに見えるエレコムのやつ(TK-FBP019E REUDOのOEM?)は、5,000円そこそこなのに、倍の値段だ(エレコムは日本語配列しか置いていなかった)。
しかし、背に腹は変えられない。どうしても英語キーボードが良い。これは痛い出費になった。

帰宅後に、ISW13Fとペアリングを試みる。これでつながれば、Nexus 7 でもつながるだろう。どちらもAndroid 4だ。
しかし、うまくいかない。
ISW13Fでペアリングをしようとすると、パスキーの入力や表示が一切ないのだ。
この機能がau独自とは思えないので、Andoroid 4 全体の振る舞いなのだろう。
調べて見ると、BlueTooth Keyboardにも種類があるようで、ダメなものはダメなのだということがわかった。
インターネットでRBK-2000BTIIを調べてみると、販売終了になった製品だった。後継機では使えるようだった。
非常にバカバカしく思えてきた。汗だくになりながら、9,800円も出したのに…。

後継機も含め、色々調べてみる。デフォルトではパスキーは"1234"とか"0000"とか、色々書いてあった。 試しにそれらを入力してみるが、やはりダメ。これはキーボード側と言うよりも、Android側が何を期待しているのかがわからなければならない。
ISW13Fのマニアルを読むが、それらの記述は無い。
バカバカしさを通り越して気分は怒りに代わり、"0000"+[Enter]と入力した後、「この野郎!入れ!入れ!」と言う気分で、[Enter]を連打した
すると、どういうわけか、ペアリング完了。ISW13F(Android 4)で、RBK-2000BTIIがつかえるようになった。
どうも[Enter]を連打するのが良かったようだ。
Nexus 7を購入したら、同じようにやればいいだろう。

無駄な買い物にならずに済んだ。

台風でDivingに行けない。ダイビング代は1日2万円くらいだ。
来月には、Nexus 7を買ってみようかな。

2012/09/30 追記
linux kernelを改造したので、一応改造内容を示しておく(GPLだから)。
改造箇所は1ファイル、2ヶ所だけ。patchを使わなくても手動で当ててもいいだろう。
ほぼ一ヶ所にまとめてある。
diff -Nur linux-source-3.0.0.org/drivers/video/aty/atyfb_base.c linux-source-3.0.0/drivers/video/aty/atyfb_base.c
--- linux-source-3.0.0.org/drivers/video/aty/atyfb_base.c       2011-07-22 11:17:23.000000000 +0900
+++ linux-source-3.0.0/drivers/video/aty/atyfb_base.c   2012-03-28 22:52:14.285910585 +0900
@@ -680,12 +680,19 @@
 {
 #ifdef CONFIG_FB_ATY_GENERIC_LCD
        if (par->lcd_table != 0) {
+               unsigned long hs;
                /* stop CRTC */
                aty_st_le32(CRTC_GEN_CNTL, crtc->gen_cntl &
                            ~(CRTC_EXT_DISP_EN | CRTC_EN), par);
+ 
+               /* VAIO PCG C1-VRX/K */
+               hs=aty_ld_le32(OVR_WID_LEFT_RIGHT,par);
+               hs &= ~0x003F003F;
+               aty_st_le32(OVR_WID_LEFT_RIGHT, hs, par);

                /* update non-shadow registers first */
-               aty_st_lcd(CNFG_PANEL, crtc->lcd_config_panel, par);
+//             aty_st_lcd(CNFG_PANEL, crtc->lcd_config_panel, par);         REP. Shin
+               aty_st_lcd(CNFG_PANEL, crtc->lcd_config_panel | 0x4000, par);
                aty_st_lcd(LCD_GEN_CNTL, crtc->lcd_gen_cntl &
                           ~(CRTC_RW_SELECT | SHADOW_EN | SHADOW_RW_EN), par);

なお、起動時にFramebufferドライバを読ませようとするとなぜかうまくいかない。
FrameBuffer console なしで起動し、あとからatyfb.koをmodprobeまたはinsmodするとうまくいく。
しかし、10年前のH/Wだ。現在、VAIO C1 VRX/Kを使っている人はほぼいないんだろう。
役に立つのか?こんなもの。
Google driveで、公開できればいいのだが、使い方がよくわからない。

0 件のコメント:

コメントを投稿