Missing hal_vti in build

More
10 Apr 2020 20:45 #163528 by cptnmidnight
How do I build drivers?

I have been working on a new build to convert a lathe from mdsi to linuxcnc. I have spent days trying to figure out the build system for linuxcnc. I do have many years experience in linux.

This is the specs:
Linux 4.9.0-12-rt-amd64 #1 SMP PREEMPT RT Debian 4.9.210-1 (2020-01-20) x86_64 GNU/Linux
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
linuxcnc 2.9.0~pre0 (fresh git pull)

Tried building both RIP and deb with uspace option.
I end up with a mostly working linuxcnc in both cases. I do NOT get a driver for hal_vti.

Output:
Found file(REL): ./vti_motion.hal
hal_vti: dlopen: /usr/lib/linuxcnc/modules/hal_vti.so: cannot open shared object file: No such file or directory
./vti_motion.hal:6: waitpid failed /usr/bin/rtapi_app hal_vti
./vti_motion.hal:6: /usr/bin/rtapi_app exited without becoming ready
./vti_motion.hal:6: insmod for hal_vti failed, returned -1
Shutting down and cleaning up LinuxCNC...

/linuxcnc-dev/src/hal/drivers$ ls
bcm2835.h          hal_ax5214h.c  hal_parport.c         hal_speaker.c  hal_vti.h       opto_ac5.c      pluto_servo.comp      serport.comp
beaglebone_gpio.h  hal_bb_gpio.c  hal_pi_gpio.c         hal_stg.c      mesa_7i65.comp  opto_ac5.h      pluto_servo_firmware  Submakefile
cpuinfo.c          hal_evoreg.c   hal_pi_gpio_demo.hal  hal_stg.h      mesa-hostmot2   pci_8255.c      pluto_step.comp
cpuinfo.h          hal_gm.c       hal_ppmc.c            hal_tiro.c     mesa_uart.comp  pcl720.comp     pluto_step_firmware
gm.h               hal_motenc.c   hal_skeleton.c        hal_vti.c      motenc.h        pluto_common.h  rbf2h.py

hal_vti.h and hal_vti.c are included in the source code but do not build or install
halcmd: loadrt
Display all 164 possibilities? (y or n)
5axiskins          conv_bit_u32       gantry             joyhandle          mult2              sampler            thcud
abs                conv_float_s32     gearchange         knob2float         multiclick         scale              threads
abs_s32            conv_float_u32     genhexkins         latencybins        multiswitch        scarakins          threadtest
and2               conv_s32_bit       genserkins         lcd                mux16              scope_rt           time
at_pid             conv_s32_float     gray2bin           limit1             mux2               scorbot-kins       timedelay
axistest           conv_s32_u32       hal_bb_gpio        limit2             mux4               select8            timedelta
bin2gray           conv_u32_bit       hal_gm             limit3             mux8               serport            toggle
biquad             conv_u32_float     hal_lib            lincurve           mux_generic        setsserial         toggle2nist
bitslice           conv_u32_s32       hal_parport        lineardeltakins    near               siggen             tripodkins
bitwise            corexy_by_hal      hal_pi_gpio        logic              not                sim_axis_hardware  tristate_bit
bldc               corexykins         hal_ppmc           lowpass            offset             sim_encoder        tristate_float
bldc_hall3         counter            histobins          lut5               ohmic              sim_home_switch    trivkins
blend              ddt                hm2_7i43           maj3               oneshot            sim_matrix_kb      updown
boss_plc           deadzone           hm2_7i90           match8             or2                sim_parport        watchdog
carousel           debounce           hm2_eth            matrix_kb          orient             sim_spindle        wcomp
charge_pump        demux              hm2_pci            max31855           pentakins          simple_tp          weighted_sum
clarke2            differential       hm2_rpspi          maxkins            pid                sphereprobe        xhc_hb04_util
clarke3            edge               hm2_spi            mesa_7i65          plasmac            spindle_monitor    xor2
clarkeinv          encoder            hm2_test           mesa_pktgyro_test  pumakins           stepgen            xyzac-trt-kins
classicladder_rt   encoder_ratio      hostmot2           message            pwmgen             steptest           xyzbc-trt-kins
comp               eoffset_per_angle  hypot              minmax             rosekins           streamer
constant           estop_latch        ilowpass           modmath            rotarydeltakins    sum2
conv_bit_float     feedcomp           integ              motmod             rotatekins         supply
conv_bit_s32       flipflop           invert             moveoff            sample_hold        thc

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

More
10 Apr 2020 23:04 #163537 by scotta
Replied by scotta on topic Missing hal_vti in build
Hi,

You can always manually install using halcompile.

/linuxcnc-dev/src/hal/drivers$ halcompile --install hal_vti.c

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

More
11 Apr 2020 00:52 - 11 Apr 2020 09:35 #163551 by cptnmidnight
Sorry, I left out that I had tried that already. Halcompile does not seem to know where to find the kernel headers. I get a failure with asm/io.h not found
/linuxcnc-dev/src/hal/drivers$ halcompile --install hal_vti.c
Compiling realtime hal_vti.c
hal_vti.c:155:20: fatal error: asm/io.h: No such file or directory
 #include <asm/io.h>
                    ^
compilation terminated.
/usr/share/linuxcnc/Makefile.modinc:113: recipe for target 'hal_vti.o' failed
make: *** [hal_vti.o] Error 1

I do have the headers installed, I've been playing with symlinks and folder names just can't quite get this to work.
find /usr/src/ -iname io.h
/usr/src/linux-headers-4.9.0-12-common-rt/arch/x86/include/asm/io.h
/usr/src/linux-headers-4.9.0-12-common-rt/include/linux/io.h
/usr/src/linux-headers-4.9.0-12-common-rt/include/asm/io.h
/usr/src/linux-headers-4.9.0-12-rt-amd64/include/config/generic/io.h
/usr/src/linux-headers-4.9.0-12-rt-amd64/include/config/fb/deferred/io.h
Last edit: 11 Apr 2020 09:35 by cptnmidnight.

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

More
18 Apr 2020 01:38 - 18 Apr 2020 17:12 #164380 by cptnmidnight
I found an old iso running version 2.5 32 bit. The hal loads but appears the expansion boards are not supported. Guess I will be dumping this controller and moving on to a centroid oak.

Edit:
This has nothing to do with linuxcnc's lack of support for antique, exotic, and rare hardware, I just hoped to be able to use the existing hardware in this lathe. Since it is so bloody old and unsupported, I have to replace the hardware.
I could try justify spending thousands on linuxcnc compatible hardware and spend weeks learning how to make that work or go with Centroid OAK or AIO and be up and running in hours.
I don't want to appear ungrateful, I just don't have the programming talent to write drivers that I would trust in a production system worth hundreds of thousands.
Last edit: 18 Apr 2020 17:12 by cptnmidnight. Reason: Original post might have sounded a little pithy

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

Time to create page: 0.068 seconds
Powered by Kunena Forum