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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kazueda
November 09, 2024
How-to & DIY
0
140
M5Stackサーバーを使って初代プレイステーションでuClinuxのカーネルを起動
kazueda
November 09, 2024
Tweet
Share
More Decks by kazueda
See All by kazueda
初代プレステでuCLinuxその2「rootfsが公開されました」
kazueda
0
42
初代プレステでuCLinuxその1 Linuxのinitで「Hello World」
kazueda
0
68
Raspberry pi 400をUSBキーボードとして使う
kazueda
0
300
「東海道らぐ」のブースで「USBガジェット三昧」の展示
kazueda
0
33
Raspberry Pi Pico WでRNDIS-Wifiブリッジ
kazueda
0
79
Raspberry pi pico2の亜種で Risc-V用Linux-nommuを起動する話
kazueda
1
400
PythonのソースファイルをLLMで修正した話
kazueda
0
110
ChatGPTを使ってWebmsx上でFuzix
kazueda
0
92
ChatGPTを使ってwebmsx上でFuzixその2
kazueda
0
65
Other Decks in How-to & DIY
See All in How-to & DIY
JAWS-UG初心者支部 JAWS-UG Updates
awsjcpm
4
110
[電子工作]クリップモーターをつくろう
oriontakemura
1
630
家具家電付アパートの自室の冷蔵庫をスマートIoT化してみた!
scbc1167
0
170
自分がご機嫌になれる 素敵な場所を守るために
kenichirokimura
3
690
JAWS-UG/AWSコミュニティ -JAWS-UGくまもと#16
awsjcpm
1
190
AWS re:Invent 2024 re:Cap – AWS Community Perspective / JAWS-UG新潟
awsjcpm
0
210
あなたは何故コミュニティに参加するのか?
awsjcpm
2
290
ボードゲーム × 専用収納 〜3Dプリントで埋めるニッチな隙間〜 / Board Games × Custom Storage
handlename
0
220
Goカードゲームを 作ってみた!
senoue
0
190
大学内にファブスペースをつくってみた #sapporo3dp / Making HIU Fab
yumulab
1
110
【ふりかえりワークショップ】Tryを決めるだけじゃない!感情にフォーカスした、ふりかえりを体験しよう!
scrummasudar
0
1.1k
いぬぬウォッチャー - オレトク賞オンライン決勝 #ヒーローズリーグ
n0bisuke2
0
300
Featured
See All Featured
Navigating Weather and Climate Data
rabernat
0
130
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.8k
Being A Developer After 40
akosma
91
590k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.3k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
180
The Limits of Empathy - UXLibs8
cassininazir
1
240
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.1k
RailsConf 2023
tenderlove
30
1.4k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Deep Space Network (abreviated)
tonyrice
0
79
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
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 を譲ってください。