У меня была та же проблема некоторое время назад (5 месяцев ), и вчера я наткнулся на эту страницу
Первые несколько комментариев покажут вам, как реализовать PIN-код для Bluetooth на Pi. У меня это сработало после того, как я установил это(Я установил это перед изменением некоторых файлов для реализации PIN-кода.
В основном процедура следующая:
в /etc/apt/sources.list , раскомментируйте строку, начинающуюся с "deb -src" После этого выполните sudo apt-get update
и cd /usr/src; sudo apt-get source bluez
.
В файле /usr/src/bluez-5.23/test/simple-agent
изменить эту часть :return ask("Enter PIN Code: ")
В следующее return "1234"
, где 1234 — пин-код, который вы хотите использовать.
После этого вы создаете следующий скрипт в /usr/bin , назовем его btscript.sh:
#!/bin/sh
result=`ps aux | grep -i "simple-agent" | grep -v "grep" | wc -l`
if [ $result -ge 0 ]; then
sudo hciconfig hci0 piscan
sudo hciconfig hci0 sspmode 0
sudo /usr/bin/python /usr/src/bluez-5.23/test/simple-agent &
else
echo "BT Agent already started"
fi
Сделать этот скрипт исполняемым с sudo chmod +x
Добавить эту строку перед exit 0
в файл/etc/rc.local
:/usr/bin/btscript.sh
После этого перезагрузите компьютер:sudo reboot
Вы должны иметь возможность подключиться к Pi с помощью PIN-кода.
Хотя, как упоминалось здесь , вы сможете увидеть свой Pi с iOS-устройством, но только один раз, поэтому не заставляйте свое устройство забывать свой Pi, иначе вы не сможете подключиться к этому больше.
Чтобы противостоять этому, создайте скрипт с именем, например bt _iphone.sh , и поместите в него этот код:
#!/bin/sh
sudo hciconfig hci0 sspmode 1 # Activate SSP which is the current standard
# for bluetooth pairing, this will make the RPi discoverable again but
# with a passkey instead of a PIN code
echo -e 'power off\n quit ' | bluetoothctl # Make the RPi undiscoverable
sleep 5
echo -e 'power on\n quit ' | bluetoothctl # Make the RPi discoverable again
sleep 1
sudo hciconfig hci0 sspmode 0 # Deactivate SSP and activate PIN code authentication
exit 0
Сделайте его исполняемым с помощью sudo chmod +x bt_iphone.sh
и выполняйте этот скрипт каждую минуту с помощью crontab:crontab -e
и в конце файла :* * * * * sudo bash /path/to/bt_iphone.sh
Это не очень элегантно, но вроде работает. Если у кого-то есть лучшее решение этой последней проблемы, я открыт для предложений.
Проблема по-прежнему сохраняется (снова только с iDevices ), время ожидания PIN-кода истекло,что делает невозможным подключение, если вы не ввели и не подтвердили PIN-код в течение 3 секунд после отображения экрана PIN-кода. Я еще не нашел обходного пути для этого.
127 es un comando no encontrado.
Asegúrese de que el usuario raíz tenga acceso al binario del nodo; de lo contrario, cambie las siguientes líneas con el usuario para el que ha instalado el nodo
User=root
Group=root
Si no Intenta seguir
[Unit]
Description="ServiceName"
After=network.target
[Service]
ExecStart=path_to_node/node /home/pi/projects/ServiceName/app.js
Restart=always
# Restart service after 10 seconds if node service crashes
RestartSec=10
# Output to syslog
StandardOutput=syslog
StandardError=syslog
#Change this to find app logs in /var/log/syslog
SyslogIdentifier=nodejs-api
# Followig will require if you are using the PORT or Node from Envirnoment
Environment=NODE_ENV=production PORT=3000
[Install]
WantedBy=multi-user.target
Una vez que la máquina del servidor esté activa y no pueda acceder al servidor, solucione el problema revisando los registros de /var/log/syslog con el siguiente comando
sudo grep "nodejs-api" /var/log/syslog
Iniciar en el arranque:sudo systemctl enable Rocketch
ExecStart=/home/pi/projects/ServiceName/app.js
Это говорит systemd
запустить app.js
напрямую. Является ли этот файл .js
непосредственно исполняемым? В противном случае оболочка выдаст код выхода 127 -«Неизвестная команда».
Привет всем, кто заинтересован, у меня была эта проблема, и я перепробовал все на свете, но в итоге обновление с Node 6 до Node 12 решило проблему.
Для тех, кто использует NVM. попробуй это
ExecStart=/home/<you_username>/.nvm/versions/node/<node_version>/bin/node /home/<you_username>/.nvm/versions/node/<node_version>/bin/verdaccio --config /home/<you_username>/.config/verdaccio/config.yaml