login on serial port

Alain Bonnefoy <alain.bonnefoy@icbt.com> wrote:

Maybe we are not exactly talking about the same thing. I use tinit to wait
for a login on a serial port.<br

The way I would describe it, you use tinit to start the login program
on a serial port, and login then waits for a person to log in. Does
that sound more or less like what you’re doing? :slight_smile:

That’s done by adding the entry ‘ser1 “/bin/login” vt100 on’ in /etc/config/ttys
and tinit do the rest.<br

Yes. Well, tinit and login. Here’s how it works according to my
understanding:

Tinit reads the file, sets TERM=vt100, and spawns /bin/login with
stdin and stdout attached to the serial port.

Then, /bin/login waits for a person to enter a username and a
password – or, more accurately, tries to read a username and a
password from the serial port.

After a correct passord is entered, login execs into the shell.

I don’t think we’re talking about different things, but it indeed seems
that our understanding of some of the words differs. In particular, I
have trouble guessing what you meant by “terminal” when you said this in
a previous post:

Once your login is granted, a terminal with a shell is started, and
it’s only that program (the terminal) which is able to take care of
a particular emulation.

The way I see things, you must have a terminal first, before a person
can log in: a terminal is what the person types the userid and password
into. What is it that you call a “terminal” that is “started with a
shell”?

div align=“left”>So at that point, I don’t know how tinit really works,
but quite sure that it doesn’t start a shell BEFORE launching the login procedure

Obviously. It wouldn’t make sense to start a shell before a user name
and a correct password has been entered. It’s login that starts the
shell. I didn’t say you need a shell before you can log in, did I?

When we say “shell”, we’re referring to a program that reads commands
from its input and executes them, like /bin/sh, right?

because I have to send ^J for login and password. After that, and ONLY after,
terminal settings are managed correctly, according to the VT100 type I specified.<br

Like I said, our shell has its own code that recognizes CR as a line
terminator, which can hide the problem. Does the Enter key work for you
even when you’re running something like “cat” or “hd” fron the shell?

Here’s a piece of code I found in tinit that is executed just before
spawning login:

// Set the terminal into a nice clean edit mode
tcgetattr(fds[0], &tios);
tios.c_lflag |= ECHO|ICANON|ISIG|ECHOE|ECHOK|ECHONL;
tios.c_oflag |= OPOST;
tcsetattr(fds[0], TCSANOW, &tios);

Notice that this is not setting the ICRNL flag; and as far as I can
tell, login doesn’t do anything that could set it, either. If the flag
is not set to start with, CRs coming from the serial line will not be
translated to newlines. My theory is that that’s exactly what you’re
seeing.

br
It seems that Kris is on the same wave length as me.<br

Are you saying that you want me to shut up and ask him to explain this
to me? :wink:

Wojtek Lerch wrote:Alain Bonnefoy <> alain.bonnefoy@icbt.com> > wrote:
</pre
blockquote type=“cite”
pre wrap="">The problem here is that we are talking about login on a remote machine,
we don’t know yet what we are going to do on this machine; starting a
terminal or anything else. So, your ttys setting are not yet effective.
</pre
/blockquote
pre wrap="">
What do you mean “starting” a terminal? You need to have a working
terminal before you can run login on it, don’t you?

</pre
blockquote type=“cite”
pre wrap="">Once your login is granted, a terminal with a shell is started, and it’s
only that program (the terminal) which is able to take care of a
particular emulation.
</pre
/blockquote
pre wrap="">
No. After you have entered your password, login simply execs into a
shell. A terminal is not “started” at this point: the shell runs on the
same terminal that login was running on. Unless you have some magic in
/etc/profile or your .profile that detects the terminal type and sets
$TERM and the stty stuff for you, the only reason why anything might
work differently under the shell than it did in login is because the
shell has its own code to do line editing, while login uses the generic
"cooked mode" handled by the driver. But the differences are minor.

(The shell seems to treat CR as a newline character; the “cooked mode"
treats a CR that wasn’t thrown away or turned into a newline by your
stty +igncr +icrnl settings, as an input character, and displays it as
”^M". But there’s no way for either the shell or the driver to
recognize the arrow keys, or the Insert and Delete keys, unless
something has
told them what escape sequences those keys generate on the
particular terminal that is attached to the serial line at the moment.
The console driver is in a much better position: since it just knows
what escape sequences it generates, it can initialize its device
settings properly without any doubt.)

I don’t know exactly how these things are supposed to work under QNX6,
but under QNX4, there was a utility called termdef that you could tell
tinit to run on a serial port instead of login. Termdef would ask you
what type of terminal you were using, then set $TERM and do the
equivalent of “stty load”, and finally exec into login. This way, when
login is started, your terminal settings are already correct, and login
does not need to worry about them any more than the shell does.

</pre
/blockquote
br
/body
/html


Wojtek Lerch QNX Software Systems Ltd.

I think we all understand what’s going on, the question is just where to fix
it. My first cut at it was to eat the CR in the utility but I’m beginning
to question that decision. Probably login should be setting the terminal up
differently (it seems that the shell does the ‘right thing’ once it’s
execced) so perhaps I should try ORing ICRNL in the termios flags…

Kris
“Wojtek Lerch” <wojtek_l@ottawa.com> wrote in message
news:a6aqa1$fba$1@nntp.qnx.com

Alain Bonnefoy <> alain.bonnefoy@icbt.com> > wrote:
Maybe we are not exactly talking about the same thing. I use tinit to
wait
for a login on a serial port.<br

The way I would describe it, you use tinit to start the login program
on a serial port, and login then waits for a person to log in. Does
that sound more or less like what you’re doing? > :slight_smile:

That’s done by adding the entry ‘ser1 “/bin/login” vt100 on’ in
/etc/config/ttys
and tinit do the rest.<br

Yes. Well, tinit and login. Here’s how it works according to my
understanding:

Tinit reads the file, sets TERM=vt100, and spawns /bin/login with
stdin and stdout attached to the serial port.

Then, /bin/login waits for a person to enter a username and a
password – or, more accurately, tries to read a username and a
password from the serial port.

After a correct passord is entered, login execs into the shell.

I don’t think we’re talking about different things, but it indeed seems
that our understanding of some of the words differs. In particular, I
have trouble guessing what you meant by “terminal” when you said this in
a previous post:

Once your login is granted, a terminal with a shell is started, and
it’s only that program (the terminal) which is able to take care of
a particular emulation.

The way I see things, you must have a terminal first, before a person
can log in: a terminal is what the person types the userid and password
into. What is it that you call a “terminal” that is “started with a
shell”?

div align=“left”>So at that point, I don’t know how tinit really works,
but quite sure that it doesn’t start a shell BEFORE launching the login
procedure

Obviously. It wouldn’t make sense to start a shell before a user name
and a correct password has been entered. It’s login that starts the
shell. I didn’t say you need a shell before you can log in, did I?

When we say “shell”, we’re referring to a program that reads commands
from its input and executes them, like /bin/sh, right?

because I have to send ^J for login and password. After that, and ONLY
after,
terminal settings are managed correctly, according to the VT100 type I
specified.<br

Like I said, our shell has its own code that recognizes CR as a line
terminator, which can hide the problem. Does the Enter key work for you
even when you’re running something like “cat” or “hd” fron the shell?

Here’s a piece of code I found in tinit that is executed just before
spawning login:

// Set the terminal into a nice clean edit mode
tcgetattr(fds[0], &tios);
tios.c_lflag |= ECHO|ICANON|ISIG|ECHOE|ECHOK|ECHONL;
tios.c_oflag |= OPOST;
tcsetattr(fds[0], TCSANOW, &tios);

Notice that this is not setting the ICRNL flag; and as far as I can
tell, login doesn’t do anything that could set it, either. If the flag
is not set to start with, CRs coming from the serial line will not be
translated to newlines. My theory is that that’s exactly what you’re
seeing.

br
It seems that Kris is on the same wave length as me.<br

Are you saying that you want me to shut up and ask him to explain this
to me? > :wink:

Wojtek Lerch wrote:Alain Bonnefoy <> alain.bonnefoy@icbt.com> ></a

wrote:

blockquote type=“cite”
pre wrap="">The problem here is that we are talking about login on
a remote machine,
we don’t know yet what we are going to do on this

machine; starting a
terminal or anything else. So, your ttys setting are
not yet effective.

/blockquote
pre wrap="">
What do you mean “starting” a terminal? You
need to have a working
terminal before you can run login on it, don’t

you?

blockquote type=“cite”
pre wrap="">Once your login is granted, a terminal with a shell
is started, and it’s
only that program (the terminal) which is able to

take care of a
particular emulation.

/blockquote
pre wrap="">
No. After you have entered your password,
login simply execs into a
shell. A terminal is not “started” at this

point: the shell runs on the
same terminal that login was running on.
Unless you have some magic in
/etc/profile or your .profile that detects
the terminal type and sets
$TERM and the stty stuff for you, the only
reason why anything might
work differently under the shell than it did in
login is because the
shell has its own code to do line editing, while
login uses the generic
"cooked mode" handled by the driver. But the
differences are minor.

(The shell seems to treat CR as a newline
character; the “cooked mode"
treats a CR that wasn’t thrown away or
turned into a newline by your
stty +igncr +icrnl settings, as an input
character, and displays it as
”^M". But there’s no way for either the
shell or the driver to
recognize the arrow keys, or the Insert and Delete
keys, unless
something has

told them what escape sequences those keys generate on the
particular
terminal that is attached to the serial line at the moment.
The console

driver is in a much better position: since it just knows
what escape
sequences it generates, it can initialize its device
settings properly
without any doubt.)

I don’t know exactly how these things are
supposed to work under QNX6,
but under QNX4, there was a utility called
termdef that you could tell
tinit to run on a serial port instead of
login. Termdef would ask you
what type of terminal you were using, then
set $TERM and do the
equivalent of “stty load”, and finally exec into
login. This way, when
login is started, your terminal settings are
already correct, and login
does not need to worry about them any more
than the shell does.

/blockquote
br
/body
/html


Wojtek Lerch QNX Software Systems Ltd.

Oops. I mean ‘tinit’ should be setting it up. Now I’ve got a puzzle
because what worked fine for me before is not working now. My session over
the serial line is getting the ‘stair stepping’ thing which it wasn’t
before. Must have been from me monkeying with the serial port somewhere
along the line.

Kris

“Kris Warkentin” <kewarken@qnx.com> wrote in message
news:a6aqob$g27$1@nntp.qnx.com

I think we all understand what’s going on, the question is just where to
fix
it. My first cut at it was to eat the CR in the utility but I’m beginning
to question that decision. Probably login should be setting the terminal
up
differently (it seems that the shell does the ‘right thing’ once it’s
execced) so perhaps I should try ORing ICRNL in the termios flags…

Kris
“Wojtek Lerch” <> wojtek_l@ottawa.com> > wrote in message
news:a6aqa1$fba$> 1@nntp.qnx.com> …
Alain Bonnefoy <> alain.bonnefoy@icbt.com> > wrote:
Maybe we are not exactly talking about the same thing. I use tinit to
wait
for a login on a serial port.<br

The way I would describe it, you use tinit to start the login program
on a serial port, and login then waits for a person to log in. Does
that sound more or less like what you’re doing? > :slight_smile:

That’s done by adding the entry ‘ser1 “/bin/login” vt100 on’ in
/etc/config/ttys
and tinit do the rest.<br

Yes. Well, tinit and login. Here’s how it works according to my
understanding:

Tinit reads the file, sets TERM=vt100, and spawns /bin/login with
stdin and stdout attached to the serial port.

Then, /bin/login waits for a person to enter a username and a
password – or, more accurately, tries to read a username and a
password from the serial port.

After a correct passord is entered, login execs into the shell.

I don’t think we’re talking about different things, but it indeed seems
that our understanding of some of the words differs. In particular, I
have trouble guessing what you meant by “terminal” when you said this in
a previous post:

Once your login is granted, a terminal with a shell is started, and
it’s only that program (the terminal) which is able to take care of
a particular emulation.

The way I see things, you must have a terminal first, before a person
can log in: a terminal is what the person types the userid and password
into. What is it that you call a “terminal” that is “started with a
shell”?

div align=“left”>So at that point, I don’t know how tinit really
works,
but quite sure that it doesn’t start a shell BEFORE launching the
login
procedure

Obviously. It wouldn’t make sense to start a shell before a user name
and a correct password has been entered. It’s login that starts the
shell. I didn’t say you need a shell before you can log in, did I?

When we say “shell”, we’re referring to a program that reads commands
from its input and executes them, like /bin/sh, right?

because I have to send ^J for login and password. After that, and ONLY
after,
terminal settings are managed correctly, according to the VT100 type I
specified.<br

Like I said, our shell has its own code that recognizes CR as a line
terminator, which can hide the problem. Does the Enter key work for you
even when you’re running something like “cat” or “hd” fron the shell?

Here’s a piece of code I found in tinit that is executed just before
spawning login:

// Set the terminal into a nice clean edit mode
tcgetattr(fds[0], &tios);
tios.c_lflag |= ECHO|ICANON|ISIG|ECHOE|ECHOK|ECHONL;
tios.c_oflag |= OPOST;
tcsetattr(fds[0], TCSANOW, &tios);

Notice that this is not setting the ICRNL flag; and as far as I can
tell, login doesn’t do anything that could set it, either. If the flag
is not set to start with, CRs coming from the serial line will not be
translated to newlines. My theory is that that’s exactly what you’re
seeing.

br
It seems that Kris is on the same wave length as me.<br

Are you saying that you want me to shut up and ask him to explain this
to me? > :wink:

Wojtek Lerch wrote:Alain Bonnefoy <> alain.bonnefoy@icbt.com> ></a
wrote:
</pre
blockquote type=“cite”
pre wrap="">The problem here is that we are talking about login
on
a remote machine,
we don’t know yet what we are going to do on this
machine; starting a
terminal or anything else. So, your ttys setting
are
not yet effective.
</pre
/blockquote
pre wrap="">
What do you mean “starting” a terminal?
You
need to have a working
terminal before you can run login on it, don’t
you?

</pre
blockquote type=“cite”
pre wrap="">Once your login is granted, a terminal with a shell
is started, and it’s
only that program (the terminal) which is able to
take care of a
particular emulation.
</pre
/blockquote
pre wrap="">
No. After you have entered your
password,
login simply execs into a
shell. A terminal is not “started” at this
point: the shell runs on the
same terminal that login was running on.
Unless you have some magic in
/etc/profile or your .profile that
detects
the terminal type and sets
$TERM and the stty stuff for you, the only
reason why anything might
work differently under the shell than it did
in
login is because the
shell has its own code to do line editing, while
login uses the generic
"cooked mode" handled by the driver. But the
differences are minor.

(The shell seems to treat CR as a newline
character; the “cooked mode"
treats a CR that wasn’t thrown away or
turned into a newline by your
stty +igncr +icrnl settings, as an input
character, and displays it as
”^M". But there’s no way for either the
shell or the driver to
recognize the arrow keys, or the Insert and
Delete
keys, unless
something has
told them what escape sequences those keys generate on
the
particular
terminal that is attached to the serial line at the moment.
The
console
driver is in a much better position: since it just knows
what escape
sequences it generates, it can initialize its device
settings properly
without any doubt.)

I don’t know exactly how these things are
supposed to work under QNX6,
but under QNX4, there was a utility called
termdef that you could tell
tinit to run on a serial port instead of
login. Termdef would ask you
what type of terminal you were using,
then
set $TERM and do the
equivalent of “stty load”, and finally exec into
login. This way, when
login is started, your terminal settings are
already correct, and login
does not need to worry about them any more
than the shell does.

</pre
/blockquote
br
/body
/html


Wojtek Lerch QNX Software Systems Ltd.

Kris Warkentin <kewarken@qnx.com> wrote:

Oops. I mean ‘tinit’ should be setting it up. Now I’ve got a puzzle
because what worked fine for me before is not working now. My session over
the serial line is getting the ‘stair stepping’ thing which it wasn’t
before. Must have been from me monkeying with the serial port somewhere
along the line.

You must have unset ONLCR. Sounds like another thing that tinit should set…

\

Wojtek Lerch QNX Software Systems Ltd.

Kris Warkentin <kewarken@qnx.com> wrote:

I think we all understand what’s going on, the question is just where to fix
it. My first cut at it was to eat the CR in the utility but I’m beginning
to question that decision. Probably login should be setting the terminal up
differently (it seems that the shell does the ‘right thing’ once it’s
execced) so perhaps I should try ORing ICRNL in the termios flags…

I imagine it should work; except if the terminal sends both a CR and
an LF, you’ll get an extra empty line appended after every entered line.
This might make it difficult to log in if you have a password…

For this kind of a terminal you would need to set IGNCR instead of
ICRNL…

That’s what I like about the idea of the termdef program: it asks you a
question and reads back an answer. If it switched to the raw mode to
read the answer, it could easily figure out which one of the two flags
needs to be set.


Wojtek Lerch QNX Software Systems Ltd.

One of our very clever testers (Kirk if you must know :wink: submitted this as
a PR and, as he usually does, actually provided a correct fix as well. If
you simply execute ‘stty +edit < /dev/ser1’, everything works well. My task
was to make tinit do the right thing as well. I determined that ICANON was
already set by tinit but doing it by stty cleared a few other things as
well. In the end, applying ICRNL to the input flags of the serial port (in
tinit) was sufficient to fix the problem.

cheers,

Kris

“Wojtek Lerch” <wojtek_l@ottawa.com> wrote in message
news:a6ba83$r3o$1@nntp.qnx.com

Kris Warkentin <> kewarken@qnx.com> > wrote:
Oops. I mean ‘tinit’ should be setting it up. Now I’ve got a puzzle
because what worked fine for me before is not working now. My session
over
the serial line is getting the ‘stair stepping’ thing which it wasn’t
before. Must have been from me monkeying with the serial port somewhere
along the line.

You must have unset ONLCR. Sounds like another thing that tinit should
set…

\

Wojtek Lerch QNX Software Systems Ltd.

Having the attention span of a ferret, I forgot that at least two people
(Eric Johnson and Wojtek Lerch) had pointed out this exact thing to me
earlier and, when I tried it without success, (promptly forgetting about it)
moving on to other approaches. Turns out that it was a RTFM brain fart
because I was ORing the ICRNL into the wrong set of flags the first time I
tried it. I blame my eyes and the small font - c_lflag looks a lot like
c_iflag. :wink:

See what happens when you context switch between more than 10 PR’s in a day?
I’m going to have to pay more attention.

Kris

“Kris Warkentin” <kewarken@qnx.com> wrote in message
news:a6lahg$9ia$1@nntp.qnx.com

One of our very clever testers (Kirk if you must know > :wink: > submitted this
as
a PR and, as he usually does, actually provided a correct fix as well. If
you simply execute ‘stty +edit < /dev/ser1’, everything works well. My
task
was to make tinit do the right thing as well. I determined that ICANON
was
already set by tinit but doing it by stty cleared a few other things as
well. In the end, applying ICRNL to the input flags of the serial port
(in
tinit) was sufficient to fix the problem.

cheers,

Kris

“Wojtek Lerch” <> wojtek_l@ottawa.com> > wrote in message
news:a6ba83$r3o$> 1@nntp.qnx.com> …
Kris Warkentin <> kewarken@qnx.com> > wrote:
Oops. I mean ‘tinit’ should be setting it up. Now I’ve got a puzzle
because what worked fine for me before is not working now. My session
over
the serial line is getting the ‘stair stepping’ thing which it wasn’t
before. Must have been from me monkeying with the serial port
somewhere
along the line.

You must have unset ONLCR. Sounds like another thing that tinit should
set…

\

Wojtek Lerch QNX Software Systems Ltd.

Sorry for my silence Wojtek, I wasn't in my office last week.
Happy that Kris get tuned on our discussion I didn't know what to answer to you  :-\ !

Thanks to everybody,
Alain.

Wojtek Lerch wrote:
Alain Bonnefoy <> wrote:
Maybe we are not exactly talking about the same thing. I use tinit to wait
for a login on a serial port.


The way I would describe it, you use tinit to *start* the login program
on a serial port, and login then waits for a person to log in. Does
that sound more or less like what you're doing? :slight_smile:

That's done by adding the entry 'ser1 "/bin/login" vt100 on' in /etc/config/ttys
and tinit do the rest.


Yes. Well, tinit and login. Here's how it works according to my
understanding:

Tinit reads the file, sets TERM=vt100, and spawns /bin/login with
stdin and stdout attached to the serial port.

Then, /bin/login waits for a person to enter a username and a
password -- or, more accurately, tries to read a username and a
password from the serial port.

After a correct passord is entered, login execs into the shell.

I don't think we're talking about different things, but it indeed seems
that our understanding of some of the words differs. In particular, I
have trouble guessing what you meant by "terminal" when you said this in
a previous post:

Once your login is granted, a terminal with a shell is started, and
it's only that program (the terminal) which is able to take care of
a particular emulation.

The way I see things, you must have a terminal first, before a person
can log in: a terminal is what the person types the userid and password
into. What is it that you call a "terminal" that is "started with a
shell"?

So at that point, I don't know how tinit really works,
but quite sure that it doesn't start a shell BEFORE launching the login procedure

Obviously. It wouldn't make sense to start a shell before a user name
and a correct password has been entered. It's login that starts the
shell. I didn't say you need a shell before you can log in, did I?

When we say "shell", we're referring to a program that reads commands
from its input and executes them, like /bin/sh, right?

because I have to send ^J for login and password. After that, and ONLY after,
terminal settings are managed correctly, according to the VT100 type I specified.


Like I said, our shell has its own code that recognizes CR as a line
terminator, which can hide the problem. Does the Enter key work for you
even when you're running something like "cat" or "hd" fron the shell?

Here's a piece of code I found in tinit that is executed just before
spawning login:

// Set the terminal into a nice clean edit mode
tcgetattr(fds[0], &tios);
tios.c_lflag |= ECHO|ICANON|ISIG|ECHOE|ECHOK|ECHONL;
tios.c_oflag |= OPOST;
tcsetattr(fds[0], TCSANOW, &tios);

Notice that this is not setting the ICRNL flag; and as far as I can
tell, login doesn't do anything that could set it, either. If the flag
is not set to start with, CRs coming from the serial line will not be
translated to newlines. My theory is that that's exactly what you're
seeing.



It seems that Kris is on the same wave length as me.


Are you saying that you want me to shut up and ask him to explain this
to me? :wink:

Wojtek Lerch wrote:

<blockquote type="cite" cite="mid:a65h59$fu5$<1@nntp.qnx.com>">
Alain Bonnefoy <a class="moz-txt-link-rfc2396E" href="mailto:"><> wrote:


The problem here is that we are talking about login on a remote machine, 
we don't know yet what we are going to do on this machine; starting a
terminal or anything else. So, your ttys setting are not yet effective.



What do you mean "starting" a terminal? You need to have a working
terminal *before* you can run login on it, don't you?



Once your login is granted, a terminal with a shell is started, and it's 
only that program (the terminal) which is able to take care of a
particular emulation.



No. After you have entered your password, login simply execs into a
shell. A terminal is not "started" at this point: the shell runs on the
same terminal that login was running on. Unless you have some magic in
/etc/profile or your .profile that detects the terminal type and sets
$TERM and the stty stuff for you, the only reason why anything might
work differently under the shell than it did in login is because the
shell has its own code to do line editing, while login uses the generic
"cooked mode" handled by the driver. But the differences are minor.

(The shell seems to treat CR as a newline character; the "cooked mode"
treats a CR that wasn't thrown away or turned into a newline by your
stty +igncr +icrnl settings, as an input character, and displays it as
"^M". But there's no way for either the shell or the driver to
recognize the arrow keys, or the Insert and Delete keys, unless
something has
told them what escape sequences those keys generate on the
particular terminal that is attached to the serial line at the moment.
The console driver is in a much better position: since it just knows
what escape sequences it generates, it can initialize its device
settings properly without any doubt.)

I don't know exactly how these things are supposed to work under QNX6,
but under QNX4, there was a utility called termdef that you could tell
tinit to run on a s erial port instead of login. Termdef would ask you
what type of terminal you were using, then set $TERM and do the
equivalent of "stty load", and finally exec into login. This way, when
login is started, your terminal settings are already correct, and login
does not need to worry about them any more than the shell does.









“Kris Warkentin” <kewarken@qnx.com> wrote in message
news:a6lahg$9ia$1@nntp.qnx.com

One of our very clever testers (Kirk if you must know > :wink: > submitted this
as
a PR and, as he usually does, actually provided a correct fix as well. If
you simply execute ‘stty +edit < /dev/ser1’, everything works well. My
task
was to make tinit do the right thing as well. I determined that ICANON
was
already set by tinit but doing it by stty cleared a few other things as
well. In the end, applying ICRNL to the input flags of the serial port
(in
tinit) was sufficient to fix the problem.

cheers,

Are you going to put the new version of tinit into developers.qnx.com/Fixies
?

Thanks, Pavol Kycina

If someone really needs it, I could I suppose but since the work around is
so easy (stty +edit < /dev/ser1), I didn’t really plan on it.

cheers,

Kris
“Pavol Kycina” <kycina@microstep-hdo.sk> wrote in message
news:3c96f59f$1@asrpx.mshdo

“Kris Warkentin” <> kewarken@qnx.com> > wrote in message
news:a6lahg$9ia$> 1@nntp.qnx.com> …
One of our very clever testers (Kirk if you must know > :wink: > submitted this
as
a PR and, as he usually does, actually provided a correct fix as well.
If
you simply execute ‘stty +edit < /dev/ser1’, everything works well. My
task
was to make tinit do the right thing as well. I determined that ICANON
was
already set by tinit but doing it by stty cleared a few other things as
well. In the end, applying ICRNL to the input flags of the serial port
(in
tinit) was sufficient to fix the problem.

cheers,

Are you going to put the new version of tinit into
developers.qnx.com/Fixies
?

Thanks, Pavol Kycina

Hi Kris,

In other words, you said the QNX6.2 will include fixed tinit. Am I right?

Cheers,
edik.

Kris Warkentin <kewarken@qnx.com> wrote in article <a77n27$4qh$1@nntp.qnx.com>…

If someone really needs it, I could I suppose but since the work around is
so easy (stty +edit < /dev/ser1), I didn’t really plan on it.

cheers,

Kris
“Pavol Kycina” <> kycina@microstep-hdo.sk> > wrote in message
news:3c96f59f$> 1@asrpx.mshdo> …
“Kris Warkentin” <> kewarken@qnx.com> > wrote in message
news:a6lahg$9ia$> 1@nntp.qnx.com> …
One of our very clever testers (Kirk if you must know > :wink: > submitted this
as
a PR and, as he usually does, actually provided a correct fix as well.
If
you simply execute ‘stty +edit < /dev/ser1’, everything works well. My
task
was to make tinit do the right thing as well. I determined that ICANON
was
already set by tinit but doing it by stty cleared a few other things as
well. In the end, applying ICRNL to the input flags of the serial port
(in
tinit) was sufficient to fix the problem.

cheers,

Are you going to put the new version of tinit into
developers.qnx.com/Fixies
?

Thanks, Pavol Kycina

\

Well, I would suppose that would depend on whether approval is obtained to
get it rolled in to the release. I’ll look into it.

cheers,

Kris
“ed1k” <ed1k@yahoo.com> wrote in message
news:01c1cfeb$213a0800$106fa8c0@ED1K…

Hi Kris,

In other words, you said the QNX6.2 will include fixed tinit. Am I right?

Cheers,
edik.

Kris Warkentin <> kewarken@qnx.com> > wrote in article
a77n27$4qh$> 1@nntp.qnx.com> >…
If someone really needs it, I could I suppose but since the work around
is
so easy (stty +edit < /dev/ser1), I didn’t really plan on it.

cheers,

Kris
“Pavol Kycina” <> kycina@microstep-hdo.sk> > wrote in message
news:3c96f59f$> 1@asrpx.mshdo> …
“Kris Warkentin” <> kewarken@qnx.com> > wrote in message
news:a6lahg$9ia$> 1@nntp.qnx.com> …
One of our very clever testers (Kirk if you must know > :wink: > submitted
this
as
a PR and, as he usually does, actually provided a correct fix as
well.
If
you simply execute ‘stty +edit < /dev/ser1’, everything works well.
My
task
was to make tinit do the right thing as well. I determined that
ICANON
was
already set by tinit but doing it by stty cleared a few other things
as
well. In the end, applying ICRNL to the input flags of the serial
port
(in
tinit) was sufficient to fix the problem.

cheers,

Are you going to put the new version of tinit into
developers.qnx.com/Fixies
?

Thanks, Pavol Kycina

\

“Kris Warkentin” <kewarken@qnx.com> wrote in message
news:a77n27$4qh$1@nntp.qnx.com

If someone really needs it, I could I suppose but since the work around is
so easy (stty +edit < /dev/ser1), I didn’t really plan on it.

I think this work-around is only partial. If someone succesfully logs in,
then makes some changes to settings of serial line (for example switches to
raw mode), and then logs out without switching back to edit mode, he would
face the original problem.

Any hint?

Pavol Kycina

Yeah. You’re probably right. I haven’t heard back as to whether they want
to include this in 6.2 or not so I’ll just attach this version of tinit.
Let me know how it works.

cheers,

Kris
“Pavol Kycina” <kycina@microstep-hdo.sk> wrote in message
news:3c999aa5$1@asrpx.mshdo

“Kris Warkentin” <> kewarken@qnx.com> > wrote in message
news:a77n27$4qh$> 1@nntp.qnx.com> …
If someone really needs it, I could I suppose but since the work around
is
so easy (stty +edit < /dev/ser1), I didn’t really plan on it.


I think this work-around is only partial. If someone succesfully logs in,
then makes some changes to settings of serial line (for example switches
to
raw mode), and then logs out without switching back to edit mode, he would
face the original problem.

Any hint?

Pavol Kycina


\

begin 666 tinit.dat
M?T5,1@$!0````````````(``P!;(L$"#0```!&*P```````#0`( `& M`"@`&@`9``8T-( $" # P 4$`````P```/0` M``#T@ 0(`````!04! $!``````````" ! @`@ 0(`AD` M``(9```%`````! ```$@&0(*D$"""I! CX`PF 08`````$ `` M`@) <"0K 0(`````(@```"(````!@````0````$````&!T````````` M````3 ``````````````! ```"]U<W(O;&EB+VQD<6YX+G-O+C(`)0```#4` M```8````*@```!L`````````(@``````````````'@``````````````"0
M!,````:`````````!\````C````,P````X````K````,@`````````O```` M`````#$````'````````````````````% ```"X````5````- ```"4````1 M````, ```"P````,````````````````````````````````````!0`````` M``````````````@````````````````````!``````````T`````````! `` M``(``````````````! ````*````!@`````````````````````````````` MPL9$@`=```````````````D````(0"<< M)@@```````````````7````*0H%@```"T` M````````````````````````"P```.2(! @^$@!,#TB 0(-0 M`!(````<````D*P$" `````1`/'_)0````2)! A.````$@```"P````4B00( M1@```!(````S````(*T$" 0````1`!(`@P$.R7! @$0#Q_SD````D MB00(10```!(```! ````-(D$") !```2````1@```$2)! A[````$@```$L` M``!4B00(50```!(```!1````)*T$" 0````1`!(`6 ```&2)! BE````$@`` M`%L!``!TB00(*0```!(```!?````A(D$""@````2````80$``)2)! AC```` M$@```&<```"DB00(8 ```!(```!O````**T$" 0````1`!(`=@```+2)! @F M````$@```'L```#$B00(#@```!(```"+````U(D$"%4````2````D@```.2) M! A1````$@```)D```#TB00(30```!(```!G`0``!(H$"#L````2````;P$` M`!2*! @Y````$@```)X````DB@0(X ```!(```"M````-(H$"!<````2```` M? $``&2+! @$0*+@!$B@0(4 !("_````5(H$"/P````2 M````R@&2*! @H$@```)$!```8K00(`````!$`\?_0=(H$"+ "
M2````UP!B,! @K@``$@-P```"$B@0(AP$``!(```#C````E(H$ M""\````2````=P$``*2*! C5````$@```%0!``"TB@0(, ```!(```#M```` MQ(H$"#D````2````]0```-2*! A%````$@```/P```#DB@0(> ```!(````# M0,*T$"% ````1`!(`B@$!BM! @$0#Q_PL!``#DJP0(!$ M\?^=0N*T$" `````1`/'_(0$/2! @E$@```"8!```$BP0(*0`` M`!(K0``%(L$"",````2````,@$``"2+! @]````$@```#\!```TBP0( M< ```!(```!)01(L$"($````2````3P$%2+! C.$@!L:6)C
M+G-O+C(=V%I='!I9 !S=')E<G)O<@!?1%E.04U)0P!G971E;G89F-H;6]D
M&5R<FYO&9C:&]W;@!F9V5T<P!D=7 R'-L965P&]P=&%R9P!P=71E;G8 M<W1R<F-H<@!F<')I;G1F&]P=&EN9 !W86ET%]?9V5T7V5R<FYO7W!T<@!S M=')S='(<VEG;F%L')E860<’)O8VUG<E]D865M;VX<VEG9FEL;'-E= !S M=')D=7 7VEN:71?;&EB8P!F;W!E;@!G971O<'0;6%I;@!F8VQO<V4=&-G
M971A=‘1R'-P<FEN=&8871E>&ET'-P87=N< !?4W1D97)R%]‘3$]"04Q?
M3T9&4T547U1!0DQ%7P!E>&ET&]P96X<W1R8VAR%1I;65R5&EM96]U= !T M8W-E=&%T='(8VQO<V49G)E90!S=')C;7 ;’-E96L=W)I=&4<W1R;F-M
M< !S=’)N8W!Y'1I;647V)T97AT%]E=&5X= !?961A=&$7U]B<W-?<W1A
M<G07V5N9 ```""M! @%!@``)*T$" 4,```HK00(!1(``#"M! @%*@``\*L$ M" <!``#TJP0(!P(``/BK! @'! ``_*L$" <%````K 0(!P@```2L! @'"0`` M"*P$" <*```,K 0(!PL``!"L! @'#0``%*P$" <.```8K 0(!P\``!RL! @' M$ ``(*P$" <1```DK 0(!Q,``"BL! @'% ``+*P$" <5```PK 0(!Q8``#2L M! @'%P``.*P$" <8```\K 0(!QD``$"L! @'&@``1*P$" <;``!(K 0(!QT
M$RL! @''@``4*P$" <?``!4K 0(!R$``%BL! @'(P``7*P$" <D``!@K 0( M!R4``&2L! @')@``:*P$" <G``!LK 0(!R@``'"L! @'*0``=*P$" <N``!X MK 0(!R\``'RL! @', ``@*P$" <Q``"$K 0(!S(``(BL! @',P``C*P$" <T M``#HOPX``,(``/\UZ*L$"/\E[*L$" ````#_)?"K! AH`````.G@_____R7T MJP0(: @```#IT/____\E^*L$"&@0````Z<#_____)?RK! AH& ```.FP____ M_R4K 0(:" #IH/____\E!*P$"&@H````Z9#_____)0BL! AH, .F
M_____R4,K 0(:#@#I</____\E$*P$"&A ````Z6#_____)12L! AH2 `` M`.E0_____R48K 0(:% #I0/\E’*P$"&A8Z3#_____)2"L! AH M8 ```.D@_____R4DK 0(:&@```#I$/____\E**P$"&APZ0#__)2RL
M! AH> .GP_O___R4PK 0(:( #IX/[
\E-*P$"&B(Z=#^____ M)3BL! AHD ```.G _O___R4\K 0(:)@```#IL/[___\E0*P$"&B@Z:#^
M
)42L! AHJ .F0_O___R5(K 0(:+ #I@/[\E3*P$"&BX MZ7#^____)5"L! AHP ```.E@_O___R54K 0(:,@```#I4/[___\E6*P$"&C0 MZ4#^)5RL! AHV .DP_O___R5@K 0(:. #I(/[\E9*P$
M"&CHZ1#^____)6BL! AH\ ```.D`_O___R5LK 0(:/@```#I\/W___\E M<*P$"&@``0``Z>#]____)72L! AH" $``.G0_?___R5XK 0(:! !``#IP/W_ M__\E?*P$"&@8`0``Z;#]____)8"L! AH( $``.F@_?___R6$K 0(:"@!``#I MD/W___\EB*P$"&@P`0``Z8#]____)8RL! AH. $``.EP_?__3DE!31B,! B) MTXMT) "-3"0$C02QC7@$C5 (@W@$`'0,C78`BP*#P@2%P'7W4U)745;HN?[_ M_VCLEP0(Z"____^#Q 3H'_W__\<%(*T$" #H7 %#H,O___\R058GE M@^P44^@`````6X'#%" ``.L6C78`BX,\_?__C5 $B9,\_?__BP#_T(N#//W_ M_X,X`'7B6\G#C78`58GE@^P44^@`````6X'#V!\``%O)PY"058GE@^P<5U93 MBUT(BTT,QT7X/ ,=%
"^`,J:.XM]^(GX]^:)QHG7:47\`,J:.P'' MB77XB7W\@\3X45/H'@8``(/$$(,]M*T$" !T)H/$]&H`Z-#^__^#Q/1J`>C& M_O__@\0@@\3T:@+HN?[__^L/C78`@\3X:@!J`.B(_?__@\00@\3X:@%J#^@Y M_?__@\3X:@%J`>@M_?__@\0@@SVPK00(`'1B@\3T:$"I! CH; ,``(G&@\00 M@_[_=$&#Q/QJ`&H`5NC]^___@\3X:@!H%9@$".@._O__B<.#Q""#^_]T&X/$ M_&H!C47W4%/HY?S__X/$]%/H+/[__X/$(,<%L*T$" #H&@$+M J00( M,?^#/4"I! @`="*)]H/$]%/H]P((/$$(/X_W4%OP$"#PQ2#.P!UXHGV MA?]T-H,]M*T$" !T%H/$^&@AF 0(_S6TK00(Z"C\__^#Q!"#Q/1J`(U%^%!J M`&I0:@#HD?W__X/$((/$]&H`Z!3\__^)QH/$$(/^_W47Z!7\__^#. IU#8/$ M]&H*Z);[__^#Q!"[0*D$"#'_@SU J00(`'2+C78`.7,0= N#>Q#_=5<Y<Q!U M/(/$^&@OF 0(_W,$Z.#[__^#Q!"%P'0E@\3X:B__,^A]^___@\00A<!T$D" M. !T#(/$]%#H9P@``(/$$(/$]%/H$P(``(/$$(/X_W4%OP$"#PQ2#.P!U
MEND9____D%6)Y8’L[ %=64[] J00(@\3X:#68! AH-Y@$".C]^___B84D M____@\00A< /A*<!``"-18R)A2#___^-A2C___^)A1S____I/ $``(GVC46, M,=N ?8P`=#J-3?")]H X(G4'LB) ZP2)]K(@B029ZP*00( X`'0$.!!U]L8` M`(UV`$" ."!T^D. . !T!8/[`W[+@_L"=3:-=?"[`P(/$]&A(F 0(Z!'Z
M
_^#Q!"%P’02@\3T:$B8! CH_?G__X/$$.L%N$V8! B)1@B#^P-U&(/$]&CT
MEP0(Z![[^)1?R[! (/$$(/[! ^%E (M%( X+W0N@\3\4&A3F 0(
MBX4<_4.AM^@\3TBX4<__4.C>^O__B0>#Q"#K$XUV(/$]/]U\.C) M^O__B0>#Q!"#Q/3_=?3HN?K__XE'!(/$_/]U^&A;F 0(BX4<____4.@?^___ M@\0@@\3TBX4<____4.B-^O__B4<(@\3T_W7\Z'_Z__^)1PR#QQ2#Q""#Q/R+ MA23___]0:F2+A2#___]0Z$[Y__^#Q!"%P'0C@\3X:@J+A2#___]0Z(;Y__^# MQ!"%P'0+Q@``Z8?^__^-=@"#Q/2+A23___]0Z&7Z__^!_T"I! AU!\='!&.8 M! B-I0C___];7E_)PXUV%6)Y8’LG $%=64\>%;/[__P````#'A7#^__\! M````QX5T_O__`@```(/$]&H`Z-3Z__^#Q/AJ`HM%"/\PZ(7Z__^#Q""#^/\/ MA.,!"#Q/AJ6HZ*WX^#Q/AJFH!Z*'X__^#Q""#Q/QJ&H_[5L_O__ MZ&SX__^#Q/AHM@$``/^U;/[__^A)^/__@\0@@\3XC9UX_O__4_^U;/[__^BQ M^?__@(V$_O__>X"-?/[__P& C7G^__\!@\3\4VH!_[5L_O__Z"OZ__^+50B+ M<@2#Q""#/;2M! @=!96_S)H;I@$"/\UM*T$".AV^/
@\00B?-C1S___\Q
MVX ^'0YC76 D(D,GNL)C78B@
(4)!@#H= 6 .B!U,8!$& .B!U"8UV M$* .B!T^D. .@!T!8/['W[+C46 QP28(MU@(/$^&HO5NCS]___B<&# MQ!"%R70$08E-@(/$](M-"/]Q".BX]___C;W$_O__,<#\N18```#SJ\>%Q/[_ M_P0```"#Q/2-A=3^__]0Z%_X__^#Q""#/;"M! @`=0J!C<3^__^ `@``@\3X M:@"-18!0C87$_O__4(V%;/[__U!J`U;HVOC__XM5"(E"$(/$((,]M*T$" !T M*X/X_W4F@\3\@\3TZ)CW____,.C!]O__4&B(F 0(_S6TK00(Z&#W__^#Q""# MQ/1J`.CS^/__@\3T:@'HZ?C__X/$((/$]&H"Z-SX__^+30B+01"-I5C^__]; M7E_)PXUV`%6)Y8/L#%=64XMU"(M]#.LVC78`@_A$=!.#^'!U*<<%L*T$" $` M``#K'8GV@\3X:)Z8! C_-22M! CHJ??__Z.TK00(@\00@\3\:)J8! A75NBB M]___@\00@_C_=;8Y-2BM! A]3HGV@\3X:CVA**T$"(L<AU/H'?C__X/$$(7 M= Z#Q/13Z%WV___K%HUV`(/$_%-HH)@$"&@PK00(Z(7V__^#Q!#_!2BM! @Y M-2BM! A\M(UEZ%M>7\G#58GE@^P(H<BK! B%P'0,@\3T4.@$^/__@\00@\3T M_W4(Z.;V__^CR*L$"(/$$(,]P*L$" !T#H/$]/\UQ*L$".C']___QP7 JP0( M,<%S*L$" #)PY!5B>6#[ B#Q/AJ`*'(JP0(A<!U!;B\F 0(4.A1 M]___H\2K! B#^/\/E< E_P```*/ JP0(R<.)]E6)Y8/L",<%S*L$" “#
M/<“K! @= Z#Q/3_-<2K! CH4??__\<%P*L$" ````#)PY!5B>6#[ CHP?__ M_^B$____R<.)]E6)Y8/L"(,]P*L$" !U">AL____A<!T-H/$_&HP:("M! C_ M-<2K! CHL_7__X/X,'42QP7,JP0(0+B K00(ZPV0QP7,JP0(`````#' MR<.)]E6)Y8/L%%.+70B)]H,]S*L$" !U#^B2____A<!U!C' ZT:)]@^_0R2# M^ EW+_\DA<R8! @/MT,D9CD%I*T$"'4;N("M! CK((U##CV.K00(=0JX@*T$ M".L/C78`QP7,JP0(`````.ND6\G#D%6)Y8/L%%.+70B)]H,]S*L$" !U#^@F M____A<!U!C' ZSZ)]@^W!:2M! AF@\#Z9H/X`7<?@\3XC4,24&B2K00(Z)KU M__^#Q!"%P'4'N("M! CK#,<%S*L$" ````#KK(M=Z,G#C78`58GE@^P05E.# M/<RK! @`= F#/<"K! @`?R:#Q/AJ":'(JP0(A<!U!;B\F 0(4.B5]?__B<.# MQ!"#^_]T:^M2D(/$_&H!:@#_-<2K! CHYO/__XG&@\00@_[_=$R#Q/AJ`:'( MJP0(A<!U!;B\F 0(4.A3]?__B<.#Q!"#^_]T*8/$_&H`C4;04%/HJO/__X/$ M$(/$_&HP_W4(4^BY\___@\3T4^A@]?__C67H6U[)PY!5B>6#[!13BUT(@\3T M4^C5_O__@\3T4^@T____BUWHR<.-=@!5B>6#[!!64XM="(/$] ^_<R1HO)@$ M".@,_?__Z,_]__^#Q/1FQT,D!@!3Z*S___^#Q"#HA/W__X/$]&CTF 0(Z./\ M___HIOW__X/$$(UV`.BO_?__A<!U]X/$]%/H>O___^A5_?__9HES)(UEZ%M> MR<.)]E6)Y8/L#%=64X/$]&B\F 0(Z)[\___H8?W__S'_ZTV0@#L`=$J#Q/QJ M#HM%"%"-<Q)6Z$GS__^#Q!"%P'4Q@\3\QP,`````:@Z+10A05N@]\___@\3T MC4,L4.C!\___@\0@@\3T4^A-_O__1X/$$.@<_?__B<.%VW6FZ,G\__^-9>A; MB?A>7\G#C78`58GE@^P\5U93BUT,,<"-?=#\N0P#SJX/$&H.W4(C47B
M4.C:\O
_@\3:@Y3C7705NC+\O__@\0@@\3TC47\4.A,___@\3T:/28! CH
MT_O__X/$(.B3
/__B?.0Z)_^%P’7W@\3T4^AJ_O__Z$7_^-9;A;7E)
MPY!5B>6#[!13Z !;@<-(% ``BX/L____@SC_="&)]HN#[/___XL`_]"+ M@^S___^-4/R)D^S___^#>/S_=>%;R<.)]E6)Y8/L%%/H`````%N!PP04``!; MR<.0D.C3\___P@```'%A;G-I+6T`+V)I;B]S:" M8R!P: `O9&5V+V-O;C$` M+V1E=B]P:&]T;VX`5&EM97)4:6UE;W5T"@!L;V=I;@!R`"]E=&,O8V]N9FEG M+W1T>7,`5$5230!Q86YS:0`O9&5V+R5S`%1%4DT])7,`+V)I;B]L;V=I;@!/ M;B!D979I8V4@)7,@<W1A<G1I;F<@)7,*`%-P87=N(&9A:6QE9#H@)7,*`$0Z M< !W`$UI<W-I;F<@)STG(&9O<B!M86-R;R E<PHO=F%R+VQO9R]U=&UP
MQ)0$")R4! B<E 0(G)0$")R4! BPE 0(L)0$"+"4! BPE 0(Q)0$""]V M87(O;&]G+W=T;7 `````````````````````````````````````````X*L$ M" `````````````````````````````````````+F 0(_9<$"/67! CTEP0( M_____P`````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M`````````````````````````````````````````````````````````/__ M__\``````````-2K! C_____`````/____\`````D*P$" ``````````ZH@$ M"/J(! @*B00(&HD$""J)! @ZB00(2HD$"%J)! AJB00(>HD$"(J)! B:B00( MJHD$"+J)! C*B00(VHD$".J)! CZB00("HH$"!J*! @JB@0(.HH$"$J*! A: MB@0(:HH$"'J*! B*B@0(FHH$"*J*! BZB@0(RHH$"-J*! CJB@0(^HH$" J+ M! @:BP0(*HL$"#J+! A*BP0(6HL$" $!# ```,R(! @-[)<$
M” 0(@00(!0```,B%! @&>(($” H"B`0``"P! 5
M,```#DJP0(`@```$ !```4````$0```!<```",AP0($0```&R'! @2 M````( ```!,````(```````````````$````.P````$```!13E@`0SHO8WEG M=VEN+VAO;64O:V5W87)K96XO8W9S+W-E<G9I8V5S+W1I;FET+VYT;R]X.#8O M;R]T:6YI= ````````!'0T,Z("A'3E4I(#(N.34N,B Q.3DY,3 R-" H<F5L M96%S92D``$=#0SH@*$=.52D@,BXY-2XS(#(P,#$P,S$U("AR96QE87-E*0`` M1T-#.B H1TY5*2 R+CDU+C(@,3DY.3$P,C0@*')E;&5A<V4I``!'0T,Z("A' M3E4I(#(N.34N,B Q.3DY,3 R-" H<F5L96%S92D````````````````````` M#T@ 0(,``0"($$" #``(```````B!! @
MP#!X@@0(,! ``````R(4$" `````#``4``````&R'! @
MP`&``````",AP0(``````,`!P``````S(@$" #@``````-2( M! @``````P`)``````!DBP0(``````,`"@``````[)<$" `````#LM`/27! @``````P`,```````@J00(``````,`#0``````U*L$"#X` M`````-RK! @``````P`/``````#DJP0(``````,`$ ``````D*P$" `````# M`!$``````""M! @``````P`2``````````````````,`$P`````````````` M```#`!0``````````````````P`5``````````````````,`%@`````````` M```````#`!<0! #Q_PP````!````````````\?\4```` MQ(L$" ````````H`(P```""I! @``````0`-`"<```#<JP0(``````$`#P`U M````Q(L$" `````"``H`2P````",! @``````@`*`%8````DJ00(``````$` M#0!D````U*L$" `````!``X`# ````$```````````#Q_PP````!```````` M````\?]R```````````````$`/'_# ````$```````````#Q_Q0```"0EP0( M````````"@`C````T*L$" `````!``T`>P```-BK! @``````0`.`(@```"0 MEP0(``````(`"@">````U)<$" `````"``H`5@```-2K! @``````0`-`*D` M``#@JP0(``````$`#P"V```````````````$`/'_% ```!B,! @````````* M`+X```````````````0`\?\4````.),$" ````````H`Q@```,"K! @$```` M`0`-`,P```#$JP0(! ````$`#0#1````R*L$" 0````!``T`V0```,RK! @$ M`````0`-`. ```"4DP0(-@````(`"@#J````@*T$"# ````!`!(`\ ```.2( M! @^````$@```/@```!HE 0(:P```!(`"@```0``L*T$" 0````1`!(`# $` M`#R5! BO````$@`*`!<!``#4E 0(90```!(`"@`A`0``](@$"#4````2```` M*@$``$2.! CU`0``$@`*`#0!``"0K 0(`````!$`\?\]`0``!(D$"$X````2 M````1 $``!2)! A&````$@```$L!```@K00(! ```!$`$@!1`0``[)<$" `` M```1`/'_6 $``!"7! A_````$@`*`& !```DB00(10```!(```!G`0``-(D$ M") !```2````;0$``$2)! A[````$@```'(!``!4B00(50```!(```!X`0`` M)*T$" 0````1`!(`?P$``!24! A2````$@`*`(@!``!DB00(I0```!(```"/ M`0``M*T$" 0````1`!(`EP$``'2)! @I````$@```)T!``#,B 0(`````!(` M" "C`0``.),$"%L````2``H`K $``(2)! @H````$@```+0!``!\D@0(O `` M`!(`"@"\`0``E(D$"&,````2````P@$``*2)! A@````$@```,H!```0E@0( M<@```!(`"@#0`0``**T$" 0````1`!(`UP$``+2)! @F````$@```-P!``#$ MB00(#@```!(```#L`0``;(L$"%<````2``H`\P$``-2)! A5````$@```/H! M``#DB00(40```!(````!`@``](D$"$T````2````!@(``,R3! @S````$@`* M``\"```$B@0(.P```!(````7`@``%(H$"#D````2````'P(``"2*! C@```` M$@```"X"``! J00(@ (``!$`#0`R`@``-(H$"!<````2````/0(``&2+! @` M````$0`*`$0"``!$B@0(4 ```!(```!+`@``5(H$"/P````2````5@(``&2* M! @H````$@```%P"```8K00(`````!$`\?]H`@``=(H$"+ "```2````;P(` M`!B,! @K`@``$@`*`'0"``"$B@0(AP$``!(```![`@``E(H$""\````2```` MA0(``*2*! C5````$@```(H"``"TB@0(, ```!(```"1`@``[)<$" `````2 M``L`EP(``(26! B)````$@`*`)X"``#$B@0(.0```!(```"F`@``U(H$"$4` M```2````K0(``.R5! @A````$@`*`+<"``#DB@0(> ```!(```"^`@``,*T$ M"% ````1`!(`Q@(``!BM! @`````$0#Q_\T"``#DJP0(`````!$`\?_C`@`` MN*T$" `````1`/'_Z (``/2*! @E````$@```.T"```\D 0(/0(``!(`"@#S M`@``!(L$""D````2````^ (``!2+! @C````$@```/\"````E 0($@```!(` M"@`(`P``)(L$"#T````2````%0,``#2+! AP````$@```!\#``!$BP0(@0`` M`!(````E`P``5(L$",X````2`````&-R=&)E9VEN+F,`7U]024-?7P!G8V,R M7V-O;7!I;&5D+@!P+C,`7U]$5$]27TQ)4U1?7P!?7V1O7V=L;V)A;%]D=&]R M<U]A=7@`9FEN:5]D=6UM>0!F;W)C95]T;U]D871A`%]?0U1/4E],25-47U\` M8W)T96YD+F,`7U]#5$]27T5.1%]?`%]?9&]?9VQO8F%L7V-T;W)S7V%U> !I M;FET7V1U;6UY`%]?1%1/4E]%3D1?7P!T:6YI="YC`&=E='5T+F,`9F1?;VL` M=71F9 !U=&9N86UE`&)U9E]O:P!O<&5N7W5T9F0`=71B=68`=V%I='!I9 !G M971U=&ED`%-T87)T4&AO=&]N`%]R97!U=&QI;F4`9V5T=71L:6YE`'-T<F5R M<F]R`')E861?='1Y<P!?1%E.04U)0P!G971E;G8`9F-H;6]D`&5R<FYO`%]E M=&5X= !L;V=W=&UP`&9C:&]W;@!F9V5T<P!D=7 R`'-L965P`&]P=&%R9P!G M971U=&5N= !P=71E;G8`1&5B=6=&< !L<V5E:P!?:6YI= !U=&UP;F%M90!S M=')R8VAR`&]P=&EO;G,`=W)I=&4`9G!R:6YT9@!L;V=I;@!O<'1I;F0`=V%I M= !?7V=E=%]E<G)N;U]P='(`7W-T87)T`'-T<G-T<@!S:6=N86P`<F5A9 !E M;F1U=&5N= !S=')N8VUP`'-T<FYC<'D`<')O8VUG<E]D865M;VX`5'1Y`'-I M9V9I;&QS970`7V)T97AT`'-T<F1U< !?:6YI=%]L:6)C`&9O<&5N`%]?8G-S M7W-T87)T`&=E=&]P= !M86EN`&9C;&]S90!T8V=E=&%T='(`=&EM90!S=')C M;7 `7V9I;FD`;&]G;W5T`'-P<FEN=&8`871E>&ET`'!U='5T;&EN90!S<&%W M;G `7U-T9&5R<@!?961A=&$`7T=,3T)!3%]/1D93151?5$%"3$5?`%]E;F0` M97AI= !S=&%R= !O<&5N`'-T<F-H<@!S971U=&5N= !4:6UE<E1I;65O=70` M=&-S971A='1R`&-L;W-E`&9R964`)4,)6RUP72!;96YV7W9A<CUV86QU95TN M+BX*"D]P=&EO;G,Z"B M<" @(%-T87)T(%!H;W1O;BX@268@:70@9F%I;',@ M;W(@=&5R;6EN871E<R!S=&%R="!A(&-O;G-O;&4@;&]G:6XN"@H@66]U(&-A M;B!S<&5C:69Y(&-O;6UA;F1S('1O(')U;B!B>2!P;&%C:6YG('1H96T@:6X@ M+V5T8R]C;VYF:6<O='1Y<PH@:6X@=&AE(&9O;&QO=VEN9R!F;W)M870Z"@ED M979I8V4@8V]M;6%N9"!T97)M:6YA; H@:64*"7-E<C$@(B]B:6XO:W-H(B!Q M86YS:2UM"DY!344]=&EN:70*1$530U))4%1)3TX]=&5R;6EN86P@:6YI=&EA M;&EZ871I;VX@<')O9W)A;0I$051%/51H=2!-87(@,C$@,#@Z,C$Z-38@,C P M,@I35$%413U%>'!E<FEM96YT86P*2$]35#UC871D;V<*55-%4CU+15=A<FME M;@H`+G-Y;71A8@`N<W1R=&%B`"YS:'-T<G1A8@`N:6YT97)P`"YN;W1E, `N M:&%S: `N9'EN<WEM`"YD>6YS='(`+G)E;"YB<W,`+G)E;"YP;'0`+FEN:70` M+G!L= `N=&5X= `N9FEN:0`N<F]D871A`"YD871A`"YC=&]R<P`N9'1O<G,` M+F=O= `N9'EN86UI8P`N8G-S`"YC;VUM96YT`"YN;W1E`%%.6%]U<V%G90!1 M3EA?:6YF;P`````````````````````````````````````````````````` M````&P````$````"````]( $"/0````4```````````````!`````````",` M```'`````@````B!! @(`0```````````````````0`````````J````!0`` M``(````(@00(" $``' !```$``````````0````$````, ````L````"```` M>(($"'@"``!0`P``!0````$````$````$ ```#@````#`````@```,B%! C( M!0``H@$0! ````"0````(```!LAP0(; <``" ` M```$````$@````0````(````20````D````"````C(<$"(P'``! `0``! `` M``D````$````" ```%(````!````!@```,R(! C," ``" `````````````` M`0!80````8```#4B 0(U @``) "``````````````0````$ M````70````$````&````9(L$"&0+``"(# `````````````$`````````&,` M```!````!@```.R7! CL%P``" ```````````````0````````!I0 M(#TEP0(]!<X!0`````````<0````$````#```` M(*D$"" 9``"T`@`````````````@`````````'<````!`````P```-2K! C4 M&P``" ! !^`````0````,```#<JP0(W!L```@` M``````````````0`````````A0````$````#````Y*L$".0;``"L
M$````! ```(H````&`````P```)"L! B0' ``B ````4````````` M! ````@```"3````" ````,````@K00((!T``)@``````````````" ````` M````F ````$``````````````&@=``"8```````````````!`````````*$` M```'```````````````8'0``3 ```````````````0`````````!`````@`` M`````````````!X``. '```6````-@````0````0````"0````,````````` M`````. E```J`P`````````````!`````````*<````!```````````````* M*0````$```````````````````````"Q`````0``````````````"BH``((` M````````````````````````$0````,``````````````(PJ``"Z```````` -!````````````
`
end

Thank you Kris,

There was another problem with tinit (I guess):
I need renice my mouse, so I include some extra commands in ‘ph’ script. It works fine while I’m
loged in text mode and then type ‘ph’. But if I use ‘tinit -P’ to boot into Photon, the ‘ph’ has no
permissions to renice mouse. Is it solved? Or is it ‘Photon’'s issue? In other words, all work
great if ‘phlogin’ accept root’s account. And it doesn’t work if non-root is loged in by ‘phlogin’.
Did you look at “-P” branch of ‘tinit’?

Eduard.
ed1k at yahoo dot com

Kris Warkentin <kewarken@qnx.com> wrote in article <a7cmiu$s29$1@nntp.qnx.com>…

Yeah. You’re probably right. I haven’t heard back as to whether they want
to include this in 6.2 or not so I’ll just attach this version of tinit.
Let me know how it works.

cheers,

Kris

“Kris Warkentin” <kewarken@qnx.com> wrote in message
news:a7cmiu$s29$1@nntp.qnx.com

Yeah. You’re probably right. I haven’t heard back as to whether they
want
to include this in 6.2 or not so I’ll just attach this version of tinit.
Let me know how it works.

Seems to work fine,

Thanks, Pavol Kycina

tinit isn’t doing anything particularily tricky with ‘-p’. It just goes
‘/bin/sh -c ph’ on /dev/con1. Perhaps it’s a permission/uid thing?

Kris

“ed1k” <ed1k@spamerstrap.com> wrote in message
news:01c1d0e3$c194e9c0$106fa8c0@ED1K…

Thank you Kris,

There was another problem with tinit (I guess):
I need renice my mouse, so I include some extra commands in ‘ph’ script.
It works fine while I’m
loged in text mode and then type ‘ph’. But if I use ‘tinit -P’ to boot
into Photon, the ‘ph’ has no
permissions to renice mouse. Is it solved? Or is it ‘Photon’'s issue? In
other words, all work
great if ‘phlogin’ accept root’s account. And it doesn’t work if non-root
is loged in by ‘phlogin’.
Did you look at “-P” branch of ‘tinit’?

Eduard.
ed1k at yahoo dot com

Kris Warkentin <> kewarken@qnx.com> > wrote in article
a7cmiu$s29$> 1@nntp.qnx.com> >…
Yeah. You’re probably right. I haven’t heard back as to whether they
want
to include this in 6.2 or not so I’ll just attach this version of tinit.
Let me know how it works.

cheers,

Kris

Hm…, yes, it’s permission thing. I did not change attribute/owner of ‘ph’, just added some
‘renice’ commands into script. I believe ‘ph’ has setted ‘set uid on execution’ bit by the fresh
installation. Where is problem? Any user can do login on any console and then type ‘ph’ to be in
Photon (I use ‘nophoton’ file). Without ‘nophoton’ (i.e ‘tinit -p’ executed), only root can do
phlogin to be in right Photon. Any other user will get Photon with jumping mouse and other unwanted
stuff :wink:. Heh, I know the unwanted stuff in QNXRTP is the problem of my old and slow hardware
(p166mmx, 430VX, 64mb, serial old fashion mitsumi mouse - all work perfectly in NT4SP6), but some
'renice’s do the trick for me. The only thing which I don’t understand now, why any already loged
in user execute ‘ph’ without problem, and the same script does not work when it launched by
‘tinit’?

Eduard.
ed1k at ukr dot net

Kris Warkentin <kewarken@qnx.com> wrote in article <a7d0bo$68o$1@nntp.qnx.com>…

tinit isn’t doing anything particularily tricky with ‘-p’. It just goes
‘/bin/sh -c ph’ on /dev/con1. Perhaps it’s a permission/uid thing?

Kris

“ed1k” <> ed1k@spamerstrap.com> > wrote in message
news:01c1d0e3$c194e9c0$106fa8c0@ED1K…
Thank you Kris,

There was another problem with tinit (I guess):
I need renice my mouse, so I include some extra commands in ‘ph’ script.
It works fine while I’m
loged in text mode and then type ‘ph’. But if I use ‘tinit -P’ to boot
into Photon, the ‘ph’ has no
permissions to renice mouse. Is it solved? Or is it ‘Photon’'s issue? In
other words, all work
great if ‘phlogin’ accept root’s account. And it doesn’t work if non-root
is loged in by ‘phlogin’.
Did you look at “-P” branch of ‘tinit’?

Eduard.
ed1k at yahoo dot com

Kris Warkentin <> kewarken@qnx.com> > wrote in article
a7cmiu$s29$> 1@nntp.qnx.com> >…
Yeah. You’re probably right. I haven’t heard back as to whether they
want
to include this in 6.2 or not so I’ll just attach this version of tinit.
Let me know how it works.

cheers,

Kris

Scripts can’t be suid. I believe phlogin should be suid root. I’m not
really sure what the problem is since, if tinit is running as root, when it
launches ph, there should be no problem.

Kris

“ed1k” <ed1k@spamerstrap.com> wrote in message
news:01c1d179$0bdd8740$106fa8c0@ED1K…

Hm…, yes, it’s permission thing. I did not change attribute/owner of
‘ph’, just added some
‘renice’ commands into script. I believe ‘ph’ has setted ‘set uid on
execution’ bit by the fresh
installation. Where is problem? Any user can do login on any console and
then type ‘ph’ to be in
Photon (I use ‘nophoton’ file). Without ‘nophoton’ (i.e ‘tinit -p’
executed), only root can do
phlogin to be in right Photon. Any other user will get Photon with jumping
mouse and other unwanted
stuff > :wink:> . Heh, I know the unwanted stuff in QNXRTP is the problem of my
old and slow hardware
(p166mmx, 430VX, 64mb, serial old fashion mitsumi mouse - all work
perfectly in NT4SP6), but some
'renice’s do the trick for me. The only thing which I don’t understand
now, why any already loged
in user execute ‘ph’ without problem, and the same script does not work
when it launched by
‘tinit’?

Eduard.
ed1k at ukr dot net

Kris Warkentin <> kewarken@qnx.com> > wrote in article
a7d0bo$68o$> 1@nntp.qnx.com> >…
tinit isn’t doing anything particularily tricky with ‘-p’. It just goes
‘/bin/sh -c ph’ on /dev/con1. Perhaps it’s a permission/uid thing?

Kris

“ed1k” <> ed1k@spamerstrap.com> > wrote in message
news:01c1d0e3$c194e9c0$106fa8c0@ED1K…
Thank you Kris,

There was another problem with tinit (I guess):
I need renice my mouse, so I include some extra commands in ‘ph’
script.
It works fine while I’m
loged in text mode and then type ‘ph’. But if I use ‘tinit -P’ to boot
into Photon, the ‘ph’ has no
permissions to renice mouse. Is it solved? Or is it ‘Photon’'s issue?
In
other words, all work
great if ‘phlogin’ accept root’s account. And it doesn’t work if
non-root
is loged in by ‘phlogin’.
Did you look at “-P” branch of ‘tinit’?

Eduard.
ed1k at yahoo dot com

Kris Warkentin <> kewarken@qnx.com> > wrote in article
a7cmiu$s29$> 1@nntp.qnx.com> >…
Yeah. You’re probably right. I haven’t heard back as to whether
they
want
to include this in 6.2 or not so I’ll just attach this version of
tinit.
Let me know how it works.

cheers,

Kris

Hi Kris,

I’m sorry I forgot the explanation in the message

From: Gui Group <gui@qnx.com
Newsgroups: qdn.public.qnxrtp.os
Subject: Re: Photon session tuning
Date: 24 Sep 2001 13:38:14 GMT
Xref: inn.qnx.com qdn.public.qnxrtp.os:5188

It tells about some problems with ‘slay’&‘renice’… I still don’t understand where is problem, but
I think it has nothing to do with subject of this thread. So, thank you very much for fixed
‘tinit’.

BTW, I added two lines in ‘ph’ :
pid=slay -p devi-hirun
renice -16 -p $pid

If ‘ph’ is running as root, is ‘renice’ running as root too? Or all stuff after ‘phlogin’ (Photon)
in script are running as loged in user?

Thank you again!

Eduard.
ed1k at yahoo dot com

Kris Warkentin <kewarken@qnx.com> wrote in article <a7fi9n$495$1@nntp.qnx.com>…

Scripts can’t be suid. I believe phlogin should be suid root. I’m not
really sure what the problem is since, if tinit is running as root, when it
launches ph, there should be no problem.

Kris