« February 2008 | Main | April 2008 »

2008.03.31

[iPod touch]Cydia環境用Cron

2008.07.14: ハレタさんより、このパッケージを入れたことによりキーボードバグが発生したとのことなので、リポジトリからは削除しました。必要な方は以下からどうぞ。

http://homepage3.nifty.com/moyashi/ipodtouch/zips/cron-for-cydia-0.1-1_arm-apple-darwin.zip

BSD Subsystemを入れていないPureなCydia環境には、今のところcronがありません。

定期実行マニアの自分にはそれが寂しかったので、BSD Subsystemから持ってきたcron関連ファイルのみでパッケージを作りました。

野良リポジトリの「System>Cron for Cydia」です。

インストール後、Erica女史の「UIctl」で「com.apple.cron」を「load -w」してください。
アンインストール前には「unload -w」した方がいいかと思います。

登録は「crontab -e」です。

viを起動しますので、viもしくはvimをインストールしておく必要があるかと思います。

「/var/root/bin/test.sh」を5分ごとに定期実行をさせる場合は、以下のように登録をします。
この辺りは一般的なcron / crontabと同様です。

*/5 * * * * /var/root/bin/test.sh

ただし、スリープすると実行は止まってしまうので悪しからず。

|

[Mac OS X]iTunesの自動ローカライズ機能で日本語表記にされた「ジャンル」を修正するAppleScript

古い話で恐縮ですが、iTunesは7.6になってからジャンルを勝手に日本語表記にするようになり、人によっては気になっていたんじゃないでしょうか。

NihondoさんのTune-up iTunes 7.6に、この自動ローカライズ機能を無効にする機能が付いたので当てましたが、既にヤラレてしまった曲をいちいち手で直すのは面倒。

しばらく放っておいたのですが、修正するAppleScriptを書いてみました。

どーという内容ではありませんが、置いておきます。

set gl to {{"オルタナティブ", "Alternative"}, {"イージーリスニング", "Easy Listening"}}
set gl to gl & {{"ニューエイジ", "New Age"}, {"サウンドトラック", "Soundtrack"}}
set gl to gl & {{"ロック", "Rock"}, {"フォーク", "Folk"}}
set gl to gl & {{"ポップ", "Pop"}, {"ニューエイジ", "New Age"}}

tell application "iTunes"
    repeat with i in gl
        if ((count of (every track of library playlist 1 of source 1 where genre is (item 1 of i))) > 0) then
            set (genre of every track of library playlist 1 of source 1 where genre is item 1 of i) to item 2 of i
        end if
    end repeat
end tell

|

2008.03.29

[iPod touch]iPod touch 1.1.4のJailbreak後に発生するトラブルを回避

ここの情報は最早古いです。

1.1.4に復元した後、Mac OS X用のiLibertyX 1.51一発で片がつきました。

更新履歴


2008.03.31追記2:当初、「1.1.1→1.1.1 Jailbreak→(更新)→1.1.2→1.1.2 Jailbreak→(更新)→1.1.4→1.1.4 Jailbreak」という手順で書いていましたが、1.1.2を経由する必要が無いことが分かったので書き換えました。
2008.03.31追記:ZiPhone3.0で1.1.4から直接Jailbreakしてみましたが、やはりキーボード使用時のフリーズが発生しました。BSD Subsystemが自動的に入りますが、それによって音楽/動画再生ができなくなることはありません。Cydia Packagerは、インストール時にBSD Subsystemのファイルを削除するとのことなので問題無いかと思いますが、Cydia PackagerのCore Utilities+αの方が品質が高いという事実は変わりませんし、BSD Subsystemの項目がInstall.appの「Uninstall」に残るので、iJailbreakでJailbreakしてCydia Packagerをインストールした方がいいのではないかと思います。

前口上

iPod touchは1.1.2のままで粘ってきたんですが、世間様が1.1.3〜1.1.4に移行しているようなので、遅ればせながら1.1.4にしてみました。

僕の環境と方針

OSはMac OS X Leopard (Power PC)です。 iPod touchは16GBで、2007年10月に買ったものです。 iTunesは7.6.1にアップデートしてしまったので、それを使うことにしました。

1.1.4のJailbreakにおいてはSoft Jailbreakは避け、ZiPhone/iJailbreakを使ってするという方針に決めました。
この記事を書いているのは、ZiPhoneが2.6b、iJailbreakが0.6の時代です。
以降のバージョンないしは、新しい選択肢の出現で状況は変わっていくでしょう。

1.1.4 Jailbreak後にトラブルが発生している模様



ZiPhoneがiPod touch 16GB/32GBに対応していない間はJailbreakそのもので引っかかる人が多かったようですが、ZiPhoneがiPod touch 16GB/32GBに対応してからは、Jailbreak後に、以下の二つのトラブルで悩まされる人が出ているようです。

  • キーボード使用時にフリーズする
  • 音楽/動画が再生できない

何を隠そう自分もその両方にハマった口です。
方々のブログを拝見しながら試行錯誤した末、解決した感じなのでまとめてみます。

上記二つのトラブルは、それぞれ以下のような因果関係で起こっているようです。

かなり断定的に書いていますが、私が知りうるのは私の環境のみです。
あなたの環境で挙動が違ったらごめんなさい。

キーボード使用時にフリーズする



このトラブルは1.1.1→1.1.1 Jailbreakを経由していない環境で起きるようです。

例えば、「復元」でインストールしたまっさらの1.1.4をJailbreakした環境では、キーボード使用時にフリーズします。

下記のような段取りでJailbreakした1.1.4ではフリーズが発生していません。

1.1.1→1.1.1 Jailbreak→(更新)→1.1.4→1.1.4 Jailbreak

音楽/動画が再生できない



このトラブルは、BSD Subsystemをインストールした後、最初の再起動後から発生するようです。
BSD Subsystemをインストールしなければ発生しません。

BSD Subsystemは2.1でも1.1.4下での動作が怪しく、トラブルを引き起こす元凶になってしまっています。
とはいえBSD Subsystemは半ばインストールするのが常識となっていますし、実際無いと困ります。

そこで登場するのが「Cydia Packager」。
これ自体はInstaller.appの代替品ですが、インストールするとBSD Subsystem相当のCore Utilities等が併せてインストールされ、BSD Subsystemの代替として機能します。

Cydia PackagerプロジェクトはInstaller.app、BSD Subsystemの不完全さを憂いており、それらより品質が高く、リプレースできるものであることを指向しています。

まとめ




  • 「1.1.1→1.1.1 Jailbreak→(更新)→1.1.4→1.1.4 Jailbreak」という順序で1.1.4をJailbreak

  • Jailbreak後は「BSD Subsystem」はインストールせず、代わりに「Cydia Packager」をインストールする

この2点に注意すればトラブルが回避できた、ということになります。

iTunes 7.6.1下でのダウングレードとDFU Mode

1.1.4に「復元」してしまった場合は、1.1.1からやり直さなければなりません。

1.1.1へのダウングレードが必要になるわけですが、iTunes 7.6.1下では、「復元」でもiPod touchのファームウェアを1.1.3以下のバージョンにダウングレードできません。Jailbreak対策を考えてか、そういう制約が入っているからです。

iTunes 7.5にはそういう制約が無いので、iTunesをダウングレードするところから始める人も居ますが、僕はiTunesはそのままで、ZiPhoneでiPod touchを「DFU Mode」に移行させる手法を取りました。

「DFU Mode」とは何か? 僕もよく分かっていませんが、修復モードのより強力なもの、というイメージでしょうか。
「DFU Mode」になったiPod touchに対しては、iTunes 7.6.1は1.1.1へのダウングレードを許してくれます。

「DFU Mode」移行を使った1.1.1へのダウングレードの具体的な手順は以下の通りです。

  • 1.1.1のファームウェアをダウンロード
  • ダウンロードしたファイルに拡張子「zip」が勝手に付いていたら削除
  • ZiPhoneをダウンロードし解凍
  • iPod touchをMacに接続する
  • iTunesを起動
  • ZiPhoneを起動
  • ZiPhoneのメニュー「Mode→Restart in DFU Mode」を実行
  • iTunesがDFU Modeに突入したiPod touchを検出するので、Optionを押しながら「復元」ボタンを押す
  • 開いたファイルオープンダイアログから、さきほどダウンロードした1.1.1のファームウェアを指定

1.1.4から1.1.4 Jailbreakまで

後は1.1.4への「更新」、そしてJailbreakです。
1.1.4のJailbreakに使うのはZiPhoneかiJailbreakか、といった議論があり、ZiPhoneはフリーズを発生させるので、iJailbreakの方がいい、といった声も聞くのですが、前述のキーボードを使った際に発生するフリーズは、ZiPhoneでもiJailbreakでも起きます。

フリーズの発生は「1.1.1→1.1.1 Jailbreak→(更新)→1.1.4」という段取りを踏んでいるかどうかで決まるので、どっちを使うかは関係ありません。

再度書いておきますが、今現在のそれぞれのバージョンはZiPhone2.6b、iJailbreak0.6です。
今後状況が変わる可能性は大いにあります。

僕は1.1.4のJailbreakにiJailbreakを使いました。

  • iJailbreakをダウンロード
  • iPod touchをMacに接続
  • iTunesを起動
  • 「更新」で1.1.4にアップデート(最新版が1.1.4以降になり、ファームウェア1.1.4を別途用意する必要が出た場合はここにあります)
  • iJailbreakを起動
  • 勝手に表示されるダイアログには適宜対応
  • 「Jailbreak」ボタンを押す

Jailbreakが終わったら、「Cydia Packager」をインストールします。

  • Installer.appの「Sources」タブで「Edit」ボタンを押し、さらに「Add」ボタンを押して表示されたダイアログに「http://apptapp.saurik.com/」を入力、「OK」ボタンを押します
  • 念のため、「Refresh」ボタンを押します
  • 「System」カテゴリの「Cydia Packager」をインストール
  • BSD Subsystemのインストールをチェックするパッケージのために「System」カテゴリの「Fake BSD Subsystem」をインストールしておくといいかもしれません

繰り返しになりますが、「Cydia Packager」と「Fake BSD Subsystem」をインストールすれば基本的に「BSD Subsystem」は必要無いので、「BSD Subsystem」のインストールは避けます。

「Erica's Ported Utils」も、最早お役御免かもしれません。
なぜならば「Cydia Packager」からインストールできるSQLite3はReadlineのサポートが入っていてコマンドライン編集ができますし、wgetをはじめとするネットワークツールでは名前解決ができます!
libresolvがインストールされ、/usr/lib/libc.dylibに含まれる壊れたgethostbyname()の代わりに、それを使って名前解決するようリンクされているのです。

「Cydia Packager」はAPTをベースにしたパッケージ管理ツールで、依存関係のあるパッケージを自動的に判断してインストールしてくれるので便利!

また、「Cydia Packager」からインストールできるRubyにはコマンドライン編集が利くirbが付き、なおかつrequireしても落ちません! GCにあった問題を解消しているそうです。
昨年の段階ではRubyがちゃんと動かないのはiPod touchのメモリが少ないせい、という話になっていましたが、そんなことはなかったわけですね。そうなるとRubyCocoaが欲しいところ。

|

2008.03.27

[Windows Mobile]CeGCC 4.3.0 initial testリリース

3月25日に、久しぶりにLinux等で動作するWindows Mobile用クロスコンパイラであるところのCeGCCのバイナリパッケージが更新されていたので、Ubuntu7.1にインストールしてみました。

ダウンロードはSourceForge.netから。「gcc 4.3.0 initial test」というやつです。

$ sudo tar xvzf cegcc-gcc430.tar.gz -C /
$ sudo apt-get install libgmp3-dev

以下を.bashrcに追記するなどでパスを通します。

export PATH=$PATH:/opt/cegcc/bin

なんかソースを書いてコンパイルしてみます。

$ arm-cegcc-gcc -enable-auto-import test.c
$ file a.exe
a.exe: MS-DOS executable PE  for MS Windows 32-bit

|

2008.03.16

[Zaurus]PHSの位置情報で地図表示「ざうもに」改変版0.0.1.5

昨日のエントリ「[Zaurus]PHSの位置情報で地図表示「ざうもに」改変版0.0.1.3」の続きです。

せらくんさんのLinux Zaurus用ソフトウェア「ざうもに」をモバイルマップNaviに対応させてみました。

ここの神のおかげです。qcoptestは設定ファイルを編集することで、監視チャンネルを指定できるとは……。
マニュアルを読まなければ分からないですね。

http://pc11.2ch.net/test/read.cgi/mobile/1203511361/574

qcop QPE/Application/mobliemap 'setDocument(QString)' 'N43.04.29.000 E141.19.51.000'

つまり、PHSから現在地の位置情報を取得して、モバイルマップNavi上で地図表示できるようになりました。

ご存知の通り、モバイルマップNaviはサービスを終了しているので、ローカルに地図データをコピーしている人でないと恩恵を得ることができません。

以下ファイルをダウンロードした後に拡張子「.bin」を削り、「ソフトウェアの追加/削除」等からインストールしてください。以前のバージョンがインストールされているなら、あらかじめ削除しておいてください。

0.0.1.4は内蔵のCFをサスペンドさせてしまう不具合があったので欠番です。

「zaumon_0.0.1.5-1_arm.ipk.bin」をダウンロード

無保証です。

|

2008.03.13

[iPod touch]iPod touchとW-SIMその2

noviさんの「iPod touch に W-SIM を接続してみた」などを見て、配線してみた。

noviさんのブログには

W-SIM             touch
                 GND-----------GND:1
                 GND----SERIALGND:11
1:TD---------------------------TD:12
2:RD---------------------------RD:13
9:VCC------+3.3V
10:GND-----GND
15:IFSEL---GND 

と書いてありますが、touch側のSERIALGNDは20番、TD(TxD)は19番、RD(RxD)は18番ではないですか?

iPod Dock Connectorピン配列参考:Dock Connector - wikiPodLinux
W-SIMピン配列参考:W-SIM と WILLCOM SIM STYLE

それと、TDはRDと、RDはTDとつなぐんじゃなかったでしたっけ?

W-SIM             touch
 
                 GND----------GND:16
                 GND----SERIALGND:20
1:TD---------------------------RD:18
2:RD---------------------------TD:19
9:VCC-----------------------+3.3V:13
10:GND-----GND
15:IFSEL---GND 

とりあえず、上記のように接続。
なぜかiPod touchに入っていたminicomで「Serial Device」を「/dev/tty.iap」に、「Bps/Par/Bits」を「19200 8N1」に、「Hardware Flow Control」を「No」にしてみるも、ウンともスンとも言わず。

W-SIM             touch
 
1:TD---------------------------TD:19
2:RD---------------------------RD:18

につなぎ変えても同じ。よくわかんね。noviさんに教えてもらおう。


|

2008.03.12

[iPod touch]iPod touchとW-SIM

noviさんがiPod touchにW-SIMをつなぐ試みをされているので、早速真似してみることに。

ウホッ、いいケース。

薄さとしてはばっちりなものの、ちょっと大きい。また、ケースの取り回しが問題。ぶら下げておくしかない?

ケースの中にマグネットを入れて固定させればいんじゃね? と思ったんですが、一般的なステンレスは磁性を持っていないので磁石に付かないのでした。

|

2008.03.11

[Zaurus]PHSの位置情報で地図表示「ざうもに」改変版0.0.1.3

昨日のエントリ「[Zaurus]PHSの位置情報で地図表示「ざうもに」改変版0.0.1.2」へのmineさんからのコメントで、地図表示がうまくできないという話があったので、修正してみました。

mineさんのログを見ると、緯度・経度が取得できても郵便番号だけ取得できないことがあるようですが、「ざうもに」のソースを見てみると、郵便番号が取得できないと位置情報取得成功と判定しないようになっていました。
これが原因のようだったので、郵便番号が取得できなくとも緯度・経度さえ取得できていれば地図表示をするようにしてみました。郵便番号を取得しても、それを使っていませんでしたし。

また、ALPSLABの地図も追加してみました。

以下ファイルをダウンロードした後に拡張子「.bin」を削り、「ソフトウェアの追加/削除」等からインストールしてください。以前のバージョンがインストールされているなら、あらかじめ削除しておいてください。

2008.3.16追記:不具合があったため、ファイルは削除しました。0.0.1.5を使ってください。

「zaumon_0.0.1.3-1_arm.ipk.bin」をダウンロード


無保証です。

|

2008.03.10

[Zaurus]PHSの位置情報で地図表示「ざうもに」改変版0.0.1.2

2008.3.11追記:続編エントリに新バージョン置いておきました「[Zaurus]PHSの位置情報で地図表示「ざうもに」改変版0.0.1.3

先日のエントリ「[Zaurus]「ざうもに」を微修正してみた」の続きです。

PHSから位置情報を取得して地図表示するせらくんさんのLinux Zaurus用ソフトウェア「ざうもに」0.0.1を改変したやつをバージョンアップしました。

表示する地図を以下から選択できるようにしました。

  • Yahoo!地図情報
  • goo地図
  • Mapion
  • Mapion(PDA版)
  • MapFan Web

いじってはみたものの、メンテをする気力は無いので、こういうのは外部に追い出すべきなんですけどね。
C++は全然分からない。

Google Mapsは世界測地系で、座標変換が必要になるため対応してません。
もちろん、不可能ではないんですが、以前Molodensky法をPerlからCに移植しようとして、どうしても検算が合わなかったということがあり。

Zaumoni0012_2

以下ファイルをダウンロードした後に拡張子「.bin」を削り、「ソフトウェアの追加/削除」等からインストールしてください。

2008.3.16追記:不具合があったため、ファイルは削除しました。0.0.1.5を使ってください。

「zaumon_0.0.1.2-1_arm.ipk.bin」をダウンロード

無保証です。

|

2008.03.09

[Zaurus]「ざうもに」を微修正してみた

2008.3.10追記:続編エントリに新バージョン置いておきました「[Zaurus]PHSの位置情報で地図表示「ざうもに」改変版0.0.1.2

PHSカードから取得できる位置情報を元にWebブラウザで現在位置の地図表示する、せらくんさんのLinux Zaurus用ソフトウェア「ざうもに」ですが、近ごろはYahoo!地図情報の仕様変更で表示できなくなっているとのこと。

ということで、Yahoo!地図情報の「スクロール地図」でなく、「標準地図」を表示するように修正したやつを作ってみました……ものの、直したのはNetFrontの方だけで、Operaの方は修正し忘れてました。

表示する地図を選択するQComboBoxを加えてみたのを作っているので、後でアップし直します。

しかし、C++での文字列処理がよく分からない。

2008.3.16追記:不具合があったため、ファイルは削除しました。0.0.1.5を使ってください。

「zaumon_0.0.1.1-1_arm.ipk.bin」をダウンロード


ダウンロード後、拡張子「.bin」を削除して、「ソフトウェア追加/削除」等からインストールしてください。

無保証です。

|

2008.03.03

[N810]NOKIA N810でFDclone/lvを便利に使うためのヘルパースクリプト

先日のエントリ「[N810]NOKIA N810用FDclone2.09g、lv4.51、nkf2.0.8bパッケージ」に関連して。

lvの文字コード自動判定機能が完全でなく、lvがFDcloneのViewerとして機能不全だったので、開くテキストの文字コードを意識せずに済むよう、ヘルパースクリプトを書いてみました。

#!/bin/sh

enc=X`nkf --guess $1 | cut -d" " -f1`

case "$enc" in
"XUTF-8")
    opt="u8"
    ;;
"XShift_JIS")
    opt="s"
    ;;
"XEUC-JP")
    opt="ej"
    ;;
"XISO-2022-JP")
    opt="j"
    ;;
*)
    opt="a"
    ;;
esac

lv -I${opt} -Ou8 $1

nkfの文字コード判定機能を利用して、lvの入力文字コードのオプションを自動指定するという流れです。 lvはもちろん、nkfをインストールしておく必要があります。

このスクリプトをlvhとして保存し、

chmod +x lvh

で実行権を付加し、パスの通ったところに置き、.fd2rcで

PAGER=lvh

といった感じでPAGERとして指定すれば、FDcloneからのテキスト読みが快適です。

テキストファイルがShift-JISでもEUC-JPでもJISでもUTF-8でも、FDcloneからEnter一発で文字化けせずにlvで読めます。

こんなことせずとも、nkfで一意な文字コードに変換した後lvで開くスクリプトにすればいいという話ではありますが。

|

« February 2008 | Main | April 2008 »