2382540_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2382540_ja-JP

2382540_ja-JP

i.MX8QM-MEKにおけるAAOS 15におけるCANインターフェースの可用性と統合

こんにちは、NXPサポートチームの皆さん、

現在、i.MX8QM-MEKプラットフォームをオートモーティブAndroid(AAOS)概念実証として評価中です。その概念には以下が含まれます:

  • デュアルタッチディスプレイ
  • CAN通信インターフェース
  • AAOSフレームワークを通じた車載信号の可視化

AAOS 15 (15.0.0_2.1.0) のビルドとフラッシュに成功しました。現在はCAN統合に取り組んでいます。

 

ビルドターゲット: mek_8q_car-nxp_stable-userdebug

私たちの目的は、車載ネットワークからのCANメッセージを受信し、Vehicle HAL(VHAL)およびCar Property マネージャフレームワークを通じてこれらの信号をAAOS車載のプロパティにマッピングすることです。

しかしながら、我々は以下の問題に直面しています。

  1. CANインターフェース(例:can0)はターゲットシステムでは利用できません。
  2. CANネットワークインターフェースはifconfig -aip link showには表示されません
  3. i.MX8QM-MEKプラットフォーム上でCAN信号をAAOS 15に統合するための推奨アプローチを理解したいと考えています。

調査の結果、CANトランシーバ制御信号(CAN01_ENやCAN01_STB_Bなど)は、M41_I2C0_1V8_SCLおよびM41_I2C0_1V8_SDAインターフェースを介してM4サブシステムにコネクテッドされたI/Oエクスパンダーを介して制御されていることが分かりました。

以下の点を教えていただけますか?

  • CAN機能はAAOS 15(15.0.0_2.1.0)で公式にサポートされているのでしょうか?i.MX8QM-MEK用ですか?
  • CANインターフェースを有効にするために、追加のデバイスツリー構成、カーネル構成、ファームウェア要件、またはM4ファームウェア依存関係などが必要ですか?
  • I/Oエクスパンダーは、Linux/AndroidでCANコントローラが利用可能になる前にM4ファームウェアで設定する必要がありますか?
  • AAOSでCAN信号をVHAL/Car Property マネージャに統合するための参考文献、アプリケーションノート、またはサンプル実装はありますか?

関連するデバッグ情報は下記に添付されています。

mek_8q:/ # ifconfig -a
lo Link encap:ローカルループバック
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 スコープ:ホスト
ループバックを走らせる MTU:65536 メトリクス:1
RXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 フレーム:0
TXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 キャリア:0
衝突:0 TCキューレン:1000
RXバイト:0 TXバイト:0

dummy0 リンク encap:イーサネット HWaddr da:0a:64:88:22:0b
inet6 addr: fe80::d 80a:64ff:fe88:220b/64 スコープ: リンク
UP放送 NOARP MTU:1500 メトリック:1
RXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 フレーム:0
送信パケット:10 エラー:0 ドロップ:0 オーバーラン:0 キャリア:0
衝突:0 TCキューレン:1000
RXバイト:0 TXバイト:700

ifb0 リンク encap:イーサネット HWaddr b2:9d:fa:9a:d4:6b
放送 NOARP MTU:1500 メトリック:1
RXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 フレーム:0
TXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 キャリア:0
衝突:0 TCキューレン:32
RXバイト:0 TXバイト:0

ifb1 リンク encap:イーサネット HWaddr 3e:8d:51:4e:e0:8b
放送 NOARP MTU:1500 メトリック:1
RXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 フレーム:0
TXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 キャリア:0
衝突:0 TCキューレン:32
RXバイト:0 TXバイト:0

tunl0 リンク encap:UNSPEC
NOARP MTU:1480 メートル法:1
RXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 フレーム:0
TXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 キャリア:0
衝突:0 TCキューレン:1000
RXバイト:0 TXバイト:0

gre0 リンク encap:UNSPEC
NOARP MTU:1476 メートル法:1
RXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 フレーム:0
TXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 キャリア:0
衝突:0 TCキューレン:1000
RXバイト:0 TXバイト:0

gretap0 リンク encap:イーサネット HWaddr 00:00:00:00:00:00
放送マルチキャスト MTU:1462 メトリクス:1
RXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 フレーム:0
TXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 キャリア:0
衝突:0 TCキューレン:1000
RXバイト:0 TXバイト:0

erspan0 リンク encap:イーサネット HWaddr 00:00:00:00:00:00
放送マルチキャスト MTU:1450 メトリクス:1
RXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 フレーム:0
TXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 キャリア:0
衝突:0 TCキューレン:1000
RXバイト:0 TXバイト:0

ip_vti0 リンク encap:UNSPEC
NOARP MTU:1480 メートル法:1
RXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 フレーム:0
TXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 キャリア:0
衝突:0 TCキューレン:1000
RXバイト:0 TXバイト:0

ip6_vti0 リンク encap:UNSPEC
NOARP MTU:1364 メートル法:1
RXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 フレーム:0
TXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 キャリア:0
衝突:0 TCキューレン:1000
RXバイト:0 TXバイト:0

sit0 Link encap:IPv6-in-IPv4
NOARP MTU:1480 メートル法:1
RXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 フレーム:0
TXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 キャリア:0
衝突:0 TCキューレン:1000
RX バイト:0 TX バイト:0

ip6tnl0 リンク encap:UNSPEC
NOARP MTU:1452 メートル法:1
RXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 フレーム:0
TXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 キャリア:0
衝突:0 TCキューレン:1000
RXバイト:0 TXバイト:0

ip6gre0 リンク encap:UNSPEC
NOARP MTU:1448 メートル法:1
RXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 フレーム:0
TXパケット:0 エラー:0 ドロップ:0 オーバーラン:0 キャリア:0
衝突:0 TCキューレン:1000
RXバイト:0 TXバイト:0

eth0 リンク encap:イーサネット HWaddr 00:04:9f:05:ed:db ドライバ fec
inet addr:10.16.102.48 Bcast:10.16.102.255 Mask:255.255.0
inet6 addr: fe80::260d:6a5f:7a04:afdd/64 スコープ:リンク
UP放送 マルチキャスト実行 MTU:1500 メトリック:1
RX パケット:301803 errors:0 droped:73390 overrun:0 frame:0
TXパケット数:241件、エラー:0、ドロップ:0、オーバーラン:0、キャリア:0
衝突:0 TCキューレン:1000
RXバイト:52500562 TXバイト:25613

mek_8q:/ # dmesg |GREP I2C
[ 0.062877] /bus@5b000000/usb@5b110000/usb@5b120000: /bus@5a000000/i2c@5a800000/tcpc@51 を持つ固定依存サイクル
[ 0.063545] /bus@5b000000/usb@5b110000/usb@5b120000:固定依存サイクル(/bus@5a000000/i2c@5a800000/tcpc@51
[ 0.075349] /bus@56240000/i2c@56247000/lvds-to-hdmi-bridge@4c: /bus@56240000/ldb1-display-コントローラ/lvds-channel@0 で固定依存サイクルを
[ 0.075382] /bus@56240000/ldb1-display-コントローラ/lvds-channel@0: /bus@56240000/i2c@56247000/lvds-to-hdmi-bridge@4c で固定依存サイクルを
[ 0.076099] /bus@56240000/i2c@56247000/lvds-to-hdmi-bridge@4c: /bus@56240000/ldb1-display-コントローラ/lvds-channel@0 での固定依存サイクル
[ 0.076180] /bus@56240000/ldb1-display-コントローラ/lvds-channel@0: /bus@56240000/i2c@56247000/lvds-to-hdmi-bridge@4c で固定依存サイクルを使った
[ 0.076927] /bus@56220000/i2c@56226000/adv7535@3d: /bus@56220000/dsi_host@56228000 を含む固定依存サイクル
[ 0.076980] /bus@56220000/dsi_host@56228000: 固定依存サイクル(/bus@56220000/i2c@56226000/adv7535@3d
[ 0.077923] /bus@56220000/i2c@56226000/adv7535@3d: 修正済み /bus@56220000/dsi_host@56228000を含む依存サイクル
[ 0.078188] /bus@56220000/i2c@56226000/adv7535@3d: /bus@56220000/dsi_host@56228000 を含む固定依存サイクル
[ 0.078294] /bus@56220000/dsi_host@56228000: /bus@56220000/i2c@56226000/adv7535@3d の固定依存サイクル
[ 0.079093] /bus@57220000/i2c@57226000/adv7535@3d:固定依存サイクル /bus@57220000/dsi_host@57228000
[ 0.079148] /bus@57220000/dsi_host@57228000: 固定依存サイクル(/bus@57220000/i2c@57226000/adv7535@3d
[ 0.080033] /bus@57220000/i2c@57226000/adv7535@3d:固定依存サイクル(/bus@57220000/dsi_host@57228000
[ 0.080278] /bus@57220000/i2c@57226000/adv7535@3d: /bus@57220000/dsi_host@57228000 を含む固定依存サイクル
[ 0.080331] /bus@57220000/dsi_host@57228000: 固定依存サイクル(/bus@57220000/i2c@57226000/adv7535@3d
[ 0.080618] /bus@5a000000/i2c@5a800000/tcpc@51/connector: /cbtl04gp による固定依存サイクル
[ 0.080674] /cbtl04gp: /bus@5a000000/i2c@5a800000/tcpc@51/コネクタを持つ固定依存サイクル
[ 4.329499] IMX-LPI2c 5A800000.i2C:pioモードを使用する
[ 4.335299] /bus@5b000000/usb@5b110000/usb@5b120000: /bus@5a000000/i2c@5a800000/tcpc@51 との依存関係サイクルを修正しました
[ 4.346831] /bus@5a000000/i2c@5a800000/tcpc@51: /bus@5b000000/usb@5b110000/usb@5b120000 との依存関係サイクルを修正しました
[ 4.358306] /bus@5a000000/i2c@5a800000/tcpc@51/connector: /cbtl04gp との依存関係サイクルを修正しました
[ 4.369504] i2c i2c-2: of_i2c: /bus@5a000000/i2c@5a800000/fxos8700@1e での modalias の失敗
[ 4.378432] i2c i2c-2: /bus@5a000000/i2c@5a800000/fxos8700@1e の I2C デバイスの作成に失敗しました
[ 4.387694] i2c i2c-2: LPI2Cアダプタが登録されました
[ 4.393761] imx-lpi2c 5a810000.i2c:pioモードを使用する
[ 4.399176] i2c i2c-3: GPIOリカバリにpinctrlステートを使用
[ 4.415470] i2c i2c-3: リカバリに汎用GPIOを使用
[ 4.421623] i2c i2c-3: LPI2Cアダプタが登録されました
[ 4.427928] imx-lpi2c 56247000.i2c:PIOモードを使おう
[ 4.433503] /bus@56240000/ldb1-display-コントローラ/lvds-channel@0: /bus@56240000/i2c@56247000/lvds-to-hdmi-bridge@4c で固定依存サイクルを
[ 4.447437] /bus@56240000/i2c@56247000/lvds-to-hdmi-bridge@4c: /bus@56240000/ldb1-display-コントローラ/lvds-channel@0 での固定依存サイクル
[ 4.461316] i2c i2c-4: LPI2Cアダプター登録済み
[ 4.467791] IMX-LPI2C 56226000.i2c:pioモードを使用する
[ 4.473320] /bus@56220000/dsi_host@56228000: /bus@56220000/i2c@56226000/adv7535@3d との依存関係サイクルを修正しました
[ 4.484383] /bus@56220000/i2c@56226000/adv7535@3d: /bus@56220000/dsi_host@56228000 との依存関係サイクルを修正しました
[ 4.495461] i2c i2c-5: LPI2Cアダプタが登録されました
[ 4.501796] imx-lpi2c 57226000.i2c:PIOモードを使おう
[ 4.507337] /bus@57220000/dsi_host@57228000: /bus@57220000/I2Cバス@57226000/adv7535@3d の固定依存サイクル
[ 4.518372] /bus@57220000/I2Cバス@57226000/adv7535@3d: /bus@57220000/dsi_host@57228000 を含む固定依存サイクル
[ 4.529441] I2Cバス I2C-6: LPI2Cアダプタ登録
[ 4.538112] I2Cバス I2C-2: 多重化されたI2Cバス7を追加
[ 4.543745] I2Cバス I2C-2: 多重化されたI2Cバス8を追加
[ 4.549248] i2c-mux-gpio i2cmux: 5a800000.I2Cバス アダプタ上の2ポート MUX
[ 4.586228] I2Cバス I2C-2: ダミーレギュレーター使用中の電源VDDが見つかりません
[ 4.593252] I2Cバス I2C-2: ダミーレギュレーター使用中のVDDIO供給不可
[ 4.651657] st-accel-I2C 2-0019: ダミーレギュレーター使用中、供給VDDが見つかりません
[ 4.659540] st-accel-I2C 2-0019: ダミーレギュレーター使用中、VDDIOの供給が見つかりません
[ 4.674354] st-accel-I2C 2-0019: ドライバ付きプローブ st-accel-I2C エラー -5 で失敗
[ 4.684848] st-magn-I2C 8-001e: ダミーレギュレーター使用中、供給VDDが見つかりません
[ 4.692677] st-magn-I2C 8-001e: ダミーレギュレーター使用中、VDDIOの供給不可
[ 4.708084] st-magn-I2C 8-001e: マトリックス未確認: 識別を用いて...
[ 4.720647] st-gyro-I2C 2-0069: ダミーレギュレーター使用中、供給VDDが見つかりません
[ 4.728469] st-gyro-I2C 2-0069: ダミーレギュレーター使用中、VDDIOの供給が見つかりません
[ 4.743163] st-gyro-I2C 2-0069: ドライバ付きst-gyro-I2Cプローブがエラー-5で故障
[ 4.861147] virtio_rpmsg_bus virtio1: チャネルの生成 rpmsg-I2C-チャネル addr 0x2
[ 4.876919] i2c-rpmsg virtio1.rpmsg-I2C-チャネル.-1.2: 新しいチャネル: 0x400 -> 0x2!
[ 4.901196] imx_rpmsg_i2c i2c-rpbus-1: I2Cアダプタ i2c-rpmsg-adapter を成功裏に追加
[ 5.007981] /bus@5a000000/I2Cバス@5a800000/tcpc@51: 固定依存サイクル(/bus@5b000000/usb@5b110000/usb@5b120000
[ 5.024985] /bus@5b000000/usb@5b110000/usb@5b120000: /bus@5a000000/I2Cバス@5a800000/tcpc@51 の固定依存サイクル
[ 16.457456] imx-lpi2c 57247000.I2Cバス:PIOモードを使おう
[ 16.463779] i2c i2c-9: LPI2Cアダプター登録
[ 16.470664] /bus@57240000/ldb2-display-controller/lvds-channel@0: /bus@57240000/i2c@57247000/lvds-to-hdmi-bridge@4c で固定依存サイクルを適用
[ 17.057471] /bus@58000000/i2c@58226000/max9286_csi0@6a: /bus@58000000/i2c@58226000/max9286_csi0@6a/i2c-mux/i2c@0/c1 を持つ固定依存サイクル
[ 17.083749] /bus@58000000/i2c@58226000/max9286_csi0@6a: /bus@58000000/i2c@58226000/max9286_csi0@6a/i2c-mux/i2c@1/c2 を持つ固定依存サイクル
[ 17.112012] /bus@58000000/i2c@58226000/max9286_csi0@6a: /bus@58000000/i2c@58226000/max9286_csi0@6a/i2c-mux/i2c@2/c3 の固定依存サイクル
[ 17.126760] /bus@58000000/i2c@58226000/max9286_csi0@6a: /bus@58000000/i2c@58226000/max9286_csi0@6a/i2c-mux/i2c@3/c4 を持つ固定依存サイクル
[ 17.141567] /bus@58000000/i2c@58226000/max9286_csi0@6a/i2c-mux/i2c@3/camera@54: /bus@58000000/i2c@58226000/max9286a を用いた固定依存サイクル
[ 17.156682] /bus@58000000/i2c@58226000/max9286_csi0@6a/i2c-mux/i2c@2/camera@53:/bus@58000000/i2c@58226000/max9286aによる固定依存サイクル
[ 17.171754] /bus@58000000/i2c@58226000/max9286_csi0@6a/i2c-mux/i2c@1/camera@52:/bus@58000000/i2c@58226000/max9286aによる固定依存サイクル
[ 17.186407 ] /bus@58000000/i2c@58226000/max9286_csi0@6a/i2c-mux/i2c@0/camera@51: /bus@58000000/i2c@58226000/max9286a を持つ固定依存サイクル
[ 17.204964] IMX-LPI2C 58226000.i2c:PIOモードを使おう
[ 17.211086] /bus@58000000/i2c@58226000/max9286_csi0@6a: /bus@58000000/i2c@58226000/max9286_csi0@6a/i2c-mux/i2c@0/c1 を持つ固定依存サイクル
[ 17.225631] /bus@58000000/i2c@58226000/max9286_csi0@6a: /bus@58000000/i2c@58226000/max9286_csi0@6a/i2c-mux/i2c@1/c2 を用いた固定依存サイクル
[ 17.240271] /bus@58000000/i2c@58226000/max9286_csi0@6a: /bus@58000000/i2c@58226000/max9286_csi0@6a/i2c-mux/i2c@2/c3 を持つ固定依存サイクル
[ 17.254871] /bus@58000000/i2c@58226000/max9286_csi0@6a:固定依存サイクル(/bus@58000000/i2c@58226000/max9286_csi0@6a/i2c-mux/i2c@3/c4)
[ 17.269824] /bus@58000000/i2c@58226000/max9286_csi0@6a/i2c-mux/i2c@3/camera@54: /bus@58000000/i2c@58226000/max9286a を持つ固定依存サイクル
[ 17.284422] /bus@58000000/i2c@58226000/max9286_csi0@6a/i2c-mux/i2c@2/camera@53: /bus@58000000/i2c@58226000/max9286a を用いた固定依存サイクル
[ 17.299030] /bus@58000000/i2c@58226000/max9286_csi0@6a/i2c-mux/i2c@1/camera@52: /bus@58000000/i2c@58226000/max9286a による固定依存サイクル
[ 17.314057] /bus@58000000/i2c@58226000/max9286_csi0@6a/i2c-mux/i2c@0/camera@51: /bus@58000000/i2c@58226000/max9286a を持つ固定依存サイクル
[ 17.328911] i2c i2C-10: LPI2Cアダプター登録
[ 17.349901] /bus@58000000/i2c@58226000/max9286_csi0@6a: 固定依存サイクル /bus@58000000/csi@58227000
[ 17.361147] /bus@58000000/csi@58227000: /bus@58000000/i2c@58226000/max9286_csi0@6a を用いた固定依存サイクル
mek_8q:/#
mek_8q:/#
mek_8q:/# dmesg | グレップ -i can
[ 6.341664] init: Init は「ro.boot.boot_devices」を「bus@5b000000/5b010000.mmc」に設定できません: 読み取り専用プロパティはすでに設定されています
[ 6.650631] apexd-ブートストラップ: /odm/apex のプリインストール ApexFiles をスキャン
[ 6.665082] apexd-ブートストラップ: /vendor/apex のプリインストール ApexFiles をスキャン
[ 6.734597] apexd-ブートストラップ: /product/apex のプリインストール ApexFiles をスキャン
[ 7.762352] CAN: コントローラエリアネットワークコア
[ 7.767572] NET: 登録 PF_CAN プロトコルファミリ
[ 7.778629] CAN: ブロードキャストマネージャプロトコル
[ 7.789732] CAN ドライバインターフェース
[ 7.798655] CAN: netlink ゲートウェイ - max_hops=1
[ 7.809873] CAN: RAW プロトコル
[ 8.206633] vdc: Thread プールの最大スレッド数は0です。linkToDeath を実装できないため、バインダーをキャッシュできません。サービス名:ヴォルド
[ 8.306877] vdc: Threadプールの最大Thread数は0です。linkToDeathを実装できないため、バインダーをキャッシュできません。サービス名:ヴォルド
[ 9.537245] SLCAN:シリアルラインCANインターフェースドライバ
[ 9.765447] vcan:仮想CANインターフェースドライバー
[ 9.871087] vdc: Threadプールの最大Thread数は0です。linkToDeathを実装できないため、バインダーをキャッシュできません。サービス名:ヴォルド
[ 10.127065] apexd: Threadプールの最大Thread数は0です。linkToDeathを実装できないため、バインダーをキャッシュできません。サービス名: vold
[ 10.140039] apexd: /odm/apex をスキャンして、プリインストールされている ApexFiles を検索しています
[ 10.165055] apexd: /vendor/apex をスキャンして、プリインストールされている ApexFiles を探しています
[ 10.190899] 高温アラームが解除されました。GPU3Dクロックは64/64に戻ります
[ 12.094764] vdc: Threadプールの最大スレッド数は0です。linkToDeathを実装できないため、バインダーをキャッシュできません。サービス名:ヴォルド
[ 12.980708] apexd-snapshotde: スレッドプールの最大スレッド数は0です。linkToDeathを実装できないため、バインダーをキャッシュできません。サービス名:ヴォルド
[ 14.174685] update_verifier: Threadプールの最大Thread数は0です。linkToDeathを実装できないため、バインダーをキャッシュできません。サービス名:android.hat
[ 27.936501] プラットフォーム fec2_nvcc: 遅延プローブ保留中: reg-fixed-voltage: can't get GPIO


mek_8q:/ # ls /sys/bus/i2c/devices/
1-0048 2-0020 2-0069 4-004c 7-001e i2c-1 i2c-3 i2c-6 i2c-9
10-006a 2-0044 3-001a 5-003d 8-001e i2c-10 i2c-4 i2c-7
2-0019 2-0051 4-0033 6-003d 9-004c i2c-2 i2c-5 i2c-8





Androidi.MX 8ファミリ | i.MX 8QuadMax (8QM) | 8QuadPlusRe: CAN Interface Availability and Integration in AAOS 15 on i.MX8QM-MEK

こんにちは、

カーネルにFLEXCANを追加する必要があります。Androidユーザーガイドの第9章「汎用カーネルイメージ(GKI)開発」を参照してください。

https://www.nxp.com/docs/en/user-guide/UG10176.pdf

また、Aコアでそれらを使用する場合は、SCFW内でリソースをそのコアに移動する必要があることにご注意ください。

テストも同様で、CANユーティリティを追加できます:
https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/All-Boards-FlexCAN/ta-p/1103092


よろしくお願いいたします。
アルド。

Tags (1)
No ratings
Version history
Last update:
‎06-18-2026 02:31 AM
Updated by: