콘텐츠로 바로가기

now0930 일지

이런저런 생각

  • 홈
  • 비공개
  • 강좌
  • 잔여 작업 조회
  • 위치

wifi 동글(ew-7811)로 내부 망 연결

실습 라즈베리 파이를 전원만 붙여 책상에 올렸다. 처음에는 이미지를 잘못 뜨면 부팅되지 않을까 키보드, 마우스, 모니터가 필요하다 생각했다. 그러나 크로스 컴파일 삽질을 몇 번 해보니 부팅 이미지를 쉽게 만들 수 있었다. 공간(공간 = 돈)을 절약하고자 라즈베리 파이에 전원만 넣고 나머지를 싹 치웠다.

커널 패닉을 몇 번이나 보겠어? 데스크탑에서 ssh로 라즈베리 파이에 접속하여 사용하기로 했다. 유선으로 연결하면 간단한데, 공유기는 거실에 있고, 데스크탑은 다른 방에 있어 지저분하다. 게다가 데스크탑에 랜포트가 하나라 인터넷용으로 할당해야 한다. usb용 와이파이 모듈로 붙이면 간단한데, 지금 사기 아깝다. 포기하려 했으나, 과거 레고 ev3에 연결했던 와이파이 동글을 찾아냈다. 당장 레고에서 적출하여 데스크탑에 꼽았다.

https://www.edimax.com/edimax/merchandise/merchandise_detail/data/edimax/in/wireless_adapters_n150/ew-7811un/

동글로 이렇게 연결했다.

처음 동글을 연결하여, wifi login하면 내부 망으로 잘 연결된다. 문제는 이제부터..

부팅할 때 network manager가 usb 동글을 연결할 때 까지 기다린다. 매 부팅시 약 30초 동안 지연된다. ssd를 사용하지만 체감은 하드디스크 수준이다. 그냥 쓰려 했으나, 남는게 시간이라 배워도 볼 겸, 고치기로 했다.

[10:04:57]>dmesg 
[ 732.893023] rtl_usb: reg 0x82, usbctrl_vendorreq TimeOut! status:0xffffff92 value=0xa200
[ 743.132917] rtl_usb: reg 0x82, usbctrl_vendorreq TimeOut! status:0xffffff92 value=0xa300

일단 사용하는 드라이버를 찾았다.

[09:59:09]>lsusb
...
Bus 001 Device 002: ID 7392:7811 Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]

realtek rtl8188cus 드라이버를 찾아야 한다. 인터넷에서 찾았지만 너무 오래되어 kernel 2.x대로 컴파일 해야한다. 무슨 헤더파일이 커널 업데이트 되면서 사라졌는데, 이 부분을 수정해야 컴파일 할 수 있을 것 같다. 누가??? 포기하고, rtl8188이 rtl8192 드라이버를 사용하는 듯 하여 이 드라이버를 찾아봤다.

[09:59:10]>lsmod | grep rtl_usb
rtl_usb                20480  1 rtl8192cu

드라이버를 찾아보니 kenel 5.4버전에도 잘 들어가 있다. 하드웨어 특성인 듯 하다. 아예 모듈을 부팅할 때 로딩하지 않도록 blacklist로 넣어 주기로 했다.

  1. 의존성 작성.
  2. 블랙리스 작성.
  3. update.
  4. 수동으로 로딩.

드라이버를 로딩 후 모듈 의존성을 만들었다. 수동으로 해야 하는지 모르겠으나, 아래 명령어로 했다.

[10:48:28]>sudo depmod

어느 모듈이 문제인지 몰라 블랙리스트에 모두 추가했다. 이후 이미지를 업데이트 했다. 해도, 안해도 상관없다는데 하는 게 좋단다.

[10:04:57]>cat /etc/modprobe.d/blacklist-usbwifi.conf 
#rtl_usb 로딩시 vendor timeout으로 부팅 지연.
#해당 드라이버를 구할 수 없어 부팅시 언로드를 기본 설정.
#로딩 후 모듈 추가.
#
blacklist rtl8192cu
blacklist rtl8xxxu
blacklist rtl8192c_common
blacklist rtlwifi
blacklist rtl_usb
blacklist mac80211
blacklist cfg80211
# update-initramfs -u

부팅은 빨리 된다. 부팅 후 필요할 때 modprobe로 로딩한다. insmod를 하면 순서대로 하지 않아 symbolic error를 낸다.

[  228.936080] rtl_usb: Unknown symbol rtl_beacon_statistic (err -2)
[  228.936107] rtl_usb: Unknown symbol ieee80211_free_hw (err -2)
[  228.936123] rtl_usb: Unknown symbol ieee80211_register_hw (err -2)
[  228.936141] rtl_usb: Unknown symbol rtl_ops (err -2)
[  228.936153] rtl_usb: Unknown symbol ieee80211_tx_status_irqsafe (err -2)
[  228.936175] rtl_usb: Unknown symbol rtl_init_rx_config (err -2)
[  228.936187] rtl_usb: Unknown symbol rtl_lps_change_work_callback (err -2)
[  228.936203] rtl_usb: Unknown symbol rtl_action_proc (err -2)
[  228.936215] rtl_usb: Unknown symbol rtl_init_core (err -2)
[  228.936231] rtl_usb: Unknown symbol ieee80211_alloc_hw_nm (err -2)
[  228.936248] rtl_usb: Unknown symbol ieee80211_unregister_hw (err -2)
[  228.936265] rtl_usb: Unknown symbol rtl_deinit_core (err -2)
[  228.936277] rtl_usb: Unknown symbol rtl_deinit_deferred_work (err -2)
[  228.936290] rtl_usb: Unknown symbol ieee80211_rx_napi (err -2)
[  235.724425] rtl_usb: Unknown symbol rtl_beacon_statistic (err -2)
[  235.724452] rtl_usb: Unknown symbol ieee80211_free_hw (err -2)
[  235.724467] rtl_usb: Unknown symbol ieee80211_register_hw (err -2)
[  235.724484] rtl_usb: Unknown symbol rtl_ops (err -2)
[  235.724497] rtl_usb: Unknown symbol ieee80211_tx_status_irqsafe (err -2)
[  235.724519] rtl_usb: Unknown symbol rtl_init_rx_config (err -2)
[  235.724531] rtl_usb: Unknown symbol rtl_lps_change_work_callback (err -2)
[  235.724546] rtl_usb: Unknown symbol rtl_action_proc (err -2)
[  235.724558] rtl_usb: Unknown symbol rtl_init_core (err -2)
[  235.724574] rtl_usb: Unknown symbol ieee80211_alloc_hw_nm (err -2)
[  235.724591] rtl_usb: Unknown symbol ieee80211_unregister_hw (err -2)
[  235.724608] rtl_usb: Unknown symbol rtl_deinit_core (err -2)
[  235.724620] rtl_usb: Unknown symbol rtl_deinit_deferred_work (err -2)
[  235.724633] rtl_usb: Unknown symbol ieee80211_rx_napi (err -2)
[10:58:11]>sudo modprobe rtl8192cu
[  171.425547] rtl8192cu: Chip version 0x10
[  174.965957] rtl8192cu: Board Type 0
[  174.974954] rtl_usb: rx_max_size 15360, rx_urb_num 8, in_ep 1
[  174.974978] rtl8192cu: Loading firmware rtlwifi/rtl8192cufw_TMSC.bin
[  174.975042] ieee80211 phy0: Selected rate control algorithm 'rtl_rc'
[  174.975494] usbcore: registered new interface driver rtl8192cu
[  174.981081] rtl8192cu 1-9:1.0 wlx801f02efe35d: renamed from wlan0
[  175.036947] rtl8192cu: MAC auto ON okay!
[  176.627123] rtl8192cu: Tx queue select: 0x05
[  187.013949] rtl_usb: reg 0x82, usbctrl_vendorreq TimeOut! status:0xffffff92 value=0xa200
[  197.253732] rtl_usb: reg 0x82, usbctrl_vendorreq TimeOut! status:0xffffff92 value=0xa300
[  207.493591] rtl_usb: reg 0x82, usbctrl_vendorreq TimeOut! status:0xffffff92 value=0xa400
[  217.733460] rtl_usb: reg 0x80, usbctrl_vendorreq TimeOut! status:0xffffff92 value=0xa500
[  230.660865] wlx801f02efe35d: authenticate with 00:07:89:9a:24:d9
[  231.013147] wlx801f02efe35d: send auth to 00:07:89:9a:24:d9 (try 1/3)
[  231.020672] wlx801f02efe35d: authenticated
[  231.021103] wlx801f02efe35d: associate with 00:07:89:9a:24:d9 (try 1/3)
[  231.041533] wlx801f02efe35d: RX AssocResp from 00:07:89:9a:24:d9 (capab=0x411 status=0 aid=7)
[  231.041542] wlx801f02efe35d: AP has invalid WMM params (AIFSN=1 for ACI 3), will use 2
[  231.185105] wlx801f02efe35d: associated
[  231.210645] IPv6: ADDRCONF(NETDEV_CHANGE): wlx801f02efe35d: link becomes ready

176초에 로딩 후 230초에 드라이버를 로딩했다. 이 하드웨어 자체가 문제있어 보인다.

이 글 공유하기:

  • Tweet
발행일 2021-05-19글쓴이 이대원
카테고리 생활코딩 태그 insmod, linux, modprobe, raspberry

댓글 남기기응답 취소

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.

글 내비게이션

이전 글

4장 process 로그 확인

다음 글

linux kernel 중 container_of 이해와 사용

2025 5월
일 월 화 수 목 금 토
 123
45678910
11121314151617
18192021222324
25262728293031
4월    

최신 글

  • common mode, differential mode 2025-05-11
  • signal conditioner, 신호 처리기 2025-05-10
  • strain gage 2025-05-09
  • 칼만 필터 2025-05-01
  • positioner(I/P) 2025-04-26

카테고리

  • 산업계측제어기술사
  • 삶 자국
    • 책과 영화
    • 투자
  • 생활코딩
    • LEGO
    • ROS
    • tensorflow
  • 전기기사
  • 피아노 악보

메타

  • 로그인
  • 엔트리 피드
  • 댓글 피드
  • WordPress.org

페이지

  • 소개
  • 잔여 작업 조회
    • 작업 추가
    • 작업의 사진 조회
    • 작업 수정 페이지
  • 사진
    • GPS 입력된 사진
    • 사진 조회
  • 위치
    • 하기 휴가 방문지
    • 해외 출장

태그

android bash c docker driver FSM gps java kernel LEGO linux mysql network program opcua open62541 plc programmers python raspberry reinforcementLearning ros state space system program tensorflow transfer function 경제 미국 민수 삼국지 세계사 실기 에너지 역사 유전자 일본 임베디드 리눅스 전기기사 조선 중국 채윤 코딩 테스트 통계 한국사 한국어

팔로우하세요

  • Facebook
now0930 일지
WordPress로 제작.
 

댓글 로드중...