Chromebook C7 + Ubuntu 16.04 でタッチパッドが効かなくなった問題の解決

Posted 9 months ago by yoosee.
  chromebook ubuntu

Chromebook C7 の BIOS を入れ替えて Ubuntu で使っていたのだけど 16.04 にあげたら Touchpad が効かなくなった。

cyapa が無くなって cyapatp に変わったのが原因かと思い

# rmmod cyapa
# modprobe cyapatp

としてみるも駄目。dmesg を見てみると

[    3.184150] find_i2c_adapter_num: i2c adapter SMBus I801 adapter not found on system.
...
[    6.535929] find_i2c_adapter_num: i2c adapter SMBus I801 adapter not found on system.
...
[   11.788682] i801_smbus 0000:00:1f.3: SMBus using PCI interrupt

i2c-i801 driver が modprobe されたタイミングでは i2c bus が認識されて無いらしい。手動で

# modprobe i2c-i801 

を打てば認識される。

[   11.788682] i801_smbus 0000:00:1f.3: SMBus using PCI interrupt
[   11.844142] 7-0067 supply vcc not found, using dummy regulator
[   11.909888] input: Cypress APA Trackpad (cyapa) as /devices/pci0000:00/0000:00:1f.3/i2c-7/7-0067/input/input13

仕方がないので /etc/rc.local

...
/sbin/modprobe i2c-i801
/sbin/modprobe chromeos_laptop

と入れたところ、取りあえず起動後に認識されるようになった。一応バグレポートもあるっぽい。

 

Chromebook C7 に Ubuntu を入れる

Posted 9 months ago by yoosee.
  chromebook ubuntu

手元の Acer Chromebook C7 (SSD換装済) に改めて Ubuntu を入れなおしたのでその備忘録。インストール後は全く問題なく Linux Laptop として使えているが、メモリがちょっと少ないので後で足すかもしれない。

Chromebook c7 + Ubuntu

この C7 には過去にも Ubuntu を入れているが、その時には ChrUbuntu と呼ばれるやり方だった。これは ChromeOS を消さずに Partition を切り直して Ubuntu 領域を作り、ChromeOS の BIOS → bootloader から Ubuntu を起動するというやり方だったが、これだと kernel を自由に upgrade できないという問題があった。

今回は BIOS Flash で ChromeOS が独自に入れている CoreBoot BIOS そのものを置き換える。下記メソッドの 3 になる。

[Guide] Ubuntu Install on Acer C7 Chromebook (and Review) – senk9

前提として Chrubuntu が終わっているか途中まで (Shell Promptを得るまで) 進んでいる必要があり、また BIOS 書き換えにはハードウェアから Write Protect がかかっているのでそれを解除して進める必要がある。

# flashrom -r backup.img
# cd; rm -f flash_chromebook_rom.sh; curl -O https://johnlewis.ie/flash_chromebook_rom.sh; sudo -E bash flash_chromebook_rom.sh

Flashing stock firmware to a coreboot build on Acer C7 (C710) - coreboot + Linux on Chromebooks の2枚目の写真にあるように、裏ぶたを開けてCPUの隣りにある黒いカバーを外し、以下を実行して Write Protection を外す。

% sudo ./frashrom --wp-disable
% sudo ./frashrom --wp-status
% sudo ./frashrom --w 

BIOS さえ入れ替わってしまえば後は普通の Ubuntu インストールなので、USBに Ubuntu イメージを用意して普通にインストールすれば終わり。最近は root を取った古いスマホに DriveDroid を入れて Boot させている。これは大変便利なのでおすすめ。

Ubuntu は大体そのままなにもしなくてもハードウェアドライバを認識して動いてくれるが、トラックパッドの認識は /etc/modules に指定が必要だった。

loop
lp
rtc
i2c-i801
i2c-dev
chromeos-laptop
cyapa

ここまでやるなら何故に Chromebook を買ったのだ、という批判は甘んじて受ける。

 

Pokémon GO の基本テクニックまとめ

Posted 9 months ago by yoosee.
  pokemongo

ポケモンGOはゲーム中の解説が意外と不親切なので、プレイしているだけだと気づきにくいことや幾つかの検証記事の内容を以下にまとめておく。これからプレイする人の参考になれば幸い。

ピカチュウ


野生ポケモンの捕獲

  • 野生のポケモンはIngressでいうXMが多い場所に多く発生する。概ねこれは「人がたくさんいるところ」と同義。ポケストップ(ポータル)の周りにも多い。
  • リングの色はポケモンの敵対度・捕獲しやすさを示す。緑→黄→オレンジ→赤 の順で難易度が上がる。CP が高い・敵対度が高いポケモンほど捕獲の難易度が高い。
  • ボールをロングタップしていると色のついたリングが拡大縮小を繰り返す。リングが大きい時に枠内に投げると Nice や Great, Excellent の出る確率が上がる?
  • ロングタップの状態で指をくるくる回るようになぞるとボールに回転をかけられる。
  • ポケモンに遭遇した直後のポケボールを投げ始められる瞬間にスワイプしてボールを投げると簡単に Nice ヒットさせやすい。また画面左端をスワイプしたり、別の指で筐体の右側を支持に使いながらスワイプしたりと幾つかテクニックがある。
  • レベルが上がるとCPの高いポケモンが出現しやすくなり、またCPの高いポケモンを捕獲しやすくなる。
  • 特定レベルでアンロックされる上級ボール(レベル12と20で開放)は捕獲が成功しやすい。またズリの実を使うことで敵対度を下げて捕獲しやすくできる。
  • ボールを投げると1回毎に捕獲成功率が上がり、ボールを当てた際にのみポケモン逃亡イベントが確率発生する。つまりボールを当てずにボールを投げ捨てることを複数回すると次に当てた時の捕獲率を安全に上げることが出来る。10個位投げ捨てると成功しやすいという説あり。
  • ポケモンの「表情・Emotion」によって捕獲難易度が変わるという話がある (参考: Pokemon GO - How to Catch Hard Pokemon After Level 20 Tricks)

風でボール軌道が曲げられるのはどう対処すべきなんだろうかね…。あれにハマるとボールを大量消費させられるので、よほど重要なポケモンでなければ一旦左上のアイコンで戦闘離脱して、再度捕獲にトライしたほうがましな気がする。

野生ポケモンの追跡

  • 足あとの数は距離を示す。足あとがないポケモンは自分のリングの回りにいるので5秒も待てばポップするはず。足跡の数と具体的な距離の相関は未判明だが、一説では最大300m範囲。なおポケモンは一定時間(10分程度?)で消えることもある。
  • コンパスをアンロック(向いた方向にマップがまわる状態)し、特定のポケモンを選択した状態でゆっくり向きを変えると、特定の向きでパルスが表示されることがある。その方向にポケモンがいる。距離が遠いとパルスが表示されない? (参考: I Tried ‘Pokémon GO’ Compass ‘Nearby’ Tracking, And This Is What I Found - Forbes)
  • Nearby ポケモンリストは同じ足跡3つでも左上ほど近く右下ほど遠い。移動してリスト内を左上方向に移動してくれば、その方向に狙ったポケモンがいるはず。 (参考: I Have Finally Figured Out ‘Nearby’ Tracking In ‘Pokémon GO’ - Forbes)
  • 足跡が2個以内になったら結構近いところにいるので頑張って探そう。
  • 一部報告では特定のポケモンが特定の同じ場所に数時間おきに湧く現象があるらしい。
  • あとバグなのかリストが更新されなくなることがあるので、そうした場合は一旦アプリを終了して再起動する。

追跡に関しては色々な検証記事が出ているが、特に距離に関してはこれという決定版はまだ無いっぽい。後から運営の調整が入る可能性もあるわけであり。またサーバとの通信の問題かアプリ側の問題か、リストがリアルタイムに更新されないこともあり、正直まともに追跡できる感がない。

ポケストップ

  • ポケストップはタップで拡大した後に丸い部分を左右にスワイプして回転させることでアイテムが得られる。
  • クールダウンは5分間。Ingressのようなバーンアウトは無いようで、5分おきに何度でもアイテムが取得できる。

ジム

  • 戦闘時の基本動作は「タップで攻撃」「ゲージが溜まったあとにロングタップでスペシャル技」「左右スワイプで回避」
  • 相手が必殺技を使ってきたらスワイプで高確率で回避できる。特に速度の遅い必殺技はほぼ回避可能。
  • ポケモンのわざには個別の攻撃力と、表記はないが攻撃速度がある。速度が早い攻撃は基本的に使いやすくて強い。
  • 攻撃タイプとポケモンタイプには普通のポケモンゲームで存在する相性あり。例えば水は火に強い。いわゆる「こうかはばつぐんだ!」
  • 自陣営のジムはトレーニングを繰り返すことでレベルが上ってポケモン追加容量も増える。自分のポケモンを追加できない場合はそうしてジムレベルを上げるのもひとつの手。
  • ジムにポケモンがいる状態でショップ右上のアイコンをタップすると報酬に1箇所あたり10ポケコインと500ほしのすながもらえる。ジム数所属数には制限がないが、ジムによるボーナスは最大10箇所、21時間のインターバル。特に専有し続ける必要はなく、タップの瞬間の所属ジム数のみ関与する。

トレイナーレベル

  • レベルアップすると高CPポケモンと遭遇しやすくなる。また高CPポケモンの捕獲が成功しやすくなる。但し捕獲しやすさよりもポケモンのCPが上がる方が早いので、レベルが上ると全般的には捕獲が難しくなる。
  • レベルアップによってアイテムがアンロックされる。アンロックされたアイテムはその後はポケストップでも入手可能。
  • レベルアップするとポケモンの強化上限が上昇する。
  • 最初のうちはレベルアップに専念し、ポケモンの強化やレア度の高いポケモンの進化はレベル15-20程度以降でCPの高い個体を捕まえた後のほうが効率がよさそう。

ポケモンの育成

  • 同じ育成度であれば、ポケモンの強さの決定要素は 1. わざ 2. ポケモンの種類 3. 個体値 の順。強い技が重要。同じ種類でも通常2種類の違う技があり、強さが全く違う。また敵との技の属性相性も重要。
  • 技の種類、CP最大値はポケモンの種類で違う。強化、特にほしのすなは「強い種類 + 強い技」の個体 (spreadsheet)につぎ込む。(※わざの強さが後から修正され、主に速度が早くて強かったわざが大きく弱体化されている。この先もどんな調整が入るのか不明)
  • 進化個体の技は進化時に決まるので、強化は進化前よりも進化させて強いわざを持っている事を確認後に行う。進化前進化後でもコストは同じ。
  • 個体値 は最大成長させた際の最大幅で10-15%程度。強化したい種類の個体が複数いる場合は選別してみても良いのでは、程度。

ジム攻撃時

  • ジム攻撃時は技の速度 (DPS - Damage Per Second) が大きく効く。1回あたりの攻撃時間が短い技ほど強い。STAB (クリティカルヒット率) も含め、「攻撃力(CP内のATK部分)×技速度×STAB」で与ダメージ量が決まる。

ジム防御時

  • ジム防衛時は攻撃速度は1.5秒に1回と定速になるため、DPSは関与しなくなる。とは言え技の出の速度は相手側の回避のしやすさに影響するので、特に必殺技は早いほうがよい。

  • ふかそうちは使用回数無制限が最初から1つと、あとはレベルアップ時に3回利用できるものがたまに得られる。ポケストップでは出ないっぽい。課金で購入はできる。使用回数無制限を 2km の卵に、回数制限ありを5kmや10kmのものに使うのが得策か。
  • 卵から孵ったポケモンからは通常捕まえるよりも大量のキャンディを取得できる。5-15個くらい。

課金アイテム

  • ルアーモジュールはポケストップに挿すと30分間かなり高レートでポケモンを生成してくれ、またそのフィールド外のポケモンも生まれるため、非常に強力。なおルアーで産まれたポケモンは足跡レーダーに出ない?
  • その他に買うなら「ふかそうち」「しあわせたまご」といったポケストップから出ないアイテム。特にふかそうちは最大9個まで並列で卵の距離を稼げるので有利。

その他

  • しあわせたまごは経験値の取得を30分間2倍にしてくれるので、例えば進化をその間にまとめて行うことで効率よく経験値を得られる。進化コストが低いポッポや大量に出るラッタラなどを貯めて一気に進化させるようにすれば経験値が無駄にならない。
  • 火・水・雷の3種に進化するイーブイは、予め特定の名前をつけておくと指定種族に確定進化させられるとのこと。日本語名は多分この後判明するんでしょう。
  • 実績メダルは今のところ特別な効用はなさそう。取得時にアイテムや経験値が偉えるということもない。
  • オプションの Battery Saver を有効にすると画面を見ていない際にブラックアウトして節電してくれたりする。ただこれを使うと画面がタッチに無反応になるバグが起こりやすい気がする。

 

Pokémon GO の熱狂がこのままだと頭打ちになるであろう3つの理由

Posted 9 months ago by yoosee.
  pokemongo

釣りタイトルになっているが、ポケモンGOがあまりに熱狂的に支持されているので、逆に「飽きた」場合の落ち込みが大きくなるのではないかと不安を感じてしまう。というのも当初の記事にも書いたように Pokemon GO は Ingress のような複雑さがない分だけ広い対象に受け入れられやすい一方、現時点でやり込み要素には大きく欠けており、このままだと恐らく飽きられやすい。もちろん不安を感じるというだけの話であって、この先何とかする計画はあるんだろうが。

やれることが少ない

前記事にも書いたが、今の Pokemon GO は「野生のポケモンを捕まえる」「キャンディと星屑で強化する」「ジムで勝つ」「レベルを上げる」くらいしかやることがない。実績メダルもプレイしていたら取れるもの程度でしか無い(少なくともIngressのようにレベルアップなどの条件にはなっていない)。遠出や観光を誘発するような「その場所でしか手に入らないもの(ポータルキーやミッション)」も無い。せいぜいレアポケモンくらいだが、それも偶発的なものであり、時間をかけて取りに行けるものかは疑問だ。

また集団で遊ぶという観点に関しても、数少ないソーシャル要素であるジムは仕組み上攻撃側が圧倒的に有利なので、相当に固めても簡単に陥落してしまう。なのでグループで組んでジムを防衛専有するというのも難しい。

つまり大体のことは近所の Pokestop と Gym があるところを散歩していれば事足りるし、一部のレアポケモンハントを除き、特に課金Lureでポケモン養殖をすればやりこみ要素が潰せてしまうのが現状である。

ソーシャルが弱い

Pokemon GOはソーシャル機能をほぼ全く持たない。内部チャットもないし、ジムが攻撃を受けたりジムに味方が追加されたりしても通知も来ない。ランキングなどもない。唯一あるのが写真だろうか。まあこれは Ingress でソーシャルの部分が様々なトラブルを産んだ反省を踏まえ、その何十何百倍ものユーザがプレイするゲームで予防線を張ったのかもしれないが、その分だけプレイ中に「他のプレイヤー」を意識すること自体が少ない。

また Ingress の場合はプレイヤー人口がさほどでもなかったことが逆に幸いし、リアルで遭遇すると声をかけあって知り合いになったり、知らない人ともローカルのイベントで盛り上がる事が結構あったのだが、Pokemon GO はプレイヤーが多すぎてその辺ですれ違うのが普通であり、協力プレイも元々の友達と一緒にやる事が多い。それもせいぜいが課金Lureを挿すこととジム強化くらいしかやることがない。つまりゲームを通じた新しい出会いというものに乏しいし、グループで長期間盛り上がれるのかも微妙な気がする。

将来的にはトレイラーにもあるようなミュウツー集団レイドイベントだのも出てくるのだろうが、今まで知らなかった人達とゲームを通じて自主的に集まって遊ぶという方向は今のところ見えない。

課金が強すぎる

Pokemon GO はリリース当初から課金アイテムが存在するが、その中でも Lure Module という Pokestop に挿すことで30分間ポケモンの生成・誘引をするアイテムが強力すぎる。Pokestop が建物の中からアクセスできるような場合は特に、Lureを一日中挿しっぱなしでポケモンを集めていれば最初に挙げた「ポケモンを捕まえる・強化する・レベルを上げる」が概ね達成されてしまう。恐らく日本でポケモンGOが開始すれば特に東京のオフィス街はLureの花吹雪だらけになるだろう。

周囲の観測でも、米国リリース後1週間程度の時点でも高レベルプレイヤーは20台後半以上にレベルを上げており、またポケモンの強さであるCPも1,500前後まで上がっていて、もうすぐ2週間が経つ今日では、重課金しないプレイヤーが追いつくのが難しくなっている。この辺りの格差をどうするのだろうか。

一方でソーシャル機能の弱さがバランスを取っていて、周りが強くてもさほど問題にならずプレイは出来るわけだが、ジム戦などではやはり難易度に大きく差が出るし、この後にあるであろうイベント等でどうするのかなとは興味がある。


こうした状況が続くとゲームへの「飽き」がくるのがかなり早くなってしまうのではなかろうか。とは言えこれくらいのことは当然 The Pokemon Company も Niantic Lab. も考えているだろうし、この先に機能追加や集団でのレアポケモンレイドやポケモン大会などのイベントも持ってくるのだろうが、今は未だ立ち上げの爆発的な増加にインフラでの対応等をしている段階だろうから、そうした機能追加やイベントが「飽き」に間に合うのかというのが余計な心配である。

まあ 1年後くらいにこれを読み返して「そう言えばあの頃はこれくらいしかやることがなかったねえ」とか思うことになることを願う。

 

Nexus 9 OTA を当てたら No Command エラーで起動しなくなったので直した話

Posted 10 months ago by yoosee.
  nexus9 android

Nexus 9 に月例セキュリティアップデートのOTA通知が来たのでいつものようにインストールしたら、しばらくして再起動中に画面に No Command というエラーが表示され起動しなくなってしまった。再起動してみるものの、途中で Your device is corrupt. It can't be trusted and may not work properly. Visit this link on another device: g.co/ABH というメッセージが出て最終的には同じエラー。うーん OTA Patch がシステムを壊してしまうとかどうよ。

Nexus 9 got "No Command" error after OTA

仕方がないのでググると過去のOTAでも同様の問題が発生しているらしい。個体差で起こるのか、アップデート中に何か問題が起きたのか。さておき、このままでは Brick でしかないので修復を試みる。まあよほどでない限りは外から直せるものなのでさほど慌ててはいない、が面倒なのは事実。他に同様の問題に遭遇した人の参考になるように備忘録を付けておく。

復旧手順

HBOOT からの Factory Reset を試す

Nexus 9 の場合は Volume Down を押しながら Power Key で起動することで HBOOT モードに入ることができる。ここからは Fastboot や Recovery 等が実行できるのだが、取り敢えずは Factory Reset を試してみる。

Nexus 9 Factory Reset from HBOOT

10分ほど Eracing アイコンがクルクル回った後に再起動してみるも、やはり駄目。

当然ながら Factory Reset をすると内部ストレージ上を含めてデータは完全に消えるので、消えて困るデータが有る人は下記の Rescue OTA を先に試したほうが良いかもしれない。運が良ければデータが消えずに残る。もちろん基本は転ばぬ先のバックアップであって、私は Factory Reset しても特に困らないので先に試した。

ADB sideload からの Rescue OTA の適用

ということで仕方がなくマニュアル作業での Rescue OTA 適用を試すことに。

Nexus 9 No Longer Working After Latest Update - Google Product Forums

基本的には上記リンク先の作業そのままだが、多少手順の省略などはしている。

  1. 上記リンク先から adb-setup-1.4.3.exe をダウンロードして実行し、adb と device driver をインストール (必要に応じて)
  2. Nexus 9 の電源を長押しなどで一旦OFFにし、Volume Down + Power で HBOOT Mode で起動。なお基本的に Vol キー上下でカーソルを動かし、Power キーで実行する。
  3. HBOOT 画面から RECOVERY を選択。しばらくすると No Command 画面が表示される。
  4. その画面で Power を押しながら Volume Up をタップすると、Android Recovery に遷移する。下写真参考。
  5. 画面上部に現在のファームウェアバージョンが 6.0.1 / MOB30M / 2862625 のような感じに表示されるのでメモ。
  6. メニューから Wipe cache partition を選択して実行。数分から10分程度かかるので待つ。
  7. その間に Nexus 9 Rescue OTA から当該ファームウェアのバージョンを選択してダウンロード。LTE 版と WiFi 版があるので間違えないように。
  8. cache partition の Wipe が終わったら、今度はメニューから Apply Update from ADB を選択。
  9. Nexus 9 を USBケーブルでPCに接続。Android Composite ADB Interface が認識されるはず。
  10. コマンドプロンプトで adb devices と実行して、Nexus 9 のシリアル番号が表示されることを確認。
  11. ダウンロードした Rescue OTA の zip ファイルをそのまま c:\Temp などを作ってそこに置く。
  12. adb sideload c:\Temp\volantis-ota-mob30m-738daf66.zip のように実行。ファイル名はダウンロードしたファイル名を指定すること。
  13. うまく実行されればコマンドプロンプトとNexus 9の両方に進捗が出るはず。10 - 20 分くらいかかる。
  14. 終了したら Reboot system now を選んで起動する。

Nexus 9 Recovery Menu

Nexus 9 sideload image by ADB

私の場合はこの再起動後も corrupted メッセージが出るものの、Power ボタンで先に進むと一応問題なく起動してきた。起動後に当然な顔をして System Upload の通知が来ていて、適用しないわけにも行かないが取り敢えず後回しに…。

なお今回は adb sideload で patch を上書きする形をとったが、よく考えたら先に Factory Reset しているので完全にイメージ上書きでも構わないのであった。手間は殆ど変わらないのでどちらでも構わない話ではあるが、Factory Image の書き込みについては公式ドキュメントを参考のこと。

Factory Images for Nexus Devices  |  Nexus Files for Developers  |  Google Developers

しかしこれ、私はADBとか使うのは慣れているので困りはしなかったけど、普通の人がこの状態になったら結構厄介な気はする。14MB の Security Update OTA くらいまともに配布してほしいものだけど、デバイスが多いとまあこういうことも起こるのだろう。