2017-12-01 33 views
0

lm75 커널 모듈을 사용하여 맞춤형 보드의 센서와 상호 작용합니다. 모든 일이 잘 작동, 나는/sys/bus/i2c/devices/5-0048에 마운트 된 장치가 있습니다. 하지만 사용자가 최대 온도 히스테리시스를 설정하도록하고 싶습니다. 즉, 사용자가 temp_max_hyst 파일에 쓸 수 있도록하십시오. 이 파일에 대한 권한은 루트를 제외하고는 읽기 전용입니다.lm75 커널 모듈이 사용자 공간에서 사용 가능

제 질문은/dev에 장치를 마운트 할 수있는 방법이 있습니까?

+0

커널 구성에서 I2C dev을 활성화해야합니다. 장치는 버스 당 하나씩 나타납니다. 그러나 이것은 권장 해결책이 아니며 커널 드라이버와 * hwmon * 또는 * IIO *와 같은 적절한 인터페이스를 사용하는 것이 좋습니다. – 0andriy

답변

0

설치은 올바른 용어가 아니므로 여기를 찾는 것이 없습니다. 파일 시스템이있는 장치를 차단하려면 에 마운트하고 마운트 지점이됩니다.

여기서 장치 5-0048은 드라이버 lm75에 인 입니다. 장치 트리 또는 보드 정보에 lm75 드라이버가 있는지 여부에 관계없이 장치가 있다고 가정합니다. lm75 드라이버가 장치에 바인드되면 장치는 hwmon 클래스의 새 장치를 작성합니다. 그것은 당신이에 관심이 있음을, temp_max_hyst처럼 속성을 가지고 해당 장치이다.

당신은/dev에 장치 노드로 알려져 있습니다 표시되는 내용. 한 번 드라이버에 바인딩 된 많은 장치가 장치와 상호 작용하도록 장치 노드를 만들지 만 이러한 일은 발생하지 않습니다. /sys/class/regulator 또는 /sys/class/net에 표시되는 기기 중 /dev에 연결된 노드가없는 기기가 많이 있습니다.

lm75와 같은 hwmon 유형의 드라이버는 일반적으로 char 장치를 제공하거나 장치 사용자 공간 인터페이스를 하드웨어에 제공 할 장치 노드를 만들지 않습니다. 따라서이 장치에는 dev에 아무 것도 나타나지 않습니다. hwmon 장치의 속성은 모두 얻을 수 있습니다.

그러나 문제는 간단한 해결책이 있습니다. 루트로 chmod a+w temp_max_hyst 또는 chown user_account temp_max_hyst 또는 (아마도 가장 좋음) chmod g+w temp_max_hyst ; chgrp hw_access_group temp_max_hyst 사용자를 그룹 hw_access_group에 추가하십시오. 당신은 기존 그룹을 사용할 수 있습니다. wheel 또는 adm이 이런 식으로 사용될 것입니다, 아니면 hwmon 액세스를 위해서만 사용될 것입니다.

물론 이것은 sysfs가 디스크의 실제 파일 시스템이 아니기 때문에 다시 부팅 할 때까지 유지되지 않습니다. 변경 사항을 영구히 유지하려면 가장 좋은 방법은 hwmon 장치를 감지 할 때 chmod/chown에 자동으로 영향을주는 udev 규칙을 만드는 것입니다. 여기에 관심있는 hwmon 장치는 i2c 장치가 아닙니다. udevadm info -a /sys/class/hwmon/hwmon0을 실행 해보십시오.

+0

매우 자세한 설명을 해주셔서 감사합니다. 그것은 많은 도움이되었습니다, 당신은 많은 것들을 명확히했습니다! – clamb