Succeeded to working PlayStation Classic Rear-USB-Port as HOST pic.twitter.com/bRyUgVuC1c
— ひろみつ (@bakueikozo) January 2, 2019
ぶっちゃけ私自身はこれそんなに重要な機能だと思ってなかったんだけど、
どうしても背面USBをOTGにして前面をすっきりさせたいっていう要望は結構あったみたいなのでアレコレしてみた。
まず、デフォルトのカーネルのオプションではOTGが無効になってる。
現在のコンパイルオプションだとOTGは無効になってる
— ひろみつ (@bakueikozo) December 19, 2018
で、有効にするならID DETECTかPULLUPを選べる、というオプションも無効
あと、ソフトウェア切り替えも無効
なので、カーネルリビルド・差し替えしないと背面USBはHOSTになれないんじゃないかな。 pic.twitter.com/lvpCgotFBs
ここで、コンパイルプションでOTGを無効にすると、microUSBのIDピンか、VBUSを見てUSBのモードを切り替えるコードも一緒に有効化される。
(というか、普通のAndroid携帯とかではそれでいい)
が、PSCではIDピンやVBUSはSoCにつながっていないように見える。
IDピンやVBUSとの接続はDeviceTreeファイルで設定するらしいんだけど、
実際につながっているかどうかわからないので設定できない。
この状態でカーネルを起動させると、DTファイルに設定されてない、といってKernelが起動せず止まってしまう。
なので、DTファイルから読み込んで、IDピンの監視をするあたりを
まるっとコメントアウトしてしまう。
これでは切り替えができないように見えるのだが、
ソフトウェア切り替えを有効にするオプションがある。
これを使うと。
echo host > /sys/devices/platform/mt_usb/swmode
のように起動中に強制的にHOSTモードに切り替えるようにできた。
とりあえず、使う人がいるので置き換えるファイルだけおいておく。
SONYの公開しているファイルからこれを一個だけ置き換えて、
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
で
make aiv8167_rockman_emmc_defconfig
してできたimageをPSCのBOOTIMG1から抽出したDTBとまとめてFITイメージにして
fastbootか起動してる状態からBOOTIMG1に書き込んでやればいいけど、
文鎮化したときに自分で治せる人以外やってはいけない
ここまで読んでわからない人には難しいけど
近いうちにBleemSyncの機能としてマージされると思うので待っててね