NDIS랩퍼
NDISwrapperndiswrapper 명령줄 | |
| 개발자 | 얀 키스카, 기리다르 펨마사니, 폰투스 훅스 |
|---|---|
| 안정된 릴리스 | 1.63 / 2020년 5월 , 전( |
| 운영 체제 | IA-32 및 x86-64 아키텍처의 Linux만 |
| 유형 | 드라이버 래퍼 |
| 면허증. | GNU GPL |
| 웹 사이트 | NDISrapper Wiki, NDISrapper 다운로드 영역 |
NDISwrapper는 Linux 운영 체제에서 Windows XP 네트워크 디바이스 드라이버(PCI 카드, USB 모뎀, 라우터 등 디바이스용)를 사용할 수 있는 무료 소프트웨어 드라이버 래퍼입니다.NDISwrapper는 Windows 커널 및 NDIS API를 구현하고 Windows 네트워크 드라이버를 이 구현에 동적으로 연결함으로써 작동합니다.따라서 Windows에서 지원되는 명령 집합 아키텍처(IA-32 및 x86-64)에 기반한 시스템에서만 작동합니다.
일부 제조업체는 자체 인터페이스를 유지하고 크로스 플랫폼 드라이버를 작성하지 않기 때문에 일부 네트워크 어댑터의 네이티브 드라이버를 Linux에서 사용할 수 없습니다.NDISwrapper를 사용하면 Windows 드라이버를 사용할 수 있습니다.이 드라이버는 거의 모든 최신 PC 네트워크 어댑터에서 사용할 수 있습니다.
사용하다
Linux 드라이버의 작성, 인스톨, 사용의 3개의 순서가 있습니다.NDISwrapper는 설치 시 사용되는 명령줄 도구와 응용 프로그램이 Wi-Fi 하위 시스템을 호출할 때 사용되는 Windows 하위 시스템의 두 가지 주요 부분으로 구성됩니다.
NDISrapper를 설치하면 Linux 응용 프로그램에서 작업할 수 있는 일종의 Linux 드라이버가 되기 때문에 사용자가 가장 먼저 해야 할 작업은 몇 개 이상의 Windows 파일과 NDISrapper 버전의 Windows DDK를 Linux 커널 모듈로 컴파일하는 것입니다.이 작업은 "ndisrapper"라는 도구를 사용하여 수행됩니다.그 결과, Linux 드라이버가 OS 에 인스톨 됩니다(대개 수동으로 인스톨 됩니다).그 후, Linux 애플리케이션은, 이 Linux 드라이버에 요구를 송신할 수 있습니다.이 드라이버는, 필요한 조정을 자동적으로 실시해, 내장 Windows 드라이버와 DDK 를 호출합니다.
이 「컴파일」을 실시하려면 , 적어도 「.inf」파일과 「.sys」파일이 Windows 드라이버의 일부로서 항상 필요합니다.예를 들어 드라이버가 mydriver.inf 및 mydriver.sys 파일 및 vendorid:productid 0000:0000과 함께 "mydriver"라고 불리는 경우 NDISwrapper는 드라이버를 /etc/ndiswrapper/mydriver/에 설치합니다.이 디렉토리에는, 다음의 3개의 파일이 있습니다.
- 0000:0000.conf - inf 파일에서 추출된 정보를 포함합니다.
- mydriver.inf(원래 inf 파일)
- mydriver.sys(드라이버 파일)
그래피컬 프런트 엔드
NDISwrapper에는 Ndisgtk 및 NdisConfig와 같은 그래픽 프런트엔드가 있어 콘솔명령어가 아닌 그래픽 사용자 인터페이스를 사용하여 NDISwrapper를 설치할 수 있습니다.
아키텍처
NDISwrapper를 사용하면 Unix와 같은 시스템에서 NDIS 및 WIFI 유형의 Windows 드라이버를 사용할 수 있습니다.일반적인 Wi-Fi 카드용 Linux Wi-Fi 드라이버가 없었던 시절에는 유용했습니다.구성 요소는 다음과 같습니다.
- 이더넷 디바이스 드라이버의 오버레이의 일종인 NDIS 드라이버.
- Wi-Fi 카드의 무선 및 보안 부분을 제어하는 Wi-Fi 관리자입니다.「무선 확장」인터페이스를 공개합니다.
- USB 스틱에 내장된 Wi-Fi 카드를 사용할 수 있도록 USB 매니저와 PnP 매니저.USB 매니저는 작은 USBD 구현(USB 스택)과 간단한 Windows Driver Model(WDM) USB 드라이버의 두 부분으로 구성됩니다.전면부는 NDISwrapper USB 스택으로부터의 콜을 수신합니다(실제로 Windows USB 스택으로 전송되는 원래 Windows 드라이버로부터의 콜). 후면부는 Linux USB 스택을 사용하고 있습니다.
- DDK를 시뮬레이트하는 최소 Ntoskrnl:
- Windows 드라이버로부터의 콜의 관리.
- Windows 드라이버에 대한 IRP 관리(현시점에서는 WDM만)
- 간단한 방법으로 필터 드라이버 관리
- Windows 드라이버 로드/언로드
- Linux 콜을 Windows로 변환하거나 그 반대로 변환하는 래퍼.결과와 에러 코드도 관리합니다.
구조
Ndiswrapper는 Windows INF [1]파일을 사용합니다.
리눅스 응용 프로그램이 NDISrapper 장치로 리눅스에 등록된 장치를 호출하면 NDISrapper가 대상 윈도우즈 드라이버를 결정합니다.그런 다음 Linux 쿼리를 Windows 용어로 변환하고 Windows 드라이버를 호출하여 결과를 기다렸다가 Linux 용어로 변환한 후 결과를 Linux 응용 프로그램으로 반환합니다.Linux 드라이버(NDISwrapper는 Linux 드라이버)에서 Windows 드라이버를 호출할 수 있습니다.이는 둘 다 동일한 주소 공간(Linux 커널과 동일)에서 실행되기 때문입니다.Windows 드라이버가 레이어드 드라이버(예를 들어 USB용 이더넷용 드라이버)로 구성되어 있는 경우는, 상위 레이어 드라이버가 호출됩니다.이 상위 레이어는 "mini ntoskrnl"을 호출하여 새로운 호출(Windows 용어로 IRP)을 생성합니다.따라서 "mini ntoskrnl"은 다른 드라이버가 있다는 것을 알고 Windows ".inf" 파일을 읽고 미리 내부 데이터베이스에 등록해야 합니다.
유사 프로그램
- DriverLoader는 Linux용 Linux에서 생산되는 상용 도구로 NDISwrapper와 동일한 기능을 제공합니다.
- NDISwrapper 프로젝트와는 별개로 거의 동시에 Wind River Systems의 Bill Paul은 FreeBSD를 [2]위해 Project Evil 또는 The NDSulator로 알려진 유사한 시스템을 개발했습니다.이후 DragonFly BSD[3] 및 NetBSD로 [4]이식되었습니다.
제한 사항
- NDISwrapper는 어플리케이션의 Wi-Fi 접근을 가능하게 하기 위해 오래된 "무선 확장"에 의존합니다.
- NDISwrapper는 Windows 드라이버를 사용하기 때문에 i386 [5]및 x86_64 아키텍처만 지원합니다.
- NDIS Wrapper는 아직 NDIS 6(Windows Vista 버전)을 실장하고 있지 않기 때문에, 드라이버는 Windows XP [6]로 한정됩니다.2013년 10월[update] 현재 프로젝트 현장의 코드 브랜치는 [7]2006년부터 개발 중이지만 2009년부터의 기능 요청은 [8]할당되지 않은 상태로 남아 있습니다.
- Windows XP x86-32의 인기로 인해 x86 아키텍처에서는 큰 문제가 되지 않지만 많은 벤더가 64비트 드라이버 버전을 Windows Vista 전용으로 만들고 있습니다.즉, x86-64 아키텍처를 사용하는 Linux 시스템에서는 이러한 네트워킹 디바이스를 사용할 수 없습니다(64비트 시스템이기 때문에 XP x86-32 NDIS5도 사용할 수 없습니다).ems 또는 NDIS6 64비트 드라이버는 NDIS6를 사용할 수 없습니다).NDIS5를 [9]실장하는 Windows XP 64비트 드라이버는 사용할 수 있지만 XP32(NDIS5/32비트)보다 XP64(NDIS5/64비트)에서 사용할 수 있는 드라이버가 적습니다.
- 2006년 이후, 대부분의 Windows 드라이버는, NDIS Wrapper가 사용할 수 없는 Windows Driver Foundation(WDF)에 준거하고 있습니다.이전 WDM 드라이버 프레임워크만 지원하므로 NDISWrapper는 더 이상 사용되지 않습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ "Which linux distro works OUT OF THE BOX with D-link usb wifi DWL-g122 rev.c1 (Rt73)??".
- ^ Bill Paul (January 24, 2004). "Project Evil: The Evil Continues". freebsd-current (Mailing list). Archived from the original on July 2, 2017. Retrieved September 9, 2014.
- ^ "sys/dev/netif/ndis/". Super User's BSD Cross Reference. DragonFly BSD. 2018-12-08. Retrieved 2019-03-04.
- ^ NetBSD-SoC: 포트 프리BSD의 NetB용 NDIS 네트워크 드라이버SD
- ^ "Sourceforge.net: FAQ - ndiswrapper". ndiswrapper.sourceforge.net. 2010-01-20. Retrieved 2011-08-05.
- ^ "SourceForge.net: ndiswrapper FAQ". Ndiswrapper.sourceforge.net. 2009-07-12. Retrieved 2009-09-21.
- ^ "SourceForge.net: ndisv6 code branch". Ndiswrapper.sourceforge.net. 2013-11-01. Retrieved 2013-11-01.
- ^ "SourceForge.net: ndiswrapper feature request". Ndiswrapper.sourceforge.net. 2009-04-12. Retrieved 2013-07-28.
- ^ "Ndiswrapper / Discussion / Help: Couldn't load driver netr7364".
외부 링크
- NDIS Wrapper Wiki
- NDISrapper 다운로드 영역
- NDIS Wrapper 설치– NDIS Wrapper 설치 및 시작 방법을 보여주는 팔로우하기 쉬운 비디오입니다.
- 디스크
- NdisConfig(NdisConfig)
- 이블 프로젝트: The Evil Continues, 2004-01-24, Bill Paul on a FreeBSD 메일링 리스트
- Too Evil, Too Furious, 2005-04-25, Bill Paul on a FreeBSD 메일링 리스트
- NetBSD NDIS 드라이버 포트