2017-07-20 1 views
0

私はLSM330加速度計/ジャイロスコープモジュールをi.MX6ボードに接続しようとしています。/dev/iio:deviceXのLSM330からデータを読み取るには?

&i2c1 { 
    clock-frequency = <100000>; 
    pinctrl-names = "default"; 
    pinctrl-0 = <&pinctrl_i2c1_2>; 
    status = "okay"; 

    /* LSM330 motion detector (accelerometer) */ 
    lsm330_accel: [email protected] { 
     compatible = "st,lsm330-accel"; 
     st,drdy-int-pin = <1>; 
     reg = <0x1e>; 
    }; 

    /* LSM330 motion detector (gyroscope) */ 
    lsm330_gyro: [email protected] { 
     compatible = "st,lsm330-gyro"; 
     st,drdy-int-pin = <2>; 
     reg = <0x6a>; 
    }; 
}; 

モジュールは、加速度計のための/dev/iio:device0とジャイロスコープのための/dev/iio:device1として表示:モジュールがI2Cバスに接続され、デバイスツリーのファイルの関連部分は以下の通りです。また、/sys/bus/iio/devices/iio:device0/sys/bus/iio/devices/iio:device1と表示されます。私はcat in_accel_x_rawなどを経由してセンサーの読み取り値を取得することができます。しかし、cat /dev/iio:device0を実行すると直ちに出力し、出力を生成しません。

インターネットを中心に検索した後、私はまた、コマンドを試してみました:

cd /sys/bus/iio/devices/iio_sysfs_trigger 
echo 0 > add_trigger 
cd /sys/bus/iio/devices/iio:device0 
echo 1 > scan_elements/in_accel_x_en 
echo 1 > scan_elements/in_accel_y_en 
echo 1 > scan_elements/in_accel_z_en 
echo 1 > scan_elements/in_timestamp_en 
echo sysfstrig0 > trigger/current_trigger 
echo 100 > buffer/length 
echo 1 > buffer/enable 
echo 1 > /sys/bus/iio/devices/trigger0/trigger_now 

これは、チャンネルを設定し、バッファを有効にして、バッファにいくつかの測定値を取得する必要があります。私が知る限り、cat /dev/iio:device0はバッファを表示する必要がありますが、それは私にDevice or resource busyを与えています。 cat /sys/bus/iio/devices/iio:device0/in_accel_x_rawのカーネルからの読み込みはもはや機能しなくなり、同じエラーメッセージが表示されます。

私はLinuxカーネルの新機能です。私の目標はセンサーデータをAndroidシステムに公開して、ユーザーが画面を回転できるようにすることです。モジュールからセンサーの読み取り値を取得するにはどうすればよいですか?

答えて

0

Androidのlogcatを見ると、Android HALにsysfsのディレクトリを読み書きする権限がないことが分かります。 Androidがセンサーデータにアクセスできるように、chmodコマンドをinit.rcファイルに入れてしまいました。

# Change permissions for the LSM330 sysfs entries (accelerometer) 
chmod 0666 /sys/bus/iio/devices/iio\:device0/sampling_frequency 
chmod 0666 /sys/bus/iio/devices/iio\:device0/buffer/enable 
chmod 0666 /sys/bus/iio/devices/iio\:device0/buffer/length 
chmod 0666 /sys/bus/iio/devices/iio\:device0/trigger/current_trigger 
chmod 0666 /sys/bus/iio/devices/iio\:device0/scan_elements/in_accel_x_en 
chmod 0666 /sys/bus/iio/devices/iio\:device0/scan_elements/in_accel_y_en 
chmod 0666 /sys/bus/iio/devices/iio\:device0/scan_elements/in_accel_z_en 
chmod 0666 /sys/bus/iio/devices/iio\:device0/scan_elements/in_timestamp_en 
chmod 0666 /dev/iio\:device0 

これは誰かを助けることを望みます。

関連する問題