
USB 유형 C가 함께 연결된 노트북과 보조 배터리(또는 노트북 두 대)가 있다고 가정해 보겠습니다. 그러면 어느 것이 충전되는지 어떻게 결정됩니까?
운전자가 제어하나요? Linux 커널은 이러한 제어를 지원합니까?
업데이트:
이 패치 세트(현재 v14)가 표시되지만 아직 메인라인에는 없습니다.
https://lwn.net/Articles/710741/
그러나 UCSI라는 것이 이미 4.10에 있습니다.
http://lxr.free-electrons.com/source/drivers/usb/misc/Kconfig
270 config UCSI
271 tristate "USB Type-C Connector System Software Interface driver"
272 depends on ACPI
273 help
274 UCSI driver is meant to be used as a convenience tool for desktop and
275 server systems that are not equipped to handle USB in device mode. It
276 will always select USB host role for the USB Type-C ports on systems
277 that provide UCSI interface.
그러면 이 문제에 대한 Linux 커널 드라이버가 4.10 현재 진행 중이라고 말하는 것이 맞습니까?
답변1
Linux에서는 적절한 sysfs 제어에 "source" 또는 "sink"를 작성하여 특정 포트의 전원 방향을 제어할 수 있습니다. 예:
# echo source >/sys/class/typec/port0/power_role
# cat /sys/class/typec/port0/power_role
[source] sink
괄호 안의 용어는 현재 전력이 어떻게 흐르는지를 나타냅니다. 커널 문서를 참조하세요.https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-typec
물론 이 모든 기능은 USB Type-C 포트에 연결된 장치가 Power Delivery를 지원하는 경우에만 작동합니다. 따라서 2019년 현재 PD를 거의 지원하지 않는 일반적인 Type-C 전원 어댑터 또는 대부분의 Type-C 휴대용 배터리에서는 작동하지 않습니다.
답변2
USB Type C를 함께 연결하면 어떤 충전을 어떻게 결정하나요?
이것은 지금까지 이해할 수 없을 정도로 복잡합니다. Type-C 커넥터는 두 가지 역할을 수행합니다.
- 데이터 통신
- 전력 공급.
이는 거의 독립적인 기능입니다. 전체 기능은 다음 여부에 따라 달라집니다.
- 두 포트 모두 USB 호스트입니다.
- 두 포트 모두 USB 장치입니다.
- 한 포트는 이중 역할 데이터이고 다른 포트는 그렇지 않습니다.
- 하나의 포트는 이중 역할 전원입니다.
...
N. 두 포트 모두 DRD와 DRP입니다.
여기서 모든 순열을 잃었습니다. UCSI는 이러한 광범위한 호환성을 API 표준으로 길들이려는 Microsoft의 시도입니다. 주요 아이디어는 다음을 참조하세요.프레젠테이션, "UCSI 인터페이스"에 대한 더 많은 출판물.
답변3
위에서 Marc가 답변한 것처럼 PD 방향은 를 통해 제어할 수 있습니다. /sys/class/typec/port*/power_role
그러나 Thinkpad Yoga 6에서와 같이 작동하지 않는 경우에는 다음과 같습니다.
sudo bash -c 'echo sink > /sys/class/typec/port1/power_role'
bash: line 1: echo: write error: Invalid argument
그런 다음 언급한 대로 보조 배터리를 빠르게 다시 연결하여 "하드웨어" 방법을 시도해 볼 수 있습니다.이 답변.
처음에는 저도 회의적이었지만 놀랍게도 효과가 있었습니다! 약간의 연습이 필요했습니다. 플러그를 뽑았다가 빠르게 다시 연결해야 하지만 너무 빠르지는 않습니다. 제 경우에는 Romoss PPD20 보조 배터리를 사용하고 있으며 충전 표시등이 깜박임을 멈출 때까지 약 0.5초 동안 플러그를 뽑아야 합니다.