Rstream A1をCM7.1にしてカメラとか使う手法 2012/01/03版

Rstream A1をCM7.1にしてカメラとか使う手法 2012/01/09版にて新しいkernel適用手順を案内しています。

—- 以下は古い手順です —-
いままでRstream A1にCyanogenMod7.1をインストールした場合、カメラが全く動かないという現象が発生していました。
このたび、at_not_foundさんにより、この現象を回避する方法が開発されました。
要点としては
・どうやら他の類似機種とカメラとボタン周りのハードウェアが違う(MUCHTEL A1全般が?)
・カーネルとカメラドライバ周りをMUCHTEL A1に併せて再構成
といった感じです。

いまのところ、「終話ボタン(6)で、画面が消えるスリープモードに入ってしまう」と「検索キー(2)がバックキー扱いになる」、という問題がありますが、それ以外はおおむね良好そうな感じで動作中です。

なお、終話ボタンの動作については、「Spare parts」の「End button behavior」を変更することで、スリープにしないという動作をさせることができます。(情報元:500yen さんより「Rstream A1 + CM7.1 で終話ボタンでスリープする動作は Spare Parts の End button behavior で変更が出来ました」)

以下に手順をMUCHTEL A1純正Android 2.2.2にアップデートするところから手順を書いていきます。
すでにCyanogenMod7が適用されている場合は、手順8から行ってください。

(2011/01/04手順修正:ROM Managerからアップデート差分を適用する手順に変更しました)

手順1
とりあえず、MUCHTEL A1純正Android 2.2にあげる。
いまのところ、どんな状態になっても、電源を切って、「ボリュームUP」+「ボリュームDOWN」を押しながら電源を入れて入るFTMモードになり、その状態でMUCHTEL版SUT1.7.4を実行すれば、かならずAndroid 2.2.2になることは確認している。

詳しい手法はRstream A1にMUCHTEL A1純正 Android 2.2を書き込むを参照のこと。

手順2
上記のAndroid 2.2が起動している状態でCM7の.nb0形式のfirmwareを書き込む。
今回使ったのはBoston Maniaの[Rom 2.3.4] CyanogenMod 7 EA v1 (nb0) である。
([Rom 2.3.4] CyanogenMod 7 EA v3 (nb0) でも確認したが、電源オンロゴがBostonになる)
なお、書き込み後は、以下の状態となる。

CyanogenMod 7 EA v1の場合
モデル番号: Z71
Androidバージョン: 2.3.4
ベースバンドバージョン: MP1_850
カーネルバージョン: 2.6.32.9-SuperAosp root@CML#1
Modバージョン: CyanogenMod-7_EAv1
ビルド番号: GRJ22
ClockworkMod Recovery v2.5.1.3
電源投入直後のロゴが「Android」

CyanogenMod 7 EA v3の場合
モデル番号: Boston
Androidバージョン: 2.3.4
ベースバンドバージョン: MP1_850
カーネルバージョン: 2.6.32.9-SuperAosp root@CML#1
Modバージョン: CyanogenMod-7_EAv3
ビルド番号: GRJ22
ClockworkMod Recovery v4.0.0.5
電源投入直後のロゴが「Bonston」

また、どちらも「フロントパネルのボタン動作がいままでと違う割り当てになる」「カメラが動かない」という問題は発生する。

書き込みには、SUT 1.7.0をパソコンにインストールし、CM7の.nb0タイプのfirmwareを書き込む、という手法を使う。
標準のRecoveryにある「Download nb0 from sdcard」では、上記にあげたnb0ファイルは正当なものとして認識してくれなかった。
また、MUCHTEL版のSUT 1.7.4は、FTMモードで書き換えを行うが、SUT1.7.0では、Android OSが起動している状態でないと、ツールが認識してくれなかった。
このため、正常に起動しない状況に陥っている場合は、必ずMUCHTEL A1版に戻す必要がある。

手順3
ROM Managerの動作要件を満たすため、ネットワークにつながる設定(ClockworkMod recoveryとかをダウンロードする)、と、Android Marketの設定(ROM Managerを最新版にして、CM7.1のzipファイルダウンロードを可能とするため)を行う。
後者のAndroid Marketの設定はCM7.1のzipファイルを別途ダウンロードしてくるのであれば、不要。

手順4
ROM Managerを起動する。

手順5
ROM Managerから、「ClockworkMod Recoveryを導入」を実行。
機種はCommtiva Z71を選択する。

手順6
「ROMをダウンロード」を選択し、
Freeのくくりにある「CyanogenMod」を選択し、「CyanogenMod 7.1.0」を選択して、ダウンロード。
「ROM Pre-Installation(ROMインストール前処理)」では「Wipe Dalvik Cache」のみ選択。

なお、ここでダウンロードできるCyanogenMod 7.1.0ではなく、[Rom 2.3.7] CyanogenMod 7 EA v7.2 (zip) でも良い。(個人的にはこっちのカスタマイズ具合の方が好みですが、手順9以降のROM Manager操作が動作しません。その場合、手順Aを行ってください。)
こちらを行う場合はROM Managerで「SDカードからROMをインストール」を選択し、SDCARDにコピーした上記のzipファイルを指定する。

手順7
再起動し、Recoveryモードで自動実行される。
完了すると、再起動する。

起動が完了すると以下の表記でブートしているはず。
モデル番号: Z71
Androidバージョン: 2.3.7
ベースバンドバージョン: MP1_850
カーネルバージョン: 2.6.35.13-Cyanogenmod rmcc@glskard #1
Modバージョン: CyanogenMod-7.1.0-Z71
ビルド番号: GWK74
ClockworkMod Recovery v2.5.1.3
電源投入直後のロゴは、先ほどの状態がそのまま維持される。

CyanogenMod 7 EA v7.2の場合は以下となる。
モデル番号: Boston
Androidバージョン: 2.3.7
ベースバンドバージョン: MP1_850
カーネルバージョン: 2.6.32.9-EA edgar@ubuntu #37
Modバージョン: CM7.1_EAv7.2
ビルド番号: GWK74
ClockworkMod Recovery v4.0.0.8

「フロントパネルのボタン動作がいままでと違う割り当てになる」「カメラが動かない」という問題は直っていない状態。





手順8
CM7.1をMUCHTEL A1用に修正するファイルをSDカードにコピーする。
これに含まれる修正は以下です。
・MUCHTEL A1向け修正kernel
・MUCHTEL A1向け修正libcamera
・MUCHTEL A1向け修正qwerty.klファイル
・日本語フォント(モトヤ)

修正ファイル:update.zip形式のkernel修正+カメラ修正+qwerty.kl修正ファイル+日本語フォントをダウンロードする。

手順9
手順8でダウンロードしたmuchtela1-cm7-custom-afnf33.zipを、/sdcard/にコピーする。

手順10
ROM Managerを起動する。
なお、RecoveryのバージョンがClockworkMod Recovery 2.5.1.3以外である場合、この後の手順が正常動作しません。
手順5と同様に「ClockworkMod Recoveryを導入」から機種は「Commtiva Z71」を選択し、ClockworkMod Recoveryを2.5.1.3にしてから以下の手順を行ってください。
もしくは、手順10~12の代わりに手順Aを行ってください。

手順11
「SDカードからROMをインストール」を選択し、先ほどコピーしたmuchtela1-cm7-custom-afnf33.zipを指定する。
「ROM Pre-Installation(ROMインストール前処理)」では「Wipe Dalvik Cache」のみ選択。

手順12
再起動し、Recoveryモードで自動実行される。
完了すると、再起動する。

作業完了後は「カーネルバージョン: 2.6.35.13.rstream-a1 afnf@ubuntu #33」になる。
(それ以外の情報は、手順7終了時と同じとなる)


手順A
ClockworkMod Recoveryを直接操作して、アップデートzipを適用します。
1. 電源をオフします。
2. 「ボリュームUP」と「シャッターボタン」を押しながら電源を入れ、Recoveryモードに入ります。
3. 「ボリュームUP」をうまく押して「install zip from sdcard」に合わせます。(ボタンを1回押すと2つ進むが、押しっぱなしにすると1つしか進まない)
4. 「シャッターボタン」を押します
5. 「choose zip from sdcard」が選択されていることを確認し、「シャッターボタン」を押します
6. 「ボリュームUP」か「ボリュームDOWN」をうまく操作し、先ほど転送したmuchtela1-cm7-custom-afnf33.zipに合わせます。。(ボタンを1回押すと2つ進むが、押しっぱなしにすると1つしか進まない)
7. 「シャッターボタン」を押します
8. 適用が開始されるので、終わるのを待ちます。終わると、再度「choose zip from sdcard」のところになります。
9. 何回かボリュームUPを押していると「Back menu button enabled.」という表示が出ます。
10. でたら、何か当たりさわりがないところを選び「シャッターボタン」を押します。
11. そうすると、「+++++Go Back+++++」という項目が増えるので、そこにカーソルを合わせ、
  最初のメインメニューに戻り、「reboot system now」を選びます
12. 終了

— 以下、資料用 —
【謎端末】Rstream A1【SIMフリー】の17~19より

17 : ◆afnf4199GA :2012/01/03(火) 03:01:54.89 ID:6+yJDTeh
CM7.1でカメラが動かない件の対処。

1. カーネルをrmcc(https://github.com/rmcc/commtiva-kernel-z71.git)から取得
2. arch/arm/mach-msm/board-fxx.cのI2C_BOARD_INFO(“ov5642af”, 0xFD)を0x3Cに書き換え
3. drivers/media/video/msm/msm_camera.c、sdata->flash_dataがnullなのでinfo.flash_enabled = 1;に変更
4. .configはmuchtel222から抜いたものをベースにoldconfigで修正したものを使用
5. カーネルビルド
6. CM7.1のinitramfsでブートイメージ生成
7. CM7.1を適用したデバイスに7をfastboot flash boot
8. CM7.1版の/system/lib/liboemcamera.soについて、文字列”00fd”を”003c”に書き換え
9. QualcommCameraHardware.cpp(https://github.com/CyanogenMod/android_device_commtiva_z71.git)を
  ov5642af向けに修正(picture_sizes-1、sensorTypes+1、ov5642→ov5642af)
10. mmでlibcamera.soを生成して/system/libに書き戻す

18 : ◆afnf4199GA :2012/01/03(火) 03:04:27.58 ID:6+yJDTeh
っていうのが面倒な人は、
http://www.mediafire.com/?fb2xjfa2jj4dbfc
sha1sum:e51899d08a660cd84898a1dc7879bb90ddf4dd93
これ落として、fastbootモードから以下を実行。

fastboot flash boot rstream-a1-mod33.img
fastboot reboot
→通常起動
adb shell mount -o remount,rw / /system
adb push libcamera.so /system/lib
adb push liboemcamera.so /system/lib
adb push qwerty.kl /system/usr/keylayout
adb shell chmod 644 /system/usr/keylayout/qwerty.kl
→もう一回再起動

3G通話、3Gデータ通信は未テスト。
終話キーでスリープになってしまう不具合有り。
他は大丈夫だと思う。

なんでこんな修正が必要なのかっていう所だけど、
少なくともカメラ周りとボタン周りはハードが違うみたい。
あとi2c fake addressってのもポイントだったが、これは良く分からん。

19 : ◆afnf4199GA :2012/01/03(火) 03:07:07.53 ID:6+yJDTeh
以上です。

誰か追試してくださいな。

“Rstream A1をCM7.1にしてカメラとか使う手法 2012/01/03版” への15件の返信

  1. 紹介ありがとうございます。
    ところで手順3ですが、EA v1のCWMを使ってSDcardからCM7.1を入れるのって不安定なんでしたっけ?
    私の環境ではうまくいっていました。

    1. それでも問題はないと思います。
      まぁ、CWMの操作がめんどいところがあるので、それを回避する方向性の手順って感じです。

        1. 当初、カメラ対応kernelを適用するときにROM Manager使う手順になってなかったのはうまくいかなかったから、
          だったのですが、検証したところ原因が判明したので、そこもROM Managerを使う手順に変更しました。

  2. はじめまして。
    いつもこのサイトにはお世話になっています。
    早速カメラの方法もやって見ます。

    よろしければ、osakanataroさんのこのサイトを自分のサイト(といってもWiki形式ですが)にリンクさせていただきたいのですがよろしいでしょうか。

    一応、リンクを貼っておきます。
    今、謎なのが解像度変更のページのところですので何かご存知であれば教えてください。
    変更には成功しているんですがなんかよくわからないうちに変わったので・・・。

    1. 解像度変更は意義を見いだせてないのでやってないのでわからんですねぇ

      1. そうですか・・・。
        なんかBusyBoxにやけに嫌われてるみたいで。
        setupsu.apkでもダメだったみたいです。

        リンクの方ははよろしいでしょうか?

  3. 引き続きありがたく使わせて頂いております。

    自分の環境だと、検索キーが戻るキーになってしまっている感じなので、qwerty.klファイルを弄ってみようと思い、色々と以前の記事を読ませて頂き調べてみたのですが、
    key 1 BACK WAKE_DROPPEDかkey 1 BACK WAKE_DROPPEDを
    SEARCH WAKE_DROPPEDとすればいいのかなと思ったのですが、KeyEvent Displayでそれぞれキーを押してみてもscancode217と出るので、素人考えではお手上げになった所です…

    長文かつ質問で申し訳ないのですが、解決法お分かりになりますでしょうか?

      1. お返事ありがとうございます。
        そうだったのですかorz
        他にはコンパスの動きがなんだか怪しかったりしてました。色々難しいみたいですね…

  4. はじめまして。
    一昨日、Rstream A1を購入したばかりのAndroid初心者です。
    本HPをみて、バージョンアップに挑戦してみました。

    手順7までは順調だったのですが、
    手順8の修正ファイル:update.zip形式のkernel修正+カメラ修正+qwerty.kl修正ファイル+日本語フォントをインストール後、
    Google系のアプリケーションを使用しようとすると、
    アカウント情報がないとエラーとなりました。

    「設定」にて確認をしたところ、エラー通りアカウント情報はなくなっていたので、アカウント情報を登録しようと思いましたが
    Googleアカウントの追加ができなくなっている(?)ようでした。

    本現象について、何か情報をお持ちでしょうか?
    恐れ入りますがご教授の程よろしくお願いいたします。

    1. その現象が起こったことないですねぇ。
      設定が初期化されてしまいますが、data/cache領域の初期化を行ってみるといったところですかね

      まずはcache領域の初期化。
      これは、設定やアプリ情報の初期化はされないはずだが、初回起動に時間がかかる
      1. 電源off
      2. ボリュームUP+シャッター+電源ON
      3. ClockworkMod Recoveryにはいる
      4. まずは「wipe cache partition」を選択して、キャッシュ削除
      5. 次に「advanced」に入り「Wipe Dalvik Cache」を選択して、Dalvik Cache削除
      6. 「Reboot Recovery」を選び、そして、「reboot system now」を選び再起動

      これで、一度使ってみてどうなるか
      だめなら、設定が初期化されるが、data領域を削除する
      1. 電源off
      2. ボリュームUP+シャッター+電源ON
      3. ClockworkMod Recoveryにはいる
      4. wipe data/factory reset を選択してデータ消去
      5. 「reboot system now」を選び再起動

      この後、1から設定を行う。

      それでも、うまく行かないようであれば、CM7にあげる時のSUTからのnb0書き込みが失敗しているので、最初(MUCHTEL A1 Android 2.2.2の書き込み)から手順をやりなおす。

  5. 早速のご回答ありがとうございました。

    再度、MUCHTEL A1 Android 2.2.2の導入から
    やり直したところ、無事、成功することができました。

    >/sdcard/にコピーします。

    やり直しの際、これまで上記指示を見落としており、
    SDカードの/downloadフォルダにあるzipを直接指定していたのですが、
    今回、SDカード直下にzipを保存して
    インストールしたところ成功できました。

    お騒がせいたしまして申し訳ございません。
    ご対応 誠にありがとうございました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください