私は TI-Android-JB-4.2.2-DevKit-4.1.1 を使用して、完全に機能する Beaglebone Black 用の Android を構築しています。RTC-Cape ( http://elinux.org/CircuitCo:RTC_Cape ) を使用しようとしています。BBB の「オンボード」Angström で、RTC を手動で設定および読み取ることができたので、ハードウェアは問題ないと思います。
AndroidでRTCを動作させるためkernel/arch/arm/mach-omap2/board-am335xevm.c
に、構造体にファイルを追加しました
static struct i2c_board_info __initdata am335x_i2c0_boardinfo[]
最後に
{
I2C_BOARD_INFO("ds1338", 0x68),
},
で( ) をアクティブにし、 を非アクティブにしましkernel/arch/arm/configs/am335x_evm_android_defconfig
た。CONFIG_RTC_DRV_DS1307
CONFIG_RTC_DRV_DS1307=y
CONFIG_RTC_DRV_OMAP
起動時にそれは言う
<4>[ 1.880767] rtc-ds1307: probe of 1-0068 failed with error -5
<6>[ 1.886779] i2c /dev entries driver
と
<3>[ 2.306884] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
この Beaglebone/Linux メーリング リストの変更を適用しようとしました: https://groups.google.com/forum/#!msg/beagleboard/DegreEdtI-Q/ZEdFLNnuTvMJ。
Android/Linux カーネル構成は初めてです。カーネルに RTC を適切に含めて設定し、起動時に使用できるようにするにはどうすればよいですか?
よろしく
マティアス
アップデート
Beaglebone Balck Cape の DS1338 は、実際には P9 の 17 と 18 (Android の I2C1 または i2c-2) に接続されていることがわかります。Android では、このバスはデフォルトで無効になっています。簡単な回避策として、印刷された回路パスを切り取り、P9 (I2C2 または i2c-3) の 19 と 20 に配線しました。
次に、I2C_BOARD_INFO
ブロックを移動しました
static struct i2c_board_info am335x_i2c2_boardinfo[]
コンパイルされたカーネルは、起動時に RTC から時刻を読み取るようになりました。
ヒントをありがとう、user3926077。
適切な解決策は、Android カーネルで i2c-2 をアクティブ化し、I2C-BOARD_INFO
ブロックを.xml に配置することstatic struct i2c_board_info am335x_i2c1_boardinfo[]
です。残念ながら、現時点ではこれを達成する方法がわかりません.RTCはデバッグのためだけに必要なので、はんだ付けソリューションが機能します.