
# Each ARM Hardware Model tends to be configurable and manageable
# via the serial interface, typically via a USB to Serial adapter.
# If anybody thinks this is a security hole, don't plug in a serial cable.
#
#
#
# In Slackware by default does not open a console on the serial port.
# On the ARM and AArch64 platforms, it's standard practice and users
# are encounraged to do so. However, we cannot assume that /dev/ttyS0
# will work - yes there's a /dev entry, but that's because the Slackware
# "devs" package creates it.
# Therefore, we'll configure a serial entry only for known Hardware Models.
# This prevents errors from init when installing on unknown Hardware Models
# (such as if users use the generic bootable EFI ISO image).
# Default for all hardware models on ARM and AArch64.
#TTYDEV=ttyS0

# See whether we have any of the common serial drivers present,
# and if so we'll switch to that: This may be incorrect since we
# don't know if the user is using the 0 port, but at least this
# might help get them using the right serial driver at least.
#
for ttydev in tty{AMA0,mxc0,SAC0}; do
   [ -c "/dev/${ttydev}" ] && TTYDEV=$ttydev
done

# Configure the serial console device for particular Hardware Models:
#case "$( strings /proc/device-tree/model 2>/dev/null )" in
case "$( slk-hwm-discover )" in
  # may be ttyS4 - need to confirm
  #"Orange Pi RK3399"*)  TTYDEV=ttyS2 ;;

  "Radxa ROCK Pi 4"*|"Pine64 RockPro64"*|"Pine64 Pinebook Pro"*) TTYDEV=ttyS2 ;;
  "Raspberry Pi"*) TTYDEV=ttyS1 ;;
  # We don't have a serial console on the virtualization
  # platforms. QEMU does support it but the user can enable it
  # manually if required:
  "KVM Virtual"*|"QEMU Virtual"*|"Apple Virtual"*|"VMware Apple"*|"Parallels"*) unset TTYDEV ;;
esac

# Add the entry:
[ ! -z "${TTYDEV}" ] && {
  sed -i '/^# Local serial lines:/ a\s0:12345:respawn:/sbin/agetty --keep-baud 115200,38400,9600 '"$TTYDEV"' vt100' etc/inittab.new ;}
