Я пытаюсь заставить устройство BU-353 GPS работать над Ubuntu 16.04 LTS через GPSD. Когда я работал cgps
Меня встретили ошибкой из-за тайм-аута.
Я предположил, что что-то было неправильно с GPS, потому что я не использовался в некоторое время, таким образом, я работал gpsmon
. Gps получил закрепление на нескольких saltiles и получал мой lat и долго.
Это приводит меня полагать, что что-то должно быть неправильным в стороне GPSD, таким образом, я выполнил команду gpsd -N -D3 -F /dev/ttyUSB0
. Я был встречен:
gpsd:ERROR: can't bind to local socket /dev/ttyUSB0
gpsd:ERROR: control socket create failed, netlib error -1
Даже когда я направил GPSD к сокету с gpsd -N -D3 -F /var/run/gpsd.sock /dev/ttyUSB0
, (код, снятый непосредственно с GPSD, диагностирует страницу), я все еще получал ту же ошибку.
У меня нет подсказки, что идет не так, как надо. Я очень плохо знаком с GPSD и не очень доволен Ubuntu в более общем плане поэтому, возможно, я делаю простую ошибку. Любая справка значительно ценится.
Это - полномочия - получают ту же ошибку на малине, которая просто добавляет/выполняет команду с sudo/root полномочиями.
sudo gpsd/dev/ttyusb0-F/var/run/gpsd.sock
BU-353 должен работать из поля с gpsd. Но у Вас есть несколько вещи, продолжающиеся,
sudo service gpsd stop
) Вы будете преследовать хвост. -F
Создает сокет управления для команд дополнения и удаления устройства. Это должен быть допустимый путь в Вашей локальной файловой системе. Сомнительно, что Ваш сокет управления возможно был бы gps USB, который Вы пытаетесь считать. Обычно сокет управления /var/run/gpsd.sock
но мог быть /tmp/anything
sudo gpsd -N -D3 -F /var/run/gpsd.sock
работы, в то время как gpsd -N -D3 -F /var/run/gpsd.sock
перестанет работать, потому что непривилегированный пользователь не может записать в сокет управления. Аналогично, gpsd -N -D3 -F /tmp/when_pigs_fly
должен работать. (Но, ни один не будет работать, если gpsd будет уже работать.) Дополнительно необходимо рассмотреть дополнительные инструкции в /etc/default/gpsd
Например,
# Default settings for the gpsd init script and the hotplug wrapper.
# Start the gpsd daemon automatically at boot time
START_DAEMON="true"
# Use USB hotplugging to add new USB devices automatically to the daemon
USBAUTO="true"
# Devices gpsd should collect to at boot time.
# They need to be read/writeable, either by user gpsd or the group dialout.
DEVICES="/dev/ttyACM0"
# Other options you want to pass to gpsd
GPSD_OPTIONS=""
Они представлены в /lib/systemd/system/gpsd.service
как EnvironmentFile
Первая строка бесполезна. systemd
является главным и не разветвляется от процесса. Это работает с -N
флаг.
Я установил USBAUTO = "верный" потому что использование gpsd udev
и замена в горячем режиме довольно прозрачна-. Включите что-то, что это - gps, и он работает. Если это не gps, это занимается своим собственным делом.
Но я действительно кодирую в месте gps, с которым я в настоящее время работаю. Поскольку, останавливаться/перезапускать gpsd без перезагрузки, gpsd не будет 'знать' о gps в /dev/ttyACM0
(или везде, где это) без события замены в горячем режиме. Я кодирую в месте, чтобы не иметь к ООН/разъему gps каждый раз, когда я перезапускаю gpsd без перезагрузки.
Другое GPSD_OPTIONS=
мог включать -n
-G
или -b
по Вашему усмотрению.
Кроме того, существуют другие тестовые клиенты (xgps
) это более устойчиво для проверки вывода gps, но это должно получить Вас, указал в правильном направлении.