Need help trying to build and install custom components

More
02 May 2023 08:16 - 02 May 2023 08:20 #270454 by JPL
Well, I have linuxcnc-uspace-dev installed (2.8.4)
I can also see that halcompile is 'trying' to do something
BUT
I just can't find on my computer the linuxcnc/src/hal/components folder where I should place my .comp file
(feeling dumb)

Ref; Doc "The Hal components Generator" section 12 : "Place the .comp file in the source directory linuxcnc/src/hal/components ..."

What am I missing???

 
Last edit: 02 May 2023 08:20 by JPL. Reason: typo

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

More
02 May 2023 08:34 #270455 by Aciera
you need to point 'halcompile' to the component file:

halcompile --install <your_path>/<your_comp>.comp

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

More
02 May 2023 08:50 #270456 by JPL
halcompile itself appear to work but I always get some error.

With this test component
component test               "This is a test component";

pin in bit testinbit;
pin in s32 testins32;
pin out bit testoutbit;
pin out s32 testouts32;
param rw s32 testrwparam = 0;

// internal variables

variable bool testbool = false;
variable float testfloat = 0;
variable int progress_level = 0;
function _;
author "ArcEye ";
license "GPL";
;;

FUNCTION(_)
{
    switch (progress_level)
        {
        case 0:
                 break;
        default:    
                rtapi_print_msg(RTAPI_MSG_ERR, "Unknown state");            
                break;
        }
}

I get
jpl@jpl:~/linuxcnc$ halcompile --install test.comp
Compiling realtime test.c
Linking test.so
cp test.so /usr/lib/linuxcnc/modules/
cp: cannot create regular file '/usr/lib/linuxcnc/modules/test.so': Permission denied
make: *** [/usr/share/linuxcnc/Makefile.modinc:105: install] Error 1
 

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

More
02 May 2023 08:53 #270457 by JPL
Now, with something with some #includes like this
...
#include "motion.h"
#include "homing.h"
...

I get
jpl@jpl:~/linuxcnc$ halcompile --install u3000homecomp.comp
Compiling realtime u3000homecomp.c
u3000homecomp.comp:60:10: fatal error: homing.h: No such file or directory
compilation terminated.
make: *** [/usr/share/linuxcnc/Makefile.modinc:115: u3000homecomp.o] Error 1

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

More
02 May 2023 09:00 #270458 by JPL
Ok, For the 'test.comp' this is working with sudo halcompile.
jpl@jpl:~/linuxcnc/src/hal/components$ sudo halcompile --install test.comp
[sudo] password for jpl:
Compiling realtime test.c
Linking test.so
cp test.so /usr/lib/linuxcnc/modules/

Does that make sense?

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

More
02 May 2023 09:03 #270459 by JPL
But for the u3000homecomp.comp I still have an error related to the include files
jpl@jpl:~/linuxcnc/src/hal/components$ sudo halcompile --install u3000homecomp.comp
Compiling realtime u3000homecomp.c
u3000homecomp.comp:60:10: fatal error: homing.h: No such file or directory
compilation terminated.
make: *** [/usr/share/linuxcnc/Makefile.modinc:115: u3000homecomp.o] Error 1

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

More
02 May 2023 09:11 #270461 by Aciera
Not sure, I only work with rip installations. We need somebody who is more familiar with your situation.
The following user(s) said Thank You: JPL

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

More
02 May 2023 09:17 - 02 May 2023 09:20 #270462 by JPL
Do you think I need a RIP install to build components?

I just can't find anywhere where it is saying that but looking at my folders it seems that I'm in fact missing a few things... For example I have motion.h in my /usr/include/linuxcnc/ folder but homing.h is definitively not there.


 
Last edit: 02 May 2023 09:20 by JPL.

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

More
02 May 2023 09:42 #270465 by rodw
If you have a deb install, you need to use sudo so it can copy the executable into the system folders a user does not have write access to.
you just need to install the linuxcnc-uspace-dev package which it sounds like you have done.

But a deb install does not install the source. You would need to run a RIP build if you are compiling internal stuff like a homecomp to access the source. You can do this even if you have a deb install.
The following user(s) said Thank You: JPL

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

More
02 May 2023 09:57 #270466 by JPL

If you have a deb install, you need to use sudo so it can copy the executable into the system folders a user does not have write access to. you just need to install the linuxcnc-uspace-dev package which it sounds like you have done.
 

Yes, that appear to be the case about sudo , also linuxcnc-uspace-dev is installed and halcompile appear to work too.

But a deb install does not install the source.

Which certainly explain the problem I have about the includes files

You would need to run a RIP build if you are compiling internal stuff like a homecomp to access the source. You can do this even if you have a deb install.


Can you provide some pointers about how to do this with a deb install? 
 

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

Time to create page: 0.123 seconds
Powered by Kunena Forum