Linux」カテゴリーアーカイブ

Android SmartWatch SmartQ ZWatch (5) debian

MIPS 版の debian があったので試してみました。

Linux on Android

Debian-MIPS.zip を解凍すると image file が 2GB になり
そのままでは内部ストレージから溢れます。
実際の容量は 200M くらいなので、500M の新しい image file を作って
中身を全部コピーしました。
/sdcard/debian の中に debian.img として入れています。

アプリは使いません。
起動スクリプト debian.sh (debian-script.zip) はそのままでは使えないので、
必要な箇所を書き換えて adb shell から直接実行しています。

adb shell では su で容易に root になれます。
最初から busybox も入っています。

system update 直後は /system が rw で mount されているので、
この状態なら chroot で Linux を起動できます。
Z Watch を再起動すると /system は ro に戻りますが、
下記公式ページのドキュメントにあるように rw で remount できます。

SmqrtQ Z Watch Programming Guide

device 名が異なるので、debian.sh の最初で mount (remount) している
命令を削除します。

#mount -o remount,rw /dev/block/mmcblk0p5 /system

cut, grep, sed, umount などの存在しない命令は、
前に busybox を挿入します。

perm=$(id|cut -b 5)
↓
perm=$(id|busybox cut -b 5)

image file のパスは直接変数 kit に代入します。

export kit=$(dirname $0)
↓
export kit=/sdcard/debian

あくまで動くだけ。
もしアプリが root 権限で走るなら、端末の terminal からも
実行できるでしょう。

関連エントリ
Android SmartWatch スマートウオッチのスペック比較表
Android SmartWatch SmartQ ZWatch (4) アプリの管理
Android SmartWatch SmartQ ZWatch (3) 腕に関数電卓
Android SmartWatch SmartQ ZWatch (2)
Android 4.1 SmartWatch SmartQ Z Watch

Nexus 7 (2012) Ubuntu desktop 上での開発とバッテリー設定

以前の記事以降、外出時の開発用 PC として Nexus 7 (2012) が活躍しています。
GUI 周りでは Unity の dash 画面 (半透明で全画面を覆うメニュー) が特に
重いですが、terminal を開いてコードを書いたり make する分には十分です。

nexus7_flview4.jpg

↑ 3D (OpenGL ES 2.0) も動きます。(開発中)

最近 OpenGL ES 3.0 のために Nexus 10 ばかり使っていて、
Ubuntu の Nexus 7 (2012) を放置していたら起動しなくなりました。
おそらくバッテリーの過放電でしょう。

きちんと確認しなかったのが悪いのですが、電源容量が低下した時の設定が
Power off ではなく、何もしない設定になっていたのだと思われます。
Sleep で放置していたので、使わない時は電源を切るか
Android でブートしなおしておいた方がよいかもしれません。

他の Nexus 7 (2012) に新たに Ubuntu を入れなおしました。
Android 4.3 に MultiROM で Ubuntu desktop 13.04 を入れましたが
いくつか問題がありました。

(1) factory image JWR66Y (Nexus 7 nakasi) で bootloader が書き込めない

 以前ダウンロードしておいた JWR66V が動いたのでこちらを使用しました。
 JWR66V の bootloader が書き込まれたあとは JWR66Y も適用出来るようです。

(2) TWRP_multirom_n7_20130830 で ubuntu desktop を install できない

 ubuntu の img.zip decode 時にエラーが出ています。
 一つ前のバージョン TWRP_multirom 20130825 ではうまくいきました。

電源容量低下時の設定は Power Off にしています。
その状態になってみないと確認できないので、ある程度は自己責任で使うことに
なるかと思います。

現在 Ubuntu desktop が動くのは Tegra3 の Nexus 7 2012年版だけです。

関連エントリ
Nexus 7 上に開発環境をつくる (3) Ubuntu
Nexus 7 上に開発環境をつくる (2) Bluetooth と OpenGL ES 2.0
Android Tablet Nexus 7 上に開発環境をつくる (Ubuntu)

Nexus 7 Ubuntu Touch Developer Preview (2)

Nexus 7 の MultiROM が Ubuntu touch 対応となっています。

xda: [WiFi&3G] MultiROM v8 (new recovery for Ubuntu Touch)

TWRP の新しいバージョン (2013/02/22以降) で

xda: Ubuntu touch preview

この手順に従い install 可能となりました。
Android, Ubuntu Desktop, Ubuntu Touch を共存させて
起動時に選択することができます。

これでタブレットの利用には Android を、
単体でのプログラミングなら Ubuntu Desktop を、
Ubuntu Touch UI やアプリのテスト時に Desktop Preview を起動できます。

Ubuntu Touch Developer preview は adb 経由で chroot することからもわかるように、
Android 上に install した chroot 版 Linux に近い構造となっているようです。
HW アクセラレート対応の UI が乗っており、
Android SDK の AVD のようにアプリケーションの動作確認に利用することができます。

Ubuntu をベースとした Tablet/Phone 向け OS なので、
Android のようにタッチによる操作がしやすくなっています。
ただし Touch UI 上で Linux アプリがそのまま使えるわけではないので、
新しいプラットフォームと考えた方が良いでしょう。
UI 上で Linux らしさを期待するなら、今のところは Desktop 版との使い分けが
ベストだと思います。

関連エントリ
Nexus 7 Ubuntu Touch Developer Preview
Nexus 7 上に開発環境をつくる (4) Ubuntu 13.04
Nexus 7 上に開発環境をつくる (3) Ubuntu
Nexus 7 上に開発環境をつくる (2) Bluetooth と OpenGL ES 2.0
Android Tablet Nexus 7 上に開発環境をつくる (Ubuntu)

Nexus 7 Ubuntu Touch Developer Preview

Nexus 7 等のモバイルデバイスで動く Ubuntu Touch を試してみました。
開発者向けです。

Ubuntu Touch

Nexus 7 には下記のように通常の desktop 版 Ubuntu もあります。

Android Tablet Nexus 7 上に開発環境をつくる (Ubuntu)

↓この二つは別物です。

◎ Nexus 7 で動く Desktop 版 Ubuntu
◎ Nexus 7 で動く Ubuntu Touch Developer Preview

Desktop 版は PC と同一の豊富なアプリケーションを動かすことができる反面、
タッチだけの操作は必ずしも使いやすいとはいえませんでした。
キーボードやマウスを繋げば快適で、超小型のパソコンになります。

Ubuntu Touch は Android や iOS のように、タッチ操作に特化した UI が入ります。
まだ開発者向けで、操作に HOST PC が必要となることがあります。(2013/02/22現在)

● install

Desktop 版 Ubuntu の native install と同じように、本体の Android OS を置き換える形になります。
(Android のデータは全部消えます。)
MultiROM が対応すれば、他の環境と共存できるようになるかもしれません。

Install

Ubuntu 上で走る installer が用意されています。
PC に Ubuntu が入っている状態なら上記の Install 手順に従うだけです。

コマンドは python で書かれているので、
手順がわかれば Windows から手動で入れることもできるかもしれません。

bootloader の unlock が必要です。
installer は fastboot だけでなく adb も使うので、
Android を起動し USB デバッグにチェックを入れておきます。

● UI

インストールが完了すると、端末上で Ubuntu Touch の UI を試すことが可能となります。

ReleaseNotes

UI 上でできることがまだ少ないですが、ReleaseNotes に
書かれているように USB + adb 経由でシェルにログインできます。

adb root
adb shell

端末上で shell が動いたらさらにコマンドを実行します。

ubuntu_chroot shell

これで ARM 版 Ubuntu 12.10 としてシェルが動きます。
ReleaseNotes にあるように ssh を入れておけば Wi-Fi 経由で login できます。

apt-get update 
apt-get install openssh-server 

普通の Linux コマンドを install できるようです。コンパイラとか動きます。
残念ながら ubuntu-sdk は入れられませんでした。

関連エントリ
Nexus 7 上に開発環境をつくる (4) Ubuntu 13.04
Nexus 7 上に開発環境をつくる (3) Ubuntu
Nexus 7 上に開発環境をつくる (2) Bluetooth と OpenGL ES 2.0
Android Tablet Nexus 7 上に開発環境をつくる (Ubuntu)

Nexus 7 上に開発環境をつくる (4) Ubuntu 13.04

先週の Nexus 7 Ubuntu 13.04 image で、
新規インストールができない問題が出ていたようです。
古いバージョンなら大丈夫で、手元では 2013/02/05 の image が正しく動いています。

xda: [WiFi&3G] MultiROM v8 – (4.2.2 kernel and 4.18 bootloader fix)

また MultiROM 環境の Ubuntu で、apt-get upgrade / dist-upgrade と
フル更新をかけると OS の起動に失敗するようになります。

こちらは TWRP の Recovery menu モードに入ってから
Advanced → MultiROM → List ROMs で 選択 → re-patch init
で修復できるとのことです。

>Re-patch init – this is available only for ubuntu. Use it when ubuntu
> cannot find root partition, ie. after apt-get upgrade which changed
> the init script.

Android 4.2.2 への更新が配信されていましたが、
自動で更新できなかったので手動で行いました。

Gadget 好きの忘備録: Nexus7を4.2.2にUpdate

こちらによれば Factory Image を書き込めば良いとのことです。
boot と recovery はどうせ置き換えるので、system だけ書き込んでみました。
アーカイブ内の bat ファイルでは全パーティションを erase していましたが
そのまま実行しています。あくまで自己責任でお願いします。
また MultiROM 対応の kernel も 4.2.2 用に置き換えています。

関連エントリ
Nexus 7 上に開発環境をつくる (3) Ubuntu
Nexus 7 上に開発環境をつくる (2) Bluetooth と OpenGL ES 2.0
Android Tablet Nexus 7 上に開発環境をつくる (Ubuntu)