0
AOSPをミラーしてみた横浜Androidプラットフォーム部       2011.10.23   kinneko@gmail.com
 repo sync、時間がかかってイヤですよね…
 待つ身はつらいわ...
少し前、 kernel.org突然のダウン!
 そのあおりで、  ここしばらく、   AOSPが 壊滅してました。
 仕事にも、遊びにも、   重大な問題…
 その間、皆さん、 どう生活されて  いましたか?
codeaurora.org の汚れた水を飲んだ?
android.git.linaro.org   の軒下を間借り?
OESFのGitHubOHAミラー乞食?
いずれにしても、つらい日々でありました。
 祝!AOSP復活
git.android.kernel.org          ⇩android.googlesource.com
so for the momentgitweb source browsing           and  Gerrit Code Review are still unavailable.
The kernel source trees arent  available at the moment.Getting them back is definitely       on the to-do list.
 復旧には、  まだ時間が 必要なようです。
Since Ice Cream Sandwichdoes everything that Honeycomb     does (and much more),    theres no plan to release      Honeyco...
黒歴史 ...
あっと、話をもとにもどして…
だいぶ速くは  なったけど、   それでも、   syncは つらい時間です…
Mirroring AOSP ?https://groups.google.com/forum/#!topic/     android-building/2gLwqjlQq3A
mjd!
AOSPを自分のマシンに 簡単にミラーできる?
syncの苦悩からの開放…
 やってみましょう。
$ mkdir /usr/local/android-mirror$ cd /usr/local/android-mirror$ repo init --mirror -u https://  android.googlesource.com/...
$ mkdir /usr/local/android-2.3.7$ cd /usr/local/android-2.3.7$ repo init -u /usr/local/mirror/platform/  manifest.git -b a...
 簡単すぎです!
実際はこうでした…
kinneko@BuildSV: $ mkdir AOSPkinneko@BuildSV: $ cd AOSPkinneko@BuildSV: /AOSP$ ../repo init --mirror -u https://android.go...
Get https://android.googlesource.com/mirror/manifestremote: Counting objects: 3, doneremote: Total 3 (delta 0), reused 3 (...
kinneko@BuildSV: /AOSP$ ../repo syncFrom /home/kinneko/AOSP/device/google/accessory/arduino.git/clone.bundle * [new branch...
なんか、たまにerror: RPC failed; result=28, HTTP code = 0fatal: The remote end hung up unexpectedlyとか出ますね。
remote: Counting objects: 15326, doneremote: Compressing objects: 100% (2793/2793)error: RPC failed; result=28, HTTP code ...
gitは、JBQは1.7.3.1を使っているそうです。Ubuntu 11.04だと1.7.4.1-3かな。最近updateしてないけど。
deviceの下のバイナリとか、なんか落とすのイヤだなぁ。使わないのに。
error: Exited sync due to fetch errorsエラーで落ちた。
error:   Exited   sync   due   to   fetch   errorserror:   Exited   sync   due   to   fetch   errorserror:   Exited   sync...
TLSでエラーだと...
error: Cannot fetch platform/tools/tradefederationerror: gnutls_handshake() failed: A TLS packet withunexpected length was...
error: gnutls_handshake() failed: A TLS packet withunexpected length was received. while accessinghttps://android.googleso...
なんか、pythonのエラーまで出てます...ダメかも。
Exception in thread Thread-224:0% (665/6647)Traceback (most recent call last): File "/usr/lib/python2.7/threading.py", lin...
platform/prebuilt1104MBでかすぎ。
kinneko@BuildSV: /AOSP$ ../repo syncFetching projects: 100% (233/233), done.終わった。なんどもリトライしたよ。丸一日がかりだったわ... orz
使用容量は?kinneko@BuildSV: /AOSP$ du -sh ./3.3G ./まぁ、こんなもんでしょ。
さて、AOSPローカルミラーから、syncしてみる。
kinneko@BuildSV: $ mkdir mydroidkinneko@BuildSV: $ cd mydroid/kinneko@BuildSV: /mydroid$ ../repo init -u /home/kinneko/AOS...
kinneko@BuildSV: /mydroid$ ../repo sync(略)error: pack-objects died of signal 11error: git upload-pack: git-pack-objects di...
普通にミラーを再度syncしても、異常はない。ローカル取得分が壊れていると判断。webkitのgitリポジトリをバッサリ削除して、再取得してみる。
kinneko@BuildSV: /AOSP$ rm -rf platform/external/webkit.gitkinneko@BuildSV: /AOSP$ ../repo syncFetching projects: 67% (157...
うまくいったようだ。
ミラーのsyncがうまくいったからといって、ファイルが壊れていない保証はない!
再取得後、再度syncしてみる。
kinneko@BuildSV: /AOSP$ cd ../mydroid/kinneko@BuildSV: /mydroid$ ../repo init -u /home/kinneko/AOSP/platform/manifest.git ...
2分強!
すげー、-jオプションなしで、2分強くらい!快適すぎです。まるで repo sync -l のよう!
kinneko@BuildSV: /mydroid$ time ../repo sync   -j12(略)real   2m0.475suser 2m54.190ssys 0m28.450s
ほとんど、IOの処理なので、-jオプションを使っても、速くならない。
ビルドしてみる。
kinneko@BuildSV: $ cd mydroid/kinneko@BuildSV: /mydroid$ export ARCH=armkinneko@BuildSV: /mydroid$ export PATH=/home/kinne...
kinneko@BuildSV: /mydroid$ time make -j12=========================================PLATFORM_VERSION_CODENAME=RELPLATFORM_VE...
ビルド時間はお金で買える!
model name    :     i7 980Intel(R) Core(TM)   CPU   @3.33GHzMemTotal:12323396 kB
どのみち、 ICSのビルドには、このくらいのリソースが    必要です。
何かと一筋縄ではうまくいかなかった    ですが、
使わない手はありませんよ!
syncの苦悩からの開放…
syncの苦悩からの開放  それは、もう、 あなたのものです!
それ以外にも…
 ・独自ブランチの運用 ・ としてセットアップして、  チームで使えるリポジトリに ・AOSPとのsync前に一度やって  おくと差分だけのsyncで済む
 ・AOSP死んでても、  影響ぜんぜんない! ・WAN接続なくてもsyncできる! ・裏でAOSP syncしておけば、  いつでも最新環境を一瞬で入手。
何より、syncごときで  イラっとしなくなります。
おしまい
AOSPをミラーしてみた
Upcoming SlideShare
Loading in...5
×

AOSPをミラーしてみた

1,154

Published on

「AOSPをミラーしてみた」
横浜PF部 2011/10/23資料

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,154
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "AOSPをミラーしてみた"

  1. 1. AOSPをミラーしてみた横浜Androidプラットフォーム部 2011.10.23 kinneko@gmail.com
  2. 2.  repo sync、時間がかかってイヤですよね…
  3. 3.  待つ身はつらいわ...
  4. 4. 少し前、 kernel.org突然のダウン!
  5. 5.  そのあおりで、 ここしばらく、 AOSPが 壊滅してました。
  6. 6.  仕事にも、遊びにも、  重大な問題…
  7. 7.  その間、皆さん、 どう生活されて いましたか?
  8. 8. codeaurora.org の汚れた水を飲んだ?
  9. 9. android.git.linaro.org  の軒下を間借り?
  10. 10. OESFのGitHubOHAミラー乞食?
  11. 11. いずれにしても、つらい日々でありました。
  12. 12.  祝!AOSP復活
  13. 13. git.android.kernel.org ⇩android.googlesource.com
  14. 14. so for the momentgitweb source browsing and Gerrit Code Review are still unavailable.
  15. 15. The kernel source trees arent available at the moment.Getting them back is definitely on the to-do list.
  16. 16.  復旧には、 まだ時間が 必要なようです。
  17. 17. Since Ice Cream Sandwichdoes everything that Honeycomb does (and much more), theres no plan to release Honeycomb in AOSP.
  18. 18. 黒歴史 ...
  19. 19. あっと、話をもとにもどして…
  20. 20. だいぶ速くは  なったけど、  それでも、 syncは つらい時間です…
  21. 21. Mirroring AOSP ?https://groups.google.com/forum/#!topic/ android-building/2gLwqjlQq3A
  22. 22. mjd!
  23. 23. AOSPを自分のマシンに 簡単にミラーできる?
  24. 24. syncの苦悩からの開放…
  25. 25.  やってみましょう。
  26. 26. $ mkdir /usr/local/android-mirror$ cd /usr/local/android-mirror$ repo init --mirror -u https:// android.googlesource.com/mirror/manifest$ repo sync
  27. 27. $ mkdir /usr/local/android-2.3.7$ cd /usr/local/android-2.3.7$ repo init -u /usr/local/mirror/platform/ manifest.git -b android-2.3.7_r1$ repo sync
  28. 28.  簡単すぎです!
  29. 29. 実際はこうでした…
  30. 30. kinneko@BuildSV: $ mkdir AOSPkinneko@BuildSV: $ cd AOSPkinneko@BuildSV: /AOSP$ ../repo init --mirror -u https://android.googlesource.com/mirror/manifest
  31. 31. Get https://android.googlesource.com/mirror/manifestremote: Counting objects: 3, doneremote: Total 3 (delta 0), reused 3 (delta 0)Unpacking objects: 100% (3/3), done.From https://android.googlesource.com/mirror/manifest * [new branch] master -> origin/masterrepo mirror initialized in /home/kinneko/AOSP
  32. 32. kinneko@BuildSV: /AOSP$ ../repo syncFrom /home/kinneko/AOSP/device/google/accessory/arduino.git/clone.bundle * [new branch] master -> master * [new branch] gingerbread -> gingerbreadremote: Counting objects: 6, doneremote: Finding sources: 100% (6/6)remote: Total 6 (delta 0), reused 6 (delta 0)Unpacking objects: 100% (6/6), done.(略)
  33. 33. なんか、たまにerror: RPC failed; result=28, HTTP code = 0fatal: The remote end hung up unexpectedlyとか出ますね。
  34. 34. remote: Counting objects: 15326, doneremote: Compressing objects: 100% (2793/2793)error: RPC failed; result=28, HTTP code = 0iB ¦ 110 KiB/sfatal: The remote end hung up unexpectedlyerror: RPC failed; result=28, HTTP code = 0 MiB ¦ 311 KiB/sfatal: The remote end hung up unexpectedlyerror: Cannot fetch toolchain/gmp61), 18.19 MiB ¦ 198 KiB/serror: RPC failed; result=28, HTTP code = 0 MiB ¦ 187 KiB/sfatal: The remote end hung up unexpectedlyerror: RPC failed; result=28, HTTP code = 0 MiB ¦ 104 KiB/sfatal: The remote end hung up unexpectedlyerror: Cannot fetch toolchain/gold
  35. 35. gitは、JBQは1.7.3.1を使っているそうです。Ubuntu 11.04だと1.7.4.1-3かな。最近updateしてないけど。
  36. 36. deviceの下のバイナリとか、なんか落とすのイヤだなぁ。使わないのに。
  37. 37. error: Exited sync due to fetch errorsエラーで落ちた。
  38. 38. error: Exited sync due to fetch errorserror: Exited sync due to fetch errorserror: Exited sync due to fetch errorserror: Exited sync due to fetch errorserror: Exited sync due to fetch errorserror: Exited sync due to fetch errorserror: Exited sync due to fetch errorserror: Exited sync due to fetch errorserror: Exited sync due to fetch errorsエラーで落ちた。再実行しる。
  39. 39. TLSでエラーだと...
  40. 40. error: Cannot fetch platform/tools/tradefederationerror: gnutls_handshake() failed: A TLS packet withunexpected length was received. while accessinghttps://android.googlesource.com//toolchain/build/info/refsfatal: HTTP request failederror: Cannot fetch toolchain/build
  41. 41. error: gnutls_handshake() failed: A TLS packet withunexpected length was received. while accessinghttps://android.googlesource.com//platform/external/v8/info/refs
  42. 42. なんか、pythonのエラーまで出てます...ダメかも。
  43. 43. Exception in thread Thread-224:0% (665/6647)Traceback (most recent call last): File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner self.run() File "/usr/lib/python2.7/threading.py", line 505, in run self.__target(*self.__args, **self.__kwargs) File "/home/kinneko/AOSP/.repo/repo/subcmds/sync.py", line 182, in_FetchHelper success = project.Sync_NetworkHalf(quiet=opt.quiet) File "/home/kinneko/AOSP/.repo/repo/project.py", line 926, inSync_NetworkHalf if alt_dir is None and self._ApplyCloneBundle(initial=is_new, quiet=quiet): File "/home/kinneko/AOSP/.repo/repo/project.py", line 1444, in_ApplyCloneBundle exist_dst = self._FetchBundle(bundle_url, bundle_tmp, bundle_dst, quiet) File "/home/kinneko/AOSP/.repo/repo/project.py", line 1508, in _FetchBundle raise DownloadError(%s: %s % (req.get_host(), str(e)))DownloadError: android.googlesource.com: <urlopen error [Errno 8] _ssl.c:499:EOF occurred in violation of protocol>
  44. 44. platform/prebuilt1104MBでかすぎ。
  45. 45. kinneko@BuildSV: /AOSP$ ../repo syncFetching projects: 100% (233/233), done.終わった。なんどもリトライしたよ。丸一日がかりだったわ... orz
  46. 46. 使用容量は?kinneko@BuildSV: /AOSP$ du -sh ./3.3G ./まぁ、こんなもんでしょ。
  47. 47. さて、AOSPローカルミラーから、syncしてみる。
  48. 48. kinneko@BuildSV: $ mkdir mydroidkinneko@BuildSV: $ cd mydroid/kinneko@BuildSV: /mydroid$ ../repo init -u /home/kinneko/AOSP/platform/manifest.git -b gingerbread(略)repo initialized in /home/kinneko/mydroid
  49. 49. kinneko@BuildSV: /mydroid$ ../repo sync(略)error: pack-objects died of signal 11error: git upload-pack: git-pack-objects died with error.fatal: git upload-pack: aborting due to possible repository corruptionon the remote side.remote: aborting due to possible repository corruption on the remoteside.fatal: early EOFfatal: index-pack failed(略)Fetching projects: 99% (169/170) error: Cannot fetch platform/external/webkiterror: Exited sync due to fetch errorsWebkit壊れているって...
  50. 50. 普通にミラーを再度syncしても、異常はない。ローカル取得分が壊れていると判断。webkitのgitリポジトリをバッサリ削除して、再取得してみる。
  51. 51. kinneko@BuildSV: /AOSP$ rm -rf platform/external/webkit.gitkinneko@BuildSV: /AOSP$ ../repo syncFetching projects: 67% (157/233)Downloading platform/external/webkit: 8%(5MB/56MB)(略)Fetching projects: 100% (233/233), done.
  52. 52. うまくいったようだ。
  53. 53. ミラーのsyncがうまくいったからといって、ファイルが壊れていない保証はない!
  54. 54. 再取得後、再度syncしてみる。
  55. 55. kinneko@BuildSV: /AOSP$ cd ../mydroid/kinneko@BuildSV: /mydroid$ ../repo init -u /home/kinneko/AOSP/platform/manifest.git -b gingerbreadkinneko@BuildSV: /mydroid$ time ../repo sync(略)Fetching projects: 100% (170/170), done.Checking out files: 100% (12174/12174), done.ut files:0% (13/12174)Checking out files: 100% (10462/10462), done.ut files:0% (76/10462)Syncing work tree: 100% (170/170), done.real 2m12.760suser 2m50.090ssys 0m26.840s
  56. 56. 2分強!
  57. 57. すげー、-jオプションなしで、2分強くらい!快適すぎです。まるで repo sync -l のよう!
  58. 58. kinneko@BuildSV: /mydroid$ time ../repo sync -j12(略)real 2m0.475suser 2m54.190ssys 0m28.450s
  59. 59. ほとんど、IOの処理なので、-jオプションを使っても、速くならない。
  60. 60. ビルドしてみる。
  61. 61. kinneko@BuildSV: $ cd mydroid/kinneko@BuildSV: /mydroid$ export ARCH=armkinneko@BuildSV: /mydroid$ export PATH=/home/kinneko/panda/L27.12.1-P2/build_tools/arm-2010q1/bin:/usr/bin:/binkinneko@BuildSV: /mydroid$ exportCROSS_COMPILE=arm-none-linux-gnueabi-kinneko@BuildSV: /mydroid$ . build/envsetup.shincluding device/htc/passion/vendorsetup.shincluding device/samsung/crespo/vendorsetup.shincluding device/samsung/crespo4g/vendorsetup.shkinneko@BuildSV: /mydroid$ lunch generic-eng
  62. 62. kinneko@BuildSV: /mydroid$ time make -j12=========================================PLATFORM_VERSION_CODENAME=RELPLATFORM_VERSION=2.3.7(略)real 12m2.785suser 100m36.420ssys 5m35.710s
  63. 63. ビルド時間はお金で買える!
  64. 64. model name : i7 980Intel(R) Core(TM) CPU @3.33GHzMemTotal:12323396 kB
  65. 65. どのみち、 ICSのビルドには、このくらいのリソースが 必要です。
  66. 66. 何かと一筋縄ではうまくいかなかった  ですが、
  67. 67. 使わない手はありませんよ!
  68. 68. syncの苦悩からの開放…
  69. 69. syncの苦悩からの開放 それは、もう、 あなたのものです!
  70. 70. それ以外にも…
  71. 71.  ・独自ブランチの運用 ・ としてセットアップして、  チームで使えるリポジトリに ・AOSPとのsync前に一度やって  おくと差分だけのsyncで済む
  72. 72.  ・AOSP死んでても、  影響ぜんぜんない! ・WAN接続なくてもsyncできる! ・裏でAOSP syncしておけば、  いつでも最新環境を一瞬で入手。
  73. 73. 何より、syncごときで イラっとしなくなります。
  74. 74. おしまい
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×