links
user(sudo -i)
adduser kiosk
sudoapt install libusb-1.0-0-dev
apt install -y curl
curl -fsSL https://www.phidgets.com/downloads/setup_linux | bash -
apt install -y libphidget22 libphidget22extra phidget22networkserver apt install -y libphidget22*
apt install -y phidget22*phidget22admin
apt install -y python3 apt install -y npm aptnodejs installnet-tools -yopenssh-server nodejsssh
systemctl enable --now phidget22networkserverssh
systemctl statusrestart phidget22networkserverssh
--no-pager
#!/usr/bin/env bash
set -euo pipefail
PORT_FILE="/home/recharjme/Desktop/ports.txt"
WEB_ROOT="/home/recharjme/Desktop/APP"
DEFAULT_PHIDGET_PORT="8989"
DEFAULT_WEB_PORT="80"
PHIDGET_BIN="$(command -v phidget22networkserver || true)"ifconfig
SERVICE_NAME="phidget22networkserver.service"phidget22networkserver"
DROPIN_DIR=INIT_PATH="/etc/systemd/system/init.d/${SERVICE_NAME}.d"
DROPIN_FILE="${DROPIN_DIR}/override.conf"
log(){ printf '%s\n' "$*"; }
get_ports(){
local p_port="" w_port=""SERVICE_NAME"
if [[ -f "$PORT_FILE"(id -u)" -ne 0 ]]; then
p_port="$(sed -n '1p'echo "$PORT_FILE"Run |this tras -d '\r' || true)root."
w_port="$(sed -n '2p' "$PORT_FILE" | tr -d '\r' || true)"
[[ -z "${p_port:-}" ]] && p_port="$DEFAULT_PHIDGET_PORT"
[[ -z "${w_port:-}" ]] && w_port="$DEFAULT_WEB_PORT"
else
p_port="$DEFAULT_PHIDGET_PORT"
w_port="$DEFAULT_WEB_PORT"
mkdir -p "$(dirname "$PORT_FILE")"
fi
printf '%s\n%s\n' "$p_port" "$w_port" > "$PORT_FILE"
PHIDGET_PORT="$p_port"
WEB_PORT="$w_port"
}
ensure_phidget_server_port(){
if [[ -z "$PHIDGET_BIN" ]]; then
log "phidget22networkserver binary not found. Install phidget22networkserver first.";
exit 1
fi
mkdir -p "$DROPIN_DIR"
cat > "$DROPIN_FILE"INIT_PATH" <<EOF'EOF'
[Service]#!/bin/sh
Environment=PHIDGET_PORT=### BEGIN INIT INFO
# Provides: phidget22networkserver
# Required-Start: ${PHIDGET_PORT}network ExecStart=$remote_fs
ExecStart=# Required-Stop: ${PHIDGET_BIN}network $remote_fs
# Should-Start: avahi avahi-daemon
# Should-Stop: avahi avahi-daemon
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Phidget Network Server
# Description: Phidget network server for accessing Phidgets over the network.
### END INIT INFO
sudo /usr/local/bin/phidget22networkserver -pc \${PHIDGET_PORT}/etc/phidgets/phidget22networkserver.pc -D
EOF
systemctlchmod daemon-reload+x "$INIT_PATH"
update-rc.d "$SERVICE_NAME" defaults
systemctl enable --now "$SERVICE_NAME"
systemctl restartservice "$SERVICE_NAME" }
start_web_server(){
if [[ ! -d "$WEB_ROOT" ]]; then
log "Web root missing: $WEB_ROOT"; mkdir -p "$WEB_ROOT"
fi
# kill any existing python http.server on this port
if command -v ss >/dev/null 2>&1; then
pids="$(ss -lptn 'sport =' ":${WEB_PORT}" | awk -F',' '/users:/ {print $2}' | sed 's/pid=//g' || true)"
[[ -n "${pids:-}" ]] && xargs -r kill -9 <<<"$pids" || true
fi
nohup bash -c "cd '$WEB_ROOT'; python3 -m http.server '${WEB_PORT}'" >/var/log/kiosk_http.log 2>&1 &
}
open_browser(){
local url="http://localhost:${WEB_PORT}"
log "Open: ${url}"
if command -v xdg-open >/dev/null 2>&1; then
nohup xdg-open "$url" >/dev/null 2>&1 || true
fi
}
main(){
get_ports
ensure_phidget_server_portstart
systemctl status "$SERVICE_NAME"phidget22networkserver --no-pager || true
start_web_server
log "phidget server port: ${PHIDGET_PORT}"
log "web server port: ${WEB_PORT}"
log "web root: ${WEB_ROOT}"
open_browser
}
main "$@"
root@recharjme-Ubuntu-Linux-1:/home/recharjme/Desktop# bash ./stack_script
phidget22networkserver.service is not a native service, redirecting to systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable phidget22networkserver
Job for phidget22networkserver.service failed because the control process exited with error code.
See "systemctl status phidget22networkserver.service" and "journalctl -xeu phidget22networkserver.service" for details.
root@recharjme-Ubuntu-Linux-1:/home/recharjme/Desktop# cd ./recharjme