최근에 하나 샀어요Edimax EW-7811Un WiFi USB 어댑터아마존에서. 일부 OpenBSD 사용자는 이 기능이 성공했다고 보고했으며 다음 에서 urtwn(4)
지원하는 것으로 나열됩니다.매뉴얼 페이지.
저는 현재 Asus 넷북에서 OpenBSD 5.5 amd64(지난 주말에 다운로드함)를 실행하고 있습니다. 예상대로 무선 어댑터 urtwn0
를 연결하거나 제거하면 무선 어댑터가 인식 되고 보고됩니다. /etc/hostname.urtwn0
맨 페이지에 설명된 대로 작성했습니다 .
nwid mynetwork
wpakey mykey
dhcp
내 Wi-Fi 네트워크 이름과 비밀번호는 각각 어디에 있고 mynetwork
는 무엇입니까? mykey
네트워크는 실제로 WPA2이므로 자체 문제가 발생할 수 있지만 OS는 펌웨어를 로드할 수 없는 것 같습니다. 을 실행하면 sh /etc/netstart urtwn0
다음과 같은 결과가 출력됩니다.
urtwn0: failed loadfirmware of file urtwn-rt18192cfwT (error 2)
urtwn0: no link ............ sleeping
펌웨어가 손상되었을 가능성이 있나요? 어댑터를 처음 사용해 봤습니다. 아마도 Edimax가 펌웨어를 변경하고 OpenBSD의 현재 urtwn
구현을 중단했습니까? 아니면 제가 멍청한 실수를 한 걸까요?
답변1
첫째, hostname.urtwn0
파일이 괜찮아 보이는데, 파일에 오류가 있으면 완전히 다른 오류 메시지가 표시됩니다.
이 메시지는 urtwn0: failed loadfirmware of file urtwn-rt18192cfwT (error 2)
펌웨어가 올바른 위치에 설치되지 않았음을 나타냅니다.
설명된 대로loadfirmware(9)
, 이 함수는 errno
스타일 오류 코드를 반환합니다.errno(2)
설명하다:
2 ENOENT No such file or directory.
A component of a specified pathname did not exist, or the pathname
was an empty string.
/etc/firmware/urtwn-rt18192cfwT
드라이버가 로드할 파일이 있어야 합니다 . 1 트리에서 이 파일을 찾을 수 없을 가능성이 높습니다.
1자세한 내용은 답변 끝부분에 있습니다.
당신이 가지고 있다고 가정일부상자를 인터넷에 연결하는 방법:
펌웨어 설치를 실행하여 fw_update -v
파일이 올바른 위치에 있고 손상되지 않았는지 확인하십시오. 운이 좋으면 그게 전부입니다.
실패하면 다음에서 펌웨어를 설치해 볼 수 있습니다.패키지 또는 포트(먼저 이 FAQ를 읽어보세요!) 내 로컬 이미지에는 관련 패키지가 없으므로 urtwn
포트 트리를 사용해야 할 수도 있습니다.
에 설명된 대로 포트 트리를 설정합니다.자주 묻는 질문, 그런 다음 make install
루트로 실행합니다 /usr/ports/sysutils/firmware/urtwn
.
상자를 인터넷에 연결할 수 없는 경우:
펌웨어는 다음에서 구할 수 있습니다.http://firmware.openbsd.org/firmware-dist/urtwn-1.1p0.tgz
. 거기에서 가져와서 USB 스틱에 넣고 OpenBSD 상자에 복사하세요. 아카이브를 추출하고 파일 urtwn-*
을 /etc/firmware/
.
fw_update -v
이것이 작동한다면, 네트워크에 연결된 후에 실행하는 것이 가장 좋습니다 . 이런 방식으로 시스템 유지 관리 스크립트는 필요할 때 펌웨어를 모니터링하고 업그레이드합니다.
이 모든 것이 도움이 되지 않는다면 아마도메일링 리스트. 그곳 사람들은 일반적으로 친절하고 숙제를 하면 도움을 줍니다 2 .
2 드라이버가 여러 번 언급됩니다.[이메일 보호됨]. 예를 들어, USB 관련 문제가 일부 있는데, 게시하기 전에 보고 계신 것과 관련된 것이 있는지 확인하시기 바랍니다.
다음에 추가:
이제 소스 코드를 살펴보았는데 이 오류 메시지를 표시하는 유일한 방법은 함수의 urtwn_load_firmware()
at sys/dev/usb/if_urtwn.c
라인을 이용하는 것입니다 2194
.
/* Read firmware image from the filesystem. */
if ((sc->chip & (URTWN_CHIP_UMC_A_CUT | URTWN_CHIP_92C)) ==
URTWN_CHIP_UMC_A_CUT)
name = "urtwn-rtl8192cfwU";
else
name = "urtwn-rtl8192cfwT";
if ((error = loadfirmware(name, &fw, &len)) != 0) {
printf("%s: failed loadfirmware of file %s (error %d)\n",
sc->sc_dev.dv_xname, name, error);
return (error);
}
함수 loadfirmware()
( sys/dev/firmload.c
)는 경로를 생성 /etc/firmware/urtwn-rtl8192cfwT
하고 파일을 USB 어댑터의 메모리에 로드하려고 시도합니다. 파일을 찾을 수 없기 때문에 보고된 오류 메시지가 나타납니다.