Upgrade to Pro — share decks privately, control downloads, hide ads and more …

zephyrにパッチ送ったら半年店晒しされた話

soburi
November 13, 2021

 zephyrにパッチ送ったら半年店晒しされた話

soburi

November 13, 2021
Tweet

More Decks by soburi

Other Decks in Technology

Transcript

  1. Zephyrにパッチ出したら
    半年店晒しにされた話
    TOKITA Hiroshi

    View Slide

  2. ZephyrRTOS
     https://zephyrproject.org/
     Linux Foundationが推してるRTOS
     マイコン向けコンパクトなLinuxと
    いう雰囲気。
     KconfigもDeviceTreeもあるよ!
     TCPもPOSIX互換もあるよ!
     そこらに転がってるマイコンも結
    構対応している。
     ucLinuxとか知ってる人には
    「あんな感じ」

    View Slide

  3. パッチ出してきた
     https://github.com/zephyrpr
    oject-rtos/zephyr/pull/34970
     少し前に一部界隈で流行った
    Longan Nano を動かすパッチ。
     内容としてはRISC-Vの新
    CPU(GigaDevice GD32V対応)
     Bootの初期化コードとか
    割り込みの初期化とか。
     サンプル実装から適当にパ
    クッてOSのスタック初期化や
    割り込みハンドラと辻褄合わ
    せるだけの簡単なお仕事?!

    View Slide

  4. GigaDevice GD32V
     GigaDeviceはGD32というARMのCPUを販売してる。
     GD32はS●M32の丸パクリのプロセッサ。
     世界で一番売れてるSTM32F103の代替にできる。
     当然ピンコンパチ
     レジスタも互換なのでST●32のコードがほぼそのまま動く。
     ただしデッドコピーではない。自前の互換実装。
     GD32VはARMをRISCVに差し替えただけ。
     ライセンス費を払わないので、さらにお安く!
     こんなんだから誰も怖くてパッチを出さない??????

    View Slide

  5. 経緯
     昨年4月の技術書典に出したネタをGitHubに置いておく。
    https://soburi.github.io/zephyr_porting_gd32v/
    内容は途中で途切れていて完結していないw 実質怪文書。
     今年5月、何故かフランス語に翻訳される。
     記事に書いた内容のパッチを出してないのも勿体ないので、
    PR提出。
     それから半年、すったもんだしながら停滞中…

    View Slide

  6. パッチを出すと何故かみんな
    似たようなパッチを出し始める。
     同じメーカーの別のCPUに対応するパッチが続々と出てく
    る。
     https://github.com/zephyrproject-rtos/zephyr/pull/39909
     https://github.com/zephyrproject-rtos/zephyr/pull/40283
     https://github.com/zephyrproject-rtos/zephyr/pull/36833
     https://github.com/zephyrproject-rtos/zephyr/pull/38661
     当然微妙に内容が被る→大乱闘

    View Slide

  7. 校舎裏^H^H^H Discordに呼び出される
     ちまちまPRの更新してたのだけど、埒が明かないので、
    チャットで決着つけようぜ、となる。
     ここに至るまで半年店晒し。
     またパッチ書き直してるので、
    もうしばらくでAcceptされるはず…
     最新のIRC代替はDiscord。
     GitterもSlackももう古い?

    View Slide

  8. One More thing.
     https://www.switch-science.com/catalog/5703/
     似たようなCPUだったので、ついでに対応した。
     VerilogがOSSになってる中国製RISCV実装の
    HummingBirdコアが乗っている。
    https://github.com/Lichee-Pi/Tang_E203_Mini
     このLichee Tang ボードには
    出荷時にHummingBirdコアのbitstreamが
    書いてあるので、RISCV実装の教材みたいな感じ。
     これも対応中。一緒にmainstreamに入れる予定。

    View Slide

  9. まとめ
     マイコンいじるならZephyr良いよ!
     まだパッチも出しやすい状況だから
    みんなドライバ書こう!
    (ArduinoのI2C使えればPR出せる!)

    View Slide