東海自然歩道を徃く24(朝霧高原-富士吉田/富士吉田-平野)

東海自然歩道のルートも残すところあと5つ(と一つ)ですね…高尾山に近づくにつれ
時間的・金銭的・体力的・技術的な難易度が跳ね上がっていくのを感じます。
今期は2013年内に決着を付けるつもりでラストの関東コースを挑みます!


●2013.11.01 朝霧高原->富士吉田

夜行バスの唯一の休憩地点、土山SAにて…
今回は50km近くの長丁場、しっかり食べておかないと…



…やっと富士宮についた…こっからさらに道の駅朝霧高原に…
この日は平日で早朝のバスはないのでタクシーで移動。



道の駅朝霧高原に到着。やっと車から解放された…。
そして朝食も済ませ足回りのテーピングを完全に施し…
い ざ 出 発 !



国道139号線を跨ぎ、前回のエントリポイントに向かいます。



今回は70%以上が平地のトレイルで文字通りのトレイルランが出来そうです!



山道に係る川をジャンプで飛び越してふと上を見ると
根原のつり橋が見えました。



A沢貯水池という事務的な名称の池に沿って走ります。
その後すぐ山道です。



端足峠への分岐をかすめて県境に向けたトレイルを走ります!!


走る!走る!




東海自然トイレを過ぎてすぐの場所に県境である割石峠につきました。
約一年かかって静岡ステージを脱出です!


割石峠からは国道139号線への離脱が可能です。


ここから先は迷いやすい問題の山梨県。まずは本栖湖に向けて走ります!


この見るからに毒々しい草、マムシグサというどくどくでした…


迷いやすいといわれる山梨ステージですがこの時点ではまだ牙を剥いてません。
それどころか写真入りで矢印が示されてる箇所も…



本栖の部落へ向かう分岐から"本栖湖"へ進路をとり、県道709号線に落ち合います。



本栖湖に到着です。
駐車場と小さな売店、そして道路を挟んでトイレもありました。
ここでほんの少しだけ休憩。



しばらくの間本栖湖湖畔を走った後県道を横切り、ついに青木ヶ原原生林に突入
します!今はもう消滅した上九一色村の道案内は当時のままです。



国道139号線をアンダークロスして樹海をひた走ります!



ノンストップで走って走って精進湖民宿村まで出てきました。googlemapが出来た
当初に"森の中に謎の集落がある!"とちょっと話題になった場所ですね。
ちょっとルートから外れ精進湖入口も見てました。



さて本ルートに戻りさらに樹海を突き進みます。標高は高い場所ですが道は平たんで
非常に走りやすい場所です。この日は平日だったので他のハイカーも全くおらず一気に
かっ飛ばします。



ぅぉぉ!!


標高が高いのですでに紅葉も色づいていました。



走って走ってだいぶたったころに風穴に到着です。ここからもう少し進むと鳴沢氷穴
があります。



このあたり溶岩がでこぼこしてて晴れててもこけやすいです。
そしてこれまた有名な"めいわく自殺防止看板"を通り過ぎると…




鳴沢氷穴に到着です。ここで紅葉台に向かうための準備を兼ねて小休憩としました。


あの…貸した金返してもらうための相談とかは…




鳴沢氷穴を離れ紅葉台へ向かいます。この案内がある場所で139号線に出られます。
また、富士急バスのバス停も存在します。




紅葉台に到着です。鳴沢氷穴との標高差は100m程なのでここまでは大した登りでは
ありません。尤も1000m以上にある場所なので既に紅葉真っ盛りでした。
しかし…肝心の富士山はちょうどその部分だけ曇ってて全く見えませんでしたF**K!


紅葉台有料展望所を超えてお次は三湖台に向かいます。





三湖台です。先ほど通過した樹海や西湖を見渡すことができます。



三湖台を離れ、足和田山(五湖台)に向かいます。このあたりから登山道は林道と常に
併走するようになります。


木々の合間から西湖が見えます。



やがて林道と離れさらに急になった登りを超えると…




五胡台こと足和田山に到着します。残念ながら樹木が多く湖はあんまし見えません。
富士山はもちろん雲に完全にkk…F**K!



長居は無用なのでとっとこ下山しました。しかもず〜〜〜っと階段攻めorz



足和田山登山口(大田和入口)に下りてきました。たしか一本木登山口という名称の
はずでしたがゲートにあった名称を期したプレートが見当たりませんでした。


こっから先はひたすら車道を進みます…が迷いやすい山梨ステージの本性がついに
現れだしました…!ここは河口湖総合運動場へ行くのが正解です!大田和へ行くと
大きく迂回してしまいます。


このあたりで道を失って行ったり来たりorz


県道704まで出てしまい、大田和バス停方面にばくちで向かった途中でようやく道を
見つけましたよクソァ!!


国道139号を横切ってダートの道を突き進みます。


ここもトラップです!!無視して直進!!


で、直進すると四つ角にでるのですが直進ではなくなぜか道標が富士山頂方面へ
向かう太い道を差しているのですがここで大きい道を道標の示すまま直進してしまうと
ルートミス!!私のたどった軌跡を参考に迷わないようにしましょう!
そしてやっと見つけた道標…クソァ!!


その後も迷いまくって河口湖総合運動場の交差点にたどり着きました。
ここでクロスしている船津口登山道を国道139号線方面に下り漸くルートに戻りました
クソァ!!


ホテルレジーナ河口湖入口です。紅葉がきれいです♥



ここから剣丸尾溶岩流のトレイルを通り国道139号に近づきます。



富士スバルラインを横切り巨大な富士ビジターセンターに到着です。



日がだいぶ傾いてきたので休憩はせず水の補給だけしてすぐに出発です。
ここから先は国道139号線を延々と通過します。



富士急ハイランドを横目に139号線をひた走ります。
たぶんいつかきっとここに家族で遊びに来れると思います…



139号線から離れて北口本宮富士浅間神社に到着です。建物の修繕の真っ最中でした。




次回のルートの無事を祈ります。ここが次回のエントリポイントとなります。




東海自然歩道のルートと離れて富士急行線の富士山駅(旧富士吉田駅)へ向かいます。


途中の下り坂で最後の最後でようやく富士山を拝めました…じわわ。




空に暗がりが広がり始めたころに富士山駅に到着です。
東京から富士山に来るばあいこちらの山梨県側から来られる方が大半のようですね。
力のかけ方が尋常じゃないです…富士宮も頑張れ!


この写真を撮った時はまだ少し明るかったのですが、QSTAのトイレで
着替えを済ませて外に出るとすっかり暗くなってました。
お土産を買った後JR御殿場駅行きのバスに乗り込み帰路につきました。


●2013.11.15 富士吉田->平野

今回は京都から富士吉田まで約10時間のバス攻め…富士急ハイランドが見えたころ
には私のキュートなお尻は崩壊していた(←と言っても漏らしたわけではない)




富士山駅内でモスバーガーが営業していたので朝飯と足回りの準備を固めました。
ストレッチも十分に行いスタート!



北口本宮富士浅間神社に向かう国道137号は富士講の宿場町として栄えていました。
通勤ラッシュも終わり車の通りがゼロなのでこんな無茶なアングルで撮影もできます。




参道までやってきました。前回の道を手繰ります。



北口本宮富士浅間神社につきました。ここが前回からのエントリポイントとなります。
今回のルートの無事を祈りお参りしました。…と、ここでタッチの差で参道から大勢
の観光客が押し寄せてきました。



他の方のレポートでは国道138号線を迂回しなければならないと記述されていましたが
2013年の現在は小川に橋が架っており、国道を経由せず境内から直接行けます。



しばしの間流れが強い用水路のわきを進みます。



そして138号線と合流します。しばし南下したのちルートは富士吉田市歴史民俗博物館
の脇道に入ります。




脇道は素晴らしい紅葉のアーチになっていました♥



しばし脇道を走ると散策路に入ります。道標が全くなく迷いやすいですが迷ったら
ひとまず138号線にでるのが吉です。またこのあたりルートが複数あるのでご注意を。




少しの間のトレイルを超えて鐘山橋に到着です。国道138号線の忍野入口交差点から
もこの場所に来られますのでご安心を。道はすぐにトレイルに戻り、忍野八海へと
向かいます。



下写真の富士学園の手前に道標がない分岐があります。ここは道なり直進で。


忍野八海分岐に出ました。本ルートは右折で山中湖ですが寄り道して忍野八海へ寄り
ました。



なんと平日にもかかわらず観光客でいっぱいです。
気が付いたら草餅買って食べてました…





忍野八海です。ここは富士山の雪解けの湧水が湧出して8つの池ができた場所です。





結構飛ばして走ってきたのですが実は私はここで初めての水分補給です。朝のモス
バーガーで燃料蓄えてたせいでしょか。固形物もさっきの草餅で賄えてます。




忍野八海を離れ、本ルートに戻ります。ぽつぽつ来ていた雨はだんだん雨脚が強く
なってきました。しかし今日は天気予報をみてあらかじめ雨対策万全にしてきたので
想定の範囲内です!
…今回目指す大平山には雲がおっかぶさっていた…。


忍野八海から少し離れた湧出池の浅海を通り過ぎます。




車道を走って今度はハリモミ純林の中の車道を突っ切ります。



ほうとう屋を過ぎた交差点で左折し別荘地の間を抜けたら石割山に続く登山道と
なります。雨は叩きつけるような土砂振りへ変わりました…。



稜線に向けて高度を上げるたびに風もだんだん強くなってきました。

しかし、私は雨中の登山は幾つか経験して来ました。身近なものを利用した電子機器
の防水対策や、濡れたところに強い風に吹かれて一気に体幹が冷やされることによって
おこる低体温症を起こさないための対策とかもこれまた身近なものをうまく使いこな
して完璧にしております!
雷とか土砂崩れ等の不可抗力を除けは注意して進めば怖くな…



ゴロゴロゴロ…ズドドン


…なんと稜線にでたころから風雨に加えて雷様も出てきやがったようです
オイオイオイ勘弁してくだち…



普段は風光明媚で富士山とかもきれいに見えるんでしょうけど今は自然が牙を剥いて
襲いかかってきてるような感じです。
しかし東海自然歩道進み続けてたらこんなBADDESTな日なぞよくあります…そのために
いつも特訓して装備も研究して走破できるようにしてるわけですよ…!
私は前傾姿勢になって走るスピードを上げた!



大平山に到着です。雨と風が凄まじいことになってますがイヤホン取ったら風が
バォォォォォォと語りかけます。うまいうますぎる
防風フィルムを体に巻いてなかったらとっくに低体温症になってお陀仏だったかも。



お次は平尾山に向かいます。吹きっ晒しの稜線上からは芙蓉台別荘地がちらほらと
見えました。




平尾山です。漸く雨が弱まって来ましたが風は相変わらずです。
レンズに水が付着しまくってしまいました。
本来ならこのまま平野まで下山ですが、予定より時間よりかなり早くここまできて
しまったので石割山にも行きました。



石割山頂上への最後の直登が泥でヤバかったですがロープが張ってあったおかげで
何とかたどり着けました。気温が落ちてきた所に体が温まったおかげかお尻のポッケ
に入れていたでぢかめのレンズがとうとうケツ露にorz



ゲフンゲフフン…すみません。
石割山から平野への分岐にもどり今度こそ平野におります。



下るにつれて雨脚と風もだいぶ弱まってきました。
舗装路まで下りたらもう安心です♥



さらに下って道志道との合流地点である不動明王社に着きました。
そのすぐそばに次回の西丹沢への道標があります。
ここが次回のエントリポイントです!



さらに下って"山中湖平野"のバス停に到着しました。
ここから森の駅旭日丘までラストスパートです!


国道413号に沿ってひたすら走ります。行きかう車が容赦なく水をはねてくるので
その都度ジャンプでかわしました!(←元から濡れてるじゃんってのは無しで)




歩道はやがて紅葉の道になりました。湖畔にも降りられるようになったので
そちらへ進みました。




あんな場所を越えてきたのか…と感慨にふけってる所にもうじき今回の終点が
近づいてきました。




山中湖の巨大なレリーフがある場所で道路に戻り、今回のゴール"森の駅旭日丘"
に到着しました。距離は30kmもなく、難易度もかなり低いルートのはずですが、
中盤〜後半の超悪天候のおかげでなかなかの手ごたえでした。



着替えと土産の購入を終えて気温9度の中をバスを待っていたら"カバです!カバです!"
と妙に真面目なナレーションと共に水陸両用バスKABAが発進しておりました。
転んでひっくりかえったりしたらBAKAみたいd



ゲフンゲフフン・・・やってきた富士急バスに乗り込み前回と同じく
JR御殿場駅へ向かい帰路につきましたっと



次回はいよいよ東海自然歩道の最難関、丹沢山塊の縦走です。西丹沢と北丹沢の二つ
の過酷なルートに挑みます!



朝霧高原->富士吉田 GPSログ

富士吉田->平野 GPSログ

OpenOCD小ネタ4 -LPC810に書き込みできないの-

>8PinDIPのARMマイコンLPC810、ようやく一般市場に出回る!

あのさぁ…私がLPC812を最初に手に入れてからもう約1年たったんですよぅ約1年!
それを今更…


こんなのこうしてやる!
STM32F0Discoveryが放つprobeに捕えられDiscloseされる哀れな
LPC810の姿。

ぐへへ32bitマイコンのくせにこんなにいやらしく足広げ(間隔:2.54mm)やがって♥

はぁ…はぁ…でもあんまし攻めると某ウイルスバスターのweb広告に出てくる
コワモテ893
に似たNxPの中の人にこのぶろぐ焼き討ちされちゃいますのでこの辺に
しておいてあげます…









…さて戯言はこの辺にしといてOpenOCDにおいては既にねむいさんがLPC800
シリーズ向けのぱっちを提供し、STLink/V2,Versaloon(※要パッチ),
CMSIS-DAP(※要パッチ)の各デバッガハードウエアからSWDで書き込み可能です。
一応購入したからせっかくだから上記
写真のようにちょっと通電してSTLink/V2で書き込んでやろうかなと
思ったのですが…


> "C:¥Devz¥Coreutils¥bin¥make.exe" program
openocd -s C:/Devz/ARM/OCD/tcl -f interface/stlink-v2.cfg -f target/lpc810_hla_flash.cfg -c "mt_flash main.elf"
Open On-Chip Debugger 0.8.0-dev-00269-g30fb9dd-dirty (2013-11-19-20:50)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.sourceforge.net/doc/doxygen/bugs.html
none separate
Info : This adapter doesn't support configurable speed
Info : STLINK v2 JTAG v17 API v2 SWIM v0 VID 0x0483 PID 0x3748
Info : Target voltage: 2.891327
Info : lpc810.cpu: hardware has 4 breakpoints, 2 watchpoints
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0xf1000000 pc: 0x1fff0008 msp: 0x10000ffc
auto erase enabled
target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x10000004 msp: 0x100000c8
Warn : not enough working area available(requested 512)
Error: no working area specified, can't write LPC2000 internal flash
Error: error writing to flash at address 0x00000000 at offset 0x00000000
Runtime Error: C:/Devz/ARM/OCD/tcl/target/lpc810_hla_flash.cfg:112:
in procedure 'mt_flash'
in procedure 'flash' called at file "C:/Devz/ARM/OCD/tcl/target/lpc810_hla_flash.cfg", line 112
make: *** [program] エラー 1

> Process Exit Code: 2
> Time Taken: 00:01

↑あれれ…書けない…だめじゃん(LPC812は問題なし)
 まさか…


lpc2000.c中でIAPコマンド51番を実行する時にバッファサイズを指定するの
ですがLPC800シリーズは一律1024Byteに減少させていました(LPC2000.cの
デフォルトは4096Byte)。
LPC810のSRAMサイズは1024Byteなのでこれでも足らないみたいです。
いろいろ試した結果、実サイズの4分1の256Byteまで落として成功しました。

> "C:¥Devz¥Coreutils¥bin¥make.exe" program
openocd -s C:/Devz/ARM/OCD/tcl -f interface/stlink-v2.cfg -f target/lpc810_hla_flash.cfg -c "mt_flash main.elf"
Open On-Chip Debugger 0.8.0-dev-00269-g30fb9dd-dirty (2013-11-19-20:50)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.sourceforge.net/doc/doxygen/bugs.html
none separate
Info : This adapter doesn't support configurable speed
Info : STLINK v2 JTAG v17 API v2 SWIM v0 VID 0x0483 PID 0x3748
Info : Target voltage: 2.872920
Info : lpc810.cpu: hardware has 4 breakpoints, 2 watchpoints
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0xf1000000 pc: 0x1fff0008 msp: 0x10000ffc
auto erase enabled
target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x10000004 msp: 0x100000c8
target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x10000004 msp: 0x100000c8
target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x10000004 msp: 0x100000c8
target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x10000004 msp: 0x100000c8
target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x10000004 msp: 0x100000c8
target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x10000004 msp: 0x100000c8
target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x10000004 msp: 0x100000c8
target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x10000004 msp: 0x100000c8
target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x10000004 msp: 0x100000c8
target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x10000004 msp: 0x100000c8
target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x10000004 msp: 0x100000c8
target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x10000004 msp: 0x100000c8
target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x10000004 msp: 0x100000c8
wrote 3072 bytes from file main.elf in 0.749995s (4.000 KiB/s)
target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x1000002e msp: 0x10000ffc
verified 2400 bytes in 0.062500s (37.500 KiB/s)
shutdown command invoked

> Process Exit Code: 0
> Time Taken: 00:02

↑cmd51のバッファサイズを下げると書き込みパフォーマンスが下がって
 しまうのですがLPC810はフラッシュのサイズも4096バイトしかないので
 問題ないです。


なおLPC810は8PinDIPですがお外に出てない足がある模様です。ないはずの
ピンにアクセスするとちゃんと出力が変化しました。上画像のデバッグでは
LPC812のプロジェクトをスタックとチェックサムだけLPC810用に書き換えた
やっけつVerです。


そんなわけで今回の修正分を盛り込んだOpenOCDバイナリはおきぱに反映しました。
珍しくメールやコメントでバグのご指摘もらう前に自分で気づきましたよ!
OpenOCDのgerritにも今レビュー中のSTM32F4のパッチがマージされたら反映させます。
20140109追:
ぱっち提出しました。
20140112追:
マージされました♥


LPC810は同じ8ピンDIPマイコンのAVRの牙城を崩すことができるのか?
それは時間が経てばおのずとわかると思います。

20230903追:
LPC810は無かったことになり、202309現在ではSTM32G0,STM32C0が攻勢を
強めております。特にSTM32C0は8マイコンを駆逐する勢いです!
20230903追:




おまけ

STM32F429I-Discoveryいじりは基本のいつものが実装できるとこまで進みました。
あと数日くらいでファイル公開予定です。実物持ってる人はmakefileの定義を
429IDiscovery向けに変えててためしてみてください。ファイルの読み書きは
SPI接続のMMCなので別途sdカードスロット取付等の配線作業が必要です。

SPIの4つの信号線は22〜47kohmでプルアップを忘れずに!
また429I-Dsicoveryはオンボの+3.3Vレギュレーターが550mAまで出せるので
SDカード一枚程度なら別途3.3Vの電源を用意する必要もないです。


↑しかし液晶載せたおかげでSTM32F4Discoveryよりでかい…
 その液晶がIPSやMVAじゃなく普通の視野角が狭い液晶なのは減点ポインツです#

なにはともあれこれをたたき台にしてSTM32F429I-Discovery専用に改造
しまくっていきましょう!

STM32F4シリーズを使ってみる8 - STM32F429I-Discovery接触編 -


デン!

デデン!
…ッツついに来ましたよ…!最強に強まったSTM32F4が…!
後ろに見えるSTM32F437IIT6も後日に…



STM32F429I-Discoveryは現時点のSTMマイコンの中で最強種のSTM32F429とそれが
サポートする64MbitのSDRAMとRGBインターフェースが利用できるTFT-LCDまで
搭載されたまさにねむいさんのために作られたようなボードです!
※正式名称は「STM32F429I-DISCO」だそうです。


STM32F429/439シリーズはRGBインターフェースのTFT-LCDドライバとSDRAMを
サポートするFMC(FSMCからSが取れた)を持ち、最高クロック180MHzで動作する
Cortex-M4Fのコアを持つマイコンです。


ついにSDRAMが…♥もうヒープサイズ気にしなくていいんじゃあんちゃん
ちなみにTFT-LCDドライバのフレームバッファ用にも使われるそうです。


とりあえず電源を入れてみるとSTLink/V2が認識してemWinと呼ばれる小洒落たGUIが
走ります。凄いもんだ…基板上に実装されたTFT-LCDの解像度は240x320です。
タッチするといろいろメニューが選択できます。本来はUSBメモリ等の記憶媒体を
挿しておくようになってるみたいですね。


今は168MHzで動いてるらしいです。



…で、
一通りデモプログラムを確認したのであとはおなじみOpenOCDで内蔵フラッシュメモリ
のバックアップをとり(2MBあるので5分くらいかかりましたよ!) 前もって予習して
いたLEDチカチカプログラムを書き込んで一発動作を確認♥
おきぱのSTM32F4向けサンプルの定義をほんの少し変えるだけで事は済みました…。

お次は目玉のTFT-LCDです。ねむいさんはこっちももちろん予習済です。
STM32F42x/43x系ではUSB用SRAMの容量拡張のほかSPIやI2C等の基本となる
ペリフェラルも数が大幅に増えていて更なる柔軟な回路構成が可能となって
います。


それではここらへんでいつものを…このTFT-LCDのコントローラICは定番の
ILI9341なのでRGBインターフェースへの応用も楽勝ですね♥
今回表示したのはねむいさんの頂き物のイラス…イラストじゃなくて3D絵です。
あ○たご、抜錨しま〜す♪ぐふふ♥
↑ねむいさんが何のキャラのコスしてるのか最近分かったです…鈍い…
↑ねむいさんて艦これ(ブラウザゲー)やらないの?とよく本職してる時に尋ねら
 れますが、6年前からずっとゴルロア続けてますし今もっともアツいブラゲ
 嵌ってる(作業的な意味で)のでさすがに他のにまで手を出す余裕がないです…。

なお、びぃぶろ君に確実に怒られると思われるえろすな個所はトリミング済みなので
安心してご鑑賞ください。

20131114追:

タッチパネルコントローラはi2cのSTMPE811です。
こちらも予習済なのですんなりいけました!


というわけで今回はSTM32F429I-Discoveryのファーストタッチをご報告させて
いただきました。基本的な部分は初期のSTM32F4とほとんど一緒なので、
F4Discoveryからの移植はそこまで難しくないと感じました。
まずはFatFsとChaNさんのファイラーを完全に移植させます。12月上旬には
私のおきぱに新しいラインアップが追加されると思います。

OpenOCD小ネタ3 -ぱっちを提出したお話-

前回OpenOCDは急速に廃れつつある…とお話しましたが、この記事を書いている
2013年の11月上旬現在では日本のホビーユーザー間コミュニティではもはや見向きも
されなくなり、ほぼ壊滅状態になってしまいました。
限定解除したmbedCooCoxが強すぎです。

思うに私のぶろぐを含めたwebにあまたに点在する"丁寧な環境構築の解説"は
作成したそばからすぐに陳腐化してしまい役に立たなくなり新規参入の方々に
とってはそれが逆に導入における重大な障壁となったからなのでしょう。
しかも導入におけるアプローチの仕方は人それぞれ千差万別で何通りもあります。
多過ぎる選択肢というのは相手の興味を確実に喪失させます。無償といえども
その恩恵を得るために時間という貴重な対価を結局払うことになります。
しかもたくさん時間をかけて頑張ってもうまくできないかもしれません。
得られたものが疲労だけということにもなりかねません。

良かれと思って行ったことが逆に仇になった結果ですが、それもまた運命…
結局タダより高くつく物は無いねといったお話でしためでたしめでたし(完)















…すみませんうっかり今日の記事を〆るところでしたね。


今回はねむいさんがOpenOCDのパッチを提出して公式のコミットにマージされるまで
の経緯をお伝えします。

2013年現在、OpenOCDはgitというバージョン管理システムにて開発がすすめられて
います。以前はソースコードの世代管理にsvn(Subversion)が使われていましたが、
gitにはgerritという非常に効率的なレビューシステムをドッキングさせることが
できます。これによりエンバグされた極悪パッチやコンパイルすら通らないf**kな
パッチが開発者に送られまくるような事が無くなりよりスマートな開発スタイルに
成れたらしいです。

OpenOCDのサイトでは、ガイドラインとして作ったパッチをマージさせるための手順
も記されてはおりますが、ねむいさんはそれすら理解できる知能がありませんでした。
のでまず"どういう知識が必要か"の調査からはぢめました。

※当記事では作業を進めるうえで引っ掛かった部分の言及にとどめ、詳しい手順の
 紹介は致しません。ていうかできません。


●先ずgerritにアカウント登録を行う必要がある。
 真っ先にやるべきことはまずgerritに自分を登録することです。既にyahooのアカ
 ウントを持ってたら登録不要でyahooのアカウントでサインインできるようです。
 ねむいさんはVersaloonのBBS投稿用にyahooのアカウントがあったので、すんなり
 入れました。

 この時点で出来ることは他人のコードレビューにコメントつけたりスコアをつけたり
 ユーザネームの登録のみです。まだパッチの提出は不可能です。

●sshパブリック・キーをアカウントに登録する。
 sshとはこういうものだそうです。gerritにおいてはなりすましや非公開リポジトリ
 への通信傍受を防ぐために役に立ちそうです。
 
 こちらも手順が示されていますので特に難しいことではないはず…でしたが、使用
 していたMsys環境がsimonquianさん提供のものすごく古いやつだったので最初は全く
 駄目でした。結局Msys/MinGWのサイトから落とすことができるインストーラー
 使って一切合切インストールして新しいMsysの環境を作成してパブリックキーの
 登録に成功しました。
 2009年の時点ではこんなのなかったはずなのでいい時代になりましたね‥
 Msysでは主にOpenSSHというのでSSHプロトコルを実現しているようです。

●リモートリポジトリのクローンを作成してローカルで作業開始
 この作業自身はOpenOCDのビルドで当たり前にやってることなので特に問題は
 無いはずです。
 今では有志の方が作成された猿でもできるGIT入門という非常に分かりやすいgit
 指南があります。これはありがたい…
 cloneし終わったらopenOCDのディレクトリに入ります。ここもOpenOCDビルド時と
 同じですね。

●新しいリモートリポジトリの追加
 ここでアカウントを取得/登録した意味が効いてきます。また、事前にweb
 ブラウザからgerritにsigninをしてないと失敗するのでご注意を。
 "git remote add review"でrsaパブリックキーのpassphraseが求められるので
 登録したパスワードを入力します。

●hookのインストール
 ねむいさんここでず〜〜〜っと詰まってました。"Permission denied (publickey)"
 というエラーで先に進めなかったのですが詰まってた時はまだsimonquianさんの
 MSYSベースで頑張ってた頃で、まっさらのMSYS環境にしてからやり直すとあっさり
 通りました…今までの苦労はなんだったんだ…。
 また、rsaパブリックキーが置いてあるフォルダが正しく参照されてるかも重要で、
 私の64bit版Win7では以下のURLに置くことで成功しました。
 

"C:¥Users¥(ユーザー名)¥.ssh"

 ".ssh"というディレクトリがどこに出来ているか把握すべきです。


●名前とe-mailアドレスの登録
 フックのインストールを超えたらあとはトントン拍子です。
 ここも難なくクリア

●パッチの適用
 ここで初めてローカルリポジトリにパッチを適用します。
 
ここも通常のOpenOCDと手順は同じです。

●変更をコミット

while(!done) {
work - edit files using your favorite editor.
run "git commit -s -a" to commit all changes.
run tools/checkpatch.sh to verify your patch style is ok.
}
 
 ねむいさんこの部分が何かのスクリプトと思い込んでて必死にshell上で実行
 しようとしてました…あほだ…。この一文の意味するところはパッチを適用する
 たびにこの一連のコマンドを施行せよという意味です。
 "git commit -s -a" を実行するとvimが起動してコミット内容の編集画面に
 なります。つまりvi(vim)をインストールしてないとエラーで失敗します。
 vimで編集する気がない人は"./git/COMMIT_EDITMSG"の内容を直接メモ帳等で
 編集してもいいです。ここの文章構成は下記のテンプレートに沿って書かないと
 チェックで撥ねられたりレビューサーバに上げた後に怒られたりします。

topic: summary text
(一行あける)
preliminary text
(一行あける)
Signed-off-by: "user name"

 ねむいさんが行ったコミットを例にとるとこんな感じにします。

fm3: fix Fujitsu MB9Ax family support

Some MB9Ax (especially few internal SRAM model) fails programming
because of wrong SRAM basic-address on running algorithm.
Default SRAM basic-address must be 0x20000000.
This patch is fixing default SRAM basic-address and ramcode offset.
Tested on a MB9BF618T and MB9AF112K.

Signed-off-by: Nemui Trinomius


●衝突してないかチェック
"git pull --rebase origin master"で他の人と衝突してないかチェックできます。
OpenOCDの場合はそこまで活発ではないのでぶつかることはまずないでしょう。

●gerritサーバーに登録
"git push review"で上で編集した要約とともにパッチが提出されます。
送られたパッチはまずOpenの場所に上がります。そしてjenkinsという自動ビルド検証
プログラムにて最低限ビルドができるかどうかの審査が機械的に行われます。そして
他の人にコードレビューを受けて間違いやもっといい提案を受けてさらに修正します。
修正はローカルリポジトリにパッチを適用したソースコードからさらに修正を行います。
必要ならばメーリングリストにてさらに議論を進めたりもします。修正が完了したら、
"git commit --amend"
"git push review"
の二つのコマンドでgerritレビューサーバのPatchSetナンバーを上げて更新されます。

こうしてレビューを繰り返してプラススコアがついてきたころにgerritレビュー
サーバーを仕切っているntfreakさんによって"cherry-picked"されてマージされます。
マージされたパッチはこんな感じに履歴に残り、ねむいさんがOpenOCDのプロジェクト
に貢献したことがわかる仕組みとなっています。かぁーっ!(地獄のミサワみたいな顔で)
↑そいえばjenkinsのジジイのミサワverがすでにネタ絵であったりしますね…
ちなみにntfreakリンサンのGitHubから見ると私の実績はこんな感じです。


参考にさせてもらった日本語のサイト
jugyo様:僕が Gerrit について理解している数少ないこと
 基本的な概念・操作について。
mkouhei様: git stashでハマる。
 OpenOCDのパッチ提出手順では競合時の解決が書いてませんのでこちらを参考に
 させていただきました。

こんな感じで実作業を通じてgitやgerritの仕組みを学んできました。でも私自身も
まだごくごく一部しか理解してませんので他の人に教えられるようになるまで勉強
していきます。

Go to top of page