Debian
Sunix 低級並行埠驅動程序不工作
**背景:**由於硬體過時,我目前正在將工業 PC + 軟體從 Debian 4 (etch) 更新到 Debian 7 (Wheezy),新舊系統之間共享的少數硬體之一是 Sunix 5008 並口。我們使用並行埠通過低級驅動程序與一些自定義硬體通信。
**問題:**當我們將示波器連接到並行埠上的某些引腳時,雖然檢測到並
/dev/parport2
創建了驅動程序並且可以使用我們的軟體成功打開和寫入驅動程序,但我們沒有得到任何輸出,因為同一個應用程序在舊版本上提供輸出安裝。我們已經通過驅動程序跟踪到 outb() 呼叫,沒有報告任何錯誤。以下來自 dmesg 的摘錄顯示埠已找到並且驅動程序已正確安裝
[ 7.429893] ===================== SUNIX Device Driver Module Install ===================== [ 7.429899] [ 7.429902] SNX Info : Loading SUNIX Multi-I/O Board Driver Module [ 7.429908] -- Date : 2011/08/15 [ 7.429915] -- Version : 1.3.3.0 [ 7.429918] [ 7.431041] [ 7.431047] SNX Info : Found SUNIX 5008 Series Board (1P), [ 7.431053] bus number:6, device number:4 [ 7.431056] [ 7.431079] Trying to free nonexistent resource <000000000000d120-000000000000d127> [ 7.431087] Trying to free nonexistent resource <000000000000d120-000000000000d122> [ 7.431094] Trying to free nonexistent resource <000000000000d123-000000000000d127> [ 7.431101] Trying to free nonexistent resource <000000000000d110-000000000000d117> [ 7.431108] Trying to free nonexistent resource <000000000000d110-000000000000d112> [ 7.431115] Trying to free nonexistent resource <000000000000d113-000000000000d117> [ 7.438603] SNX Info : parport2 - PC-style at 0xd120 (0xd110) [ 7.438859] SNX Info : lp2 port using parport2 (polling). [ 7.438866] ================================================================================
Trying to free nonexistent resource *
我們的舊版本也會發生這種情況有趣的觀察: 在較舊的工作機器上,
lsmod
給出的摘錄Module Size Used by ... snx 89764 4 parport_pc 22884 0 ppdev 3588 0 parport 19240 2 parport_pc,ppdev
雖然在較新的機器上提取的
lsmod
給Module Size Used by ... snx 99449 2 parport_pc 22036 0 ppdev 12651 0 parport 31254 2 ppdev,parport_pc
這裡要注意的關鍵是在較新的機器中,snx 僅由 2 個設備而不是 4 個設備使用,所以我不知道這是否指向初始化問題
進一步研究後,似乎這是由於驅動程序僅部分實現,關鍵 ioctl 似乎已被刪除。