我在 Ubuntu 22.04 上访问并行端口时遇到困难。它是安装在 PCI 插槽中的 SUNIX Co. 多端口 MIO6469A。它有 DB-9(串行)和 DB-25(并行)连接器。我们正尝试使用它通过并行端口将信号发送到 Matlab 中的 EEG 系统。但代码没有被接收。
如何判断 Linux 上的并行端口是否已正确安装/配置?
快速摘要:在终端中,如果输入-lspci -vv
,似乎可以找到 PCI 卡(见下文)。但我出于几个原因感到困惑。首先,它显示的是串行端口,而不是并行端口。其次,我们在使用 Matlab 中的“ppdev_mex.m”函数时遇到了麻烦,该函数通常用于此类事情。所以我不确定我们是否有正确的并行端口地址。
任何帮助都将不胜感激!
0000:04:00.0 Communication controller [0708]: SUNIX Co., Ltd. Multiport serial controller
Subsystem: SUNIX Co., Ltd. Multiport serial controller
Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 16
Region 0: I/O ports at 3020 [size=32]
Region 1: I/O ports at 3048 [size=8]
Region 2: I/O ports at 3040 [size=8]
Region 3: I/O ports at 3000 [size=32]
Capabilities: <access denied>
Kernel driver in use: parport_serial
Kernel modules: parport_serial
当我运行 时sudo adduser <username> lp
,提示我已经是该lp
群组的成员。如何查看谁是成员?
journalctl -xb | grep parport
返回
Jan 30 20:00:12 McRey57-LN-01 systemd-modules-load[442]: Inserted module 'parport_pc'
Jan 30 20:00:12 McRey57-LN-01 kernel: parport_serial 0000:04:00.0: enabling device (0000 -> 0001)
Jan 30 20:00:12 McRey57-LN-01 kernel: parport0: PC-style at 0x3048 (0x3040), irq 16, using FIFO [PCSPP,TRISTATE,COMPAT,EPP,ECP]
ls -l /dev/lp*
返回
lp: cannot access '/dev/lp*': No such file or directory
id
返回:
uid=1001(gaspelingroup) gid=1001(gaspelingroup) groups=1001(gaspelingroup),4(adm),7(lp),20(dialout),24(cdrom),27(sudo),30(dip),44(video),46(plugdev),122(lpadmin),135(lxd),136(sambashare),1002(psychtoolbox)
答案1
我发现了一个未经测试的解决方案并对其进行了改编:
创建一个名为的文件,
/etc/modprobe.d/sunix-askubuntu-1501881.conf
包含以下内容:alias parport_low_level parport_pc options parport_pc io=0x3020 irq=11,auto
创建一个名为的文件,
/etc/udev/rules.d/99-sunix-askubuntu-1501881.rules
包含以下内容:ATTR{device}=="0x1999", ATTR{vendor}=="0x1fd4", RUN+="/sbin/modprobe parport_low_level"
重启
如果并行端口没有显示或工作,请尝试用 0x3048、0x3040 和 0x3000 替换 0x3020,并在其间重新启动。如果内核崩溃或发生冲突,请添加install parport_serial /bin/false
到第一个文件。