MYIR-YA157C 보드 개발 환경 세팅
MYD-YA157C 보드로 전기차 충전기 개발 환경 구축기
MYD-YA157C 보드 네트워크/주변장치 테스트 기록
Qt 개발 환경 구축 이후, 보드의 UART 콘솔 연결, 네트워크 인터페이스(유선/WiFi), 그리고 듀얼 WiFi 모듈 테스트 과정에서 겪은 문제와 해결 과정을 정리한다.
1. USB-TTL 시리얼 콘솔 연결
디버그 콘솔용으로 USB-TTL 어댑터를 연결할 때 헷갈렸던 부분 정리.
연결 원칙 (색상보다 중요한 것)
| USB-TTL 어댑터 | 보드 |
|---|---|
| TXD (송신) | RXD |
| RXD (수신) | TXD |
| GND | GND |
| VCC | 연결 안 함 (보드가 별도 전원 공급받는 경우) |
핵심은 TX/RX 교차 연결. TX-TX, RX-RX로 그대로 연결하면 통신 자체가 안 된다.
흔한 색상 규칙 (100% 표준은 아니지만 대부분의 저가형 PL2303/CP2102 케이블에 적용됨):
- 빨강 = VCC
- 검정 = GND
- 초록 = TXD
- 흰색 = RXD
연결 후 아무 반응 없으면 TX/RX가 반대로 연결됐을 가능성이 높으므로 서로 바꿔서 재시도.
터미널 설정: 115200 baud, 8N1 (보드 디바이스트리에 stdout-path = "serial0:115200n8"로 명시되어 있음)
2. 네트워크 인터페이스 이해하기
ip link show / ip addr show로 확인한 인터페이스 구성:
lo - 루프백 (항상 UP, 정상)
can0 - CAN 버스 (충전기 통신 프로토콜용, 기본 DOWN 상태)
eth0 - 유선 이더넷 (NO-CARRIER = 케이블 미연결 또는 링크 없음)
wlan0 - 온보드 WiFi (NO-CARRIER/DORMANT = 아직 AP 미연결)
NO-CARRIER의 의미: 인터페이스는 활성화(UP)되어 있지만 물리적 링크가 없는 상태. 고장이 아니라 “아직 아무것도 연결 안 한” 정상 상태다.
두 개 이상의 인터페이스가 있을 때: 각각 독립적으로 동작한다. 트래픽이 겹치는 경우엔 라우팅 테이블의 metric이 낮은 인터페이스가 우선된다.
ip route show # 우선순위 확인
ping -I eth0 8.8.8.8 # 특정 인터페이스로 강제 통신
CAN 인터페이스 활성화(충전기 통신 프로토콜 사용 시):
ip link set can0 type can bitrate 500000
ip link set can0 up
3. WiFi 연결
연결 시도 및 권한 에러
nmcli device wifi connect "SSID" password "비밀번호"
→ Error: Failed to add/activate new connection: Not authorized to control networking.
원인: 일반 사용자 계정(myir)으로 nmcli 실행 시 NetworkManager의 polkit 인증을 통과하지 못함. 임베디드 이미지는 polkit 정책이 제대로 안 잡혀있는 경우가 많아 root가 아니면 이렇게 거부된다.
해결: root 권한으로 실행
sudo nmcli device wifi connect "SSID" password "비밀번호"
# 또는
su - # root로 전환 후 재시도
4. 온보드 WiFi + USB WiFi 동글 동시 테스트
목표: 온보드 WiFi(Broadcom)와 별도 USB WiFi 동글, 두 개를 동시에 테스트
구분 방법
ethtool -i wlan0 # driver: 항목으로 어떤 칩인지 확인
USB 장치 인식 확인 (lsusb 명령이 이미지에 없어서 대체 방법 사용)
dmesg | tail -30
ls /sys/bus/usb/devices/
4.1 dmesg 로그 분석으로 밝혀진 사실
- 온보드 WiFi: Broadcom BCM43430/1 (SDIO 연결) →
wlan0으로 정상 인식,wlan0: link becomes ready로그로 정상 동작 확인 - USB WiFi 동글: 재연결 로그(
usb 2-1: USB disconnect... new high-speed USB device) 직후Bluetooth: hci1: RTL8723B관련 메시지만 뜨고, WiFi 관련 인터페이스(wlan1)는 전혀 생성되지 않음 - 블루투스 쪽도
rtl_bt/rtl8723b_fw.bin not found로 펌웨어 누락 실패
결론: USB 동글은 Realtek RTL8723B(U) 콤보 칩(WiFi+BT)인데, 커널이 USB 장치 자체는 인식했지만 WiFi용 드라이버가 로드되지 않아 인터페이스가 안 생김.
4.2 드라이버 존재 여부 확인
uname -r
# 5.4.31
ls /lib/modules/5.4.31/kernel/drivers/net/wireless/
# broadcom marvell ralink realtek
ls /lib/modules/5.4.31/kernel/drivers/net/wireless/realtek/
# rtl8192c rtl8192cu rtl_usb.ko rtlwifi.ko
결론: 커널에 Realtek WiFi 드라이버는 있지만 RTL8192C 계열이다. 동글의 칩(RTL8723B)과 다른 칩군이라 호환 안 됨 — 그래서 wlan1이 안 생기는 것으로 최종 확인.
4.3 해결 방향 결정
여분의 RTL8192CU 계열 동글로 교체하는 게 제일 간단하지만, 이번엔 이 RTL8723BU 동글을 반드시 써야 하는 상황이라 커널 모듈을 직접 빌드하는 방향으로 진행하기로 함.
진행 계획
- MYIR 커널 소스(
04-Source/MYiR-STM32-kernel.tar.bz2) 확보, WSL2에 압축 해제 - 기존 defconfig 로드 후
menuconfig로RTL8XXXU드라이버(및 미검증 USB ID 포함 옵션) 활성화source /opt/st/myir/3.1-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi make ARCH=arm O="$PWD/../build" myc-ya157c_defconfig make ARCH=arm O="$PWD/build" menuconfig # Device Drivers → Network device support → Wireless LAN → Realtek devices → RTL8XXXU - 모듈만 빌드 (커널 전체 재빌드 불필요)
make ARCH=arm modules O="$PWD/build" make ARCH=arm INSTALL_MOD_PATH="$PWD/build/install_artifact" modules_install O="$PWD/build" - 생성된
rtl8xxxu.ko를 보드의/lib/modules/5.4.31/kernel/drivers/net/wireless/realtek/rtl8xxxu/로 복사 - 보드에서
depmod -a && modprobe rtl8xxxu후wlan1생성 확인
커널 버전이 5.4.31로 비교적 최신이라, RTL8723BU를 지원하는 mainline rtl8xxxu 드라이버가 이미 커널 소스 트리 안에 존재할 가능성이 높다는 점에서, 새 드라이버를 이식하기보다는 설정 활성화 + 모듈 재빌드만으로 해결될 가능성이 있다고 보고 진행 중.
현재 상태 요약
- UART-TTL 콘솔 연결 방법 정리
- 네트워크 인터페이스(eth0/wlan0/can0) 상태 판독법 정리
- nmcli 권한 에러 해결 (root 권한 필요)
- 온보드 WiFi(wlan0) 정상 동작 확인
- USB WiFi 동글 미인식 원인 진단 (RTL8723B vs 커널의 RTL8192C 드라이버 불일치)
- RTL8XXXU 드라이버 활성화 + 모듈 빌드 + 보드 배포 — 진행 중
STM32MP1 계열 보드에서 USB WiFi 동글이 인식되지 않을 때, dmesg 로그의 칩셋 식별 정보와 /lib/modules/.../wireless/ 안의 실제 드라이버 목록을 대조해보는 것이 원인 파악의 핵심이었다.
댓글남기기