mozopenhard / chirimen Goto Github PK
View Code? Open in Web Editor NEWHardware Informations about The First Prototype MozOpenHard CHIRIMEN
Home Page: http://mozopenhard.mozillafactory.org/
Hardware Informations about The First Prototype MozOpenHard CHIRIMEN
Home Page: http://mozopenhard.mozillafactory.org/
CHIRIMEN has a user controllable on-board LED, green LED next to (always ON) red LED.
currently green LED is configured as "LED class" device, i.e. it can be controlled via /sys/class/leds/chirimen:green:user/*. (default is ON if Linux kernel is booted properly)
but we can configure it as GPIO (GPIO6_B3/gpio363), then user(app) will be able to control it via Web GPIO API.
should we configure it as GPIO?
(or, is there any available Web API for LED?)
Let's make Chirimen design more breadboard friendly. Perhaps adding power pins to power the breadboard rails or GPIO holes spaced correctly for standard breadboards on the market.
make LED controllable via /sys/class/gpio/gpio363
マルチプロセス対応の実装コードに直す必要がある。
Please kindly create a chirimen development (chirimen-dev) mailing-list. This will improve communication and help remote contributors to collaborate. It is really difficult to keep track of conversations on Facebook group. Thanks!
ログ残し
Issueたてれていなかったので、立てときます( すぐCloseですが )。
mp4の動画が再生できない不具合が存在。
MoCoの池田さんのご協力の元対応済み。
CLOSE.
Please consider creating #chirimen and #chirimen-dev IRC rooms on irc.mozilla.org. The #chirimen is for users and general discussions and #chirimen-dev is for chirimen developer team.
Thanks!
CHIRIMEN (RK3066) で利用可能なものとしては主に以下の二つ。
Rockchip 独自のものは安定しているが、 U-Boot の方は OTG からのイメージの書き込みが不安定。
U-Boot の方は fastboot 対応。 (ただし現状のものはバグで使えない気がする)
現状 U-Boot でイメージの書き込みに失敗する事がそれなりにあるので、 Rockchip 独自のものにする方がよいかもしれない。
(ボードの数が少なく作業者が限られている為、周知しておけば済むという考えもアリ?)
ローカルでは対応完了。
現在、ビルド確認の為、ソース取得中・・・
We have to run test suite on Gaia / Gecko for CHIRIMEN repo( MozOpenHard repo).
https://developer.mozilla.org/ja/Firefox_OS/Automated_testing/Gaia_integration_tests
This is a big weakness of the raspberry pi and would be a good point of difference
flingone/hardware-rk29@7a1a610 this should be reverted.
6月以降の ISSUE です
現状、Gaia のビルドは Phone 指定となっています。
その為、スマートフォン向けの UI がメインとなっていますので、 ココらへんを変えていきたい。
具体的には、Phoneの UIとなっているため、HomeScreenのアプリアイコン表記、設定アプリのUI、さらにはSIMを指す前提での状態(不要な項目がある)、使えない電話アプリ/メッセージアプリなどがあるなど。
その為、ビルドを タブレットビルドとするか、 TV ビルドとするか、はたまた全く別なものとするか(JanOSの様にCUIベースとか、独自で作成など)で議論の余地あり。
タブレットビルド、TVビルド、JanOSそれぞれのUI含めた操作感を全員で把握し、どの方向性とするか議論が必要。
※そもそもで、どのようなユースケースを目指すかにも依存しますし。。。
6月以降のMileStone決定時に議論したいです
following rules are not applied under certain conditions.
/sys/devices/virtual/gpio/gpio* direction 0666 root root
/sys/devices/virtual/gpio/gpio* value 0666 root root
workaround: add usleep(10000);
just before chown()/chmod() in system/core/init/devices.c:fixup_sys_perms()
(probably this is not correct fix...)
after ./build.sh, images for flashing need to be prepared as follows
these commands should be run in flash.sh.
ブートローダの更新は Rockchip 製の upgrade_tool (Linux x86) や AndroidTool (Windows) で行う必要がある為、 Mac OS X では (VM 内で Linux/Windows を使用しない限り) 更新できない。
しかしブートローダ以外のイメージ (boot.img, system.img 等) については、 Mac OS X 環境でも更新できるはず。
(#10 SD カードにインストールできるなら問題はない)
The coin cell battery holder on OINARI device is quite delicate. With use the tensile strength of the battery snap might change making it unreliable. The design could be improved by choosing alternative battery holder such as standard coin cell holder (http://www.digikey.com/product-detail/en/107/36-107-ND/27387) or vertical coin cell holder (http://www.mouser.com/ProductDetail/Renata/NH5077-LF/?qs=SWRlsj5ucW7Bs86bh2iSGg%3D%3D).
/CC @dadaa
MDN上にCHIRIMENに関するドキュメントを用意する。
スクリーンショットをとると、RGBの値がおかしい画像が取得される
他デバイスと同様、既存バグ、ポーティングが必要。
This image cannot use UART feature. /dev/ttyS0 is not found.
http://dl.linux-rockchip.org/mozilla/mozopenhard_20150523.zip
It is cheaper now to have onboard WiFi onto the development boards. Adding support for basic networking by default would make IoT solutions much easier.
It would be great to add female headers to Chirimen. This will make it easier to work. Most of the Arduino have this feature (http://www.arduino.cc/en/Main/ArduinoBoardUno).
Of course, It is quite simple to solder some male pins. But inexperienced users (like me) can easily end up damaging the board while soldering. The IC chips are closely spaced on CHIRIMEN, spilling some solder on IC chips would damage the board.
current implementation only support Full HD resolution in HDMI.
Need to support more display resolution support.
build & install i2c-tools
support AX88772 based USB-ethernet adapter
I tried to use a following sensor AM2320, but the sensor could not work.
http://akizukidenshi.com/download/ds/aosong/AM2320.pdf
Also I did i2cdetect command on CHIRIMEN, but it was not detected.
According to the spec, this sensor supports up to 100khz SCL clock frequency.
Other sensors that are working well support 400khz.
So the reason may be the frequency.
standard-mode: up to 100 kbit/s.
fast-mode: up to 400 kbit/s
fast-mode plus: up to 1000 kbit/s
HS-mode: up to 3.4 Mbit/s.
The current UI is not best to use it.
to change default setting ( preferens ) with
CHIRIMEN の仕様上ブートローダはどうしても NAND フラッシュに書き込んでおく必要があるが、カーネル等を SD カードに書き込んで使う事は技術的には可能。 NAND フラッシュの容量を気にしなくて済むほか、ファームウェアの配布・アップデートも SD カードの書き換えだけであれば比較的楽になると思われる。
ブートローダが Rockchip 独自のものの場合、カーネルおよび initramfs (boot.img) は NAND フラッシュに置くしかないが、他のブートローダであればカーネルを含め SD カードに置く事も可能になるはず。
https://github.com/flingone/B2G-FlingOne.git
をベースに用意する。
対象のFirefoxOSのバージョンは2.1とする。
UDP Socketを使えるようにするため
build.sh runs patches/patch.sh every time.
patch.sh tries to apply patches even if target files are already patched.
you have to restore patched files to original before next build.sh run.
It would be a good idea to replace default 'Homescreen' app in the pre-built image with custom Chirimen default app.
Here are few ideas for the default starter app:
tl;dr
https://bugzilla.mozilla.org/show_bug.cgi?id=1166588
にて指摘頂いている課題の具体例の記載。
♯ 指摘内容と、それがアプリに対してどういう制限として繋がるのかを明確にする。
現状のGPIO APIの実装では、センサ(及びボタンなどのデバイス)からの値を読み取るためには、readをポーリングで処理せねばならない。
そのため、アプリケーション層から、特定デバイスに対して一定周期でのボーリングにて実装する必要がある。
つまり、センサ(やボタンなど)から値を細かい周期で取ろうと思えば思うほど、UIブロックが発生してしまう。
JavaScriptはシングルスレッドなのでこれは仕方がない。
なので、Workerスレッドに逃せば出来るかと想像できるが、課題が存在。
Geckoの実装として、Gaiaのアプリ上からWorkerスレッドを呼べるようにするにはGecko側にWorkerから呼べるように修正が必要。現状の実装ではWorkerから呼べるようにしていないので、GPIO/I2CはWokerから呼べない( (試していないため、確認は必要だが )。
※ ここで書いているのは、Kyleから指摘されているe10s/IPCとは別な話。WebAPIとして、Gaiaのアプリケーション層から操作するための話。
なので、現状の結論からでは、以下の制限が発生。
例えば、CHIRIMENに加速度センサを付けて傾きに応じて、LEDにを光らす / UIを更新するアプリ。
傾き検知の値を細かい値にすればするほど、メインスレッドでポーリングが必要。
そのため、メインスレッドにてブロッキングが発生。
LEDを光らすのはもちろん、描画更新も出来ないし、何もできなくなる。
センサ値取得処理をWorkerスレッドに逃そうにもWorkerスレッドからは呼べない(はず)なので、現時点においては、回避方法はない。
→要はメインスレッド内で処理できるキャパシティが決まっているので、センサをセンシティブに取得して、DOM操作、他のGPIO/I2C操作など凝った動作をしようと思うと制限が出てくる。「センサ取得を荒くして、DOM操作に割く」、「センサ取得がセンシティブだが、DOM操作は制限」など、作りこみが大きくなればなるほど影響が出てくる。
Slackなどで話している件。
https://mozoh.slack.com/messages/porting/details/
Issueで残せていなかったので立てときます。
※Issueにすでにあり,duplicateなら要削除。
CONFIG_SECCOMP_FILTER=y してカーネルのリコンパイル
Mozilla Japanさんで対応中の認識なのでAssignee更新。
今は Navigator を使ってるが WorkerNavigator (実装) とか使って Device Worker を立てていく形に
In future we would like to add support to more sensors, Bluetooth, NFC and motor controls. Designing a new stackable shield would be great.
Alternatively Chirimen design could match the dimensions to Arudino Uno so that we can re-purpose Arudino Proto Sheild (http://www.arduino.cc/en/Main/ArduinoProtoShield). Users who have such Arudino uno compatible shields could start porting support to Firefox OS.
Also consider looking at stackable solution out there such as Grove (http://www.seeedstudio.com/wiki/Grove_System) and Onion Omega (https://www.kickstarter.com/projects/onion/onion-omega-invention-platform-for-the-internet-of/description)
[ problem ]
In MozOpenHard repos, clone git repo. config it, build it, and then try to generate image to exec flash.sh.
We can't get image file.
[ cause ]
Chirimen's section is missing on flash.sh
We have to add bellows :
+"chirimen")
+ cp device/rockchip/rksdk/buildspec-rk3066.mk ./buildspec.mk
+ device/rockchip/rksdk/mkimage.sh
+ rm ./buildspec.mk
+ rkst/mkkrnlimg out/target/product/chirimen/kernel rockdev/Image/kernel.img
+ exit 0
+ ;;
/mnt/sdcard/ cannot be accessed by the API in current setting.
I changed the permission by the following command
$ chmod 666 /mnt/sdcard/
and then, the API can access the storage.
master ブランチで動かせるようにする。
現状、b2g-patches配下に CHIRIMEN用の各種パッチがあるが、これらを非適用もしくは、masterにいれられるよう検討する
方針として、まずはパッチをなくして代替手段がないかどうか(ビルドオプションとか)、
ない場合、パッチ削除による影響を確認する。
https://bugzilla.mozilla.org/show_bug.cgi?id=1166588 で指摘頂いている点についても解消必要。
I am receiving errors when flashing my build to the device:
$ sudo ./upgrade_tool di -k kernel.img
Download kernel start...
Reading data from flash failed in checking,exit download image!
Log:
17:15:14 Error:RKU_Read failed,err=-99
17:15:14 ERROR:Download_Image-->RKU_ReadLBA failed,Read(3264K),RetCode(0)
17:15:14 Upgrade Tool ver 1.21
I have followed the build steps listed at: https://etherpad.mozilla.org/wot-ww
For "config.sh chirimen" I receive the error:
fatal: manifest 'chirimen.xml' not available
fatal: manifest chirimen.xml not found
Provide a visual notification using the onboard LED when the Chirimen board enters a recovery mode. At the moment, you require a external display and it is tricky process.
Usecase:
ちゃんとしたカメラで撮影したボードの画像が素材として必要
Let's define and prepare appropriate default config for CHIRIMEN.
For example, I want:
"bluetooth.enabled": false,
"debugger.remote-mode": "adb-devtools",
"developer.menu.enabled": true,
"devtools.debugger.remote-enabled": true,
"devtools.remote.wifi.enabled": true,
"geolocation.enabled": false,
"lockscreen.passcode-lock.code": "0000",
"lockscreen.passcode-lock.timeout": 0,
"lockscreen.passcode-lock.enabled": false,
"nfc.enabled": false,
"screen.automatic-brightness": false,
"screen.brightness": 1,
"screen.timeout": 0,
config files in gaia
https://github.com/mozilla-b2g/gaia/tree/master/build/config
Note: my custome-setting.json for smartphone:
https://gist.github.com/dynamis/574b0cb2ed6668322f65
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.