td2sk の日記

技術メモとかゲームとか

Android L preview for HTC J 作業メモ

現状

  • adb shellで接続可能
  • 一定周期で砂嵐表示、ブートせず
    • copybitなど画面系の初期化で失敗

コード取得手順

コード編集概要

  • Makefileのリネーム
  • gps, librilなどビルドがコケるモジュールの削除
  • 存在しないヘッダを適当にコピー
  • 未定義定数を適当に修正

感想

手抜き移植で動けばいいやと思ったけれど、それほど簡単じゃなかった

CM11 for J メモ

ちゃんとしたマージには時間がかかる。
手抜きマージでも adb 動作まではできたので、とりあえず作業メモ。

置換

  • arch/arm/ 以下のファイル名 ville を、すべて valente_wx にリネーム
  • 以下 sed で置換
    • VILLE_SAMSUNG -> VALENTE_SAMSUNG
    • VILLE -> VALENTE_WX
    • ville -> valente_wx

GPIO

  • board-valente_wx.h

ここまでやれば、最低限の動作に必要な処理は完了
後はコンパイルエラーになる部分を適宜修正していく

GPIO

  • board-valente_wx.h
    • GPIO の定義部分について VALENTE_WX -> VALENTE_WX_GPIO に置換
    • PMGPIO の定義部分について、 VALENTE_WX -> VALENTE_WX_PMGPIO に置換
    • SDA -> DAT,SCL -> CKL など、postfix を適宜置換

PMGPIO -> GPIO

  • PMGPIO に定義されているが GPIO で定数参照されているもの
    • M8921_GPIO_PM_TO_SYS(pmgpio) でPMGPIO -> GPIO に変換

その他

バイス定義ファイル

  • ville -> valente_wx
  • あと適当

それでもエラーが出るところ

  • 適当に頑張る

Raspberry pi に Arch Linux を入れる

    _ /⌒ヽ
 / /  ̄ `ヽ
/  (リ从 リ),)ヽ
l | |  . ' .Y |
(  " ヮ " ねんがんの Raspberry pi B を 手に入れたぞ
 ヽ`>、_ .ノ_ノ
l (⌒) [水] l
l / └n/l二二二.l
リ/ `ー-`// sagawa /)

というわけで初期設定をメモる。

OSの準備

Downloads | Raspberry Pi
上のリンクからArch Linuxのイメージをダウンロードする。
WindowsならWin32DiskImager、Linuxならddを使って、SDカードにイメージを書き込む。

SDカードの準備ができたら、適当な入出力機器をつないで電源投入。
初期ID/password は root/root。

パーティションの拡張

標準のイメージは2GBのSDカードに合わせて作られている。
より大きいSDカードを用いる場合は、領域をフルに使えるようパーティションを切り直す。

$ fdisk /dev/mmcblk0
# パーティションを確認
> p

# 以下、一度パーティションを削除し、元と同じ配置で切り直す
# ブロック開始/終了位置をデフォルトにすることで
# 元のパーティションの内容を維持したまま、最大容量に拡大できる

# mmcblk0p2 を削除
> d
> 2
> (以降デフォルト値)

# mmcblk0p2 をextendで作成
> n
> e
> (以降デフォルト値)
# mmcblk0p5 をlogicalで作成
> n
> l
> (以降デフォルト値)

# 保存
> w

$ reboot

# 再起動後、パーティション情報を更新する
$ resize2fs /dev/mmcblk0p5

アップデート

pacman -Syu 実行後に起動しなくなる現象が発生。
関係あるかは不明だが、 filesystem のみ後回しにすることで正常にアップデートできた。

$ pacman -Syu --ignore filesystem
$ reboot

# 再起動後
$ pacman -S --force filesystem

おまけ

1000円で買える、16GB class10のmicroSDHC + アダプタセット

シリコンパワー microSDHCカード 16GB class10 アダプタ付 永久保証 ブラック SP016GBSTH010V10SP

シリコンパワー microSDHCカード 16GB class10 アダプタ付 永久保証 ブラック SP016GBSTH010V10SP

HTCにISW13HTのソースコードを公開するよう問い合わせてみた

俺:さっさと出さんか

HTC:もう公開しています

俺:最新版出てない

というやりとりの後の返信。
誤解を招かないよう、改変なく転載します(メール末尾の定型文除く)

Dear td2sk,

Thank you for contacting HTC Japan Corporation.

With regards to your enquiry,
We are sorry that the latest kernel source code version 2.05.970.3
for "HTCJ ISW13HT" is not yet prepared.

Once it is prepared, You can find it at HTC Developer Center website.

■HTC Developer Center
http://www.htcdev.com/devcenter/downloads

※Your device "HTCJ ISW13HT" is customized by local carrier au.
When they allow and request HTC to make public the kernel source code,
Finally HTC could prepare it at HTC Developer Center website.

We are sorry for any inconvenience to you.
Thank you for your continuous support of our products and services.
Should you require further assistance, please do not hesitate to contact us again.

We look forward to be of service to you again.

Linuxカーネル出すのにauの許可が必要とはこれいかに
アップデート配信からもう4ヶ月なので、そろそろ準備完了してくださいな。

Rails4の導入 その4 zeus

zeus

Railsコマンドは、実行のたびにライブラリ一式をロードするので
単純な処理でさえ数秒待たされる。
zeusはプリロードによって、この時間を短縮してくれる。

zeusはプロジェクトローカルではなく、システムへの導入が推奨されている。

# zeusのために、jsonとrakeをバージョンアップ
# プロジェクト固有のバージョンに合わせる?
$ gem install json rake

# zeusのインストール
$ gem install zeus
$ rbenv rehash
zeusの起動

zeusを使うプロジェクトのディレクトリで、以下のコマンドを実行する

# 一度だけ行う。 設定ファイル zeus.jsonが生成される
$ zeus init

# zeusを起動
$ zeus start

zeusを使うため、別の端末を起動する。
rails hoge というコマンドの代わりに、zeus hoge とすればよい
また、rakeの代わりにzeus rakeが使える。

速度
# 古いノートPCで計測。参考値
$ time bundle exec rails g controller test test
bundle exec rails g controller test test  4.12s user 0.45s system 95% cpu 4.755 total

$ time zeus g controller test test
zeus g controller test test  0.09s user 0.06s system 23% cpu 0.618 total

Rails4の導入 その3 プロジェクト作成

rails new

前回導入したRails4を使い、プロジェクトを作成する。

# 下記コマンド実行中、以下の質問は y (or Enter) 
# Overwrite /home/note/workspace/pj/Gemfile?
bundle exec rails new . --skip-bundle

Gemfileの修正

Rails4のベータ版では、Gemfileの修正が必要になる。

# gem 'rails', '4.0.0' を、次行で置き換え
gem 'rails', github: 'rails'

# gem 'coffee-rails', '~> 4.0.0.beta' を、次行で置き換え
gem 'coffee-rails', github: 'rails/coffee-rails'

# gem 'sass-rails',   '~> 4.0.0.beta' を、次行で置き換え
gem 'sass-rails',  github: 'rails/sass-rails'

全ての置き換えが完了したら、bundle installを実行する。
その2同様、環境変数RUBY_VERSION_NAMEを指定すること。

# bundle install --path vendor/bundleを一度実行すれば
# 二回目からはpath指定は省略可能
$ bundle install

Railsの起動確認

動作確認のため、サーバーを起動してみる。
bundleで導入したバイナリには、bundle execでアクセスする。

$ bundle exec rails server

ブラウザから localhost:3000 にアクセスして
Welcome aboardが表示されることを確認する。

その4に続く

おまけ 置き換えの自動化

RailsのApplication Templateを使って、上記の書き換えを自動化できる。
各々のテンプレートに以下を追記する。

rename_pair = {
  'rails' => 'rails',
  'sass-rails' => 'rails/sass-rails',
  'coffee-rails' => 'rails/coffee-rails'}

rename_pair.each do |pkg_name, repository_name|
  gsub_file 'Gemfile', /^(\s*)gem '#{pkg_name}'.*$/, "\\1gem '#{pkg_name}', github: '#{repository_name}'"
end

これをapp_temp.rbなどとして保存し、railsに渡す。
この場合、skip-bundleは必要ない。

$ bundle exec rails new . -m app_temp.rb