~~NOTOC~~
====== systemd: enable getty for framebuffer console (tty0) ======
^ Scenario: | Use an HDMI/DVI monitor and USB keyboard (instead of RS232 connection) to control the starterkit. |
^ Tested with: | STKa6x Rev.02xx + BSP Rev.0109 |
^ May also work on: | STKLS102xA, STKa7x, STKa6ULx |
===== Run time =====
Use ''systemctl'' to temporarily enable the //getty// on a running system.\\
This actually creates a symlink\\
''/etc/systemd/system/getty.target.wants/getty@tty0.service -> /lib/systemd/system/getty@.service''
==== - Remount RootFS R/W ====
mount -o remount,rw /
==== - Enable systemd unit for getty@tty0 ====
systemctl enable getty@tty0.service
==== - Remount RootFS read-only ====
mount -o remount,ro /
==== - Start unit ====
systemctl start getty@tty0.service
===== Compile time =====
To permanently enable the //getty// you need to create a new PTXdist package, which takes care of creating a proper symbolic link (see [[#run_time|above]]) in the root filesystem.
==== - Create package files ====
Simply put an ''.in'' and ''.make'' file in the ''rules/'' directory of the BSP.\\
For instance
## SECTION=initmethod
if INITMETHOD_SYSTEMD
config INITMETHOD_SYSTEMD_GETTY
bool
prompt "start getty on tty0"
help
Enable this to start a getty on tty0 during system boot
endif
# -*-makefile-*-
#
# Copyright (C) 2012 by Daniel Gericke
#
# See CREDITS for details about who has contributed to this project.
#
# For further information about the PTXdist project and license conditions
# see the README file.
#
#
# We provide this package
#
PACKAGES-$(PTXCONF_INITMETHOD_SYSTEMD_GETTY) += initmethod-systemd-getty
INITMETHOD_SYSTEMD_GETTY_VERSION := 1
# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------
$(STATEDIR)/initmethod-systemd-getty.targetinstall:
@$(call targetinfo)
@$(call install_init, initmethod-systemd-getty)
@$(call install_fixup,initmethod-systemd-getty,PRIORITY,optional)
@$(call install_fixup,initmethod-systemd-getty,SECTION,base)
@$(call install_fixup,initmethod-systemd-getty,AUTHOR,"TQ Embedded ")
@$(call install_fixup,initmethod-systemd-getty,DESCRIPTION,missing)
ifdef PTXCONF_INITMETHOD_SYSTEMD
@$(call install_link, initmethod-systemd-getty, ../../../lib/systemd/system/getty@service, \
/etc/systemd/system/getty.target.wants/getty@tty0.service)
@$(call install_finish,initmethod-systemd-getty)
@$(call touch)
endif
# vim: syntax=make
==== - Select new package ====
Call
./p menuconfig
and select the new package, in the example above at\\
''Root Filesystem ---> init ---> start getty on tty0 (NEW)''\\
==== - Rebuild images ====
Now rebuild the BSP to have the new package included in the build results (i.e. RootFS & SD card images)
./p images