Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
M5Stackサーバーを使って初代プレイステーションでuClinuxのカーネルを起動
Search
kazueda
November 09, 2024
How-to & DIY
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
M5Stackサーバーを使って初代プレイステーションでuClinuxのカーネルを起動
kazueda
November 09, 2024
More Decks by kazueda
See All by kazueda
16ビットCPU用FUZIXを実機で動かす キー入力編
kazueda
0
6
初代プレステでuCLinuxその2「rootfsが公開されました」
kazueda
0
55
初代プレステでuCLinuxその1 Linuxのinitで「Hello World」
kazueda
0
89
Raspberry pi 400をUSBキーボードとして使う
kazueda
0
370
「東海道らぐ」のブースで「USBガジェット三昧」の展示
kazueda
0
42
Raspberry Pi Pico WでRNDIS-Wifiブリッジ
kazueda
0
110
Raspberry pi pico2の亜種で Risc-V用Linux-nommuを起動する話
kazueda
1
530
PythonのソースファイルをLLMで修正した話
kazueda
0
130
ChatGPTを使ってWebmsx上でFuzix
kazueda
0
120
Other Decks in How-to & DIY
See All in How-to & DIY
多摩ニュータウンを、 味わう
aokiplayer
1
660
OpenClawハンズオンでのトラブルとデバイス向けなんちゃらクロー #IoTLT vol133
n0bisuke2
0
250
JAWS-UG/AWS Community Update - JAWS-UG栃木 #6
awsjcpm
0
110
ポッドキャストをはじめよう ポッドキャストのやりかたと続けるコツ
takamichie
0
130
サイボウズには100名以上の社員が出演する"夏フェス"があるって本当?
oguemon
1
790
JAWS-UG 山梨 第10回 勉強会 Community Update
awsjcpm
0
1.1k
おっきなガジェットの回線事情
2bo
1
210
プログラミング道場 "CoderDojo" を支援するサーバー提供システム 『DojoPaaS』 / How DojoPaaS powers the CoderDojo community in Japan
coderdojojapan
PRO
0
170
Trying "Vibe No-code/Low-code" with MCP #noderedjp
n0bisuke2
0
150
ドローンをAWSで制御してみた
nagi900
0
150
地方カンファレンスのスタッフしてて思うこと
yumechi
0
220
キャリア科目では教えてくれない、就活を生き抜く法則
logica0419
2
290
Featured
See All Featured
Ethics towards AI in product and experience design
skipperchong
2
310
What's in a price? How to price your products and services
michaelherold
247
13k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
Technical Leadership for Architectural Decision Making
baasie
3
400
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
140
Un-Boring Meetings
codingconduct
0
310
Done Done
chrislema
186
16k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
180
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
310
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
770
Transcript
M5Stackサーバーを使って初代プレイステー ションでuClinuxのカーネルを起動 東海道らぐの万鹿博覧会ライトニングトーク大会 in 大阪南港 2024. 11. 9 1 kazueda
か ず え だ
kazueda(かずえだ)の紹介 • 大阪出身、丙午、おとめ座、O型 • 科学者(化学) • 2003年4月から浜松で、働き始める • 自転車での移動が生活の足 •
趣味は「ラジオを聴くこと」、「アメリカの コミックの邦訳を読むこと」 @kazueda 2 slideshare speaker deck
PlayStation(プレイステーション、略称: PS, PS1) • ソニー・コンピュータエンタテインメント(略: SCE)が 1994年12月3日に発売した家庭用ゲーム機 • CPU:MIPS R3000A
ベース • 32ビット RISCプロセッサ (R3051) • メインメモリ: 2 MB EDO DRAM 3 https://ja.wikipedia.org/wiki/PlayStation_(%E3%82%B2%E3%83%BC%E3%83%A0%E6%A9%9F) 30歳おめでとう!
RUnix on PlayStation 1 • MIPS-NOMMUなので、uClinux 2.4.x kernel • RS232
SIO経由のシリアルコンソール • プレイステーションのGPU経由の仮想コンソール • 保存メディアとしてマルチプルメモリーカード • SL811を使って、USBキーボードやマウスを接続 • 上記の環境が構築されるらしい。。。 4 https://en.wikipedia.org/wiki/PSXLinux
RUnix on PlayStation 1 • 起動プロセス 1. シリアルポート経由でKernelをPlayStationにロード 2. ロードが終わると、Kernelが起動
3. マルチプルメモリーカードに保存してあるrootfsをマウ ントして起動 するらしい。。。 • メモリーカードのEXT2ファイルフォーマッターとrootfsの イメージファイル(psx-mcard.0.8.2.tar.gz)が消失。 5 https://en.wikipedia.org/wiki/PSXLinux
RUnix on PlayStation 1 • 起動プロセス(2024年現在) 1. シリアルポート経由でKernelをPlayStationにロードする 2. ロードが終わると、Kernelが起動した後、rootfsが無くて
PANICマルチプルメモリーカードに保存してあrootfsをマ ウントして起動 するらしい。。。 • 原因:メモリーカードのEXT2ファイルフォーマッターと rootfsのイメージファイル(psx-mcard.0.8.2.tar.gz)が消失。 6 https://en.wikipedia.org/wiki/PSXLinux
2007年前後のRUnixのサイト消滅後 • 主に2つの活動 • 現存するRunixのソースファイルを活用し、メモリカード の読み(書き)をフルスクラッチで実現する試み https://github.com/CodeAsm/PS1Linux • 本体のRAMを2 MBから4
MBや8 MBに張り替えて、 PSPの uCLinuxを参考に、 kernelとrootfsをRAMに展開して起動す る試み https://github.com/arkwise/blackroolinux 7
今回の試み • 実機でRUnixを起動して、カーネルパニックを眺める 1. シリアルアダプタを作成 2. M5Stackからファイルを転送するプログラムの作成 3. Kernelを初代プレステに転送して起動 8
シリアルポートアダプタの作成 • 対戦ケーブルのSCPH-1040を使うといいけど。 9 • 330円で入手した初代プレステには、もったいない!!
シリアルポートアダプタの作成 • 初代プレステのポートを見てみる。 10 • SERIAL I/Oは8ピンの特 殊コネクタ • AV
MULTI OUTは12ピン の特殊コネクタ • これらのピン間隔は同 じ <ーAV MULTI用ケーブル を購入して、SERIAL I/Oのコネクタを作る SERIAL I/O ↓ AV MULTI OUT ↓
シリアルポートアダプタの作成 • 300円の「PS2/PS3用 コンポーネントAVケーブル」を加工 11 1. 端子の10番目のピンの側まで削除 2. 9番、10番ピンを除去 3.
端子を覆うようにシールドを加工 加工後のコネクタ ↓ 加工前のコネクタ ↓
LLMでファイル転送プログラム作成 1. 参考にするプログラムを提供して、関数の説明を含めて 解説させる 2. 提供したプログラムからArduinoIDE用のソースファイル を作成させる 3. 動作確認 4.
不具合を修正させる。その際、提供プログラムの機能が 欠落していたら、欠落部分の機能の説明を加える 5. 項目3、4を繰り返して、目的の動作を実現する 12
Copilotを使ってプログラミング • 突然、、、 13
ChatGPTでプログラミング再開 14 無事完成しました。 初代プレステ側で はunirom8という ユーティリティを 起動
実機でカーネルを起動 M5Stackの画面 初代プレステの画面 15
実機でカーネルを起動 M5Stackの画面 初代プレステの画面 16
実機でカーネルを起動 M5Stackの画面 初代プレステの画面 17
実機でカーネルを起動 • NTSC表示ではありませんでした 18
実機でカーネルを起動 • ドン・キホーテTV-171-BKだと、文字がずれてるけど静止画 19
まとめ • 初代プレイステーション用シリアルアダプタを格安コン ポーネントケーブルから作成 • LLMを駆使して、M5Stackで動作するファイルサーバーを 作成 • リセットしたら、自動でファイル転送 •
ゲームコントローラーから操作 • KernelをNTSC表示の設定で、再コンパイル 20 今後の展開 おしまい
まとめ • 初代プレイステーション用シリアルアダプタを格安コン ポーネントケーブルから作成 • LLMを駆使して、M5Stackで動作するファイルサーバーを 作成 • リセットしたら、自動でファイル転送 •
ゲームコントローラーから操作 • KernelをNTSC表示の設定で、再コンパイル 21 今後の展開 おしまい CD-RやMO等に眠っている psx-mcard.0.8.2.tar.gz を譲ってください。