Han o Sinox not only executes Windows applications through wine. Windows drivers can also be executed through NDIS
Han o sinox using the Windows NDIS driver
The detailed implementation method is to convert the Windows driver sys driver into a kernel module KO file with Ndisgen. Then let the system load the KO module to be able to use. The NDIS driver is responsible for simulating the conversion effort.
Thanks to the work of Bill Paul (Wpaul). Sinox has been able to "directly" support the network-driven interface standard (NDIS, Networks Driver Interface specification). Sinox Ndisulator (also known as Project Evil) can support the binary form of the Windows driver and let it believe that it is performing windows. Because the NDIS (4) driver uses the driver for the binary form of Windows, it can only be used on i386 and AMD64 systems.
Note: The NDIS (4) driver is primarily designed with support for PCI, CardBus, and PCMCIA devices, and USB devices are not supported at the moment, so the USB wireless card is not available,
To use Ndisulator, you need three things:
1.
The kernel source code, already has
2.
The binary form of the Windows XP driver (with the extension. SYS)
3.
Windows XP driver configuration file with the extension. INF)
You need to find these files for your card. Generally speaking. These files can be found on the CD or manufacturer's site included with the card. In the following example, we use the w32driver. SYS and W32driver. INF to represent these files.
Note: You cannot use the windows/i386 driver on AMD64.
You must use the WINDOWS/AMD64 driver to work properly on it.
The next step is to assemble the driver in binary form into a kernel module. To complete this task, you need to run Ndisgen (8) as the root user:
# Ndisgen/path/to/w32driver. Inf/path/to/w32driver. SYS
Ndisgen (8) is an interactive program that prompts you to enter some additional information that is required, and after this is done, it generates a kernel module file in the current folder. This file can be loaded with the following command:
# kldload./w32driver.ko
In addition to the kernel modules that you just generated, you must load both the Ndis.ko and If_ndis.ko kernel modules. When you load a module that requires NDIS (4), the system will usually take its own initiative to complete the operation. Suppose you want to load them manually. You can use the following commands:
# Kldload NDIS
# Kldload If_ndis
The first command loads the NDIS Pocket Port driver Encapsulation module, and the second command loads the actual network interface.
Now check out DMESG (8) to see if an error has occurred. Assuming everything works, you'll see output similar to the following:
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
After that, you will be able to use the NDIS0 device like any other network interface (such as DC0).
And no matter what other modules. You can also configure the system to automatically load the NDIS module at startup. First, copy the generated module W32driver.ko to the/boot/modules folder. Next, add in the/boot/loader.conf:
W32driver_load= "YES"
Han o Sinox execute Windows driver through NDIS