Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

過去は LUNA 昨年は Sun 今年は NEWS と 幅広く(?) 話をしてみます

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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)

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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)

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

NetBSD/newsmips黎明期  「OSを新たなマシンに移植する」ということ ● つばいさんと同じ店でNWS-3470を購入 (電話+現金書留+着払で25,000円) ● クロスビルド環境を作って各種テスト ● 実は NetBSD初の Big Endian MIPS でした ● port-mips-jp というメーリングリスト を作って関係者数人でワイワイと作業 ● NetBSD本家へのマージもお手伝い ● 1998年2月に NetBSD本家にマージ

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

NetBSD/news 秘話②  “資料はソースコードだけ” ● 「NEWS関連の資料をもらえないか」と いろんなコネを使ってSONY関係者に相談 ● 一時は前向きな返事をいただくも、結局 「事業部が解散しており判断が困難」と頓挫 ● 同時期に清水さんも同じ話をされていて、 「電通大はNEWS-OSのソースライセンスを  所持している」ということが判明 ● 電通大所属であった清水さんは 提供された NEWS-OSソースコードを参照しつつ作業

Slide 25

Slide 25 text

そんなこんなで 半年後① 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.

Slide 26

Slide 26 text

そんなこんなで 半年後②  “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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

清水さん初コミット  最初は名簿から 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

Slide 32

Slide 32 text

清水さんの貢献 ハイライト  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

Slide 33

Slide 33 text

清水さんの貢献 ハイライト  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

Slide 34

Slide 34 text

清水さんの貢献 ハイライト  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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

……

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

R.I.P.

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

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

Slide 54

Slide 54 text

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

Slide 55

Slide 55 text

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

Slide 56

Slide 56 text

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

Slide 57

Slide 57 text

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

Slide 58

Slide 58 text

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

Slide 59

Slide 59 text

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

Slide 60

Slide 60 text

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

Slide 61

Slide 61 text

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

Slide 62

Slide 62 text

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

Slide 63

Slide 63 text

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

Slide 64

Slide 64 text

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

Slide 65

Slide 65 text

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

Slide 66

Slide 66 text

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

Slide 67

Slide 67 text

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

Slide 68

Slide 68 text

このへんがヤバそう?

Slide 69

Slide 69 text

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

Slide 70

Slide 70 text

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

Slide 71

Slide 71 text

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

Slide 72

Slide 72 text

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

Slide 73

Slide 73 text

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

Slide 74

Slide 74 text

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

Slide 75

Slide 75 text

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

Slide 76

Slide 76 text

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

Slide 77

Slide 77 text

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

Slide 78

Slide 78 text

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

Slide 79

Slide 79 text

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

Slide 80

Slide 80 text

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

Slide 81

Slide 81 text

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

Slide 82

Slide 82 text

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

Slide 83

Slide 83 text

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

Slide 84

Slide 84 text

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