USB shell login and ADTPro server daemon support for Jessie

This commit is contained in:
Ivan X
2016-07-17 21:44:21 -04:00
parent 62817abe28
commit c794e646de
2 changed files with 59 additions and 1 deletions
+17 -1
View File
@@ -35,11 +35,27 @@ elif [[ $1 == "add" ]]; then
touch /tmp/udev-ttyUSBlower-added
pkill -f "[A]DTPro"
pkill -f "[u]sbgetty"
exec /usr/local/adtpro/adtpro.sh headless serial
exec echo "/usr/local/adtpro/adtpro.sh headless serial" | at -M now
else # ttyUSBupper
rm /tmp/udev-ttyUSBupper-added &> /dev/null
touch /tmp/udev-ttyUSBupper-added
pkill -f "[g]etty.*ttyUSB"
if [[ -f /bin/systemctl ]]; then # if systemd
# if USB-to-serial adapter is directly attached to upper port
if [[ -c /dev/ttyUSBupper ]]; then
ttyUSB=ttyUSBupper
# if hub in upper port, use highest numbered port on hub
elif [[ $(ls -1 /dev/ttyUSBupper_hub* 2> /dev/null | wc -l) -gt 0 ]]; then
ttyUSB=$(ls -1 /dev/ttyUSBupper_hub* 2> /dev/null | tail -1 | cut -c 6-)
# if hub in lower port with multiple adapters, use highest numbered port on hub
elif [[ $(ls -1 /dev/ttyUSBlower_hub* 2> /dev/null | wc -l) -gt 1 ]]; then
ttyUSB=$(ls -1 /dev/ttyUSBlower_hub* 2> /dev/null | tail -1 | cut -c 6-)
else
# by definition, this shouldn't happen
ttyUSB=
fi
exec systemctl restart usbgetty@$ttyUSB
fi
fi
else
exit 2
+42
View File
@@ -0,0 +1,42 @@
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
# This file is adapted for A2CLOUD. It to be called usbgetty@.service
# and needs to be placed in /etc/systemd/system/getty.target.wants/
# Symlinks pointing to it need to be in place for every serial port
# defined in /etc/udev/rules.d/50-usb.rules, e.g.
# usbgetty@ttyUSBupper.service -> usbgetty@.service
[Unit]
Description=Serial Getty on %I
Documentation=man:agetty(8) man:systemd-getty-generator(8)
Documentation=http://0pointer.de/blog/projects/serial-console.html
BindsTo=dev-%i.device
After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service
After=rc-local.service
# If additional gettys are spawned during boot then we should make
# sure that this is synchronized before getty.target, even though
# getty.target didn't actually pull it in.
Before=getty.target
IgnoreOnIsolate=yes
[Service]
#ExecStart=-/sbin/agetty %I 4800 $TERM
ExecStart=-/usr/local/sbin/usbgetty -h -L -scanttyUSB 4800 vt100
Type=idle
Restart=always
UtmpIdentifier=%I
TTYPath=/dev/%I
TTYReset=yes
TTYVHangup=yes
KillMode=process
IgnoreSIGPIPE=no
SendSIGHUP=yes
[Install]
WantedBy=getty.target