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
0
47
M5Stackサーバーを使って初代プレイステーションでuClinuxのカーネルを起動
kazueda
November 09, 2024
Tweet
Share
More Decks by kazueda
See All by kazueda
初代プレステでuCLinuxその2「rootfsが公開されました」
kazueda
0
10
初代プレステでuCLinuxその1 Linuxのinitで「Hello World」
kazueda
0
31
Raspberry pi 400をUSBキーボードとして使う
kazueda
0
92
「東海道らぐ」のブースで「USBガジェット三昧」の展示
kazueda
0
13
Raspberry Pi Pico WでRNDIS-Wifiブリッジ
kazueda
0
20
Raspberry pi pico2の亜種で Risc-V用Linux-nommuを起動する話
kazueda
1
110
PythonのソースファイルをLLMで修正した話
kazueda
0
77
ChatGPTを使ってWebmsx上でFuzix
kazueda
0
45
ChatGPTを使ってwebmsx上でFuzixその2
kazueda
0
36
Other Decks in How-to & DIY
See All in How-to & DIY
How to get hundreds of organic backlinks through statistics link building
ronishehu
1
270
Nutanix Community Edition 超入門 25.04
ricefield66
0
130
カンファレンスでリフレッシュ!無理なく楽しむカンファレンス参加術 / How to enjoy conferences without stress
kattsuuya
1
8.6k
【技術カンファレンス運営の裏側】Iwaken Lab 技術好き学生の近況報告 & ことみんさんに技術カンファレンス運営の裏側を聞いちゃう会
kotomin_m
5
1.6k
The Definitive? Guide To Locally Organizing RubyKaigi
sylph01
6
1.4k
How to create better speaker proposals
logico_jp
2
880
How to Hire a Driver for Long Distance Travel?
greaterservice
0
170
アイデアをカタチにする、イマジニア
haruka_imgr
0
130
Terra Charge|急速充電器ご利用ガイドブック / Terra Charge Fast Charger Guidebook
contents
1
320
Within the team, I grow as a tester and continuously pursue product quality
camel_404
7
2.1k
すぐできる! 運送業でやってみた業務効率化3選
dochin2635
0
100
LT(Lightning Talk)のドキドキ感を共有する IoT ぼっとキーホルダ!
scbc1167
0
360
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
245
12k
Scaling GitHub
holman
459
140k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.6k
KATA
mclloyd
29
14k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.8k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
660
The Pragmatic Product Professional
lauravandoore
35
6.7k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
920
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
4
200
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
Automating Front-end Workflow
addyosmani
1370
200k
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 を譲ってください。