Please recommend PCI-E Parallel Port card

More
04 Apr 2019 02:49 #130255 by oddwick
i guess not knowing the internals of linuxcnc, aside from the rt kernal, what else is distro specific? if i had more time, i would try and set mine up more like kiosk mode or possibly build off of slim or server setup with x. i may still try with my old box, but i really cant do anything with it until i get this new one up and running...

Please Log in or Create an account to join the conversation.

More
04 Apr 2019 02:57 #130256 by oddwick

Can you post your hal file? is it possible you are loading some other driver in addition to hal_parport?

If hal_parport works with the card, it should not complain (and if it does, I think thats a bug)

(the 0,1,2 address shortcut will only work if Linux detects the card but this should not matter to hal_parport if the actual parallel port base address is provided)


here is my hal file. this is copied directly from my working box, with the address appended. i dont think the problem is actually in linuxcnc, but in the os itself. it is really weird lspci shows that it is there, but dmsg shows nothing of it being recognized as a parport.

basically, if i give it the address directly, i get an error message on startup that parport not found at [some number which is not the address], but machine responds. if i use the shortcut, then i get similar error, but nothing else...

File Attachment:

File Name: chibi_usaga.hal
File Size:1 KB
Attachments:

Please Log in or Create an account to join the conversation.

More
04 Apr 2019 03:09 #130257 by oddwick

Plus if you are technically knowledgeable enough to care about distributions its not that difficult to install LinuxCNC on your distribution of choice.


my main issue is always *TIME* :( i love to tinker, but at the end of the day i need to be able to get stuff done. that is why i switched from pc's to macs because i got tired of always having to work on my machines rather than work with my machines. sometimes it is nice to have the grunt work done for you... the way you have it set up with the live cd is absolutely wonderful. pop in a usb stick and 15 min later you are sitting in front of a complete setup with linuxcnc. i guess what i was really getting at is why have all the fluff especially for a dedicated machine. is it possible to create a live cd like that? kernal, window manager, file browser, linuxcnc? pretty much all you need out of the box for a dedicated machine...

it doesnt really matter tho, because i love linuxcnc and would install it on a turd if that meant not having to use windows!

Please Log in or Create an account to join the conversation.

More
04 Apr 2019 05:52 - 05 Apr 2019 12:12 #130261 by Richard J Kinch

The ones I sell are marked Syba SD-PEX10005.


Jon's advice is expert, and I and others have confirmed this PCIe parallel port card as a "warrant" (something you can readily buy new at retail today, that is known to work with current LinuxCNC). It is also a well-made board but very low priced.

But please see the qualifications I reported on this expansion card in this thread . One precaution is that "Syba" is not the "make", just an U.S. importer/labeler/marketer of mystery China boards, and part number "Syba SD-PEX10005" does not definitely identify the product "model", because Syba has delivered a variety of at least two physically different boards bearing stickers with this same part number (and this number is just on a sticker, not the board itself, the actual board bears no indication of identity in brand or part number). So "Syba SD-PEX10005" is not a concrete "make and model" specification in the engineering sense (which is the only sense that matters), just a silk-market moniker for what Syba is selling lately. This sloppy Syba version identity is a potential problem, certainly in the past, and who knows if they won't confuse things worse in the future. Being a legacy-support product, with little market, made by careless engineering mimics in developing places, and imported carpet-bazaar style, this is all to be expected.

The factors of the Linux version, LinuxCNC version, and motherboard BIOS are also involved in getting parallel port expansion to work. Also as Jon mentions, the chip has an EEPROM configuration that is invisible to you but has to be set properly at the factory, so you can't know if some "China quality control" mistake was made until you test the board, but you can't do that isolated test if you don't have a known-working reference system already using the board. You can't perform multi-factor diagnosis without isolation and known-good reference capabilities. But this "Syba SD-PEX10005" (with a confirmed version identity) is as safe a "warrant" against surprises and mystery as you can get these days, especially if you source it from Jon and his beneficial specimen-qualifying and testing.
Last edit: 05 Apr 2019 12:12 by Richard J Kinch.

Please Log in or Create an account to join the conversation.

More
04 Apr 2019 09:49 #130276 by andypugh
The attached HAL file says
loadrt hal_parport cfg="0xe010 out”
Is your actual HAL file corrupted like that?

Please Log in or Create an account to join the conversation.

More
04 Apr 2019 12:48 - 04 Apr 2019 12:57 #130279 by PCW
What is the actual problem, just the printed warning?

hal_parport is a very low level driver, AFAICT it does not need Linux driver
support at all (the port address = 0,1,2 shortcut would but that's about it)

edit: Also, what is the exact warning message?
Last edit: 04 Apr 2019 12:57 by PCW.

Please Log in or Create an account to join the conversation.

More
04 Apr 2019 14:13 - 04 Apr 2019 14:14 #130288 by oddwick

The attached HAL file says
loadrt hal_parport cfg="0xe010 out”
Is your actual HAL file corrupted like that?


no, i double checked and it must have gotten corrupted when i uploaded it or transferred it. i double checked on the box to make sure. it is a copy of the original hal file from my working box. the only thing that has been changed is the new address added. right now i have the startech port in it, but here in a few im going back to the shop and going to a complete listing of the error messages and all the exact details complete with pics.
Last edit: 04 Apr 2019 14:14 by oddwick.

Please Log in or Create an account to join the conversation.

More
04 Apr 2019 16:54 #130297 by oddwick
sorry, this will be a bit of a long post.

so here are the files and pics of the cards. the configuration is copied directly from a running machine, the differences are hardware and the old box is running wheezy and the new box is running stretch. it is a fresh install from the live cd, the only change is that it is upgraded to the 2.8 master.

old hardware:
core 2 duo, 2gb ram, onboard parport and pic parport, wheezy

new hardware:
ryzen 5, 8gb ram, syba and startech parports, stretch

originally, on the old box i was using 2.8.0-pre1-4572-g677d7b5 and after i tried the startech card i had unusual behavior (more on that later) so i updated to 2.8.0-pre1-4655-g39977ac31 this morning to eliminate variables. ran as expected.

output from original box:
Verbose mode on
RUN_IN_PLACE=no
LINUXCNC_DIR=
LINUXCNC_BIN_DIR=/usr/bin
LINUXCNC_TCL_DIR=/usr/lib/tcltk/linuxcnc
LINUXCNC_SCRIPT_DIR=
LINUXCNC_RTLIB_DIR=/usr/realtime-3.4-9-rtai-686-pae/modules/linuxcnc
LINUXCNC_CONFIG_DIR=
LINUXCNC_LANG_DIR=/usr/lib/tcltk/linuxcnc/msgs
INIVAR=inivar
HALCMD=halcmd
LINUXCNC_EMCSH=/usr/bin/wish8.5
LINUXCNC - 2.8.0-pre1-4572-g677d7b5

lspci -vvv

04:04.0 Communication controller: NetMos Technology PCI 9835 Multi-I/O Controller (rev 01)
	Subsystem: LSI Logic / Symbios Logic 1P2S
	Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Interrupt: pin A routed to IRQ 18
	Region 0: I/O ports at 1070 [size=8]
	Region 1: I/O ports at 1068 [size=8]
	Region 2: I/O ports at 1060 [size=8]
	Region 3: I/O ports at 1058 [size=8]
	Region 4: I/O ports at 1050 [size=8]
	Region 5: I/O ports at 1040 [size=16]
	Kernel driver in use: parport_serial


dmesg | grep par

[    0.004102] AppArmor: AppArmor disabled by boot time parameter
[    0.138523] hpet0: 3 comparators, 64-bit 14.318180 MHz counter
[    6.598860] PM: Hibernation image partition 8:5 present
[    7.142812] parport_pc 00:09: reported by Plug and Play ACPI
[    7.142845] parport0: PC-style at 0x378, irq 7 [PCSPP,TRISTATE,EPP]
[    7.266986] parport1: PC-style at 0x1060, irq 18 [PCSPP,TRISTATE,EPP]
[   10.984146] lp0: using parport0 (interrupt-driven).
[   10.984905] lp1: using parport1 (interrupt-driven).
[   10.996061] ppdev: user-space parallel port driver

output from new box with syba card:
lspci -vvv

05:00.0 Parallel controller: MosChip Semiconductor Technology Ltd. Device 9900 (prog-if 03 [IEEE1284])
	Subsystem: Device a000:2000
	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-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 5
	Region 0: I/O ports at e010 [size=8]
	Region 1: I/O ports at e000 [size=8]
	Region 2: Memory at f7601000 (32-bit, non-prefetchable) [size=4K]
	Region 5: Memory at f7600000 (32-bit, non-prefetchable) [size=4K]
	Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
	Capabilities: [78] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [80] Express (v1) Legacy Endpoint, MSI 00
		DevCap:	MaxPayload 512 bytes, PhantFunc 0, Latency L0s <1us, L1 <2us
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
		LnkCap:	Port #1, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
			ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp-
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- CommClk-
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
	Capabilities: [100 v1] Virtual Channel
		Caps:	LPEVC=0 RefClk=100ns PATEntryBits=1
		Arb:	Fixed- WRR32- WRR64- WRR128-
		Ctrl:	ArbSelect=Fixed
		Status:	InProgress-
		VC0:	Caps:	PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
			Arb:	Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
			Ctrl:	Enable+ ID=0 ArbSelect=Fixed TC/VC=01
			Status:	NegoPending- InProgress-
		VC1:	Caps:	PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
			Arb:	Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
			Ctrl:	Enable- ID=1 ArbSelect=Fixed TC/VC=00
			Status:	NegoPending- InProgress-
	Capabilities: [800 v1] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		AERCap:	First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-


cnc@cnc:~$ dmesg | grep par
[    0.000000] Booting paravirtualized kernel on bare hardware
[    0.007791] AppArmor: AppArmor disabled by boot time parameter
[    0.922612] acpi PNP0A08:00: [Firmware Info]: MMCONFIG for domain 0000 [bus 00-3f] only partially covers this bridge
[    0.984042] hpet0: 3 comparators, 32-bit 14.318180 MHz counter
[    1.723276] ahci 0000:01:00.1: SSS flag set, parallel bus scan disabled
[    1.723318] ahci 0000:01:00.1: flags: 64bit ncq sntf stag pm led clo only pmp pio slum part sxs deso sadm sds apst 
[    1.728563] ahci 0000:09:00.2: flags: 64bit ncq sntf ilck pm led clo only pmp fbs pio slum part sxs 
[    1.783817] xhci_hcd 0000:01:00.0: hcc params 0x0200ef81 hci version 0x110 quirks 0x00000418
[    1.785000] xhci_hcd 0000:08:00.3: hcc params 0x0270f665 hci version 0x100 quirks 0x00000418
[    3.246998] PM: Hibernation image partition 8:5 present
[    3.541025] ppdev: user-space parallel port driver

Also, what is the exact warning message?


the error i get when i run linuxcnc:
Linux parallel port @57360 not found
it complains, but ultimately it works. dont really trust it tho
when i use address "0 out", it crashes on startup with:
Debug file information:
Note: Using POSIX realtime
Linux parallel port #0 not found
hal_parport: rtapi_app_main: No such file or directory (-2)
./chibi_usaga.hal:7: waitpid failed /usr/bin/rtapi_app hal_parport
./chibi_usaga.hal:7: /usr/bin/rtapi_app exited without becoming ready
./chibi_usaga.hal:7: insmod for hal_parport failed, returned -1
1450

i guess my understanding is that even tho the os doesnt recognize it as a true parallel port, linuxcnc can still address it directly? pretty spiffy.

so after i put in the startech card, this is the output:
lspci -vvv

05:00.0 Parallel controller: Oxford Semiconductor Ltd Device c110 (prog-if 02 [ECP])
	Subsystem: Oxford Semiconductor Ltd Device c110
	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-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 31
	Region 0: I/O ports at e010 [size=8]
	Region 1: I/O ports at e000 [size=4]
	Capabilities: [40] Power Management version 3
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
	Capabilities: [70] Express (v1) Legacy Endpoint, MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <128ns, L1 <2us
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s unlimited, L1 unlimited
			ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp-
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
	Capabilities: [100 v1] Device Serial Number 00-30-e0-11-11-00-01-10
	Capabilities: [110 v1] Power Budgeting <?>
	Kernel driver in use: parport_pc
	Kernel modules: parport_pc

dmesg | grep par

0.000000] Booting paravirtualized kernel on bare hardware
[    0.007749] AppArmor: AppArmor disabled by boot time parameter
[    0.947038] acpi PNP0A08:00: [Firmware Info]: MMCONFIG for domain 0000 [bus 00-3f] only partially covers this bridge
[    1.008753] hpet0: 3 comparators, 32-bit 14.318180 MHz counter
[    1.468066] xhci_hcd 0000:01:00.0: hcc params 0x0200ef81 hci version 0x110 quirks 0x00000418
[    1.469206] ahci 0000:01:00.1: SSS flag set, parallel bus scan disabled
[    1.469241] ahci 0000:01:00.1: flags: 64bit ncq sntf stag pm led clo only pmp pio slum part sxs deso sadm sds apst 
[    1.469252] xhci_hcd 0000:08:00.3: hcc params 0x0270f665 hci version 0x100 quirks 0x00000418
[    1.484800] ahci 0000:09:00.2: flags: 64bit ncq sntf ilck pm led clo only pmp fbs pio slum part sxs 
[    3.005576] PM: Hibernation image partition 8:5 present
[    3.353273] ppdev: user-space parallel port driver
[    3.359192] PCI parallel port detected: 1415:c110, I/O at 0xe010(0xe000), IRQ 31
[    3.359491] parport0: PC-style at 0xe010 (0xe000), irq 31 [PCSPP,TRISTATE,EPP]
[    3.463724] lp0: using parport0 (interrupt-driven).

so now it shows that i have a parallel port, and i can address it either by address or by shortcut, but now i have odd (REALLY BAD) behavior... for the homing sequence (XYZ on a XYYZ gantry), x homes normally, and only y1 homes while y0 is stationary (you can see how that doesnt end well...). luckily y axis was already homed and so only just past switches so no permanent damage done, but linuxcnc was stalled waiting for the homing sequence for y to complete.

while i dont have much knowledge in low level hardware, i was lead to believe that the os handled port to hardware address translation, so regardless of whether the parport is pci or pcie, the os should still see it as a parport and the addresses should still be the same? or am i going to have to redo the config files for the machine?

sorry for the long post, but had a lot of details to get out and thanks for all the replies! just in case, i am including my config directory.

File Attachment:

File Name: chibi_usag...4-04.zip
File Size:10 KB

File Attachment:

File Name: linuxcnc.report.txt
File Size:63 KB

File Attachment:

File Name: chibi.txt
File Size:2 KB

File Attachment:

File Name: startech.txt
File Size:3 KB

File Attachment:

File Name: syba.txt
File Size:4 KB

Please Log in or Create an account to join the conversation.

More
04 Apr 2019 17:03 - 04 Apr 2019 17:05 #130300 by oddwick
here are pictures of both of the cards i received and the output of lspci was in the previous post. not sure how you tell if this is a genuine pex card or not...
the syba card-




the startech card-


Last edit: 04 Apr 2019 17:05 by oddwick. Reason: pics in wrong order

Please Log in or Create an account to join the conversation.

More
04 Apr 2019 17:17 #130301 by PCW

it complains, but ultimately it works. dont really trust it tho
when i use address "0 out", it crashes on startup with:


hal_parport makes _no_ use of the linux parallel port driver so as long as the card operates,
it should be fine

( heck, you might be better off if Linux doesn't know about the card )

If the Linux OS did not find the card its expected that the port 0,1,2 shortcut cannot work so
its not a crash, just inability to find the parallel port base address from the OS index

The only case where its necessary for Linux's driver to initialize the card is
with broken parallel port hardware that requires non-standard initialization to work

Please Log in or Create an account to join the conversation.

Time to create page: 0.375 seconds
Powered by Kunena Forum