用wine裝驅動程式.. - Linux

By Hedwig
at 2011-05-11T17:51
at 2011-05-11T17:51
Table of Contents
※ 引述《abo90141436 (懶得說)》之銘言:
: 由於我有個裝置沒有linux的驅動程式(我的系統是xubuntu10.10),
: 所以我裝wine去安裝它xp的驅動程式,結果成功的啟動了,
: 有人說驅動程式是最基層的,所以一定要是linux版本的才ok
: 請問那我這樣的情況,會不會有甚麼問題(我安裝的是晶片卡讀卡機).
圖文: http://bit.ly/ksfLTc
[2]Wine 對於硬體驅動程式的支援
= 硬體支援概況 =
在 Wine 中接取硬體,主要有兩種模式。
一、直接介接 Linux 的 API,像是 X11, SANE, V4L, ALSA 等等。目前少數實做的硬體介
接模擬功能有圖形 (winex11.drv, winequartz.drv) 、音效以及輸入裝置 (keyboard,
mouse, joystick, twain/sane) 等模擬層。另外 Wine 提供了 IoCode/Operation Code
轉譯功能,容許 Windows 程式直接存取硬體,這包含 [3]Serial Communications[2] 以
及 CDROM/ATAPI, TAPE 支援。
二、另外一種則是類似 NdisWrapper,直接載入並使用 Windows 驅動程式。目前而言負責
載入 Windows 驅動程式的 [4]NTDLL 中均未實做 [5]NtLoadDriver, [6]ZwLoadDriver 等
函式細節,只宣告為 [7]Stub Function. 因此即便驅動程式安裝程式可以順利安裝、註冊
相關驅動程式 DLLs, Wine 也不會載入這些驅動程式。
目前 Wine (1.3.19) 並沒有模擬[8]載入底層驅動程式。
= Smart Card Support =
[9]Smart Card 支援問題是最常被詢問的問題之一,依據 [10]MSDN 的 [11]Smart Card
Subsystem 設計,可以分為以下數層
* Smart Card Service Providers
* Resource Manager
* Specific Smart Card Reader Driver
* Smart Card Reader Helper Library
驅動讀卡機是最基本的功能。參考 [12]Microsoft Class Drivers for USB CCID Smart
Cards 的 [13]結構說明,驅動程式有兩類,一是 [14]CCID 相容硬體或 USB 廠商所提供
的驅動程式。而其上應用程式可用 Smart card resource manager (winscard.dll) 來下
達 [15]PC/SC 指令。
如上所述,Wine 並不會載入驅動程式。winscard.dll 目前也只是 stubbed functions.
不過 [16]IDRIX 的 [17]Mounir IDRASSI 開發了介接 [18]PCSC-Lite/pcscd,使 Smart
card resource manager 可以透過 PCSC-Lite 提供 PC/SC Services.
= USB Support =
理論上,user-mode 的 USB 驅動程式也可以透過轉譯直接存取 USB 設備,只要該軟體未
使用 ntoskrnl.exe, hal.dll, usbd.sys 以外的功能。目前官方 Wine source tree 只在
usbd.sys 中實做查詢 USB Devices 功能。
[19]Etersoft 的 Alexander Morozov 則已利用 [20]libusb 實做 [21]USB 功能,提供一
些需要使用 USB hardware token 進行硬體保護的軟體使用。這些功能未整合到 Wine 主
程式。相關程式碼位於 [22]ftp://ftp.etersoft.ru/pub/people/amorozov/usb,使用時
需要[23]手動在 registry 中加入 vendor id/product id 設定。
References:
[1] http://people.debian.org.tw/~chihchun
[2] http://people.debian.org.tw/~chihchun/2011/05/11/usb-and-smartcard-support-in-wine/
[3] http://msdn.microsoft.com/en-us/library/ms810467.aspx
[4] http://en.wikipedia.org/wiki/Microsoft_Windows_library_files#Ntdll.dll
[5] http://msdn.microsoft.com/en-us/library/ff556539%28v=vs.85%29.aspx
[6] http://msdn.microsoft.com/en-us/library/ff566470%28v=vs.85%29.aspx
[7] http://sp1.wikidot.com/emulatorstubfunction
[8] http://wiki.jswindle.com/index.php/Drivers
[9] http://msdn.microsoft.com/en-us/windows/hardware/gg487492
[10] http://msdn.microsoft.com/en-us/library/aa925241.aspx
[11] http://msdn.microsoft.com/en-us/library/ms936949.aspx
[12] http://msdn.microsoft.com/en-us/windows/hardware/gg487509
[13] http://msdn.microsoft.com/en-us/windows/hardware/gg487509#EUB
[14] http://en.wikipedia.org/wiki/Integrated_Circuit_Card_Interface_Device
[15] http://en.wikipedia.org/wiki/PC/SC
[16] http://www.idrix.fr/
[17] http://blog.idrassi.com/
[18] http://pcsclite.alioth.debian.org/
[19] http://www.etersoft.ru/
[20] http://www.libusb.org/
[21] http://wiki.winehq.org/USB
[22] ftp://ftp.etersoft.ru/pub/people/amorozov/usb
[23] http://wiki.winehq.org/USB
--
http://people.debian.org.tw/~chihchun/
--
: 由於我有個裝置沒有linux的驅動程式(我的系統是xubuntu10.10),
: 所以我裝wine去安裝它xp的驅動程式,結果成功的啟動了,
: 有人說驅動程式是最基層的,所以一定要是linux版本的才ok
: 請問那我這樣的情況,會不會有甚麼問題(我安裝的是晶片卡讀卡機).
圖文: http://bit.ly/ksfLTc
[2]Wine 對於硬體驅動程式的支援
= 硬體支援概況 =
在 Wine 中接取硬體,主要有兩種模式。
一、直接介接 Linux 的 API,像是 X11, SANE, V4L, ALSA 等等。目前少數實做的硬體介
接模擬功能有圖形 (winex11.drv, winequartz.drv) 、音效以及輸入裝置 (keyboard,
mouse, joystick, twain/sane) 等模擬層。另外 Wine 提供了 IoCode/Operation Code
轉譯功能,容許 Windows 程式直接存取硬體,這包含 [3]Serial Communications[2] 以
及 CDROM/ATAPI, TAPE 支援。
二、另外一種則是類似 NdisWrapper,直接載入並使用 Windows 驅動程式。目前而言負責
載入 Windows 驅動程式的 [4]NTDLL 中均未實做 [5]NtLoadDriver, [6]ZwLoadDriver 等
函式細節,只宣告為 [7]Stub Function. 因此即便驅動程式安裝程式可以順利安裝、註冊
相關驅動程式 DLLs, Wine 也不會載入這些驅動程式。
目前 Wine (1.3.19) 並沒有模擬[8]載入底層驅動程式。
= Smart Card Support =
[9]Smart Card 支援問題是最常被詢問的問題之一,依據 [10]MSDN 的 [11]Smart Card
Subsystem 設計,可以分為以下數層
* Smart Card Service Providers
* Resource Manager
* Specific Smart Card Reader Driver
* Smart Card Reader Helper Library
驅動讀卡機是最基本的功能。參考 [12]Microsoft Class Drivers for USB CCID Smart
Cards 的 [13]結構說明,驅動程式有兩類,一是 [14]CCID 相容硬體或 USB 廠商所提供
的驅動程式。而其上應用程式可用 Smart card resource manager (winscard.dll) 來下
達 [15]PC/SC 指令。
如上所述,Wine 並不會載入驅動程式。winscard.dll 目前也只是 stubbed functions.
不過 [16]IDRIX 的 [17]Mounir IDRASSI 開發了介接 [18]PCSC-Lite/pcscd,使 Smart
card resource manager 可以透過 PCSC-Lite 提供 PC/SC Services.
= USB Support =
理論上,user-mode 的 USB 驅動程式也可以透過轉譯直接存取 USB 設備,只要該軟體未
使用 ntoskrnl.exe, hal.dll, usbd.sys 以外的功能。目前官方 Wine source tree 只在
usbd.sys 中實做查詢 USB Devices 功能。
[19]Etersoft 的 Alexander Morozov 則已利用 [20]libusb 實做 [21]USB 功能,提供一
些需要使用 USB hardware token 進行硬體保護的軟體使用。這些功能未整合到 Wine 主
程式。相關程式碼位於 [22]ftp://ftp.etersoft.ru/pub/people/amorozov/usb,使用時
需要[23]手動在 registry 中加入 vendor id/product id 設定。
References:
[1] http://people.debian.org.tw/~chihchun
[2] http://people.debian.org.tw/~chihchun/2011/05/11/usb-and-smartcard-support-in-wine/
[3] http://msdn.microsoft.com/en-us/library/ms810467.aspx
[4] http://en.wikipedia.org/wiki/Microsoft_Windows_library_files#Ntdll.dll
[5] http://msdn.microsoft.com/en-us/library/ff556539%28v=vs.85%29.aspx
[6] http://msdn.microsoft.com/en-us/library/ff566470%28v=vs.85%29.aspx
[7] http://sp1.wikidot.com/emulatorstubfunction
[8] http://wiki.jswindle.com/index.php/Drivers
[9] http://msdn.microsoft.com/en-us/windows/hardware/gg487492
[10] http://msdn.microsoft.com/en-us/library/aa925241.aspx
[11] http://msdn.microsoft.com/en-us/library/ms936949.aspx
[12] http://msdn.microsoft.com/en-us/windows/hardware/gg487509
[13] http://msdn.microsoft.com/en-us/windows/hardware/gg487509#EUB
[14] http://en.wikipedia.org/wiki/Integrated_Circuit_Card_Interface_Device
[15] http://en.wikipedia.org/wiki/PC/SC
[16] http://www.idrix.fr/
[17] http://blog.idrassi.com/
[18] http://pcsclite.alioth.debian.org/
[19] http://www.etersoft.ru/
[20] http://www.libusb.org/
[21] http://wiki.winehq.org/USB
[22] ftp://ftp.etersoft.ru/pub/people/amorozov/usb
[23] http://wiki.winehq.org/USB
--
http://people.debian.org.tw/~chihchun/
--
Tags:
Linux
All Comments
Related Posts
Ubuntu 11.04工具列不會顯示

By Hazel
at 2011-05-11T09:45
at 2011-05-11T09:45
用bash寫"複製"這個動作

By Victoria
at 2011-05-11T04:03
at 2011-05-11T04:03
Ubuntu有出全雲端的版本嗎?

By Yedda
at 2011-05-11T00:52
at 2011-05-11T00:52
筆電觸控板不能用

By Megan
at 2011-05-11T00:15
at 2011-05-11T00:15
Server 疑似被 Hack

By Madame
at 2011-05-10T15:25
at 2011-05-10T15:25