이런 시나리오에 직면한 것은 이번이 처음이었고 그것이 가능한지 몰랐습니다. 올바른 키워드를 사용하지 않았기 때문에 검색에 실패했습니다.
임베디드 Linux 보드에서는 이더넷 컨트롤러가KSZ9031RNX. 사용자 공간에서 내부 레지스터에 쓸 수 있습니까?
3.8 10/100Mbps 속도만 해당
일부 애플리케이션에서는 링크 속도가 10/100Mbps로 제한되어야 합니다. 전원을 켜거나 재설정한 후 다음 레지스터 설정을 프로그래밍하기만 하면 KSZ9031RNX는 자동 협상 및 링크 속도를 최대 10/100Mbps로 제한할 수 있습니다.
- 1000Mbps 속도를 제거하려면 레지스터 0h Bit[6] = '0'을 설정합니다.
- 1000Mbps 전이중/반이중에 대한 자동 협상 알림을 제거하려면 레지스터 9h Bits[9:8] = '00'을 설정합니다.
- 자동 협상을 강제로 다시 시작하려면 레지스터 0h, Bit[9](자체 지우기 비트)에 '1'을 씁니다.
명령줄에서 이 레지스터에 쓸 수 있습니까?
답변1
이는 불가능할 수도 있고, 그래서도 안 됩니다. 하드웨어를 작동하는 것은 운전자의 임무입니다.
ethtool
Linux에는 속도 및 자동 협상을 포함하여 이더넷 인터페이스의 매개변수에 대한 다양한 작업을 수행할 수 있는 명령이 있습니다 . 장치 드라이버가 합리적으로 잘 작성되었다면 이러한 작업을 지원해야 합니다.
다만, 저는 귀하와 유사한 상황을 직접 경험한 바가 없어 자세한 설명을 드릴 수는 없습니다. 귀하의 필요에 맞을 때까지 약간의 실험을 거쳐야 합니다.