Glad to know you got it running. Clear skies!


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

And lets see what happens then when running kstars as root...

On the other hand, I tried to run some tests and see if there are system messages related to the driver being unable to open the camera when running unprivileged, but none at all. The only I can say is that trying to run as non-root fails:
QHY Test CCD using SingleFrameMode, Version: 1.00
QHYCCD|QHYCCD.CPP|InitQHYCCDResourceInside|    InitQHYCCDResourceInside   END
QHYCCD|QHYCCD.CPP|DeviceIsLIBUSBQHYCCD|vid = 1618 pid = 941
Open QHYCCD error
SDK resources initialized.
No QHYCCD camera found, please check USB or power.

The same as root, succeeds. So I'll stick with the crude shell script solution, that is working so far...


There shouldn't be a permission issue since the 85-qhyccd.rules file would correctly set the USB permission for all QHY cameras.

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...

What should I do ?

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:
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
Please note that sudoers file should only be edited by using the "visudo" command, or you risk losing privileged access to the computer if you make any mistakes.

Then it works. It will be rewritten by next driver update, of course, and leaving indi_qhy_ccd_binary file. If the new driver works without issue, that's it, you can delete this file. If not you can still delete it, rename the new indi_qhy_ccd, and re-create the shell script.

As a note to developers, I also tried setting the setuid bit of indi_qhy_ccd, but that did not work. It worked setting it in qhy_ccd_test though...


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:

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.