[systemd-devel] controlling serial console using a token

Andrei Borzenkov arvidjaar at gmail.com
Sun Apr 19 20:44:54 PDT 2015


В Mon, 20 Apr 2015 09:09:09 +0530
Praveen kumar R <praveenrgowda at gmail.com> пишет:

> This is the snippet of the code in the systemV init system that controls
> the serial console login
> depending on the token
> 
>  TOKENEXIST=`grep "TOKEN=" /proc/cmdline`
>     TOKEN=0
>     if [ "X$TOKENEXIST" != "X" ]; then
>            #If token is pass as a command line arg, use it.
>            TOKEN=`sed 's/.*TOKEN=//; s/ .*//' /proc/cmdline`
>     fi
> 
>     TOKENOVERRIDE=`grep "TOKENOVERRIDE=" /proc/cmdline`
>     if [ "X$TOKENOVERRIDE" != "X" ]; then
>            #If token is pass as a command line arg, use it.
>            OVERRIDE=`sed 's/.*TOKENOVERRIDE=//; s/ .*//' /proc/cmdline`
>            let "TOKEN = $TOKEN & $OVERRIDE"
>     fi
> 
>     echo "TOKEN = $TOKEN"
> 
>     let "CONSOLE_LOGIN = $TOKEN & 512"
>     if [ $CONSOLE_LOGIN -ne 0 ];  then
>         echo "[`eval $uptime`]: Begin Console Access"
>         /etc/console_login &
>         echo "eCM console is enabled"
>         export ENABLE_ECM_CONSOLE=y
>     else
>         echo "[`eval $uptime`]: Token doesn't allow console access"
>         export ENABLE_ECM_CONSOLE=n
>     fi
> 
> 
> 
> I am trying to implement the same in the sytemd init system.
> 

The straightforward approach is to put this code in generator that
parses command line. It can mask standard console service and create
unit for your console.

> 
> On Sun, Apr 19, 2015 at 11:48 AM, Andrei Borzenkov <arvidjaar at gmail.com>
> wrote:
> 
> > В Sat, 18 Apr 2015 19:54:50 +0530
> > Praveen kumar R <praveenrgowda at gmail.com> пишет:
> >
> > > Yes it's a kernel command line arg, it is board specific token introduced
> > > to control the serial console.
> > > if defined serial console should not be enabled.
> > >
> >
> > Sorry I do not understand this sentence. "define" what? Please give
> > exact example of kernel command line and explain what behavior you
> > expect in this case.
> >
> > > we have this in place for other system initializing system - sytemV ,
> > where
> > > depending
> > >
> > > On Fri, Apr 17, 2015 at 4:24 PM, Lennart Poettering <
> > lennart at poettering.net
> > > <javascript:_e(%7B%7D,'cvml','lennart at poettering.net');>> wrote:
> > >
> > > > On Fri, 17.04.15 15:54, Praveen kumar R (praveenrgowda at gmail.com
> > > > <javascript:_e(%7B%7D,'cvml','praveenrgowda at gmail.com');>) wrote:
> > > >
> > > > > I have a token passed on by command line argument on which I need to
> > > > decide
> > > > > to start the serial
> > > >
> > > > On which command line? Kernel command line? What kind of "token"?
> > > >
> > > > > console or not. I plan to tweak the getty*ttyS0.service and add the
> > > > > script which validates the token and starts the console.
> > > > >
> > > > > Is this the right approach or is there any better way of handling it
> > ??
> > > >
> > > > To get a login getty on the serial port its sufficient to add
> > > > console=ttyS0... to the kernel cmdline. systemd automatically starts a
> > > > serial getty automatically on the first terminal the kernel console is
> > > > pointing to.
> > > >
> > > > Lennart
> > > >
> > > > --
> > > > Lennart Poettering, Red Hat
> > > >
> >
> >



More information about the systemd-devel mailing list