On Wed, Apr 13, 2005 at 07:50:03AM -0500, Bruce Dubbs wrote: > In any case, we are getting closer. I did follow the book precisely and > took the option of not changing anything in the console configuration. > This worked in the past. It would certainly be easy enough to throw in > a "stty sane" or "stty erase ^?" in /etc/profile, but the question now > is why is that necessary?
None of your boot scripts (or your login scripts) set stty erase ^H, correct? You never know... stty seems to pull those settings in from a tcgetattr() call. The "struct termios" that that call fills in, has the ^H character code set in the c_cc[VERASE] element (this defines which keycode acts as the "erase" keycode). tcgetattr() is part of glibc. glibc's sysdeps/unix/sysv/linux/tcgetattr.c file defines tcgetattr() as a weak alias for __tcgetattr, which basically calls the TCGETS ioctl on the passed-in file handle. In the kernel, in drivers/char/tty_ioctl.c, that ioctl value translates real_tty->termios into a user-space version, and copies it into the passed-in buffer. real_tty's value depends on whether the tty that gets passed into the ioctl handler is a pseudo-terminal master, or something else. If it's a PTY master, then real_tty is its "link" (presumably the PTY slave, though I don't know that for sure). Otherwise, real_tty is the tty_struct that was passed in. (This is all happening in drivers/char/tty_ioctl.c, function n_tty_ioctl.) Beyond that, I get lost in the kernel. I *think* the tty_struct that gets passed in depends on the line discipline (I can't find any promising callers of n_tty_ioctl, and the only other promising reference to it is the spot that sets it as the ioctl handler for the N_TTY line discipline, which seems to be the "standard" TTY line discipline). I also know that ->termios has to be initialized somewhere (when the line discipline is opened? doesn't seem to be it though), but I can't figure out where. Did you say you were using some kind of framebuffer console? Does it help at all if you change that, or did you try that already?
pgpgjMkEUbhco.pgp
Description: PGP signature
-- http://linuxfromscratch.org/mailman/listinfo/lfs-dev FAQ: http://www.linuxfromscratch.org/faq/ Unsubscribe: See the above information page