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. |