Forum > Linux

Program runs on 32-bit machine from LinuxLazrus IDE, but not on 64-bit Machine


Curt Carpenter:
I have a Lazarus program running under Ubuntu 18.03 on both a 32-bit and a 64-bit machine.  On the 32-bit machine, I can execute "MyProgram" using "run" directly from the IDE in user mode.  On the 64-bit machine though, I can only run the program by opening a terminal, making my self root and then executing "./MyProgram" .  Can anyone tell me what I need to do to make my program run directly from the Lazarus IDE on the 64-bit box? 

My source compiles correctly on both machines, and runs correctly on both. It just requires me to be root on the 64-bit box.  It uses the libusb library {$linklib usb} which presents no problems on the 32-bit machine and the Lazarus IDE, but my USB instructions all fail on the 64-bit box.

Any help appreciated.  I would like to be able to run the program as a normal user on both machines.  I figure there is a project option or Linux option that is preventing this.

libusb permission issue?

Alternatively, a permission issue on the specific device on the 64-bit machine, i.e. the 32-bit machine has a udev rule for it while the 64-bit one doesn't.

In the absence of error messages, kernel log entries etc. it's impossible to say more.


Curt Carpenter:
Thank you both for the inputs.  I have the same udev rule for my hardware installed on both machines, and both by 32- and 64-bit machines are able to communicate with the hardware -- just that the 64-bit machine requires that my software be run in root, while the 32-bit lets me run as a normal user. 

I will check out the link to the Ubuntu thread.

Both replies much appreciated -- thanks again.

As a temporary hack, it might be worth investigating whether there's a POSIX capability which would help.

Alternatively... are you sure that your normal user is a member of dialout, plugdev, input and so on? What sort of device is it?



[0] Message Index

Go to full version