RK3568 개발 보드에서 USBNET을 구현하는 방법은 무엇입니까? ——임베디드/USB 가젯/USB-NET/네트워크 페일링

이 기사에서는 Feiling 임베디드 OK3568-C 개발 보드를 사용하여 USBNET 모드를 구현하는 방법을 소개합니다.이를 수행하기 전에 USB Gadget이 무엇인지 알아야 합니다. USB Gadget은 USB 슬레이브 장치 모드에서 USB를 통해 개발된 전자 장치를 의미합니다. . 호스트에 연결합니다. 예를 들어 USB 케이블을 통해 휴대폰을 PC에 연결하면 휴대폰이 USB 가젯이 됩니다. 마찬가지로 이 기사에서는 휴대폰을 OK3568-C 개발 보드로 교체합니다.

가젯 프레임워크는 일련의 표준 API를 제안합니다. 맨 아래 수준에서는 USB 장치 컨트롤러(UDC) 드라이버가 이 API 세트를 구현합니다. 서로 다른 UDC(일반적으로 SoC의 일부)에는 서로 다른 드라이버가 필요하며 심지어 동일한 기반의 서로 다른 보드도 필요합니다. UDC 카드의 코드도 수정해야 합니다. USBNET을 구현하려면 드라이버도 필요하며 이름은 RNDIS입니다. RNDIS 드라이버는 커널에 존재하므로 구성 항목을 찾아 커널로 컴파일하기만 하면 됩니다.

먼저 소스 코드 커널 디렉토리를 입력하고 menuconfig 그래픽 구성 인터페이스를 입력하십시오.

menuconfig 진입 시 환경을 지정해 주어야 하며, 그렇지 않은 경우 직접 make menuconfig를 실행하여 X86 아키텍처의 그래픽 구성 인터페이스로 진입합니다. 아래와 같이 ARM 아키텍처에 대한 올바른 그래픽 구성 인터페이스가 입력되었습니다.

/를 눌러 검색 인터페이스로 들어갑니다.

rndis를 직접 검색하여 USB Gadget이라는 단어가 포함된 디렉터리를 찾으면 여러 경로가 있음을 알 수 있습니다. USB Gadget 디렉터리에 직접 들어가 보면 알 수 있습니다. 이것이 RNDIS를 구성하는 옵션입니다.

검색 후 최종 경로는 아래 그림과 같습니다.

아래 원에 표시된 대로 RNDIS 드라이버를 열고 일부 네트워크 프로토콜 구성을 선택합니다.

USB 가젯 사전 구성된 구성을 찾아 RNDIS를 커널로 컴파일합니다(모듈로 컴파일하기로 선택한 경우 커널만 컴파일하면 .ko 파일이 생성되지 않습니다. 지루한 장착 단계를 저장하기 위해 이 기사에서는 RNDIS를 다음으로 컴파일합니다. 커널).

구성이 완료되면 종료할 때까지 종료 버튼을 선택하고 "저장 여부"에 대해 예를 선택합니다.

소스 코드 디렉터리로 돌아가서 build.sh 스크립트를 입력합니다. defconfig 명령을 주석 처리하여 .config 파일을 생성하여 menuconfig 구성을 적용합니다. 주석 위치는 다음과 같습니다.

저장하고 종료한 후 커널을 별도로 컴파일하고 소스 디렉터리에서 ./build.sh 커널을 실행합니다. 컴파일이 완료되면 boot.img 파일이 커널 디렉터리에 생성됩니다.

단일 단계 이미지 업데이트는 Rockchip - RKDevTool 에서 제공하는 공식 프로그래밍 도구를 사용합니다 . 복구 버튼을 누른 채 프로그래밍 도구에 로더 장치가 발견되었다고 표시될 때까지 재설정을 누른 다음 복구 버튼을 놓습니다.

그림의 위치를 ​​바꾸고 장치 파티션 테이블을 클릭한 후 실행을 클릭합니다 장치가 다시 시작되면 굽기가 완료되고 오른쪽에 굽기 진행 상황이 표시됩니다. 개발 보드가 다시 시작된 후 ifconfig -a를 보면 usb0 노드가 생성된 것을 확인할 수 있습니다.

Linux USB Gadget 장치 드라이버를 사용하면 몇 가지 흥미로운 기능을 얻을 수 있습니다.

1. 임베디드 제품의 특정 저장 장치 또는 저장 장치의 특정 파티션을 PC에서 USB 플래시 드라이브로 인식할 수 있습니다.
2. 임베디드 장치가 USB를 통해 PC에 연결되면 PC에 새로운 네트워크 연결이 나타납니다. 임베디드 장치에도 네트워크 카드 장치가 있습니다. IP 주소를 구성하고 일반적으로 알려진 네트워크 통신을 수행할 수 있습니다. USBNET으로.

이번에는 USB3.0 인터페이스를 사용하므로 Type-C 5V ~ 3.3V Type-A를 감지하고 활성화해야 하며 p40의 pin1을 c23의 양극에 연결하도록 하드웨어가 변경됩니다. 코드 방송 스위치를 ON으로 켜고 이중 수 USB 케이블을 삽입합니다.

USB 출력을 장치로 강제 실행

echo peripheral > /sys/devices/platform/fe8a0000.usb2-phy/otg_mode

인쇄된 정보는 그림과 같습니다.

장치 관리자 네트워크 어댑터에서 이 노드를 볼 수 있으며 IP를 구성할 수 있습니다.

네트워크 연결을 확인하면 식별되지 않은 네트워크를 볼 수 있습니다. 이 IP를 구성합니다. OK3568-C 개발 보드에 구성된 IP와 동일한 네트워크 세그먼트에 있어야 합니다.

OK3568-C 개발 보드를 사용하여 지금 컴퓨터에 구성된 IP로 ping을 수행하고 ping이 성공할 수 있는지 확인합니다.

위의 정보에서 OK3568-C 개발 보드가 USBNET 기능을 구현하고 네트워크 공유를 달성했음을 알 수 있습니다.

Supongo que te gusta

Origin blog.csdn.net/m0_46665078/article/details/132903994
Recomendado
Clasificación