0

私は 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_DS1307CONFIG_RTC_DRV_DS1307=yCONFIG_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はデバッグのためだけに必要なので、はんだ付けソリューションが機能します.

4

1 に答える 1