« 2011年6月 | トップページ | 2011年12月 »

2011年11月18日 (金)

EM51のandroidで使えるカーネルモジュールの構築メモ

1) クロスコンパイラのtar.gzをどっかのサイトからダウンロードする

   arm-2008q3-39-arm-none-eabi-i686-pc-linux-gnu.tar.gz

2) そのファイルを/optへ展開する。

$ su
# cd /opt
# tar xvfj /home/mydownload/arm-2008q3-39-arm-none-eabi-i686-pc-linux-gnu.tar.gz

3) 環境変数へセットする

# export PATH=/opt/arm-2008q3/bin/:$PATH
# export ARCH=arm
# export CROSS_COMPILE=arm-none-gnueabi-

4) カーネルのtar.gzを解凍する

# cd ~
# tar xvfz kernel.tar.gz
# cd ./kernel

5) カーネルのモジュールの設定をする。
   *.koが欲しいので、<M>の設定をする。

   以下は、btusb.ko, bluetooth.ko, tun.ko, cifs.ko, nls_utf8.ko の例

# make menuconfig
===========================================================
->  Linux Kernel v2.6.29 Configuration screen
   
Networking support --->
<M>  Bluetooth subsystem support --->
     Bluetooth device drivers --->
       <M> HCI USB Driver

Network device support
<M>   Universal TUN/TAP device driver support 

File systems
--- Network File systems
   <M>   CIFS support (advanced network filesystem, SMBFS successor)
   [*]     CIFS statistics                                          
   [*]       Extended statistics                                    
   [*]     Support legacy servers which use weaker LANMAN security 
   [*]     CIFS extended attributes                                 
   [*]       CIFS POSIX Extensions                                 
   [*]     Enable additional CIFS debugging routines               
   [*]     CIFS Experimental Features (EXPERIMENTAL) 

Navive Language support
   <M>  NLS UTF-8   
===========================================================
他はデフォルトのままにする。

6) MakefileのEXTRAVERSION は空白にしておく

# vi Makefile
---------------------------------------------------------
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 29
EXTRAVERSION =
----------------------------------------------------------

7) コンパイルする

# make modules ARCH=arm CROSS_COMPILE=arm-none-eabi-

8) 以下のファイルが出来上がる

./kernel/drivers/bluetooth/btusb.ko
./kernel/net/bluetooth/bluetooth.ko
./kernel/drivers/net/tun.ko
./kernel/fs/cifs/cifs.ko
./kernel/fs/nls/nls_utf8.ko

| | コメント (0) | トラックバック (0)

EM51のsystem.img

EM51のsystem.imgの扱いメモ

Q)解凍するには?
A) unyaffsを実行します。

# unyaffs system.img

Q)弄った後作るには?
A) mkyaffs2imageを実行します

# mkyaff2image system system.img

(systemは解凍した時に作成したディレクトリ)

「mkyaffs2.tar.gz」をダウンロード

| | コメント (0) | トラックバック (0)

EM51 android 2.1 のカスタムファーム

オリジナルからちょこっとだけ変更です。

修正点

①日本語フォントの導入
②センターのENTERキーをHOMEキーへ変更
③以下のカーネルモジュールを導入
  /system/lib/module/fun.ko
  /system/lib/module/cifs.ko
  /system/lib/module/nls_utf8.ko

  tun.ko: OpenVPN 用
  cifs.ko, nls_utf8.ko: Samba アクセス用
  Marketからダウンロードするアプリ OpenVPNSetting, Mount Manager で確認しています。
  起動時にはロードされていないので、各アプリでロードしてください。

  カーネルバージョンとビルド番号は以下になってます。(オリジナルのまま)

Device

【アップデート方法】
EM51をFastbootモードで起動し、コマンドプロンプトから
C:\EM51> fastboot flash system system_yaffs2.img
を実行してください。

その後
C:\EM51> fastboot reboot
でリセットです。

EM51のsystem.imgをダウンロード

| | コメント (0) | トラックバック (0)

2011年11月13日 (日)

LS-GL(debian Lenny)でOpenVPNサーバーを構築する

■参考にしたURL
http://kilin.clas.kitasato-u.ac.jp/howto/openvpn.html

■openvpnのインストール、/etc/init.d/openvpnが作られる。
# aptitude install openvpn

■鍵の生成
# cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/ /etc/openvpn/easy-rsa
# cd /etc/openvpn/easy-rsa/
# chmod +x *

■証明書/鍵作成用環境変数設定ファイル編集(自分の環境用に書き換える)
# vi vars

export KEY_COUNTRY="JP"
export KEY_PROVINCE="LS-GL"
export KEY_CITY="tokyo"
export KEY_ORG="LS-GL tokyo"
export KEY_EMAIL="xxxxx@nifty.com"

■環境変数設定,証明書/鍵作成先ディレクトリ初期化
# source vars
# ./clean-all

■CA証明書・秘密鍵作成し,/etc/openvpnにコピー
# ./build-ca
Generating a 1024 bit RSA private key
...............................++++++
........................................++++++
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [JP]:
State or Province Name (full name) [LS-GL]:
Locality Name (eg, city) [tokyo]:
Organization Name (eg, company) [LS-GL tokyo]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [LS-GL tokyo CA]:
Email Address [xxxxxx@nifty.com]:

# cp keys/ca.crt /etc/openvpn/

■サーバー証明書・秘密鍵とDH(Diffie Hellman)パラメータ作成 。/etc/openvpnにコピー
# ./build-key-server server
Generating a 1024 bit RSA private key
.................++++++
..........++++++
writing new private key to 'server.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [JP]:
State or Province Name (full name) [LS-GL]:
Locality Name (eg, city) [tokyo]:
Organization Name (eg, company) [LS-GL tokyo]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [server]:
Email Address [xxxxxxx@nifty.com]:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /etc/openvpn/easy-rsa/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName           :PRINTABLE:'JP'
stateOrProvinceName   :PRINTABLE:'LS-GL'
localityName          :PRINTABLE:'tokyo'
organizationName      :PRINTABLE:'LS-GL tokyo'
commonName            :PRINTABLE:'server'
emailAddress          :IA5STRING:'xxxxxx@nifty.com'
Certificate is to be certified until Nov  9 13:07:05 2021 GMT (3650 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
LS-GL:/etc/openvpn/easy-rsa#

# ./build-dh
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
.............+.....

# cp keys/server.crt /etc/openvpn/
# cp keys/server.key /etc/openvpn/
# cp keys/dh1024.pem /etc/openvpn/

■クライアント証明書・秘密鍵作成。
サーバーの場合と同じように、以下のコマンドで作成する。クライアントの台数分つくる。ここでは2個作成。入力を促されたら、サーバーの場合と同じように全てデフォルトのままEnterし、[y/n]にはyで答える。

# ./build-key client1
# ./build-key client2

■confファイルを/etc/openvpn/に用意する。
# cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
# cd /etc/openvpn
# gunzip server.conf.gz

■起動の仕方。(ちなみにインストールすると自動起動になっている)
# /etc/rc.d/init.d/openvpn start
# /etc/rc.d/init.d/openvpn stop
# /etc/rc.d/init.d/openvpn restart

■Windows openvpnクライアントのインストール。
http://www.openvpn.jp/ からopenvpn gui for windowsをダウンロード。

全てデフォルトでインストール。

[スタート]-[全てのプログラム]-[openVPN]-[OpenVPN Sample Configuration Files]で
sample-configフォルダを開き、configフォルダにサーバーで作ったCA証明書、クライアント証明書、鍵をコピーする。
(例 client1.crt -> client.crtへファイル名変更、client1.key->client.keyへファイル名変更)
ca ca.crt
cert client.crt
key client.key

[スタート]-[全てのプログラム]-[openVPN]-[OpenVPN configuration file directory]でconfigフォルダを開く。
sample-configフォルダから、client.ovpnファイルをconfigフォルダにコピー。

コピー後、client.ovpn内の鍵ファイルの名前と,サーバー名を修正する。
;remote my-server-1 1194
先頭の";"を削除してmy-server-1をサーバー名かサーバーのIPアドレスに書き換える。

■Windowsファイアウオールの設定。
[コントロールパネル]の[Windowsファイアウォール]の[詳細設定]で
openvpnのインストールに伴ってできたローカルエリア接続のファイアウォールからはずす
(チェックをはずす).

■VPN接続
[スタート]-[全てのプログラム]-[openVPN]-[OpenVPN GUI]でopenvpnを開始し
タスクバーの通知領域のアイコンを右クリックして,[client]に[接続]する

■LS-GLのsambaを使う
サーバーの設定ファイルで,アドレス体系10.8.0.0/255.255.255.0がopenvpnに割り当てようになっているので、サーバーのアドレスは10.8.0.1になっている。
このアドレスでアクセスできる。
なお、IPアドレス体系を修正するには、/etc/openvpn/server.confを修正する。

■ADSLルータの設定
ルータ側は、NATでUDPポート番号 1194 を対象のサーバーへ向ける必要がある。

使用しているADSLルータ Aterm  WD701CV では、
  詳細設定 - ポートマッピング設定で
  変換対象プロコトル=UDP
  変換対象ポート = 1194
  宛先アドレス = 192.168.1.XX  (LS-GLのIPアドレス)
でポートアドレスをopenvpnサーバーであるLS-GLの設定を行う。

| | コメント (0) | トラックバック (0)

LS-GL(debian Lenny) でpptpサーバー構築、その2

LS-GLでPPTPサーバーを構築しようとしてppp_mppeのロード
# insmod ppp_mppe.ko
これがエラー。モジュール ppp_mppe.koがないのに気づく。

つまり、カーネルをコンパイルして、モジュールを作る必要がある。
ちなみにLS-GL debian lenny のカーネルバージョンは、2.6.29 なのだが、ソースは。2.6.26しかないので、2.6.26 ベースでブートイメージとmodulesを作ってみた。

参考にしたページ
http://d.hatena.ne.jp/irasya/20100111/1263213868
http://k355566687.blogspot.com/2010/04/blog-post_23.html

パッケージ一覧情報の更新をする
# aptitude update

必要なツール、ライブラリをインストール
# aptitude install build-essential bzip2 libncurses5-dev git-core fakeroot initramfs-tools kernel-package module-assistant devscripts uboot-mkimage devio

カーネルソースの入手
# aptitude install linux-tree-2.6.26

ソースのビルド
# cd /usr/src/linux-source-2.6.26

debian用のパッチをあてる
# /usr/src/kernel-patches/all/2.6.26/apply/debian
....
  (+) OK   bugfix/all/nfs-aio-fix-use-after-free.patch
  (+) OK   bugfix/all/md-fix-bug-with-re-adding-of-partially-recovered-device.patch
  (+) OK   bugfix/all/md-fix-bug-with-re-adding-of-partially-recovered-device-regression.patch
  (+) OK   bugfix/x86/flush-tlb-if-pgd-entry-is-changed-in-pae-mode.patch
  (+) OK   bugfix/all/ext3-skip-orphan-cleanup-on-rocompat-fs.patch
  (+) OK   bugfix/all/cciss-fix-lost-command-issue.patch
  (+) OK   bugfix/all/cifs-check-that-last-search-entry-resume-key-is-valid.patch
  (+) OK   bugfix/all/cifs-fix-saving-of-resume-key-before-CIFSFindNext.patch
  (+) OK   bugfix/all/vm-fix-vm_pgoff-wrap-in-upward-expansion-regression.patch
--> 27 fully applied.

/bootパーティションをマウント
# mount -t ext2 /dev/sda1 /boot

オリジナルのconfigファイルをコピー。
# cp arch/arm/configs/orion5x_defconfig .config

Makefileを変更、EXTRAVERSIONに -cocoro.ppp を追加
EXTRAVERSION = -cocoro.ppp 

カーネルの設定
# make oldconfig

... デフォルトでずっとENTER、以下だけ変える。

Buffalo Linkstation Pro/Live (MACH_LINKSTATION_PRO) [N/y/?] (NEW) Y

... 後も終わるまでずっとENTER

使用するモジュールの設定
# make menuconfig

[Device Drivers]->[Network device support]にある
<M> PPP (point-to-point protocol) support
として
[*] PPP multilink support (EXPERIMENTAL) (NEW)
[*] PPP filtering (NEW)
<M> PPP support for async serial ports (NEW)
<M> PPP support for sync tty ports (NEW)
<M> PPP Deflate compression (NEW)
<M> PPP BSD-Compress compression (NEW)
<M> PPP MPPE compression (encryption) (EXPERIMENTAL) (NEW)
<M> PPP over Ethernet (EXPERIMENTAL) (NEW)
<M> PPP over L2TP (EXPERIMENTAL) (NEW)

他はそのまま。

コンパイル作業、(devioの>はリダイレクトではないらしい。)
# make clean
# make zImage; make modules; make modules_install
# devio > foo 'wl 0xe3a01c06,4' 'wl 0xe3811031,4'
# cat foo arch/arm/boot/zImage > zImage
# mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n 'Linux-2.6.26-cocoro-ppp' -d zImage /boot/uImage-2.6.26-cocoro-ppp
Image Name:   Linux-2.6.26-cocoro-ppp
Created:      Fri Nov 11 22:38:09 2011
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    1789232 Bytes = 1747.30 kB = 1.71 MB
Load Address: 0x00008000
Entry Point:  0x00008000

ブートパーティションに置く
/boot/uImageはシンボリックリンクなので一度削除して張りなおす。
# cd /boot
# rm uImage
# ln -s uImage-2.6.26-cocoro-ppp uImage

終わったら、再起動。
# shutdown -r now

uname でカーネルバージョンを確認
# uname -a
Linux LS-GL 2.6.26-cocoro.ppp #1 PREEMPT Fri Nov 11 01:03:15 JST 2011 armv5tel GNU/Linux

lsmodでロードされているか確認
#lsmod
Module                  Size  Used by
ppp_synctty             7392  0
ppp_async               8960  0
ppp_deflate              4928  0
ppp_generic            23572  3 ppp_synctty,ppp_async,ppp_deflate
slhc                      5504  1 ppp_generic
pcbc                      3584  0
ecb                        2752  0
crypto_blkcipher      15972  2 pcbc,ecb
crypto_algapi          14304  3 pcbc,ecb,crypto_blkcipher

なんか逆にモジュールが足りなくなった。その上、ppp_mppeがロードされてない。
pcbc, ecbはロードされてんだけどなあ。

tunやbridgeがないのが原因か?再度 menuconfig で修正してカーネルビルド

# cd /usr/src/linux-source-2.6.26
#make menuconfig

以下の設定を画面から選択
  Networking  --->
    Networking options  --->
       [*] TCP/IP networking
       [*]   IP: multicasting
       [*]   IP: advanced router
            Choose IP: FIB lookup algorithm (choose FIB_HASH if unsure) (FIB_HASH)
       [*]   IP: policy routing
       [*]   IP: equal cost multipath
   ....
       <M>   IP: tunneling
       <M>   IP: GRE tunnels over IP
       [*]     IP: broadcast GRE over IP
   ....
       <M>   IP: AH transformation
       <M>   IP: ESP transformation
       <M>   IP: IPComp transformation
       <M>   IP: IPsec transport mode
       <M>   IP: IPsec tunnel mode
       <M>   IP: IPsec BEET mode

ついでに、iptablesのフィルタ関係を追加。
  Networking  --->
    Networking options  --->
      [*] Network packet filtering framework (Netfilter)  --->
        [*]   Bridged IP/ARP packets filtering
        Core Netfilter Configuration  --->
          以下選べるの全部チェック
        IP: Netfilter Configuration  --->
          以下選べるの全部チェック
        Bridge: Netfilter Configuration  --->
          以下選べるの全部チェック

ブリッジ使う前提で入れる。
  Networking  --->
    Networking options  --->
    <M>  802.1d Ethernet Bridging

  Device Drivers  --->
    Network device support  --->
    <M>  Universal TUN/TAP device driver support

再度ビルド作業
# make zImage; make modules; make modules_install
# devio > foo 'wl 0xe3a01c06,4' 'wl 0xe3811031,4'
# cat foo arch/arm/boot/zImage > zImage

/bootをマウントして、uImageを置き換え
# mount -t ext2 /dev/sda1 /boot
# mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n 'Linux-2.6.26-cocoro-ppp' -d zImage /boot/uImage-2.6.26-cocoro-ppp
# cd /boot
# rm uImage
# ln -s uImage-2.6.26-cocoro-ppp uImage

再起動して再度試す。
# shutdown -r now

ロードされたモジュールの確認
# lsmod
Module                  Size  Used by
ppp_synctty            7392  0
ppp_async              8960  0
ppp_deflate             4928  0
ppp_generic            23572  3 ppp_synctty,ppp_async,ppp_deflate
slhc                       5504  1 ppp_generic
pcbc                      3584  0
ecb                        2752  0
crypto_blkcipher     15972  2 pcbc,ecb
crypto_algapi          14304  3 pcbc,ecb,crypto_blkcipher
tun                        9764  0
bridge                    51968  0

状況変わらず、他が原因か・・・試しに depmod を実行

# depmod -a
# modprobe ppp_mppe
FATAL: Error inserting ppp_mppe (/lib/modules/2.6.26-cocoro.ppp/kernel/drivers/net/ppp_mppe.ko): No such device

他に原因があるに違いない・・・ググって、以下のモジュールをロードするとうまくいった。

# modprobe crypto_algapi
# modprobe arc4
# modprobe sha1
# modprobe cryptomgr
# modprobe cbc
# modprobe pcbc
# modprobe ecb

それで、結局、/etc/modulesは以下の内容へ変更
----------------------------------------------------------------------
# Parameters can be specified after the module name.
bridge
tun
crypto_algapi
arc4
sha1
cryptomgr
cbc
pcbc
ecb
ppp_generic
ppp_deflate
ppp_async
ppp_mppe
ppp_synctty

alias ppp-compress-18 ppp_mppe
alias ppp-compress-21 bsd_comp
alias ppp-compress-24 ppp_deflate
alias ppp-compress-26 ppp_deflate
----------------------------------------------------------------------

再起動して、確認
# lsmod
Module                  Size  Used by
ppp_synctty            7392  0
ppp_mppe               7044  0
ppp_async               8960  0
ppp_deflate             4928  0
ppp_generic            23572  4 ppp_synctty,ppp_mppe,ppp_async,ppp_deflate
slhc                       5504  1 ppp_generic
ecb                        2752  0
pcbc                      3584  0
cbc                        3392  0
crypto_blkcipher      15972  3 ecb,pcbc,cbc
cryptomgr               2720  0
sha1_generic            2336  0
arc4                      1696  0
crypto_algapi          14304  7 ecb,pcbc,cbc,crypto_blkcipher,cryptomgr,sha1_generic,arc4
tun                       9764  0
bridge                   51968  0

結論)
ppp_mppeがロードできるようになるには、暗号関係(cryptomgr,sha1_generic,crypto_algapi)をロードさせることが必要。bridge やtunは関係なし。

また、後で気づいたのが、使用しているADSLモデム Aterm WD701CVは、VPNパススルーとうたっているが、GRE(プロコトル番号=47)のNAT対応がされていなかった。これじゃ外部からアクセスできない。

2012/04/30 しかし、GREのNATが出来なくても、高度な設定で、DMZホストの登録機能があった。以下の設定をAterm WD701CVで設定
・DMZホスト機能=使用する
・DMZホストの配置=LAN側
・DMZホストのIPアドレス=Linkstation のIPアドレス

後は、ポートマッピングで、TCP / 1723 をLinkstation のIPアドレスに仕向けるだけで
OKでした。

| | コメント (0) | トラックバック (0)

LS-GL(debian Lenny)でpptpサーバー構築、その1

下記のURLの内容を参考に行ったが、うまくいかなかった。
原因は、モジュール ppp_mppe.koがなかったため。

参考)http://d.hatena.ne.jp/irasya/20100111/1263213868

インストールしているOS=Debian GNU/Linux 5.0 Lenny

pptpdのインストール

# aptitude install pptpd


/etc/sysctl.confの修正
# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
と先頭の#を消してコメントアウト化。

pptpd設定ファイル(/etc/pptpd.conf)の内容

最後に追加

option /etc/ppp/options.pptpd
localip  192.168.1.201-210
remoteip 192.168.1.211-220


pptpdオプションファイル(/etc/ppp/options.pptpd)の内容

新規に作成

lock
nodefaultroute
name godmelon-pptp
auth
proxyarp
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns  192.168.1.1
#ms-wins 192.168.1.1
debug
nobsdcomp
novj
novjccomp
logfile /var/log/pptpd.log

認証ユーザ設定ファイル(/etc/ppp/chap-secrets)の内容
userid            *      password               *
※userid, password は、書き換える。

必要なモジュールを読み込ませる(/etc/modules)

bridge
ipv6
tun
ecb
pcbc
ppp_generic
ppp_deflate
ppp_async
ppp_mppe
ppp_synctty

alias ppp-compress-18 ppp_mppe
alias ppp-compress-21 bsd_comp
alias ppp-compress-24 ppp_deflate
alias ppp-compress-26 ppp_deflate

再起動

netstat でポートがオープンされているか確認

# netstat -tul
tcp        0      0 *:1723                  *:*                     LISTEN

記述したモジュールがロードされているか確認

# lsmod
Module                  Size   Used by
ppp_synctty            7392   0
ppp_async               8960  0
ppp_deflate             4928   0
ppp_generic            23572  3 ppp_synctty,ppp_async,ppp_deflate
slhc                       5504   1 ppp_generic
pcbc                      3584  0
ecb                        2752   0
crypto_blkcipher     15972   2 pcbc,ecb
crypto_algapi          14304  3 pcbc,ecb,crypto_blkcipher
tun                        9764   0
bridge                   51968  0

あれっ、記載しているppp_mppeが出てこない。

初期インストールのdebian lennyのカーネルには、ロードモジュールppp_mppe.ko がないことが判明。

| | コメント (0) | トラックバック (0)

2011年11月 6日 (日)

EM51のハードウェアキーにHOMEを追加する

EM51には、ハード的なHOMEキーがない。これがとても残念。

出来れば、センターの十字キーの真ん中のボタンをHOMEキーにしたい。

それでキー定義を調べてみた。どうやら下記のファイルらしい。

/system/usr/keylayout/telechips_keypad.kl

android market からダウンロードした keyevent display から

十字キーのセンターキーを押してみると、

キーコードは、66、スキャンコードは、28

キーコード一覧をみると 66は、 0x0042 KEYCODE_ENTER と定義されている。

http://start-android-sdk.blogspot.com/2010/05/android-keyevent-keycode-list.html

となっている。

ということは、

telechips_keypad.kl に記載されている

key 28 ENTER


key 28 HOME WAKE

に変更すればいいのではなかろうか? …試してみたら、出来た。

手順は、以下の通り

C:\> adb shell

# cp /system/usr/keylayout/telechips_keypad.kl /sdcard

/sdcardのtelechips_keypad.klをWindowsのエディタで修正する。

key 28 ENTER

の行を

key 28 HOME WAKE

に書き換えて保存します。

その後は、adb shell でオリジナルのバックアップを取りつつ

# cd /system/usr/keylayout/
# cp telechips_keypad.kl telechips_keypad.kl.org
# cp /sdcard/telechips_keypad.kl .

を行って、再起動で完了です。

| | コメント (0) | トラックバック (0)

2011年11月 5日 (土)

EM51にCyanogenMod 7/ClockworkMod Recovery 5を入れてみた

ダウンロードサイトは、http://androtab.info/telechips/cyanogenmod/

CyanogenMod 7とは、gingerbread(andorid 2.3.7)をベースにしたカスタムROM

CPU=TCC8902/8803で実装しようというプロジェクトがあるようで、EM51も動作対象。

current status (2011/10/29)をみると、動かないものとして
①3G
②bluetooth
③camera
④hardware accelerated video
⑤GPS
⑥HDMI

となっている。

④は非常に残念。ハードウェアアクセラレーションが有効でないと
動画の再生は無理。youtubeなどが使えない。

また、EM51では、以下の課題(issue)も記載されている

サスペンド/レジューム機能

電源を入れたまま、しばらくほっておくと、サスペンド状態になります。
この後、タッチパネルやキーを押しても、ディスプレイは元に戻りません。

なので、現状
・サスペンドに入る時間を最大の30分にしておく
・もしサスペンドになったら、後ろのリセットボタンで電源OFFにする。
という回避策ぐらしか見つかりません。

またこのファームウェアでは、android marketが入っていないので、以下のサイトから
ダウンロードしておきます。
http://wiki.cyanogenmod.com/index.php?title=Latest_Version#Google_Apps

いろいろ課題はありますが、それでも使う価値があります。

①HOMEボタンがないEM51で仮想的にボタンを用意することができます。
 cyanogenmodの設定でソフトボタンの選択が可能です。
 左上にホームのアイコンが出てきます。

Device1


②画面回転を制御できます。オリジナルのEM51は、4方向回転の機能があって
 使ってると、出来がよいのか悪いのか分からないほど画面がくるくる回ります。
 これが縦と横だけの2方向の設定が可能になります。

Device2


この2点がとても重宝していて、標準では、解像度=160で細かすぎて使いづらいので
以下のように解像度=200に変更して使っています。

Device4


※解像度の変更についてはまた後日。


| | コメント (0) | トラックバック (0)

« 2011年6月 | トップページ | 2011年12月 »