อ่าน 4 นาที
NDISwrapper
NDISwrapper เป็น โปรแกรม ฟรี ที่ช่วยให้สามารถใช้ ไดรเวอร์ อุปกรณ์เครือข่าย ของ Windows XP (สำหรับอุปกรณ์ต่างๆ เช่น การ์ด PCI , โมเด็ม USB และ เราเตอร์ ) บนระบบปฏิบัติการ Linux ได้...
NDISwrapper
| NDISwrapper | |
|---|---|
เรียกใช้ คำสั่ง ndiswrapper ในหน้าต่างเทอร์มินัล | |
| นักพัฒนา | ยาน คิสก้า, กิริดาร์ เพมมาซานี, ปอนตุส ฟุคส์ |
| เวอร์ชันเสถียร | 1.63 / 3 พฤษภาคม 2020 |
| ระบบปฏิบัติการ | ลินุกซ์ใช้งานได้ เฉพาะ บนสถาปัตยกรรมIA-32และx86-64 เท่านั้น |
| พิมพ์ | ตัวห่อไดรเวอร์ |
| ใบอนุญาต | จีเอ็นยู จีพีแอล |
| เว็บไซต์ | วิกิของ NDISwrapper , พื้นที่ดาวน์โหลด NDISwrapper |
NDISwrapperเป็นโปรแกรมฟรี ที่ช่วยให้สามารถใช้ ไดรเวอร์ อุปกรณ์เครือข่ายของ Windows XP (สำหรับอุปกรณ์ต่างๆ เช่นการ์ด PCI , โมเด็ม USBและเราเตอร์ ) บนระบบปฏิบัติการ Linux ได้ NDISwrapper ทำงานโดยการนำเอา API ของเคอร์เนล Windows และNDIS มาใช้ และเชื่อมโยงไดรเวอร์เครือข่ายของ Windows เข้ากับการใช้งานนี้แบบไดนามิกดังนั้นจึงใช้งานได้เฉพาะบนระบบที่ใช้สถาปัตยกรรมชุดคำสั่งที่ Windows รองรับเท่านั้น ได้แก่IA -32และx86-64
ไดรเวอร์ดั้งเดิมสำหรับอะแดปเตอร์เครือข่าย บางรุ่น ไม่มีให้ใช้งานบน Linux เนื่องจากผู้ผลิตบางรายใช้ส่วนต่อประสานที่เป็นกรรมสิทธิ์ของตนเองและไม่เขียนไดรเวอร์ที่ใช้งานได้ข้ามแพลตฟอร์ม NDISwrapper ช่วยให้สามารถใช้ไดรเวอร์ของ Windows ซึ่งมีให้ใช้งานสำหรับอะแดปเตอร์เครือข่ายพีซีสมัยใหม่เกือบทั้งหมด
ใช้
มีสามขั้นตอน ได้แก่ การสร้างไดรเวอร์ Linux การติดตั้ง และการใช้งาน NDISwrapper ประกอบด้วยสองส่วนหลัก คือ เครื่องมือบรรทัดคำสั่งที่ใช้ในระหว่างการติดตั้ง และระบบย่อยของ Windows ที่ใช้เมื่อแอปพลิเคชันเรียกใช้ระบบย่อย Wi-Fi
เนื่องจากผลลัพธ์ของการติดตั้ง NDISwrapper ควรจะเป็นไดรเวอร์ Linux เพื่อให้สามารถทำงานร่วมกับแอปพลิเคชัน Linux ได้ ขั้นตอนแรกที่ผู้ใช้ต้องทำคือการ "คอมไพล์" ไฟล์ Windows สองสามไฟล์ขึ้นไป และ DDK เวอร์ชันของ Windows จาก NDISwrapper ให้เป็นโมดูลเคอร์เนล Linux โดยใช้เครื่องมือที่ชื่อว่า "ndiswrapper" จากนั้นไดรเวอร์ Linux ที่ได้จะถูกติดตั้ง (ส่วนใหญ่มักทำด้วยตนเอง) ในระบบปฏิบัติการ แอปพลิเคชัน Linux สามารถส่งคำขอไปยังไดรเวอร์ Linux นี้ ซึ่งจะทำการปรับเปลี่ยนที่จำเป็นโดยอัตโนมัติเพื่อเรียกใช้ไดรเวอร์ Windows และ DDK ภายในของแอปพลิเคชันนั้น
เพื่อให้การ "คอมไพล์" นี้สำเร็จ NDISwrapper ต้องการไฟล์อย่างน้อย ".inf" และ ".sys" ซึ่งโดยปกติแล้วจะมีมาให้พร้อมกับไดรเวอร์ของ Windows ตัวอย่างเช่น หากไดรเวอร์ชื่อ "mydriver" โดยมีไฟล์ mydriver.inf และ mydriver.sys และ vendorid:productid 0000:0000 แล้ว NDISwrapper จะติดตั้งไดรเวอร์ไปยัง/etc/ndiswrapper/mydriver/ไดเร็กทอรีนี้ประกอบด้วยไฟล์สามไฟล์:
- 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 และโปรแกรมจัดการ Plug and Play เพื่อให้สามารถใช้งานการ์ด Wi-Fi ที่ฝังอยู่ใน USB ได้ โปรแกรมจัดการ USB ประกอบด้วยสองส่วน ส่วนแรกคือการใช้งาน USBD ขนาดเล็ก (USB stack) และส่วนที่สองคือไดรเวอร์ USB แบบWindows Driver Model (WDM) ซึ่งตัวมันเองก็ประกอบด้วยสองส่วนเช่นกัน: ส่วนหน้าจะรับการเรียกจาก USB stack ของ NDISwrapper (อันที่จริงคือการเรียกจากไดรเวอร์ Windows ดั้งเดิมที่ปกติแล้วมีไว้สำหรับ USB stack ของ Windows) และส่วนหลังจะใช้ USB stack ของ Linux
- ตัวอย่าง Ntoskrnl ขั้นต่ำที่จำลอง DDK สำหรับ:
- การจัดการการโทรจากไดรเวอร์ Windows
- การจัดการ IRP ไปยังไดรเวอร์ Windows (ปัจจุบันรองรับเฉพาะ WDM เท่านั้น)
- การจัดการไดรเวอร์ตัวกรองด้วยวิธีที่เรียบง่าย
- การโหลด/ยกเลิกการโหลดไดรเวอร์ Windows
- ไลบรารีที่แปลงคำสั่งจาก Linux ไปเป็น Windows และในทางกลับกัน รวมถึงจัดการผลลัพธ์และรหัสข้อผิดพลาดด้วย
วิธีการทำงาน
Ndiswrapper ใช้ไฟล์ INF ของ Windows [ 1 ]
เมื่อแอปพลิเคชัน Linux เรียกใช้อุปกรณ์ที่ลงทะเบียนไว้ใน Linux ในฐานะอุปกรณ์ NDISwrapper นั้น NDISwrapper จะตรวจสอบว่าต้องการเรียกใช้ไดรเวอร์ Windows ตัวใด จากนั้นจะแปลงคำสั่ง Linux เป็นภาษา Windows เรียกใช้ไดรเวอร์ Windows รอผลลัพธ์ และแปลงกลับเป็นภาษา Linux แล้วส่งผลลัพธ์กลับไปยังแอปพลิเคชัน Linux เป็นไปได้ที่ไดรเวอร์ Linux (NDISwrapper เป็นไดรเวอร์ Linux) จะเรียกใช้ไดรเวอร์ Windows เนื่องจากทั้งสองทำงานในพื้นที่แอดเดรส เดียวกัน (เช่นเดียวกับเคอร์เนล Linux) หากไดรเวอร์ Windows ประกอบด้วยไดรเวอร์แบบเลเยอร์ (เช่น ไดรเวอร์สำหรับ Ethernet อยู่เหนือไดรเวอร์สำหรับ USB) ไดรเวอร์เลเยอร์บนสุดจะเป็นตัวที่ถูกเรียกใช้ และเลเยอร์บนสุดนี้จะสร้างการเรียกใช้ใหม่ (IRP ในภาษา Windows) โดยการเรียกใช้ "mini ntoskrnl" ดังนั้น "mini ntoskrnl" จะต้องทราบว่ามีไดรเวอร์อื่นๆ อยู่ และจะต้องลงทะเบียนไดรเวอร์เหล่านั้นไว้ในฐานข้อมูลภายในล่วงหน้าโดยการอ่านไฟล์ ".inf" ของ Windows
โปรแกรมที่คล้ายกัน
- DriverLoader ( เก็บถาวรเมื่อวันที่ 17 พฤษภาคม 2007 ในWayback Machine)เป็นเครื่องมือเชิงพาณิชย์ที่ผลิตโดย Linuxant สำหรับ Linux ซึ่งดูเหมือนจะให้ฟังก์ชันการทำงานเช่นเดียวกับ NDISwrapper
- โดยอิสระจาก แต่ในเวลาเดียวกันโดยประมาณกับโครงการ NDISwrapper บิลล์ พอลจากWind River Systemsได้พัฒนาระบบที่คล้ายกัน ซึ่งรู้จักกันในชื่อProject EvilหรือThe NDISulatorสำหรับFreeBSD [ 2 ] ต่อมาได้มีการพอร์ตไปยังDragonFly BSD [ 3 ]และNetBSD [ 4 ]
ข้อจำกัด
- NDISwrapper อาศัย "ส่วนขยายไร้สาย" ของผู้สูงอายุเพื่อให้แอปพลิเคชันสามารถเข้าถึง Wi-Fi ได้
- เนื่องจาก NDISwrapper อาศัยไดรเวอร์ของ Windows จึงรองรับเฉพาะสถาปัตยกรรมi386และx86_64 เท่านั้น [ 5 ]
- NDISwrapper ยังไม่ได้ใช้งานNDIS 6 ( เวอร์ชัน Windows Vista ) ทำให้ไดรเวอร์ใช้งานได้เฉพาะ Windows XP เท่านั้น[ 6 ]ณ เดือนตุลาคม 2556 สาขาโค้ดที่ไซต์โครงการได้รับการพัฒนามาตั้งแต่ปี 2549 [ 7 ]แต่คำขอคุณสมบัติจากปี 2552 ยังไม่ได้รับมอบหมาย[ 8 ]
- แม้ว่าจะไม่ใช่ปัญหาใหญ่สำหรับสถาปัตยกรรม x86 เนื่องจากความนิยมของ Windows XP IA-32แต่ผู้จำหน่ายหลายรายเลือกที่จะสร้างไดรเวอร์เวอร์ชัน 64 บิตสำหรับ Windows Vista เท่านั้น ซึ่งหมายความว่าระบบ Linux ที่ใช้สถาปัตยกรรม x86-64 ไม่สามารถใช้อุปกรณ์เครือข่ายดังกล่าวได้ (ไม่สามารถใช้ XP IA-32 NDIS5 ได้เนื่องจากเป็นระบบ 64 บิต และไม่สามารถใช้ไดรเวอร์ NDIS6 64 บิตได้เนื่องจากไม่สามารถใช้ NDIS6 ได้) ยังคงสามารถใช้ไดรเวอร์ Windows XP 64 บิตซึ่งใช้งาน NDIS5 ได้[ 9 ]อย่างไรก็ตาม มีไดรเวอร์สำหรับ xp64 (NDIS5/64 บิต) น้อยกว่าสำหรับ XP32 (NDIS5/32 บิต)
- ตั้งแต่ปี 2006 เป็นต้นมา ไดรเวอร์ของ Windows ส่วนใหญ่เป็นไปตามมาตรฐาน Windows Driver Foundation (WDF) ซึ่ง NDISWrapper ไม่สามารถใช้งานได้ ทำให้ NDISWrapper ล้าสมัยไป เนื่องจากรองรับเฉพาะเฟรมเวิร์กไดรเวอร์ WDM รุ่นก่อนหน้าเท่านั้น
ดูเพิ่มเติม
- รายชื่อโครงการเฟิร์มแวร์เราเตอร์
- สารสกัดคาเบ็กซ์
- เดบดับเบิลยูอาร์ที
- ไฟล์ INF
- ลิเบรซีเอ็มซี
- เคอร์เนลรวมของลินุกซ์
- รีแอคโอเอส
ลิงก์ภายนอก
- วิกิ NDISwrapper
- พื้นที่ดาวน์โหลด NDISwrapper
- การติดตั้ง NDISwrapper – วิดีโอที่เข้าใจง่าย แสดงวิธีการติดตั้ง NDISwrapper และเริ่มต้นใช้งาน
- เอ็นดิสก์ทก
- เอ็นดิสคอนฟิก
- โครงการชั่วร้าย: ความชั่วร้ายยังคงดำเนินต่อไป 24 มกราคม 2547 บิลล์ พอล ในรายชื่อผู้รับจดหมายของ FreeBSD
- ชั่วร้ายเกินไป โกรธแค้นเกินไป 25 เมษายน 2548 บิลล์ พอล ในรายชื่อผู้รับจดหมายของ FreeBSD
- พอร์ตไดรเวอร์ NetBSD NDIS
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ NDISwrapper
NDISwrapper เป็น โปรแกรม ฟรี ที่ช่วยให้สามารถใช้ ไดรเวอร์ อุปกรณ์เครือข่าย ของ Windows XP (สำหรับอุปกรณ์ต่างๆ เช่น การ์ด PCI , โมเด็ม USB และ เราเตอร์ ) บนระบบปฏิบัติการ Linux ได้...
ใช้
มีสามขั้นตอน ได้แก่ การสร้างไดรเวอร์ Linux การติดตั้ง และการใช้งาน NDISwrapper ประกอบด้วยสองส่วนหลัก คือ เครื่องมือบรรทัดคำสั่งที่ใช้ในระหว่างการติดตั้ง และระบบย่อยของ Windows ที่ใช้เมื่อแอปพลิเคชันเรียกใช้ระบบย่อย Wi-Fi
ส่วนหน้ากราฟิก
NDISwrapper มีโปรแกรมส่วนติดต่อผู้ใช้แบบกราฟิก เช่น Ndisgtk และ NdisConfig ซึ่งช่วยให้สามารถติดตั้ง NDISwrapper โดยใช้ ส่วนติดต่อผู้ใช้แบบกราฟิก แทนคำสั่งคอนโซลได้
สถาปัตยกรรม
NDISwrapper ช่วยให้ ระบบปฏิบัติการ ที่คล้าย Unix สามารถใช้ไดรเวอร์ NDIS และ WIFI ของ Windows ได้ มันมีประโยชน์ในยุคที่ยังไม่มีไดรเวอร์ Wi-Fi สำหรับ Linux สำหรับการ์ด Wi-Fi ทั่วไป ประกอบด้วย: