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

SONY NEWS NetBSD移植作業とNWS-3260展示 / KOF2023

SONY NEWS NetBSD移植作業とNWS-3260展示 / KOF2023

関西オープンフォーラム KOF2023 の「BSDなひととき」のセミナー および オープンソースカンファレンス2023広島の NetBSDセミナーで発表した『SONY NEWS NetBSD移植作業とNWS-3260展示』のスライドです

Izumi Tsutsui

November 11, 2023
Tweet

More Decks by Izumi Tsutsui

Other Decks in Programming

Transcript

  1. SONY NEWS NetBSD移植作業と
    NWS-3260 展示
    〜NetBSD developer 清水さんとの思い出〜
    関西オープンフォーラム 2023
    NEWSでNetBSDを始めてから25年以上経ちました
    Izumi Tsutsui
    [email protected]
    Twitter: @tsutsuii
    Mastodon: @[email protected]

    View full-size slide

  2. 今回のスライドは、
    同年代で同じ時期に
    「NetBSDを新機種に移植する」
    という趣味作業を共有する
    NetBSD開発者仲間であった
    清水 了さん ([email protected])
    のこと
    を思い出しながら作りました

    View full-size slide

  3. 今年のNetBSDブース展示
     2023年KOF展示は SONY NWS-3260です
    https://twitter.com/tsutsuii/status/1717607436935393621
    https://twitter.com/tsutsuii/status/1721933477527077307

    View full-size slide

  4. ところで、今年も
    k-of.jp に記載の
    タイムテーブルを
    見ると……

    View full-size slide

  5. KOF タイムテーブル
     「BSDなひととき」
    https://www.k-of.jp/2023/session/bsd_days/

    View full-size slide

  6. KOF タイムテーブル
     「BSDなひととき」
    4.4BSDの流れをくむ
    FreeBSD/NetBSD/OpenBSDなど、
    BSD系UNIXのユーザグループ合同で、
    BSD系UNIX全般を対象とした
    幅広いテーマで議論します。
    https://www.k-of.jp/2023/session/bsd_days/

    View full-size slide

  7. 過去は LUNA
    昨年は Sun
    今年は NEWS

    幅広く(?)
    話をしてみます

    View full-size slide

  8. SONY NEWS
    とは
    例によって
    KOFに来られるような濃い方には
    蛇足かもしれませんが、
    さすがに時が流れたので……

    View full-size slide

  9. SONY NEWS (ニューズ)
     Wikipedia より
    「NEWS(ニューズ、頭字語: Network
     Engineering WorkStation)とは、
     1980年代後半から1990年代前半にかけて
     ソニーが開発・発売した
     UNIXワークステーションシリーズ」
    「デジタルオーディオで活躍していた
     土井利忠を中心に社内ベンチャーの形で
     開発され、1987年に最初のモデルが
     発売された」
    https://ja.wikipedia.org/wiki/NEWS_(%E3%82%BD%E3%83%8B%E3%83%BC)

    View full-size slide

  10. SONY NEWS (ニューズ)
    「その当時、日本でも多くのエンジニアに使ってもらえる
     ソフト開発用ワークステーションを作ろうという
     国家プロジェクトが進行中であり、ソニーがこれに
     先駆けた形となった」
    https://www.sony.com/ja/SonyInfo/CorporateInfo/History/SonyHistory/2-12.html#block3
     SONY公式サイト「Sony History」より

    View full-size slide

  11. NWS-3470D
    ●1991年 11月発売
    ●CPU: MIPS R3000 25MHz
    ●RAM: 16MB〜 max 64MB
    ●価格: 155万円

    View full-size slide

  12. NWS-5000
    ●1992〜1994年 発売
    ●CPU: MIPS R4000 or R4400 100〜200MHz
    ●RAM: 32MB〜 max 256MB
    ●価格: 130〜925万円

    View full-size slide

  13. NWS-3260
    ●1991年 1月発売
    ●CPU: MIPS R3000 25MHz
    ●RAM: 16MB〜 max 48MB
    ●価格: 175万円
    CQ出版社 インターフェース 1991年2月号 292ページ / https://twitter.com/gussunoyoyo/status/1674286899282984960

    View full-size slide

  14. NEWS-OSと4.4BSD/news3400
     WIDEプロジェクトによるBSD移植
    すべて(?)のBSDのベースである
    カリフォルニア大バークレー校による
    4.4BSDでは、NEWS3400もサポート
    4.4BSDリリースノート記載のサポート機種:
    + HP 9000/300 68000-based workstations
    + DECstation 3100 and 5000 MIPS-based workstations
    + Sparcstation I & II SPARC-based workstations
    + Sony News MIPS-based workstations
    + Omron Luna 68000-based workstations
    + Intel 386/486-based machines (ISA/AT or EISA bus only)

    View full-size slide

  15. NetBSD/newsmipsの歴史
     NetBSD移植職人?

    過去に sun3/80 への移植をされ、
    その後PowerPC Macへの移植もされた
    つばいさん による1997年6月の
    メーリングリストアナウンス:
    「最近 SONY NEWS34xx で NetBSDを
     動かして遊んでいます」
    「まだまだいじっている途中ですが、
     きりがないのでとりあえず公開します」

    View full-size slide

  16. NetBSD/newsmips黎明期
     「OSを新たなマシンに移植する」ということ

    つばいさんと同じ店でNWS-3470を購入
    (電話+現金書留+着払で25,000円)

    クロスビルド環境を作って各種テスト

    実は NetBSD初の Big Endian MIPS でした

    port-mips-jp というメーリングリスト
    を作って関係者数人でワイワイと作業

    NetBSD本家へのマージもお手伝い

    1998年2月に NetBSD本家にマージ

    View full-size slide

  17. NetBSD/news 秘話①
     “来たるべき移植機種”

    当初は「NetBSD/news」としてコミット

    「NetBSD/newsmipsじゃなかったの?」
    と、えらい人(?)から問い合わせが……

    news→newsmips にリネームされる

    その際のアナウンス:
    “Per discussion w/ Tsubai, I have just
    renamed NetBSD/news to NetBSD/newsmips.
    This is to facilitate an eventual
    NetBSD/news68k port :-)”
    https://mail-index.netbsd.org/port-mips/1998/03/04/0000.html

    View full-size slide

  18. その後のつばいさんとの会話
     「NetBSD移植してみたい病」感染者 その1
    1998年3月頃のやりとり:
    私:「to facilitate an eventual NetBSD/news68k port
        って表現に思わず笑ってしまいました。うーむ」
    つばいさん:
      「m68kだと結構簡単なので、
       はじめて移植してみる人への課題にはよさそう
       なんですよね。ドライバーの情報さえあれば。」
    なお、NetBSD/luna68kについては「手下にやらせている」というお話でした

    View full-size slide

  19. 一方、そのころ……
     「NetBSD移植してみたい病」感染者 その2?
    清水さんの日記ページより:
    http://www.execsw.org/~ryo/d/1998/1998022400.html

    View full-size slide

  20. NetBSD/news68k 始動
     発症者 その1
    http://www.ceres.dti.ne.jp/tsutsui/netbsd/port-news68k.html#19990410

    View full-size slide

  21. NetBSD/news5000 始動
     発症者 その2?
    http://www.execsw.org/~ryo/d/1999/1999061800.html

    View full-size slide

  22. 「printfが動く感動」①
     症例 その1 1999年6月3日
    http://www.ceres.dti.ne.jp/tsutsui/netbsd/port-news68k.html#19990603

    View full-size slide

  23. 「printfが動く感動」②
     症例 その2 1999年6月24日
    http://www.execsw.org/~ryo/d/1999/1999062402.html

    View full-size slide

  24. NetBSD/news 秘話②
     “資料はソースコードだけ”

    「NEWS関連の資料をもらえないか」と
    いろんなコネを使ってSONY関係者に相談

    一時は前向きな返事をいただくも、結局
    「事業部が解散しており判断が困難」と頓挫

    同時期に清水さんも同じ話をされていて、
    「電通大はNEWS-OSのソースライセンスを
     所持している」ということが判明

    電通大所属であった清水さんは 提供された
    NEWS-OSソースコードを参照しつつ作業

    View full-size slide

  25. そんなこんなで 半年後①
    https://mail-index.netbsd.org/source-changes/1999/12/09/0011.html
     “Initial import of news68k”
    Module Name: syssrc
    Committed By: tsutsui
    Date: Thu Dec 9 14:53:25 UTC 1999
    Added Files:
    syssrc/sys/arch/news68k: Makefile
    syssrc/sys/arch/news68k/compile: .keep_me
    syssrc/sys/arch/news68k/conf: GENERIC INSTALL LIBERO Makefile.news68k
    files.news68k std.news68k
    syssrc/sys/arch/news68k/dev: clock_hb.c dmac_0266.h hb.c hbvar.h
    if_le.c md_root.c ncr5380sbc.c si.c zs.c
    syssrc/sys/arch/news68k/include: Makefile ansi.h aout_machdep.h asm.h
    autoconf.h bswap.h cdefs.h cpu.h db_machdep.h disklabel.h
    [略]
    Log Message:
    Initial import of news68k port.

    View full-size slide

  26. そんなこんなで 半年後②
     “First cut of news5000 support”
    Module Name: syssrc
    Committed By: tsubai
    Date: Wed Dec 22 05:55:27 UTC 1999
    Modified Files:
    syssrc/sys/arch/newsmips/conf: GENERIC files.newsmips
    syssrc/sys/arch/newsmips/dev: fb_sub.c zs.c
    syssrc/sys/arch/newsmips/include: Makefile adrsmap.h cpu.h intr.h
    syssrc/sys/arch/newsmips/newsmips: autoconf.c clock.c conf.c cpu_cons.c
    locore_machdep.S machdep.c machid.h mainbus.c
    Added Files:
    syssrc/sys/arch/newsmips/apbus: apbus.c apbus_subr.c apbusvar.h
    clock_ap.c if_sn.c if_sn_ap.c if_snreg.h if_snvar.h zs_ap.c
    syssrc/sys/arch/newsmips/conf: DEJIKO
    [略]
    Log Message:
    First cut of news5000 support.
    Mostly from SHIMIZU Ryo .
    https://mail-index.netbsd.org/source-changes/1999/12/21/0069.html

    View full-size slide

  27. その後の清水さん活動
     いろんな作業をされていました
    ●NetBSD/dreamcast サウンドドライバ
    ●i386 AMD Geodeチップセットサポート
    ●NetBSD/evbarm Caviumサポート
    ●NetBSD/evbarm Netwalkerサポート
    ●NetBSD/sh3 SH4向け最適化関数
    ●TCP/IP ネットワークスタック関連修正
    等々

    View full-size slide

  28. 清水さん勧誘(?)活動
     ただ developer(コミッタ)への誘いには……
    https://twitter.com/rsh/status/7158283595

    View full-size slide

  29. 清水さん勧誘(?)活動
     そんなある日のツイート
    https://twitter.com/rsh/status/24855639521

    View full-size slide

  30. 清水さん勧誘(?)活動
     私の方からいろいろとPUSH
    ●developer申請の書類書き方指南
    ●admin手続き担当者(sodaさん)のフォロー
    ●申請時の sponsor (後見人)に名乗り
    そしていろいろあって
    ●2010年10月に書面とPGP key送付
    ●翌11月に無事 developerアカウント取得

    View full-size slide

  31. 清水さん初コミット
     最初は名簿から
    Subject: CVS commit: src/distrib/notes/common
    From: "Ryo Shimizu"
    Date: Mon, 20 Dec 2010 19:51:04 +0000
    Module Name: src
    Committed By: ryo
    Date: Mon Dec 20 19:51:03 UTC 2010
    Modified Files:
    src/distrib/notes/common: main
    Log Message:
    add myself
    https://mail-index.netbsd.org/source-changes/2010/12/20/msg016129.html

    View full-size slide

  32. 清水さんの貢献 ハイライト
     aarch64 (ARMv8)サポート
    Module Name: src
    Committed By: ryo
    Date: Sun Apr 1 04:35:06 UTC 2018
    Modified Files:
    src: build.sh
    [略]
    src/sys/arch/aarch64/aarch64: aarch64_machdep.c bus_space.c
    core_machdep.c cpu_machdep.c db_disasm.c db_interface.c
    db_machdep.c db_trace.c exec_machdep.c fpu.c genassym.cf
    idle_machdep.S locore.S pmap.c process_machdep. [略]
    Log Message:
    Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
    - sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by
    skrll@)
    - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra)
    based generic 64bit kernel config. (by skrll@, jmcneill@)
    https://mail-index.netbsd.org/source-changes/2018/04/01/msg093820.html

    View full-size slide

  33. 清水さんの貢献 ハイライト
     aarch64 SMPサポート
    Module Name: src
    Committed By: ryo
    Date: Mon Jul 9 06:19:53 UTC 2018
    Modified Files:
    src/sys/arch/aarch64/aarch64: cpu.c cpu_machdep.c db_machdep.c
    genassym.cf locore.S
    src/sys/arch/aarch64/include: cpu.h locore.h machdep.h
    Log Message:
    add MULTIPROCESSOR support
    https://mail-index.netbsd.org/source-changes/2018/07/09/msg096616.html

    View full-size slide

  34. 清水さんの貢献 ハイライト
     aarch64 big.LITTLEサポート
    Module Name: src
    Committed By: ryo
    Date: Sun Aug 26 18:15:50 UTC 2018
    Modified Files:
    src/sys/arch/aarch64/aarch64: aarch64_machdep.c cpu.c cpufunc.c
    genassym.cf locore.S
    src/sys/arch/aarch64/include: cpu.h cpufunc.h
    src/sys/arch/arm/broadcom: bcm283x_platform.c
    src/sys/arch/arm/fdt: cpu_fdt.c psci_fdt.c
    Log Message:
    add support multiple cpu clusters.
    * pass cpu index as an argument to secondary processors when hatching.
    * keep cpu cache confituration per cpu clusters.
    Hello big.LITTLE!
    https://mail-index.netbsd.org/source-changes/2018/08/26/msg097842.html

    View full-size slide

  35. 清水さんとの思い出
     SUMMARY INFORMATION BAD / SALVAGE?
    https://twitter.com/rsh/status/32872331974025216

    View full-size slide

  36. 清水さんとの思い出
     UNEXPECTED INCONSISTENCY
    https://twitter.com/rsh/status/35007987542134784

    View full-size slide

  37. 清水さんとの思い出
     今でもたまに着ています

    View full-size slide

  38. 清水さんとの思い出
     2023年 4月 15日
    https://twitter.com/rsh/status/1647159239490809857

    View full-size slide

  39. https://twitter.com/gussunoyoyo/status/1653728052474712065

    View full-size slide

  40. https://www.facebook.com/100063733142961/posts/pfbid0t6teMBGsGwb4Y88eNp16X9RZoBUguauh8Uv44ESTFcoEqBGuVAs6mcLE48Pt2RcXl/

    View full-size slide

  41. たくさんのマシンの中から
     2023年 6月 29日
    https://twitter.com/gussunoyoyo/status/1674215298009014273

    View full-size slide

  42. https://twitter.com/gussunoyoyo/status/1674286899282984960

    View full-size slide

  43. 清水さんの日記より
    http://www.execsw.org/~ryo/d/2007/2007101400.html
     2007年 10月 14日の記事

    View full-size slide

  44. しかし……
    https://twitter.com/gussunoyoyo/status/1674643878266429441

    View full-size slide

  45. 古マシンメンテナンス歴
     心して引き取り
    ●直前までやりとりさせてもらっていた
     Dreamcast関連は送付をお願いしました
    ●NWS-3470, NWS-5000は他の方が引受け
    ●NWS-3260については、よくある事例の
     NVM電池切れの対応をしても起動しない
     という状況とのことで
    「他の方に送っても置いたままになる」
    「つついさんが修理してみるのであれば」

    View full-size slide

  46. 正直なところ
    「電源は入るが起動しない」
    というものについては
    「接触不良で抜き差しで直った」
    という軽微なもの以外は
    まともに直せたことがなく、
    「その気になったら動かしてみる」
    でもよければ、ということで
    送っていただきました

    View full-size slide

  47. そして
    約3か月後の10月
    OSC東京で今回も展示があるなら
    あわよくば持っていく案もあるか、
    と気持ちを奮い立たせて
    重い腰を上げて見てみることに

    View full-size slide

  48. まずは状況確認
    https://twitter.com/tsutsuii/status/1713604330820153448
     2023年10月15日深夜

    View full-size slide

  49. とりあえず動いているが何かが変?
     メモリがおかしい?
    ●NVM電池切れ対策
    「電源ボタンを押しながらRESETを押して
     RESET→電源ボタンの順に離す」
     でシリアルにメッセージは出た!
    これでちょっと安心したものの……
    ●「NO MAIN MEMORY」と言われて
     RAMをまったく認識していない?
    ●メモリテストコマンドはすべてエラー
    ●SIMM抜き差しをしても症状変わらず

    View full-size slide

  50. ちょっと厳しい診断
    https://twitter.com/tsutsuii/status/1713616834463932801

    View full-size slide

  51. そもそも
    RAMがないのに
    どうやってROMモニタは
    動いているのか?
    という謎
    スタックも使えないから
    サブルーチンコールすら
    できないはず??

    View full-size slide

  52. 考えられた診断機能
    https://twitter.com/tsutsuii/status/1713616834463932801
     まさかの「NVRAMにスタック」という設計

    View full-size slide

  53. 経験則で症状から状態を予想
     ちょっと厳しいという予感
    ●症状は「RAMに書き込みできていない」
    ●何度試しても同じ結果になる
    ●接触不良やハンダ不良の線はないはず
    ●電解コンデンサ劣化にしては症状が
    安定しすぎている
    ●経験則では「半導体チップ劣化」という
    修理困難な事例しか思いつかないが……

    View full-size slide

  54. とりあえずサーベイしてみると……
     予想外のクリティカルヒット
    https://twitter.com/bitsavers/status/1302274738962612225 https://twitter.com/bitsavers/status/1302275641929154568

    View full-size slide

  55. 4級塩電解コンデンサ問題
     X680x0 や LUNA 等のマシンで何回もありました
    ●1990年前後に開発された
    「4級塩電解液の電解コンデンサ」
     の電解液漏れ・腐食問題
    ●小型高容量を謳っていたが、製造後数年で
     電解液封止ゴム劣化による液漏れが多発
    ●強アルカリ性電解液による基板腐食による
     断線や短絡による故障が多数発生し、
     部品メーカの間では黒歴史化したとか…

    View full-size slide

  56. 4級塩電解コンの
    液漏れ問題ならば、
    基板パターン腐食による
    信号線断線という原因
    もあり得る?

    View full-size slide

  57. さらにサーベイすると……
     Sony NEWS Technical Manual

    View full-size slide

  58. 診断予想を補強する情報?
     ゲートアレイ名 WSC-DMEMC
    ●横にあるのはメモリデータバスコントローラ?
    ●「書き込みできない」という症状と符合する?

    View full-size slide

  59. 意を決して分解診断
     分解手順は後でまとめます……
    ●翌週末に分解にトライして、壊すことなく基板に到達
    https://twitter.com/tsutsuii/status/1715386484432457895

    View full-size slide

  60. コンデンサ状況
     よく見た光景
    ●事前サーベイの写真と同様の液漏れ状況

    View full-size slide

  61. とりあえず洗浄
     ちょっとしんどい感じ
    ●いろいろマズい感じだが、細かすぎて見えない……

    View full-size slide

  62. 診断仮説を再度考える
     当たるかどうかは不明
    ●「書き込みできない」が「write信号断線」
     とすると、外観上も怪しいところのある
     スルーホール(※)が切れているという要因
     である、という仮説が成立する?
    ※スルーホール:
    基板の表裏間や内層パターン間を電気的に接続するために、穴の壁面に
    沿って銅箔を形成させた基板穴のこと

    View full-size slide

  63. とりあえず仮組みでは改善せず
     洗浄で直るのはショートモードなのでこれは予想通り

    View full-size slide

  64. 修復作業のためにさらに分解
     マザーボード取り出し
    ●こちらも分解には困難は無く取り出し可能

    View full-size slide

  65. 液漏れ電解コン取り外し
     予想外に難航
    ●はんだ付けだけでなくボンド付けされてる罠

    View full-size slide

  66. このへんがヤバそう?

    View full-size slide

  67. 裏面はもっとひどい状態……

    View full-size slide

  68. ここで診断方法と修理案を再考
     あまり考えたくなかったが……
    ●断線ならば「正しい配線につなぎ直す」でよい
    ●そのためには「本来どこにつながっているか」
    を調べる必要がある
    ●が、6層基板で見えない配線がある、と判明…

    View full-size slide

  69. 限られた機材での診断
     折れそうになる心を奮い立たせて
    ●ひたすらテスタで各スルーホールの導通を見て
    「断線している」と言えそうなところを特定

    View full-size slide

  70. スルーホール修復
     とりあえずはんだ付けするだけです
    ●表側と裏側の銅箔接続なので、心を落ち着けて
    配線材を通してそれぞれの面ではんだ付け

    View full-size slide

  71. パターン断線の罠
     組み立て後チェックは重要です
    ●「これでいけるか」と思いながら電解コンを
    はんだ付けしたのに導通しない問題が発生
    ●心を落ち着けて再度取り外して修復作業

    View full-size slide

  72. テストのために仮組み立て
     「ヒリつくような気持ちで」と記録してました
    ●とりあえず仮組みして、まずは従来同様で
     LED点滅動作になるところまで確認。
     (ここまででかなり消耗しました……)

    View full-size slide

  73. メモリ認識!
     この瞬間のために
    ●「イヨッシャーーーーー!! キタキタキタッッッッ!!!!」……と
    久しぶりに声を出してガッツポーズしました

    View full-size slide

  74. メモリ認識用DIP SW
     標準16MB
    ●適当にRAMの横にあるDIP SWを設定して
    無事16MBも 48MB も認識!

    View full-size slide

  75. そして組み立て
     組み立ては落ち着いて作業できました
    ●間違えないように分解時写真を見ながら、分解時に
    分類したネジを組み上げて、完全復活を確認!
    https://twitter.com/tsutsuii/status/1716837684331843889

    View full-size slide

  76. 直ったので 次は動かします
     積年(?)の NWS-3260の課題
    ●LCD液晶のドライバが未対応だったのですが
    4.4BSDにソースがあるのはわかっていたので
    復活の翌日に3時間ほど作業して表示に成功!
    https://twitter.com/tsutsuii/status/1717185753913119017

    View full-size slide

  77. どんどん書いて動かします
     That's NetBSD!
    ●フレームバッファドライバが実装できれば
    X.orgサーバーもそのまま動いたりします
    https://twitter.com/tsutsuii/status/1717607436935393621

    View full-size slide

  78. NEWS 3台でデバッグ
     X.org wskbd問題という課題も片付きました
    ●NEWS用キーマップ無しでキーボードも入力可能に!
    https://twitter.com/tsutsuii/status/1720514077427138754

    View full-size slide

  79. https://twitter.com/tsutsuii/status/1721933477527077307

    View full-size slide

  80. 清水さんの思い出 再び
     明日から本気出す

    View full-size slide

  81. なぜNetBSDを移植するのか?
     「そこに山があるから」
    ● ハードウェア仕様やプロトコル仕様を見て、
    それを理解して考えて設計して、
    その設計に基づいて実際に作って・書いて、
    それが眼の前で動くということを見ることで、
    「自分の考えが正しいことが証明される」
    ➔ この楽しさは何ごとにも代え難いものがある
    ● なので「いくらでもマシンが増えてしまう」
    「いくらでもやるべきことが溜まっていく」
    ● だからこそ
    「(このマシンの作業は)来年から本気出す」
    になるんですよね!

    View full-size slide

  82.  NetBSD/news という題材でBSDを語ってみました
     「移植」という作業の楽しさ
     複数人でやるともっと楽しい!
     古いマシンは修理スキルも必要です
     NWS-3260 は 本体も NetBSDも
    一式動くようになりましたよ〜
    まとめ

    View full-size slide