2026년 4월 1일 수요일

[Fluid Ardule] 라즈베리파이 3B에서 USB DAC가 열심히 일할 때 LAN 작동이 멈춘다

DIY란 원래 고난의 연속이다. 비용을 더 들이지 않기 위해 현재의 조건에서 어떻게 해서든 문제를 풀어 보려고 애를 쓰지만, 결국 지금 쓰는 것보다 상위 기종의 물건(예: 라즈베리파이 3B -> 4B)을 구입하는 것보다 더 많은 것을 정신적으로, 그리고 시간적으로 지불하고 있는지도 모른다.  

문제의 시작은 이렇다. 

라즈베리파이의 부팅 시간을 줄이기 위해 자동으로 시작하는 서비스를 대폭 줄이고 개발을 위한 네트워크 연결도 오직 유선 LAN으로만 하도록 만들어 놓았다. 코딩 작업을 하는 노트북 컴퓨터도 평소에는 유선으로 연결하여 쓰기 때문이다. 그래서 Wi-Fi 연결이 아예 되지 않도록 /boot/firmware/config.txt 파일에 'dtoverlay=disable-wifi'까지 삽입한 상태였다.

그런데 오디오 출력을 위하여 Mackie Onyx Producer 2-2를 연결한 뒤 FluidSynth를 실행하여 조금만 작업을 하다 보면 여지없이 SSH 접속이 끊겼다. 이런 상태에서도 건반을 통한 FluidSynth 연주는 가능한 상태라서 시스템이 완전미 멈추는 것은 아니다. 그러나 IP 주소를 자동으로 다시 할당받아서 SSH 접속이 되기까지 상당한 시간을 기다려야 하니 이만저만 불편한 것이 아니다. rsyslog조차 설치되지 않아서 /var/log/syslog이 없는 상태였기에 문제의 원인을 파악하기가 힘들었다. 

이런 불안정한 상태로 며칠을 보내다가 드디어 syslog 파일에서 단서를 찾았다.

2026-03-31T21:46:40.082929+09:00 Fluidule systemd[1]: Stopped fluid_ardule.service - FluidArdule Main Service. 
2026-03-31T22:00:35.678924+09:00 Fluidule dhcpcd[562]: eth0: carrier lost 
2026-03-31T22:00:35.686337+09:00 Fluidule kernel: smsc95xx 1-1.1:1.0 eth0: Link is Down 
2026-03-31T22:00:35.736808+09:00 Fluidule dhcpcd[562]: eth0: deleting address fe80::6e6e:e891:4b4:14a9

'smsc95xx 1-1.1:1.0 eth0: Link is Down'이라는 메시지에 주목해 보자. smsc95xx는 USB 기반 Ethernet 컨트롤러이다. 하나의 컨트롤러가 LAN과 USB를 동시에 제어하는데, 만약 USB쪽에서 문제가 발생하면 LAN 연결도 끊어지게 된다는 것이다. 이는 라즈베이파이 3B의 설계 구조 한계라고 한다. ChatGPT에게 물어보았다.

🌐 인터넷 사례 많냐?

👉 네, 꽤 많습니다. 특히 다음 키워드로 흔합니다:

  • “raspberry pi 3 usb ethernet disconnect”
  • “pi 3 usb instability”
  • “smsc95xx link down”
  • “urb status -32 raspberry pi”

👉 포럼/깃허브/StackOverflow에 반복적으로 등장

SSH 접속이 끊어지기 직전의 로그에서는 '2026-03-31T21:00:45.230089+09:00 Fluidule kernel: usb 1-1.4: urb status -32'라는 기록이 남았다. 'urb status -32'는 USB 전송 실패를 뜻한다. 종합하자면 USB 버스에서 먼저 문제가 생긴 뒤 그 여파로 LAN까지 끊어지는 흐름과 일치한다.

이 문제를 극복하고자 방향을 바꾸기로 했다. 

유선 LAN은 쓰지 않고, 다시 Wi-Fi로 Fluid Ardule(라즈베리파이)을 연결하였다. Mackie Onyx는 유전원 USB 허브로 연결하니 SSH 접속이 끊어지는 일은 발생하지 않았다. 마지막으로  USB  건반은 라즈베리파이에 직접 연결하지 않고, 이전에 만들어 둔 USB MIDI host를 거쳐서 이를 MIDI 케이블로 Mackie Onyx에 연결하였다. 이렇게 하니 훨씬 안정적으로 작동하였다. 지난 1월에 쓴 USB MIDI host 제작기는 여기('옆길로 샌 Ardule Project - USB MIDI host to DIN MIDI converter 만들기는 좌절과 극복의 연속이었다')에 있다. 이 물건을 Fluid Ardule 생태계에 넣으려면 아두이노 우노를 하나 더 사야 한다! 이번 일을 통해 전통적인 MIDI의 단순함과 견고함을 확실히 알게 되었다. 

만약 일찌감치 라즈베리파이 4B를 사는 것으로 문제를 해결했다면 훨씬 편했을 수는 있다. 그러나 고생 속에서 얻을 수 있었던 값진 경험을 놓쳤을 수도 있다. 그리고 덤으로, 여전히 굳건히 생태계를 지키고 있는 전통 MIDI의 의미까지도.

실은 건반을 쳤을 때 마치 서스테인 페달을 계속 누르고 있는 것처럼 note off 신호가 전달되지 않는 현상이 지속적으로 발생하여 골머리를 앓는 중이었다. USB를 안정화한 다음에는 훨씬 줄기는 했으나 아직 해결해야 할 숙제로 남았다.