LinuxCNC will not run after StepConf
Linux CNC was running great, I had virtual configurations set up to practice using G-code/etc until my parts arrived.
I installed the drivers for my parallel port pci card and using 'lspci -v' saw that the card was registered with the OS.
Linux CNC still worked after that.
I ran a stepConf to include the address of my parallel port, and now Linux CNC crashes no matter what project I open, even sample projects.
I have attached my crash output and config folder for the project.
Thanks in advance!!!!
Please Log in or Create an account to join the conversation.
[ 1783.802503] PARPORT: ERROR: request_region(0xe000) failed
Please Log in or Create an account to join the conversation.
I installed the drivers for my parallel port pci card and using 'lspci -v' saw that the card was registered with the OS.
There are no drivers required for parport cards, any you install will conflict with the linuxcnc drivers, which may be the origin of this error
insmod: error inserting '/usr/realtime-2.6.32-122-rtai/modules/linuxcnc/hal_parport.ko': -1 Device or resource busy
Remove the drivers and try again
If no joy, run lspci -vv (2 v's) again and post the output section for your card.
Not impossible that 0xe000 is a data register and the port is whatever address is also listed, normally have a pair of addresses for each port, only one of which is the actual address.
regards
Please Log in or Create an account to join the conversation.
So if the card doesn't require drivers does that mean its a direct pin to pin connection from the pci bus to the card? I guess I don't follow how the electrical connections work out without a driver. (I believe you, I'm just curious on the how).
Thanks for the swift response.
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
After running 'sudo lspci -vv' I get the follow output for my parport card:
02:08.0 Parallel controller: NetMos Technology PCI 9865 Multi-I/O Controller (prog-if 03)
Subsystem: Device a000:2000
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-
Latency: 32, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 10
Region 0: I/O ports at e400 [size=8]
Region 1: I/O ports at e000 [size=8]
Region 2: Memory at febde000 (32-bit, non-prefetchable) [size=4K]
Region 4: Memory at febdd000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [48] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot-,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=1 PME-
02:08.2 Parallel controller: NetMos Technology PCI 9865 Multi-I/O Controller (prog-if 03)
Subsystem: Device a000:2000
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-
Latency: 32, Cache Line Size: 64 bytes
Interrupt: pin C routed to IRQ 10
Region 0: I/O ports at d800 [size=8]
Region 1: I/O ports at d400 [size=8]
Region 2: Memory at febdc000 (32-bit, non-prefetchable) [size=4K]
Region 4: Memory at febdb000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [48] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot-,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=1 PME-
The card has two different parports on it. Which I assume accounts for the two different entries. When I check the parport pins themselves I see a voltage on pins 10,11,12,13,15 as I am supposed to for the input pins.
The problem I'm having now is that when I run the sample G-code in LinuxCNC I don't see any voltage changes on any of the pins. I have tried all 4 possible addresses: 0xd400, 0xd800, 0xe400, and 0xe000 with no luck on seeing any of the pins give a voltage.
Attached are my current .hal and .ini files
Thanks for your responses so far. Its been really encouraging and hopeful knowing that people are actively using these forums.
===== EDIT =====
I have now tried JT's port tester with no luck. I have tried all the following configurations with no luck:
"0x378 0xd400 out"
"0x378 0xd800 out"
"0x378 0xe400 out"
"0x378 0xe000 out"
"0xd400 out"
"0xd800 out"
"0xe400 out"
"0xe000 out"
Please Log in or Create an account to join the conversation.
have now tried JT's port tester with no luck. I have tried all the following configurations with no luck:
"0x378 0xd400 out"
"0x378 0xd800 out"
"0x378 0xe400 out"
"0x378 0xe000 out"
Have you got a built in parport? Where does 0x378 come from?
The most like port addresses are 0xe000 and 0xd400 on the basis that netMos cards tend to display the port second, you will note that actually the first address is higher than the second.
If the second port is off a flyer cable, that may well be the lower of the 2 numbers (0xd400). Don't ask me why, that is how it is on the cards I have.
Forget stepconf and just edit the line in your hal file to read either
loadrt hal_parport cfg="0xe000 0xd400 out"
or
loadrt hal_parport cfg="0xe400 0xd800 out"
and test
To use the port tester you need to put a voltmeter between the relevant output pin (beware of the mirror effect and triple check the pin number is right when viewed from the correct side) and pins 18-25 which are ground.
The LED lighting on the tester means nothing, except that the button was pressed
regards
Please Log in or Create an account to join the conversation.
You're a lifesaver. It turns out the addresses 0xe400 and 0xd800.
Looks like success should be happening very soon.
Looking at the outputs when the G-code is running I can see the direction pins changing appropriately, but the step pins do not seem to be showing any values. Is the "setp parport.0.pin-01-out-reset 1" line necessary or is it what's causing the problem in my .hal file. I tried taking those lines out with no luck.
Are the step pins high when the axis direction is moving? Or is this toggling for each "step" and my multimeter just can't keep up?
Any enlightenment on this issue would be appreciated.
Thanks!
Please Log in or Create an account to join the conversation.
you may even have to slow the output step freq down to be able to see any step pin change
if all the other pins are working , i'd take it that they all are including the stepgen , if your not getting any reported errors in a terminal window
Please Log in or Create an account to join the conversation.
ArcEye,
You're a lifesaver. It turns out the addresses 0xe400 and 0xd800.
Looks like success should be happening very soon.
Glad you got it together
I had virtual configurations set up to practice using G-code/etc until my parts arrived.
Unfortunately there is a limit to what you can test without anything attached to the machine.
If you can open Machine > Hal Configuration and see the parports with the relevant pins, that is all you need until you start connecting them to drivers and motors.
As cncbasher says, you are hardly going to detect multi kHz pulses using a voltmeter, the dir pins work so that should reassure you
regards
Please Log in or Create an account to join the conversation.