
배경:나는 현재 오래된 하드웨어로 인해 산업용 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가 4개가 아닌 2개의 장치에서만 사용되므로 이것이 초기화 문제를 나타내는지 여부는 알 수 없다는 것입니다.
답변1
추가 조사를 통해 이는 드라이버가 부분적으로만 구현되었기 때문에 발생했으며 중요한 ioctl이 제거된 것으로 나타났습니다.