ユーザーレベルアプリケーションは、ハードウェアと対話できません。システムコール(ioctl、オープン、読み書きなど)とSysfs(sysfsは仮想ファイルシステム)によって通信できます。
1: - あなたのデバイスはhwmomデバイスです。あなたのドライバは "tmp102"です。ドライバこれらの3つを公開してください。ユーザレベルアプリケーションのsysfsエントリ。temp1_input,temp1_max_hystおよびtemp1_max
SENSOR_DEVICE_ATTR(temp1_input, S_IRUGO, tmp102_show_temp, NULL , 0);
SENSOR_DEVICE_ATTR(temp1_max_hyst, S_IWUSR | S_IRUGO, tmp102_show_temp, tmp102_set_temp, 1);
SENSOR_DEVICE_ATTR(temp1_max, S_IWUSR | S_IRUGO, tmp102_show_temp,
tmp102_set_temp, 2);
あなたは/ SYS /クラス/ hwmom/TMP102/temp1_inputのsysfsファイルを読み込むことができます。 これらの2つのsysfsファイル/ sys/class/hwmom/tmp102/temp1_max_hystとsys/class/hwmom/tmp102/temp1_maxを読み書きできます。
2: -/devのファイルは、実行時にUDEVが作成する実際のデバイスファイルです。デバイスファイルは、通常のファイルのようにファイルシステムに表示されるデバイスドライバのインターフェイスです。ドライバが他のデバイスファイルを公開しています。 thermal_zone_of_sensor_register(hwmon_dev、0、hwmon_dev、& tmp102_of_thermal_ops)。/dev/hwmom_devノードがあります。
ユーザレベルのアプリケーションは、i2cデバイスまたはハードウェアのいずれも直接通信できません。 Linuxカーネルには制限があります。アプリケーションは、いずれかのデバイスを制御するためのインタフェースとしてドライバを必要とします。
は、/ sys/class/hwmon/hwmonX/tempX_inputからデータを読み取ることは、i2cバスを読み取るのに比べて理想的です。 – Patrick
デバイスドライバ - >ハードウェアモニタリングサポート - > tmp102をカーネルで有効にしましたが、/sys/class/hwmonの下に作成されたファイル。しかし、ここに/ sys/bus/i2c/drivers/tmp102というファイルがいくつか作成されています – Patrick
おそらく、必要なものすべてを有効にしていないかもしれません。イベントに基づいてドライバを読み込むためのメカニズムを提供するudevについて忘れないでください。いつもそうはないと思います(古い、つまり非ACPIの非DTプラットフォームでは、組み込みコード、または手動で)。 – 0andriy