Update report001.md

This commit is contained in:
pepepper 2020-10-13 05:45:39 +00:00
parent 2f24900944
commit ea5cc05f61

View File

@ -4,15 +4,15 @@
**この案件は電子計算機総合研究所とは関係ない物であるが、レポートという体裁で書き留めておくために電子計算機総合研究所からのレポートとして掲載する** **この案件は電子計算機総合研究所とは関係ない物であるが、レポートという体裁で書き留めておくために電子計算機総合研究所からのレポートとして掲載する**
## 経緯 ## 経緯
電子辞書BrainはWindowsCEとARM CPUを搭載している関係上、古くから様々な活用・改造が行われてきた。しかしBrainに搭載されているWindowsCEは機能がある程度制限されており限界があった。 電子辞書BrainはWindowsCEとARM CPUを搭載している関係上、古くから様々な活用・改造が行われてきた。しかしBrainに搭載されているWindowsCEは機能がある程度制限されており限界があった。
BrainにおいてLinuxを起動する、というアイディアに関してはかなり昔からあったものの実際に成功したという情報は存在しなかった。 BrainにおいてLinuxを起動する、というアイディアに関してはかなり昔からあったものの実際に成功したという情報は存在しなかった。
2020年2月3月にかけてnexhawks氏によるResetKitをベースにLinuxやU-Bootをメモリ上にロードしてそこにジャンプするプログラムを書いたが、LinuxやU-Bootは標準でBrainのような組み込み向け機器のディスプレイ出力に対応していないことがあり実際に動作しているかは不明であった。 2020年2月3月にかけてnexhawks氏によるResetKitをベースにLinuxやU-Bootをメモリ上にロードしてそこにジャンプするプログラムを書いたが、LinuxやU-Bootは標準でBrainのような組み込み向け機器のディスプレイ出力に対応していないことがあり実際に動作しているかは不明であった。
また、DiagApp.exeの調査中にコンフィグを書き換えWindowsCEが起動不可になり、その後メイン基板を触りながらUSBブートでのWindowsCEの復旧を模索している中でディスプレイが映らなくなり、その後ほとんどのBrainに関する研究は不可能となった。 また、DiagApp.exeの調査中にコンフィグを書き換えWindowsCEが起動不可になり、その後メイン基板を触りながらUSBブートでのWindowsCEの復旧を模索している中でディスプレイが映らなくなり、その後ほとんどのBrainに関する研究は不可能となった。
しかし、2019年8月12日puhitaku氏がBrainのシリアルを引き出し、USBブートからのU-Bootの起動に[成功](https://twitter.com/puhitaku/status/1160804217344233477)。2020年3月30日にはmicroSDからLinuxをロードし起動させることに[成功](https://twitter.com/puhitaku/status/1244601625936830465)。最終的にディスプレイにGUIを表示させることにも成功した。puhitaku氏の作業に関する詳しいことは [電子辞書は組み込みLinuxの夢を見るか](http://www.zopfco.de/entry/sharp_brain_linux)を参照していただきたい。 しかし、2019年8月12日puhitaku氏がBrainのシリアルを引き出し、USBブートからのU-Bootの起動に[成功](https://twitter.com/puhitaku/status/1160804217344233477)。2020年3月30日にはmicroSDからLinuxをロードし起動させることに[成功](https://twitter.com/puhitaku/status/1244601625936830465)。最終的にディスプレイにGUIを表示させることにも成功した。puhitaku氏の作業に関する詳しいことは [電子辞書は組み込みLinuxの夢を見るか](http://www.zopfco.de/entry/sharp_brain_linux)を参照していただきたい。
ただこの時点ではBrainのカバーを外し、基板上のジャンパをショートさせてUSBブートモードに移行させる必要があり、Linuxを起動しようとするたびにこの作業を行うのは煩雑である。そこで、何らかの方法で無分解でのU-Bootの起動を目標とし協力して開発する運びとなった。 ただこの時点ではBrainのカバーを外し、基板上のジャンパをショートさせてUSBブートモードに移行させる必要があり、Linuxを起動しようとするたびにこの作業を行うのは煩雑である。そこで、何らかの方法で無分解でのU-Bootの起動を目標とし協力して開発する運びとなった。
## 試行錯誤 ## 試行錯誤
まずは過去に作成していたResetKitをベースとしたローダーを試すこととしたが、様々に実装を変えてもU-Bootをメモリにロードするところでハングアップしたりリセットがかかったりしているようであった。 まずは過去に作成していたResetKitをベースとしたローダーを試すこととしたが、様々に実装を変えてもU-Bootをメモリにロードするところでハングアップしたりリセットがかかったりしているようであった。
なぜロードしようとすると固まるのか不明で行き詰っていた時、puhitaku氏がx86アーキテクチャ上のWindowsCEのブートローダからBSDカーネルを起動させるようにnk.binを生成する"bsd-ce"というプログラムを発見した。このプログラムをもとに、U-BootをWindows CEのブートローダーが読み込めるようにパックしU-Bootを起動させることに成功した。 なぜロードしようとすると固まるのか不明で行き詰っていた時、puhitaku氏がx86アーキテクチャ上のWindowsCEのブートローダからBSDカーネルを起動させるようにnk.binを生成する"bsd-ce"というプログラムを発見した。このプログラムをもとに、U-BootをWindows CEのブートローダーが読み込めるようにパックしU-Bootを起動させることに成功した。
## 展望 ## 展望