標籤:spec 系統 驅動 操作 網站 自己 擴充 手工 檔案夾
漢澳sinox不僅能通過wine執行windows應用程式。還能通過ndis執行windows驅動程式
漢澳sinox使用 Windows NDIS 驅動程式
詳細實現方法是用ndisgen把windows驅動程式sys驅動程式轉換成核心模組ko檔案。然後讓系統載入ko模組就能用了。ndis驅動負責類比轉換工作。
得益於 Bill Paul (wpaul) 的工作。 Sinox已經能夠 “直接地” 支援 網路驅動介面標準 (NDIS, Network Driver Interface Specification) 了。 Sinox NDISulator (也被稱為 Project Evil) 能夠支援二進位形式的 Windows 驅動程式, 並讓它相信正在執行的是 Windows。 因為 ndis(4) 驅動使用的是用於 Windows 的二進位形式的驅動, 因此它僅僅能在 i386 和 amd64 系統上使用。
注意: ndis(4) 驅動在設計時主要提供了 PCI、 CardBus 和 PCMCIA 裝置的支援, 而 USB 裝置眼下則沒有提供支援,所以usb無線網卡沒得用、
要使用 NDISulator, 您須要三件東西:
1.
核心的源碼 ,已經有
2.
二進位形式的 Windows XP 驅動程式 (副檔名為 .SYS)
3.
Windows XP 驅動程式設定檔 (副檔名為 .INF)
您須要找到用於您的卡的這些檔案。 一般而言。 這些檔案能夠在隨卡附送的 CD 或製造商的網站上找到。 在以下的範例中, 我們用 W32DRIVER.SYS 和 W32DRIVER.INF 來表示這些檔案。
注意: 不能在 amd64 上使用 Windows/i386 驅動程式。
必須使用 Windows/amd64 驅動才幹在其上正常工作。
接下來的步驟是將二進位形式的驅動程式組裝成核心模組。 要完畢這一任務, 須要以 root 使用者的身份運行 ndisgen(8):
# ndisgen /path/to/W32DRIVER.INF /path/to/W32DRIVER.SYS
ndisgen(8) 是一個互動程式, 它會提示您輸入所需的一些其它的額外資訊; 這些工作完畢之後, 它會在當前檔案夾產生一個核心模組檔案。 這個檔案能夠通過下述命令來載入:
# kldload ./W32DRIVER.ko
除了剛剛產生的核心模組之外, 還必須載入 ndis.ko 和 if_ndis.ko 這兩個核心模組。 在您載入須要 ndis(4) 的模組時, 通常系統會自己主動完畢這一操作。 假設希望手工載入它們。 則能夠使用下列命令:
# kldload ndis
# kldload if_ndis
第一個命令會載入 NDIS 袖珍port驅動封裝模組, 而第二條命令則載入實際的網路介面。
如今請查看 dmesg(8) 來瞭解是否發生了錯誤。 假設一切正常, 您會看到類似以下的輸出:
ndis0: mem 0xf4100000-0xf4101fff irq 3 at device 8.0 on pci1
ndis0: NDIS API version: 5.0
ndis0: Ethernet address: 0a:b1:2c:d3:4e:f5
ndis0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54Mbps
這之後, 就能夠像使用其他網路介面 (比如 dc0) 一樣來使用 ndis0 裝置了。
與不論什麼其他模組一樣。 您也能夠配置系統, 令其在啟動時自己主動載入 NDIS 模組。 首先, 將產生的模組 W32DRIVER.ko 拷貝到 /boot/modules 檔案夾中。 接下來, 在 /boot/loader.conf 中增加:
W32DRIVER_load=”YES”
漢澳sinox通過ndis執行windows驅動程式