わーい NESのnandcに直接リムーバブルディスクとしてアクセスできたよー pic.twitter.com/JHkXJ93eea
— ひろみつ(85.1kg) (@bakueikozo) 2017年2月22日
Got it !
Thinking how to bind to hakchi or tools...
わーい NESのnandcに直接リムーバブルディスクとしてアクセスできたよー pic.twitter.com/JHkXJ93eea
— ひろみつ(85.1kg) (@bakueikozo) 2017年2月22日
Got it !
Thinking how to bind to hakchi or tools...
I have succeed to use NESC as usb-ethernet-gadget.
This make us enable to transfer file and communitaion by TCP/IP.
We will able transfer any files without wondering kernel ramdisk size.
This is kernel xconfig.
Clover presense is Nintendo USB Device driver for 500mA current sink.
This driver is included Nintendo Linux sources with KConfig and enabled in default kernel.
Check RNDIS driver ( and other )
Write some script.
In NESC , rndis0 enabled .
Connect USB Cable to Windows ( on linux failed....) (and boot from SD card )
then RNDIS device shown
Set IP
Let's ping from windows to NESC over USB RNDIS Driver...
ping arrived!
And from NESC console to Windows...
Success!
But the kernel is on SD Card yet...
Because Mali driver won't work after switch_root to /newroot.
I think some kernel compile option or any are wrong...
First, I have already explain why NESC don't work as USB host below.
So,I must use tweak to usb controller work only host mode.
I have test change linux kernel config as 'host only' , but it cause link error in modules.
Some driver file must need otg support configuration.
So I had left this configuration "otg support".
While searching same hack,I found this contents.
USB OTG as an Extra USB Host in Allwinner A10, A20 etc | dmsherazi
so,I have edit script.fex (it has dumped from NESC boot image script.bin decompiled).
as USB controller work as only HOST.
And re-compile Linux kernel with some drivers.
It was succeeded,but currentry , It need some soldering for power line .
In near future , it will no need , I hope.
ファミコンミニがネットワークにつながったよー(USBメモリとFTDIシリアルもいけてるよー) pic.twitter.com/Ge93vnVw2V
— ひろみつ(85.1kg) (@bakueikozo) 2017年2月17日
The working bootlog and console is below.
There are some devices message recognized on my custom kernel.
/dev/ttyUSB0もできたし、USBメモリは/dev/sdaにいったし、asixドライバでeth0から8.8.8.8にpingが飛んだよー 電源をDCコネクタがつくであろう所から入れてやったり、USB電源を外から入れたりしないと今のとこ動かないが、そのうち取れるだろ。 pic.twitter.com/EuOwt780U9
— ひろみつ(85.1kg) (@bakueikozo) 2017年2月17日
And, more devices will work on NESC as a usual Linux.
My NESC development envrionment is boot from SD Card.
Linux kernel has re-compiled from Nintendo OSS resource with some re-configure.
This project goal is what new Linux kernel and some drivers will written to flash area.
I will adjust and learn hard.
To write flash :
I think I will use hakchi custom for update kernel.
.. or Someone who not me , will make it soon.
↑これがUSB周りの拡大写真です。
VCC INはL?を通って供給され、D+/D- は並行してR16に渡されています。
しかし、USB OTG ID ピンはR16につながっていません。
よって、USB HOSTとして自動的に認識されることはなく、
少なくとも、上記の部分に部品を追加するか、
Linux側を工夫して、強制的にHOSTモードに入るようにするしかないと考えています。
以下は、olimexのA33ボードの回路図ですが、
3.0Vにプルアップしておくことと、
USB-DETをR16に接続すること(A33では243Ω経由、しかも1%精度指定)が鍵なのではないかと思います。
尚、このIDがNESCでどこにつながっているかというのは
内層に接続されてしまっていて、見た目からは判断できませんでした。
もしかすると、olimexのA33と同じようにPB3に接続されているかもしれません。
ちょっとfexでどうなってるか見てくるか。
newroot内のlibEGL.soのコンパイルオプション?
BUILD=RELEASE ARCH=arch_011_udd PLATFORM=default_7a TRACE=0 THREAD= GEOM=mali_gp_geometry_common CORES=MALI400 USING_MALI400=1 TARGET_CORE_REVISION=0x0101 TOPLEVEL_REPO_URL=1c2c9ed REVISION=1c2c9ed CHANGED_REVISION=1c2c9ed REPO_URL=heads/master BUILD_DATE=2016蟷エ 06譛・28譌・ 譏滓悄莠・10:25:01 CST CHANGE_DATE=2016-03-02 10:43:05 +0800 TARGET_TOOLCHAIN=arm-linux-gcc HOST_TOOLCHAIN=gcc TARGET_TOOLCHAIN_VERSION= HOST_TOOLCHAIN_VERSION=gcc version 4.4.7 (Ubuntu/Linaro 4.4.7-1ubuntu2) TARGET_SYSTEM=gcc-arm-linux HOST_SYSTEM=gcc-x86_64-linux CPPFLAGS= CUSTOMER=internal VARIANT=mali400-gles11-gles20-linux-dma_buf-rgb_is_xrgb-no_Werror HOSTLIB=direct INSTRUMENTED=FALSE USING_MRI=FALSE MALI_TEST_API= UDD_OS=linux
busyboxのバージョン
(busybox 1.24.1, 2016-08-30 12:01:55 CEST)
部品の型番
USBのそば「7C」 6pin
MN1D6
RS H
D3=P27
上の方法で接続したSDカードから、u-bootとLinuxカーネルを読み込んで、
mmcblk0p1として作ったext2のrootfsをマウントして、
mmcblk0p2に作ったlinux-swapを認識して、仮想メモリ4Gの普通のLinuxが起動しました。
結局のことろ、適当に配線してたのが悪かったっぽいんですよねぇ…
このフレキにしたら、今まで起動していなかった手持ちのSD,マイクロSDカード
すべてからu-boot経由でlinuxが起動しました。
free -m の結果、Swap: で3282 (MB) が出てますね。
で、これ、だれが必要なの…?
まぁ、とりあえず単体でいろいろ差し替えて遊べる、というところには来たので、
これからちょいちょい周辺機器をつないで遊んでみようかなと。
i2cってmonoから簡単に触れると便利だなぁとか、
FlashAirのスクリプトを使ってどうにかオンラインのデータをやり取りできないかな、とか
SDIOってうまく触れるのかな?とかいろいろある。
Xがなんか動かないな(フリーズする)
とりあえずstraceして調べてみよう、とか。
次の課題としては、せっかくLinux動くようにしたので、コンパイル環境(config)をちゃんと公開しようとか、
なぜかmali.koがうまく読み込めないので、
SDカードからカスタムカーネルを起動しつつ、もともとのfs(newroot)をちゃんとマウントして、swapが有効の状態でkachikachiが動くようにできるかな?ってとこかな。
最新のhakchiからinit周りを持ってきて、このカスタムカーネルと一緒にSDカードに書くだけで動くんじゃないかなって気もするんだけど。