2011-10-30

L-04Cの文鎮化対策(ファームウェアをKDZ updaterで焼く)

L-04Cの「文鎮化対策」と言われる対処方法のまとめ。

事前の準備

LGのサイトから公式ファームウェアをダウンロード。(130MB)
http://csmg.lgmobile.com:9002/csmg/b2c/client/auth_model_check2.jsp?esn=<IMEI>
ここで直DLできる?⇒ http://csmg.lgmobile.com:9002/swdata/WEBSW/L04C/ANTTWV/V10d_00/V10D_00.kdz

このファームウェアを焼けるツール KDZ updater をxda-developersからダウンロード。
http://forum.xda-developers.com/showthread.php?t=1060121

ファームウェアの焼き方

  1. 電源OFFの状態で、Vol +/-を同時に押しながらPCとUSB接続。黄色背景に「Updating…」と表示される
  2. KDZ updaterを起動
  3. ファームウェアとしてV10D_00.kdzを指定。Type は 3GQCT。
    PhoneMode は諸説あり。「RECOVERY」としているサイト、2chでは「Emergency」も。「DIAG」での成功例⇒ 1 / 2
  4. 「Launch software update」を押す
  5. data以外のパーティションが焼き直されるとのこと

2011-08-14

F702iDからF-11Cに機種変更した

ケータイを機種変更したのでメモ。

きっと最後のガラケー

iPhone4とガラケー(ドコモF702iD)の2台持ちなのだけど、5年ほど使っているF702iDがさすがに疲れてきました。
iPhoneの1台持ちに移行することも考えましたが、おサイフケータイがない生活には戻れないと思い2台持ちを続行することに。

ネット関係はパケット定額のiPhoneにまとめているため、ガラケーのほうは「おサイフケータイ」「通話」「iモードメール」にしか使いません。
これを機にAndroidに…とも本気で考えましたが、パケット通信は最小限に抑えたいので、勝手にいろいろ通信しちゃうAndroidは不向き。
というわけで「FeliCa搭載でいちばん薄くて軽いガラケー」を探すことにしました。
次の機種変は何年後になるか分かりませんが、ガラケーを買うのは今回が最後かも。

ガラケーよりスマホのが安い…

何軒か店を回ってみましたが、スマホ大攻勢のなか、普通に買おうとするとガラケーのほうが高くつくくらいです。
型落ちの旧機種なら安く変えるかと思ったけれど、なかなかいい機種に巡り会えません。元値が高いために値引き後でもまだ高かったり、FeliCa載ってなかったり。

中野サンモール入ってすぐのテックサイト中野駅前店(ヤマダ電機系列)で「指定オプション加入で15,000円引き」とのPOPを発見。条件を聞いてみたら下記とのこと。
・ゆうゆうコール (189円)
・パケ・ホーダイダブル (390円~)
・オプションパック割引 (420円)
・iチャネル (157円)
・iコンシェル/ケータイデータお預かりサービス (210円)
・ケータイ補償お届けサービス (294円)
・オススメ有料サイトから1つ加入 (189円~)
どれも翌日解約可能というので比較的リーズナブルに思えて、ここで買うことにしました。

大きくない端末を探す

docomo F-11Cそれにしても機種選びが難しいです。ドコモでもAndroidならF-12CやXperia rayのように「FeliCa搭載で小さい端末」もありますが、ガラケーでFeliCa搭載は大きな端末ばかり。
最終的には、P-06Cとどちらにするか悩みつつ、F-11Cに。甲乙つけがたかったのですが、Fのほうがちょっと薄かったのと、前機種もFで馴染みだからという程度の理由です。
31,920円のところを15,000円引きで16,920円。さらに貯まっていたドコモポイントを使って、何千円かで買えました。


古すぎてPCにつながらない

電話帳移行は自分で行なうことにして、店では頼みませんでした。
家に帰って、まず古いF702iDをPCにつないでみると…datalink(ドコモのケータイ管理ソフト)が「この機種は対応していない」とのエラーを表示。そんなはずは!? と調べてみたら、Windows 7にはドライバが対応していないと……。

Vista(32bit)用のドライバ単体はWin7でもインストールできましたが、それでもdatalinkは認識してくれず。
datalinkをVista互換モードで動かしてみようとしたら、「互換モードには対応していません」とエラーが出て起動できず。

結局、
眠ってたVistaマシンを引っ張り出す
→Vista上のdatalinkで旧端末を認識、データ読みだしてバックアップファイルを作成
→バックアップファイルをWin7上のdatalinkに読ませる
→Win7上のdatalinkから新端末にデータ移行、
という面倒な手間でなんとかデータ移行に成功しました。
(ぜんぶVista上でやってもいいんですが、Win7にデータを移したかったのと、Vista機が非力で動作が非情に遅いため、ちょっと面倒な手順を踏みました)

しかし実はそんな面倒なことをしなくても、赤外線で全件送信すれば良かったことに後から気付きました……。ふだん赤外線を使わないからその発想がなかった。
旧端末F702iDの場合、電話帳、送受信メール、iモードブラウザのブックマーク、メモあたりは全件送信できます。

その場合、問題は写真。全件送信できず、1件ずつしか送信できません。F702iDはSDカードに対応していないので、一括で受け渡そうとするとPCを使うしかありません。
じゃあWin7しか持っていない場合は、1件ずつ赤外線送信するしかないのか? と思いきや、ドコモのdatalinkは使えなくても、富士通のデータリンクソフトならWin7でも使えるのでした。ただ、上述のようにドライバはVista(32bit)版を使うため、64bit版Win7だとダメかも。

富士通のデータリンクソフトは新端末F-11Cには対応していないようですが、写真はPCに取り込めさえすれば、後は何とでもなるので無問題。めでたしめでたしです。

新端末の準備

データの移行が済んだら、後は次の作業をして準備完了です。
・使わないオプションの解約、有料サイト退会
・端末の使わない機能をオフに
・FeliCaデータの移行(モバイルSuica等)

新しい端末はサクサク動いて快適です。ガラケーってすごい。

2011-07-09

「Googleカスタム検索」が動作しなくなったら直すべき箇所

自分のサイトに「サイト内検索」の機能を付けようと思ったときに便利なのがGoogleカスタム検索
簡単な手順でGoogleの検索能力を実装できて、しかも無料というありがたい存在です。

ところが今日あたりから、このGoogleカスタム検索での検索結果が表示されないという問題が発生。しばらく悩んだのですが、HTMLを次のように書き換えることで直すことができました。

before:
<form action="http://www.google.co.jp/cse" id="cse-search-box">

after:
<form action="http://www.google.com/cse" id="cse-search-box">

Googleカスタム検索の[コントロールパネル]>[コードの取得]で表示されるコードは「.co.jp」なので、そのままでは動かないという罠……。

なぜこれで直るかというと、検索結果0件のページのエラー情報を見たら、クロスドメインのセキュリティエラーが出ていたため。確かに google.co.jp と google.com じゃ別ドメインですもんね……。

2011-06-06

IS01のバックアップとrecovery_kit導入

IS01をあれこれする前に「何かやっちゃった時のための備え」を用意します。
バックアップと、安全装置(recovery_kit)の導入です。

バックアップ

パーティションによってddを使ったりtarを使ったりするようです。
# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00b00000 00020000 "boot"
mtd1: 00500000 00020000 "cache"
mtd2: 00b00000 00020000 "recovery"
mtd3: 00180000 00020000 "splash"
mtd4: 00b40000 00020000 "ipl"
mtd5: 10000000 00020000 "system"
mtd6: 00300000 00020000 "log"
mtd7: 06420000 00020000 "userdata"

# mkdir /sdcard/is01rom
# dd if=/dev/mtd/mtd0 of=/sdcard/is01rom/mtd0_boot.img
# dd if=/dev/mtd/mtd2 of=/sdcard/is01rom/mtd2_recovery.img
# dd if=/dev/mtd/mtd3 of=/sdcard/is01rom/mtd3_splash.img
# dd if=/dev/mtd/mtd4 of=/sdcard/is01rom/mtd4_ipl.img
# tar -jcf /sdcard/is01rom/system.tar.bz2 -C /system --exclude ./logphy_mapping.bin .
# tar -jcf /sdcard/is01rom/sqlite_journals-YYYYMMDD_MMSS.tar.bz2 -C /sqlite_journals .
# tar -jcf /sdcard/is01rom/data-YYYYMMDD_MMSS.tar.bz2 -C /data .
/systemのバックアップでlogphy_mapping.binというファイルを除外してるのは、これが含まれてるとtarがエラー終了するから。
何のために使われるファイルなのかは知らないけど、「これをバックアップしなかったためにハマった」という事例はないみたいなので、気にしないことにします。

recovery_kitの導入(まずはrecovery領域で練習)

IS01をいろいろ弄る前に入れておきたいのがrecovery_kit
recovery_kitは「このパーティションだけで起動と復旧作業が行える」という、カーネルといくつかのコマンドのセットです。

これを入れると何がありがたいかというと、例えばsystem領域を壊したとき。
Androidはboot/recovery領域から起動しますが、システムはsystem領域に入っています。シェルは/system/bin/shです。
何か作業に失敗してsystemを壊してしまって「起動しない!文鎮完成だ!」という場合でも、recovery_kitが導入してあればsystemの復旧作業を行なえるのです。

実際に私も後日、shをbashと入れ替えようとして失敗し、シェルが実行できなくなったことがありました。そんなときもrecovery_kitを起動して/system/bin/shを書き戻して元通り。危ういところを助けられました……。

さて、recovery_kitはboot領域に焼くのですが、導入に失敗すればこれまた文鎮化です。
そこでまずは、失敗しても取り返しの効くrecovery領域に焼くことにします。
(recovery領域が壊れても、boot領域から起動できればrecovery領域を焼き直すことができます)

recovery_kitをえぬえす工房からダウンロード。
> adb push recovery_kit.img /sdcard/
> adb shell
$ cat /proc/mtd
(recovery_wrがあることを確認)
$ su
# flash_image recovery_wr /sdcard/recovery_kit.img

導入したrecovery_kitが起動するか確認するため、recovery領域からブートします。
> adb reboot recovery
IS01にrecovery_kitの表記が表示された後、暗転したらすかさずHome+電源を押し、メニューが表示されたらすかさずトラックボールを転がします
(メニューが表示されたらすぐトラックボールを触る必要があります。何秒か経ってから転がしても受け付けてくれません)

なお、recovery_kitは一定時間操作がなかった場合、recovery領域からブートするために自動で再起動します。
(今回はrecovery領域に焼いたので、recovery_kitが無限ループで起動することになります)

recovery_kitを導入したらやること

まずは「Enable QXDM」を選びます。adb接続するのに必要とのこと。

次に「Start adbd recovery」して数分ほど待つと、adbで接続できるようになります。
# ls
ls: not found
とか言われてビビりますが、toolboxやbusyboxにパスが通ってるので「# toolbox ls」のようにすればOK。

いちおう、通常のboot領域からの起動に問題がないことも確認しておきます。

boot領域にrecovery_kitを導入

ではいよいよ、boot領域にrecovery_kitを焼きます。
> adb shell
$ cat /proc/mtd
 (boot_wrがあることを確認)
$ su
# flash_image boot_wr /sdcard/recovery_kit.img

boot領域から起動します。
リカバリメニューに入ったら、再び「Start adbd recovery」でadbでつながることを確認。

なお、リカバリメニューに入るのに失敗した場合、放っておけば再びrecovery_kitが起ち上がりますが、2回目以降に起動するのはrecovery領域のrecovery_kitです。boot領域から起ち上がるのは初回だけだということに留意。

recovery領域にカスタムカーネルを導入

boot領域のrecovery_kitに問題がないようなら、recovery領域にはシステムを起動するカーネルを焼きましょう。
バックアップしておいたboot領域を書き戻してもいいですが、せっかくなので改造カーネルを焼いてみます。
IS01でcompcache(ramzswap)を有効にする(2) | Weboo! Returns.からubi-compcache-0.2.imgをダウンロード。
> adb push boot.img /data/
(ファイル名が長いと手入力が面倒なので、短くしておくとラク)
> adb shell
# flash_image recovery /data/boot.img
recovery_kitでは、パーティション名は「recovery_wr」を指定する必要はなく、recoveryに直接書き込めます。

焼けたら、再起動してみます。
まずはboot領域のrecovery_kitが起ち上がりますが、ここで何も操作しないでおくとrecovery領域から再ブートします。
無事システムが起動すれば一安心。

2011-05-23

Emacs23でjs2-modeを使うのにもうespressoは不要

EmacsでJavaScriptを書くのに欠かせないjs2-mode
Emacs23に入れ替えたついでに、設定を見なおしてみました。

※追記

いろいろカスタマイズする方法を書いたんですが、もっと便利なjs2-mode (フォーク版)というのがあるのを知りました。
そちらを使うほうが早くて簡単で高機能です。
(ちょっと古いけど日本語での紹介

なのでこの下はもう読まなくてもいいんですが、いちおう残しておきます……。


js2-modeの不備を補うためにespressoを併用していたけれど…

js2-modeは大体すばらしいのですが、インデントがいただけません。
たとえばコールバック関数を書くとき。
window.setTimeout(function(){
                    doSomething(); // インデントの基準が丸カッコの位置に…
                  }, 1000);
左にスペース空きすぎです。
やっぱり次のようになってほしいのです。
window.setTimeout(function(){
  doSomething(); // インデントの基準は前の行
}, 1000);
そこでポピュラーなのが、js2-modeとは別のJavaScript用メジャーモード「espresso-mode」を併用する方法。
元ネタはたぶんココだと思われます。

というわけでespresso-modeのサイトに行ってみたら、次のようなお知らせが。

「espresso-modeはGNU Emacsのバージョン23.2以降では js-mode という名前で本体同梱になったよ」(意訳)

えっ…!

espresso-modeは別途インストールの必要なし

今回インストールしたEmacsのバージョンは23.3.1。ということはjs-modeはバッチリ同梱されているはずです。
そこで、espresso-modeを別途インストールするのではなく、同梱のjs-modeを利用する方向に切り替えてみましょう。

と言っても何も難しいことはなく、.emacsとかに書く「espresso」の部分を単純に「js」に置換すれば終了です。

(autoload 'js-mode "js")
(defun my-js2-indent-function ()
  (interactive)
  (save-restriction
    (widen)
    (let* ((inhibit-point-motion-hooks t)
           (parse-status (save-excursion (syntax-ppss (point-at-bol))))
           (offset (- (current-column) (current-indentation)))
           (indentation (js--proper-indentation parse-status))
           node)
      (save-excursion
        ;; I like to indent case and labels to half of the tab width
        (back-to-indentation)
        (if (looking-at "case\\s-")
            (setq indentation (+ indentation (/ js-indent-level 2))))
        ;; consecutive declarations in a var statement are nice if
        ;; properly aligned, i.e:
        ;; var foo = "bar",
        ;;     bar = "foo";
        (setq node (js2-node-at-point))
        (when (and node
                   (= js2-NAME (js2-node-type node))
                   (= js2-VAR (js2-node-type (js2-node-parent node))))
          (setq indentation (+ 4 indentation))))
      (indent-line-to indentation)
      (when (> offset 0) (forward-char offset)))))

(defun my-indent-sexp ()
  (interactive)
  (save-restriction
    (save-excursion
      (widen)
      (let* ((inhibit-point-motion-hooks t)
             (parse-status (syntax-ppss (point)))
             (beg (nth 1 parse-status))
             (end-marker (make-marker))
             (end (progn (goto-char beg) (forward-list) (point)))
             (ovl (make-overlay beg end)))
        (set-marker end-marker end)
        (overlay-put ovl 'face 'highlight)
        (goto-char beg)
        (while (< (point) (marker-position end-marker))
          ;; don't reindent blank lines so we don't set the "buffer
          ;; modified" property for nothing
          (beginning-of-line)
          (unless (looking-at "\\s-*$")
            (indent-according-to-mode))
          (forward-line))
        (run-with-timer 0.5 nil '(lambda(ovl)
                                   (delete-overlay ovl)) ovl)))))
(defun my-js2-mode-hook ()
  (require 'js)
  (setq js-indent-level 2
        indent-tabs-mode nil
        c-basic-offset 2)
  (c-toggle-auto-state 0)
  (c-toggle-hungry-state 1)
  (set (make-local-variable 'indent-line-function) 'my-js2-indent-function)
;  (define-key js2-mode-map [(meta control |)] 'cperl-lineup)
  (define-key js2-mode-map [(meta control \;)]
    '(lambda()
       (interactive)
       (insert "/* -----[ ")
       (save-excursion
         (insert " ]----- */"))
       ))
  (define-key js2-mode-map [(return)] 'newline-and-indent)
  (define-key js2-mode-map [(backspace)] 'c-electric-backspace)
  (define-key js2-mode-map [(control d)] 'c-electric-delete-forward)
  (define-key js2-mode-map [(control meta q)] 'my-indent-sexp)
  (if (featurep 'js2-highlight-vars)
    (js2-highlight-vars-mode))
  (message "My JS2 hook"))

(add-hook 'js2-mode-hook 'my-js2-mode-hook)

なお、元サイトからはついでにちょっぴり書き換えています。
・インデント幅を2に変更
・私の使わない行をコメントアウト

これを.emacsや.emacs.d/init.elなどに書けば、コールバックを渡すたびにイラッとすることもなくなります。
ついでにswitch文のcaseの位置や、変数宣言が複数行に渡る場合も快適に。
// BEFORE:
var x = 0,
y = 1;     // 変数宣言の途中で改行すると、前行の頭がインデントの基準だった

// AFTER:
var x = 0,
    y = 1; // 前の行と変数名の位置が揃って気持ちいい

js2-mode 小ネタ2つ

備忘録ついでに js2-mode の小ネタを2つほど。
  1. バイトコンパイルしましょう:
    M-x byte-compile-file 【RET】(js2-mode.elのパスを入力)
  2. js2-mode.elはダウンロードページよりsvnのほうがちょっと新しい:
    ダウンロードページにあるのは 2009/7/23(rev73) ですが、svnのほうは 2009/8/8(rev80)。ちょっとだけ新しいです。
    svn使わなくても、Webブラウザでhttp://js2-mode.googlecode.com/svn/trunk/js2-mode.elにアクセスすればダウンロードできます。

2011-05-21

MeadowからNTEmacs23に乗り換えた

テキストエディタは長らくMeadowを使ってきました。コードを書く分には特に困ることもなかったのですが、ただ、UTF-8なファイルで「~」や「①」などの取り回しがどうもうまくないのはちょっと気に入らないところでした。
大したことじゃないと目をつぶってきましたが、Emacs23だとこれらの文字も正常に扱えると聞いたので、導入してみます。

gnupack版NTEmacsをインストール

本家にもバイナリはありますが、IMEにちゃんと対応したパッチが当たっているというgnupackのほうを使います。
現在のバージョンは 23.3。

tramp(ange-ftp)が動くようにする

サーバー上のファイルを直接編集できるのがEmacsの凄いところなのですが、これがうまく動いてくれません。
調べてみたら、別途 ftp.exe を用意する必要があるそうです。

Win7のタスクバーにピン留めできるようにする

できなくてもそれほど困りはしないですが、できるようになると気持ちいいです。
runemacs.exeのショートカットに「GNU.Emacs」というAppIDを設定する

Meadowと比べたEmacs23雑感

  • 動作が早い
    起動も、新しいフレーム(ウィンドウ)開いた時も、キビキビしてます。
  • 「~」や「①」などが化けない
    Shift_JIS(CP932)でもUTF-8でも正しく扱えて、かつWindowsのクリップボードにコピーしても化けません。
  • フォントの細かい調整はできない?
    Meadowで細かい調整をするのに使っていた w32-logfont がEmacs23では使えません。同等の設定はできるのかもしれませんが、elispは難しい…。
日本語向け文字コード設定の例は http://nijino.homelinux.net/emacs/emacs23-ja.html を参考にしました。

関連リンクにあるPDFを読むと、Emacs23が新たに採用したJIS X 0208→Unicodeのマッピングのバラエティの多彩さに感動します。
たとえば「~」の揺れの扱い。5種類の方法からユーザーが好きなものを各々選択できると。
  • 積極JIS派
    あらゆる「~」はU+301Cに寄せたい。U+FF5Eの存在を許さない
  • 消極JIS派
    Shift_JISやEUCの「~」はU+301Cに寄せたい
  • 中立派
    Shift_JISやEUCの「~」はU+301Cでいいし、CP932の「~」はU+FF5Eでいい
  • 消極Windows派
    Shift_JISやEUCの「~」はU+FF5Eに寄せたいが、それ以外は中立
  • 積極Windows派
    あらゆる「~」は U+FF5Eに寄せたい。U+301Cの存在を許さない
これなら極右から極左まで、みんななかよくEmacsを使えるというわけです。すごい。

2011-01-11

Linux機を無線LAN経由でWake on Lanできるか?

LANケーブルを引き回したくない場所に置いてあるLinuxマシン。
ネットワークには無線LANでつなぐわけですが、リモート起動(Wake on Lan/WOL)も無線LAN経由でできるものなのでしょうか?

有線LANでのWOLならそう難しい話ではありませんが、無線LANとなると一筋縄ではいかないようで……。

結論:イーサネットコンバーターならたやすい

結論から言うと、無線LANアダプタでのWOLは断念しました。
ただ、イーサネットコンバーターを使えば、無線LAN経由でも普通にWOLできます。マシンからは「有線LANでつながっている」ようにしか見えないのですから、当たり前なんですが……。

イーサネットコンバーターとは?
イーサネットコンバーターは、有線LANでしかネットにつなげない機器(家電とか)を無線LANでつなぐための機械です。
「有線LANでしかつなげない機器」と言っても、PCなどは「USB無線LANアダプタ」を使えば無線も利用することができます。ところがTVなどのデジタル家電は、ほとんどの場合、USB無線LANアダプタには対応していません。そんなとき、コンバーターを使えば、下図のように無線LANでつなぐことができるのです。

[インターネット] ―(有線)― [無線ルーター] ……(無線)…… [イーサネットコンバーター] ―(有線)― [デジタル家電]

なお、イーサネットコンバーター経由でWOLしようという場合、コンバーターは24時間起動しておく必要があります。
「普段はマシンの電源を落としておいて必要なときだけWOLで起こそうと考えているのに、コンバーターを24時間起動しっぱなしというのもなー」と微妙な気持ちになりますが、昨今のコンバーターなら消費電力は数W程度。マシンを起動しておくよりはずっと省エネだし、と割り切ってしまうのが良さそうです。

USB無線LANアダプタでのWOLは無理そう

当初は、イーサネットコンバーターを使わずに、Linux機に接続したUSB無線LANアダプタからのWOLを考えていました。しかし、調べてみるとどうも難しそう。
考えてみれば、USB無線LANアダプタというのは通信に必要な様々な処理をマシン側のCPUに任せています。CPUが寝てる間、USB無線LANアダプタだけで何か仕事をするというのは、確かに荷が重そうです。

ただ、無線LANアダプタがPCIでマシンに接続されているのなら、WOLできる可能性はあります。「WoWLAN」で検索してみてください。

おまけ:有線LANポートをWOL専用にして、通常通信を禁止する

今回、イーサネットコンバーターはウチに転がっていた802.11g(54Mbps)の物を引っ張り出してきて使うことにしました。いっぽう、マシンにあらかじめ挿してあったUSB無線LANアダプタは802.11n(300Mbps)。
WOLは11gの遅いほうを使いますが、起動後は11nの速いほうで通信したいところです。

ところがマシンから見ると、イーサネットコンバーターは有線LANにしか見えません。Linuxとしても、まさか有線LANが無線より遅いとは思わないのでしょう、ついつい有線のほうで通信しようとしてしまいます。
仕方がないので、Linuxが有線LANを使わないように設定してしまいましょう。WOLはOSが起動する前に行なわれる処理ですので、Linux上で有線LANを無効にしてしまっても、WOLには影響ありません(※)。

Debianの場合は、/etc/network/interfaces がネットワークの設定ファイルです。
有線LANは eth0 ですので、ぜんぶコメントアウトしてしまいます。DHCPで使ってる場合は、次の2行でしょうか。
#allow-hotplug eth0
#iface eth0 inet dhcp

これで再起動すれば(再起動が面倒なら ifdown eth0)、Linuxからは有線LANは使われなくなっているはずです。
念のため、ifconfig で eth0 がいないことを確認しておきましょう。

(※)ただし、毎終了時にethtoolコマンドでWOLを有効にしないといけない環境の場合は、eth0 を無効にしたらマズいかも。


イーサネットコンバーターをどう使うか

なお、イーサネットコンバーターはWOL専用と割り切るなら、11g(54Mbps)の速度は必要ないので、11b(11Mbps)に絞っておいてもいいかもしれません。多少は省電力になるでしょう。

そもそもの問題として「無線LAN機器を2つ接続するって…」とお思いの方は、USBアダプタはやめて、11nのコンバーターに一本化するという手も。
アマゾンだと、150Mbpsでよければ PLANEX FFP-PKC01 が\1,780、300Mbpsでも PLANEX FFP-PKR01 が\3,023 です。

2011-01-05

iPhoneの電源が入らない→スリープ中にフリーズしてた

さっきまで普通に使えていたiPhone(4)、突然電源が入らなくなってしまいました。
バッテリーはまだ充分あったはず。電源ボタンを長押ししても何も起こらない。

これは故障?修理行き?と検索してみたら、どうも「スリープのままフリーズしただけ」というケースが結構あるらしいのです。その場合はホームボタンと電源ボタンの両方を長押しすれば強制再起動して無事復旧するとか。
試してみると――起動ロゴのリンゴ印が現れて一安心。

なお、この「長押し」の時間は少々長めです。ふつう5~6秒も押せば何か反応がありそうなものですが、今回10秒くらい押し続けてやっとリンゴが表示されました。