|
From: <abe...@us...> - 2017-04-25 16:24:58
|
Revision: 8276
http://sourceforge.net/p/astlinux/code/8276
Author: abelbeck
Date: 2017-04-25 16:24:55 +0000 (Tue, 25 Apr 2017)
Log Message:
-----------
core system, usbtty, automatically spawn getty for selected usb tty serial devices. New rc.conf variables: USBTTY, USBTTY_BAUD_RATE, USBTTY_TERM_TYPE
Modified Paths:
--------------
branches/1.0/package/udev/udev.mk
branches/1.0/project/astlinux/target_skeleton/etc/rc
branches/1.0/project/astlinux/target_skeleton/stat/etc/rc.conf
Added Paths:
-----------
branches/1.0/package/udev/usbtty/
branches/1.0/package/udev/usbtty/usb-getty
branches/1.0/package/udev/usbtty/usb-getty-background
branches/1.0/package/udev/usbtty/usbtty.rules
Modified: branches/1.0/package/udev/udev.mk
===================================================================
--- branches/1.0/package/udev/udev.mk 2017-04-24 16:39:29 UTC (rev 8275)
+++ branches/1.0/package/udev/udev.mk 2017-04-25 16:24:55 UTC (rev 8276)
@@ -31,7 +31,13 @@
define UDEV_INSTALL_INITSCRIPT
echo 'udev_run="/var/run/udev"' >> $(TARGET_DIR)/etc/udev/udev.conf
endef
-
UDEV_POST_INSTALL_TARGET_HOOKS += UDEV_INSTALL_INITSCRIPT
+define UDEV_INSTALL_USBTTY
+ $(INSTALL) -m 0644 -D package/udev/usbtty/usbtty.rules $(TARGET_DIR)/etc/udev/rules.d/usbtty.rules
+ $(INSTALL) -m 0755 -D package/udev/usbtty/usb-getty $(TARGET_DIR)/usr/share/usbtty/usb-getty
+ $(INSTALL) -m 0755 -D package/udev/usbtty/usb-getty-background $(TARGET_DIR)/usr/share/usbtty/usb-getty-background
+endef
+UDEV_POST_INSTALL_TARGET_HOOKS += UDEV_INSTALL_USBTTY
+
$(eval $(call AUTOTARGETS,package,udev))
Added: branches/1.0/package/udev/usbtty/usb-getty
===================================================================
--- branches/1.0/package/udev/usbtty/usb-getty (rev 0)
+++ branches/1.0/package/udev/usbtty/usb-getty 2017-04-25 16:24:55 UTC (rev 8276)
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+devname="$2"
+
+if [ "$1" != "udev" -o -z "$devname" ]; then
+ echo "usb-getty: Only to be called via udev" >&2
+ exit 0
+fi
+
+if [ ! -f /etc/rc.conf ]; then
+ exit 0
+fi
+
+. /etc/rc.conf
+
+if [ "$USBTTY" != "yes" ]; then
+ exit 0
+fi
+
+if [ ! -c "$devname" ]; then
+ logger -t usbtty -p kern.info "Device not found: $devname"
+ exit 0
+fi
+
+baud_rate="${USBTTY_BAUD_RATE:-115200}"
+
+term_type="${USBTTY_TERM_TYPE:-vt100}"
+
+/usr/share/usbtty/usb-getty-background "$devname" "$baud_rate" "$term_type" >/dev/null 2>&1 &
Property changes on: branches/1.0/package/udev/usbtty/usb-getty
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: branches/1.0/package/udev/usbtty/usb-getty-background
===================================================================
--- branches/1.0/package/udev/usbtty/usb-getty-background (rev 0)
+++ branches/1.0/package/udev/usbtty/usb-getty-background 2017-04-25 16:24:55 UTC (rev 8276)
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+devname="$1"
+baud_rate="$2"
+term_type="$3"
+
+if [ -z "$devname" -o -z "$baud_rate" -o -z "$term_type" ]; then
+ echo "usb-getty-background: Invalid args" >&2
+ exit 0
+fi
+
+LOCKFILE="/var/lock/usbtty-${devname##*/}.lock"
+
+if ( set -o noclobber; echo "$$" > "$LOCKFILE" ) 2>/dev/null; then
+ logger -t usbtty -p kern.info "Connected: devname=$devname baud_rate=$baud_rate term_type=$term_type"
+ while [ -c "$devname" ]; do
+ /sbin/getty -L "$baud_rate" "$devname" "$term_type"
+ done
+ logger -t usbtty -p kern.info "Disconnected: devname=$devname"
+ rm -f "$LOCKFILE"
+fi
Property changes on: branches/1.0/package/udev/usbtty/usb-getty-background
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: branches/1.0/package/udev/usbtty/usbtty.rules
===================================================================
--- branches/1.0/package/udev/usbtty/usbtty.rules (rev 0)
+++ branches/1.0/package/udev/usbtty/usbtty.rules 2017-04-25 16:24:55 UTC (rev 8276)
@@ -0,0 +1,3 @@
+# Spawn getty for selected usb tty serial devices:
+SUBSYSTEM=="tty", ACTION=="add", ENV{ID_BUS}=="usb", ENV{DEVNAME}=="ttyUSB[0-9]", \
+ RUN+="/usr/share/usbtty/usb-getty udev $env{DEVNAME}"
Modified: branches/1.0/project/astlinux/target_skeleton/etc/rc
===================================================================
--- branches/1.0/project/astlinux/target_skeleton/etc/rc 2017-04-24 16:39:29 UTC (rev 8275)
+++ branches/1.0/project/astlinux/target_skeleton/etc/rc 2017-04-25 16:24:55 UTC (rev 8276)
@@ -402,6 +402,9 @@
fi
done
+ if [ "$USBTTY" = "yes" ]; then
+ /sbin/udevadm trigger --action=add --subsystem-match=tty --sysname-match='ttyUSB[0-9]'
+ fi
}
shutdown() {
Modified: branches/1.0/project/astlinux/target_skeleton/stat/etc/rc.conf
===================================================================
--- branches/1.0/project/astlinux/target_skeleton/stat/etc/rc.conf 2017-04-24 16:39:29 UTC (rev 8275)
+++ branches/1.0/project/astlinux/target_skeleton/stat/etc/rc.conf 2017-04-25 16:24:55 UTC (rev 8276)
@@ -893,6 +893,13 @@
## Useful for boards with smaller high frequency piezo-speakers or noisy environments.
#ALERT_SOUNDS_OCTAVE="2"
+## USB TTY serial login
+## Automatically spawn getty for selected usb tty serial devices
+## Supported USB-serial adapters include FTDI and PL2303 and must register as /dev/ttyUSB0, ttyUSB1, etc.
+#USBTTY="yes" # Enable with "yes", defaults to "no"
+#USBTTY_BAUD_RATE="19200" # Set Baud Rate, defaults to "115200"
+#USBTTY_TERM_TYPE="vt102" # Set Terminal Type, defaults to "vt100"
+
## I/O Scheduler configuration
## The Linux kernel has several I/O schedulers available.
## It is important to optimize everything you can in an embedded system
@@ -899,22 +906,6 @@
## AstLinux lets you use this variable to change the I/O scheduler per device
#IOSCHED="sda:noop"
-## APC UPS Support via apcupsd (Deprecated) ####
-## Specify the UPS type and UPS cable. The UPS device string must be empty for usb.
-##
-## UPSTYPE: usb, net, pcnet, snmp, apcsmart, dumb
-##UPSTYPE="usb"
-## UPSCABLE: usb, ether, smart, simple
-##UPSCABLE="usb"
-## UPSDEVICE: [usb], leave empty
-##UPSDEVICE=""
-## UPSDEVICE: [ether], for net and snmp, specify IPv4 address, port, etc.
-##UPSDEVICE="10.10.50.10:3551"
-##UPSDEVICE="10.10.50.10:161:APC:private"
-## UPSDEVICE: [smart] or [simple], specify serial device
-##UPSDEVICE="/dev/ttyS1"
-############################## (Deprecated) ####
-
## Network UPS Tools (NUT)
## Monitor an attached UPS and optionally also serve UPS status over the network.
## UPS events can generate notifications, system shutdowns and other actions.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|