You are probably right, and the driver is crashing because of the updated SDK. But now it sees your camera and tries to initialize it, and that's good. I think the fastest way to get the proper sdk would be to get it from indi repository again. And the driver also, just to be sure... You could try this:
sudo apt install --reinstall -y indi-qhy libqhy
qhy_ccd_test
QHY Test CCD using SingleFrameMode, Version: 1.00
QHYCCD|QHYCCD.CPP|InitQHYCCDResource| START
QHYCCD|QHYCCD.CPP|InitQHYCCDResourceInside|InitQHYCCDResourceInside START
QHYCCD|QHYCCD.CPP|InitQHYCCDResourceInside| InitQHYCCDResourceInside END
QHYCCD|QHYCCD.CPP|ScanQHYCCD|START
QHYCCD|QHYCCD.CPP|DeviceIsLIBUSBQHYCCD|vid = 1618 pid = 941
Open QHYCCD error
QHYCCD|QHYCCD.CPP|InitQHYCCDResource| END
SDK resources initialized.
No QHYCCD camera found, please check USB or power.
I don't think either the problem are USB permissions. What I think is the QHY closed source library is trying to do something for which it needs superuser privileges. No idea what could it be. Accessing shared memory, system calls... Who knows. You not having the problem could be because of different kernel, or even different distros or releases. The fact remains that I can't open the Polemaster when running indi_qhy or qhy_ccd_test as a normal user, and that happened after an update that upgraded the libqhy version. On the other side, they happily run as root, or with the SETUID bit enabled in the case of qhy_ccd_test. No problem opening the stream or capturing frames as root. I do not have access to the hardware today, I'll try to grab it tomorrow, run some tests and dig into the logs...There shouldn't be a permission issue since the 85-qhyccd.rules file would correctly set the USB permission for all QHY cameras.
You could try running kstars as root and see if that does the trick. You probably know how to do it, but just in case you don't, open a terminal and execute the following:What should I do ?
sudo kstars
Hi! Wrote a long and detailed answer and got lost when tried to send it... So I'll make it short this time...
Same problem with Polemaster and Astroberry server. Tracked down to permissions problem (probably within the QHY SDK?). One solution is to run kstars as root. A more elegant one is to run only indi_qhy_ccd as root. What I did is rename indi_qhy_ccd (i.e. indi_qhy_ccd_binary), create a shell script with this name that calls "sudo indi_qhy_ccd_binary", and add the script to the sudoers file with no password flags. Line could be something like this:
ALL = (root) NOPASSWD:/usr/bin/indi_qhy_ccd_binary
Hi! Same problem here with a Polemaster and Astroberry Server. I finally tracked it to a permissions issue. When I run kstars as root, it connects to the camera.
I suspect it has something to do with the QHY SDK, as in the QHYCCD web they state that the Polemaster software for rpi has to run as root. That's what I have done to temporary patch this issue:
1- Go to /usr/bin and rename driver file indi_qhy_ccd to something else. In my case, indi_qhy_ccd_binary:
#cd /usr/bin
#sudo mv indi_qhy_ccd indi_qhy_ccd_binary
2- Edit a new shell script file named indi_qhy_ccd. I used vi, you can use a fancier editor if you like it more. I'm afraid I'm old school
#sudo vi indi_qhy_ccd
with these contents:
#!/bin/bash
sudo indi_qhy_ccd_binary
3- Make it executable:
#sudo chmod 755 indi_qhy_ccd
4- Modify /etc/sudoers to not ask for password when executing the script. This has to be done using the "visudo" command. DO NOT use any other editor or you risk losing root access to the computer if file ends with syntax errors.
#sudo visudo
Best way to do this will depend on distro. But adding to the end of the file this should work in most, if not any of them:
ALL ALL = (root) NOPASSWD:/usr/bin/indi_qhy_ccd_binary
In my case, what I did is:
%sudo ALL = (root) NOPASSWD:/usr/bin/indi_qhy_ccd_binary
This means that members of group sudo can execute /usr/bin/indi_qhy_ccd_binary as root without being asked for password.
After that, I'm able to connect to my polemaster executing kstars as non-privileged user.
Please note that this approach has some problems/limitations. In first place, we will be calling the closed-source QHYSDK as root. If you have any problem with that and still want to go ahead, you should do it in a machine only used for imaging and disconnected from the Internet, or in a virtual machine or docker container. And secondly, the next indi_qhy_ccd update will overwrite the newly created shell script. It can solve the issue, or not. In case not, we always could rename it again and re-create the shell script (or keep a copy in our homedir)
Note for developers: First approach I tried was setting the setuid bit in indi_qhy_ccd. For some reason, it dit not work. But setting it in qhy_ccd_test did.
Read More...