다른 tty에서 작업할 때 ChromeOS가 공백으로 표시되지 않도록 방지

다른 tty에서 작업할 때 ChromeOS가 공백으로 표시되지 않도록 방지

저는 chroot에서 Archlinux를 실행하고 있으며 Chromebook에서 Chrome OS를 실행하고 있습니다. 원래 프로젝트는거기, 내 포크는여기(대부분 유사).

문제는 Chrome OS의 디스플레이 전원 관리가 Chrome OS X의 터치패드와 tty1의 키보드 입력만 고려하여 화면 블랭킹 카운트다운을 재설정한다는 것입니다. 따라서 chroot, tty3(콘솔) 또는 tty4(Arch 자체 X 서버)에서 작업하는 경우 유휴 상태인지 활성 상태인지에 관계없이 5분 후에 백라이트가 꺼집니다. 그런 다음 tty1로 돌아가서 일부 입력을 등록하고 전원을 켜서 백라이트를 다시 활성화해야 합니다.

Chrome OS에서 powerd를 비활성화하거나 기본 시간 초과(원저자 또는 chroot 설정 스크립트가 수행한 작업)를 연장하고 싶지 않습니다. 몇 분 동안 활동이 없으면 화면 백라이트가 꺼지고 chroot 환경이나 Chrome OS에서 활성 상태로 유지되기를 원합니다. 또한 Chrome OS는 자주 업데이트되므로 수정을 최소화하고 chroot 재설치 스크립트를 단순하게 유지하고 싶습니다.

그래서 내 생각은 여러 데몬을 작성하는 것입니다. 데몬 A는 chroot에서 실행되며 Arch에 키보드 또는 마우스 입력이 있는지 감지합니다. Chrome OS에서 실행되는 데몬 C는 데몬 A의 출력을 검사하고 화면 공백 및 절전 카운터를 재설정하기 위해 가장 적절한 조치를 취합니다.

그러나 chroot의 사용자 활동이 일부 /dev 노드를 읽고 있음을 확인할 수 있는 경우 데몬 A는 필요하지 않습니다.일부 /dev 파일을 읽거나 다른 방법으로 chroot(/dev/tty3 및 /dev/tty4)에서 마지막으로 활성화된 사용자의 나이를 추론할 수 있습니까?아니요chroot?

둘째, 이와 같은 명령은 setterm -blank pokechroot 내에서 작동하는 것처럼 보이므로 데몬 A가 자체적으로 화면 공백 카운트다운을 재설정할 수 있다면 데몬 C는 필요하지 않을 수 있습니다. 두 번째 질문은 다음과 같습니다.일부 /dev 파일을 읽거나 다른 방법으로 chroot(/dev/tty3 및 /dev/tty4)에서 마지막 사용자 활동의 나이를 추론할 수 있습니까?이내에chroot?

카운터를 재설정하려면 데몬 A와 C가 모두 존재하고 통신해야 한다고 생각하는 경우:현대 IPC는 GNU/Linux에서 실제로 어떻게 구현됩니까? 시스템 V? POSIX? /proc 파일 읽기 및 쓰기? 내 상황에 가장 적합한 것은 무엇입니까?

마침내,setterm -blank poke백라이트를 켜두기 위해 감시 프로그램이 사용해야 하는 다른 것을 알고 있습니까 ?

질문이 길어서 죄송합니다. 전체 내용을 읽지 않으셨으면 좋겠습니다 :)

답변1

(잠재적으로) 전원 데몬과 대화하는 방법에 대한 몇 가지 지침입니다.

보세요크롬 OS 원천(Chrome OS와 얼마나 다른지는 잘 모르겠습니다)유래power_manager이는 도움이 될 수 있습니다:

README다음을 포함하여 사람들이 그곳에서 무엇을 찾을 수 있는지 설명합니다.

  • powerd( powerd.cc) 상위 수준의 전원 관리자. 사용자가 유휴 상태이고 전원이 켜져 있는지 여부에 따라 장치 상태를 조정합니다.창 관리자의 비디오 활동 표시기. 이 데몬은 사용자 유휴 상태에 따라 백라이트를 어둡게 하거나 화면을 끄고, 사용자 입력 및 주변 조명 조건에 따라 백라이트 강도를 조정하는 역할을 합니다. 데몬은 플러그 상태(AC 또는 배터리)와 배터리 충전 상태도 모니터링합니다.
  • xidle-example( examples/xidle_example.cc) 사용자가 한가하고 유휴 상태일 때 콘솔 알림을 인쇄합니다.

그래서 아마도 당신이 개입할 수 있을 것입니다 XIdle.xidle_example.cc도움이 될 수도 있습니다.

또 다른 유용할 수 있는 점은RootPowerManager.conf어느 쪽인지 말해봐D 버스수신 대기하는 주소, org.chromium.RootPowerManager...아마도 거기에서 뭔가를 찾아볼 수 있을 것입니다. 저는 아직 어떤 인터페이스 사양도 찾지 못했습니다(하지만 D-Bus가 알려드릴 수 있을 것입니다).

(grep idle도움이 될 수도 있습니다. 알 수 있게 되었어요activity_detector_interface.h, 이것이 D-Bus 내보내기인 경우 이를 사용하여 Arch 시스템이 활동 등을 감지할 때 Chrome OS의 활동 감지를 비활성화할 수 있습니다. )

관련 정보