W5500 Linux driver Test with Raspberry Pi(OS version: August 2020)

Rena Kim
6 min readSep 14, 2020

--

Raspberry Pi OS의 2020–08 릴리즈 버전에서 Linux kernel 버전이 5.4로 업데이트 된 것을 확인했다.

커널 버전이 업데이트 되면서 W5500의 device tree 설정도 업데이트 되어, 동작 테스트를 해보기로 했다.

W5500 device tree 설정은 raspberry pi linux kernel 4.19 버전에서도 업데이트가 적용 되어있다. (참조: https://github.com/raspberrypi/linux/pull/3278)

참고로 OS의 버전 별 릴리즈 노트는 아래 링크에서 확인할 수 있다.

준비

Material

  • Raspberry Pi 3 (2020–08 released OS 설치)
  • WIZ850io
  • Jumper cables

Raspberry Pi OS 설치

OS 설치 과정은 내용이 길어져서 따로 정리하였고, 아래 링크에서 참조할 수 있다.

WIZ850io 연결

WIZnet의 WIZ850io는 Hardwired TCP/IP가 내장된 이더넷 컨트롤러 칩인 W5500 기반으로, RJ45 커넥터를 포함한 compact 한 사이즈의 모듈 제품이다. 제품 상세 정보는 아래 링크에서 확인할 수 있다.

Raspberry Pi3 — WIZ850io pin 연결

점퍼 케이블을 사용하여 Raspberry Pi와 WIZ850io을 연결한다.

Pinmap은 다음 링크를 참조한다.

(BCM = GPIO)

RPI3-WIZ850io connection

W5500 Linux driver 사용

W5500 Device tree overlay 설정

W5500을 사용하기 위해 device tree overlay 설정을 추가해야 한다.

바이너리 파일은 OS에 이미 포함되어 있으므로 /boot/config.txt에 w5500 설정을 추가하면 된다.

overlay 설정 시 사용하는 이름은 .dtbo 파일의 이름을 따른다.

w5500.dtbo

boot 디렉토리 내 파일을 수정하려면 root 권한이 필요하므로 sudo 명령을 사용한다.

sudo vi /boot/config.txt

아래 라인 추가

dtoverlay=w5500

설정을 마쳤으면, Overlay 설정을 적용하기 위해 Reboot 한다.

$ sudo reboot

reboot을 하면 ssh 연결이 끊어지므로, 다시 putty를 실행하여 접속하도록 한다.

Device driver 모듈 활성화

modprobe 명령을 사용하여 W5500 ethernet device driver 모듈을 활성화 한다.

W5500 device driver는 아래 경로에서 참조할 수 있다.

sudo modprobe w5100

sudo modprobe w5100_spi

이제 ifconfig 명령으로 네트워크 인터페이스를 확인해 보면 eth1 인터페이스가 생성된 것을 볼 수 있다.

공유기에 DHCP server가 설정되어 있다면, 자동으로 IP를 할당받을 수도 있다.

eth1 네트워크 통신 확인

초기 heasless 설정에서 cmdline.txt에 고정IP를 설정했다면 제거한다.

W5500을 통해 생성된 eth1의 네트워크 동작을 확인하기 위해 Raspberry Pi 본체의 이더넷 케이블 연결을 해제하고, 네트워크 설정에서 eth0를 사용하지 않고 eth1만 고정 IP로 사용하도록 수정했다.

이전에는 sudo vi /etc/network/interfaces 파일을 수정했었지만, 최근 버전에서는 /etc/dhcpcd.conf 파일을 수정하도록 변경되었다.

파일을 열어 아래와 같이 네트워크 정보를 설정해 주었다.

sudo vi /etc/dhcpcd.conf

설정 정보를 적용해 주기 위해 reboot 한다.

sudo reboot

connect eth1 only

이제 Host PC에서 eth0, eth1로 각각 ping을 날려보면 다음과 같이 eth1(IP:192.168.50.91)로만 응답이 오는 걸 확인할 수 있다.

eth1로 SSH 접속

eth1을 통해 ssh로 접속해 본다.

여기까지, W5500 device driver를 사용해 일부 설정을 수정하여 eth1 네트워크 설정을 완료했다.

다음 글에서 dts 파일을 수정 및 적용해보고 통신 속도를 측정해 볼 예정이다.

Reference

--

--