/sys/class/power_supply/BAT0을 생성하려면 어떤 하드웨어가 필요합니까?

/sys/class/power_supply/BAT0을 생성하려면 어떤 하드웨어가 필요합니까?

내 노트북은 Arch를 실행하며 거기에서 내 노트북 ​​배터리에 대한 배터리 정보를 찾을 수 있습니다 /sys/class/power_supply/BAT0. 제가 아는 한, 이 정보를 제공하기 위해 설치된 것이 없습니다. 배터리로 구동되는 Jetson AGX Xavier에 대해서도 동일한 정보를 얻고 싶지만 최대 에너지, 백분율 등은 모릅니다. 이 데이터를 수집하려면 더 많은 하드웨어가 필요할 것으로 생각됩니다. 어떻게 생겼으며 직접 구현할 수 있나요?

답변1

그건시스템 파일 시스템, 커널이 콘텐츠를 내보내는 데 사용하는 의사 또는 합성 파일 시스템입니다. /proc커널 및 해당 모듈과 상호 작용하는 기존 방식과 마찬가지로 *nix 방식으로 시스템과 상호 작용합니다 .

$ mount | grep sysfs
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)

여기에서 더 많은 내용을 읽을 수 있습니다.procfs와 sysfs의 차이점은 무엇입니까?

배터리 정보와 관련하여 특정 펌웨어와 통신할 수 있는 커널 모듈이 필요합니다. 예를 들어, 내 Debian 시스템은 thinkpad_acpi다음과 같은 작업을 수행하기 위해 커널 모듈을 로드합니다. 글에 대해서는 너무 많이 말할 수 없습니다. 내가 읽은 바에 따르면 일부 펌웨어는 SMBus/I2C와 같은 일부 버스 장치를 통해 키보드나 마우스로도 OS와 통신할 수 있습니다. 예전에는 LM75A온도센서를 메모리 DIMM의 SMBus 라인에 직접 납땜하고 lm-sensors커널 모듈이나 어딘가에서 설정을 조정한 뒤 I2C 소프트웨어를 사용해 읽어내곤 했습니다 /proc/bus/....

그런데. 제가 지적하고 싶은 것은TLP 프로젝트보고 및 전원 관리와 관련된 기타 많은 작업이 tlp-stat --battery용이 해질 수 있습니다 ./sys/class/power_supply/

하지만 먼저 "장치 드라이버"가 필요합니다. 커널 C 코딩에 익숙하다면 시도해 볼 수 있습니다. 어쨌든 펌웨어를 작성하고 하드웨어를 직접 구축하게 되므로 적어도 미스터리는 없습니다. Jetson에 대해서는 잘 모르지만 Linux 공간에는 이미 다른 유사한 홈브루 프로젝트가 있다고 생각합니다. 어쩌면 라즈베리파이용일까요?


저는 ARM의 ACPI에 관한 2013년과 2017년의 일부 게시물을 읽고 있으며 다음을 추가하고 싶었습니다.

이러한 ACPI/UEFI는 표면적으로 x86/BIOS 세계를 위한 사물이자 추상적인 표준 기반 afaic이지만 SoC/ARM 세계 자체에는 실제로 적용되지 않습니다. 공급업체 펌웨어 "블롭"이 "오픈 소스 작업"에 어떻게 적용되는지에 대한 질문도 있습니다. 하지만 아니요, "ACPIA"(ARM용 ACPI?)가 있는 것 같지만 Raspberry용 ACPI는 본 적이 없습니다.

https://lwn.net/Articles/574439/ https://forums.raspberrypi.com/viewtopic.php?t=180001

관련 정보