Re: serial console _after_ boot ? - was: Redirect kernel console
>>>i was wondering how to make kernel messages appear on /dev/ttyS0 >>without a reboot, i.e. kernelparam "console=ttyS0" >> >>The solution is simple... the following piece of code is inside >>opensuse-10.3/src/sysvinit-2.86-115.src.rpm#showconsole-1.08.tar.bz2#showconsole-1.08/blogd.c >> >>(void)ioctl(0, TIOCCONS, NULL); /* Undo any current map if any */ >>if (ioctl(pts, TIOCCONS, NULL) < 0) >>error("can not set console device to %s: %s\n", ptsname, >>strerror(errno)); >> >>so I suppose that's it. Write up a new program that calls the ioctl >>on a tty, and you should be done. IOW: > >TIOCCONS only works for pseudo terminals. > >Besides, it only redirects stuff you send to /dev/console. It >doesn't change what devices printk() prints to. Currently there >is no way to change that on a running kernel. > >Mike. too bad, but thanks for the info. ___ Jetzt neu! Schützen Sie Ihren PC mit McAfee und WEB.DE. 30 Tage kostenlos testen. http://www.pc-sicherheit.web.de/startseite/?mc=00 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: serial console _after_ boot ? - was: Redirect kernel console
In article <[EMAIL PROTECTED]>, Jan Engelhardt <[EMAIL PROTECTED]> wrote: > >On Jan 3 2008 13:43, [EMAIL PROTECTED] wrote: >> >>hi ! >> >>i was wondering how to make kernel messages appear on /dev/ttyS0 >without a reboot, i.e. kernelparam "console=ttyS0" > >The solution is simple... the following piece of code is inside >opensuse-10.3/src/sysvinit-2.86-115.src.rpm#showconsole-1.08.tar.bz2#showconsole-1.08/blogd.c > >(void)ioctl(0, TIOCCONS, NULL); /* Undo any current map if any */ >if (ioctl(pts, TIOCCONS, NULL) < 0) >error("can not set console device to %s: %s\n", ptsname, >strerror(errno)); > >so I suppose that's it. Write up a new program that calls the ioctl >on a tty, and you should be done. IOW: TIOCCONS only works for pseudo terminals. Besides, it only redirects stuff you send to /dev/console. It doesn't change what devices printk() prints to. Currently there is no way to change that on a running kernel. Mike. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: serial console _after_ boot ? - was: Redirect kernel console
> This errno is so out of place. yes, that was stupid. anyway: # strace ./mytiocons --snipp-- open("/dev/ttyS0", O_RDWR) = 3 ioctl(0, TIOCCONS) = -1 EBUSY (Device or resource busy) ioctl(3, TIOCCONS) = -1 EBUSY (Device or resource busy) --snipp-- man tty_ioctl is telling: Redirecting console output TIOCCONS void Redirect output that would have gone to /dev/console or /dev/tty0 to the given tty. If that was a pty master, send it to the slave. Anybody can do this as long as the output was not redirected yet. If it was redirected already EBUSY is returned, but root may stop redirection by using this ioctl with fd pointing at /dev/console or /dev/tty0. but it doesn`t seem to make any difference if i do that ioctl on /dev/console or /dev/tty0 , because i`m getting EBUSY there, too > > > On Jan 3 2008 15:39, [EMAIL PROTECTED] wrote: > >fantastic, thanks! > > > >unfortunately.. > > > >opensuse103:/home/roland/serialcons # ./mytioccons > >ioctl: Device or resource busy > > > >but i`m not deep enough into programming to understand this. > > > > >int main(void) > >{ > >int fd = open("/dev/ttyS0", O_RDWR); > >int errno; > > This errno is so out of place. > > > > >ioctl(0, TIOCCONS, NULL); > > > >if (ioctl(fd, TIOCCONS, NULL) < 0) > >printf("ioctl: %s\n", strerror(errno)); > >} > _ Der WEB.DE SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! http://smartsurfer.web.de/?mc=100071=0066 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: serial console _after_ boot ? - was: Redirect kernel console
On Jan 3 2008 15:39, [EMAIL PROTECTED] wrote: >fantastic, thanks! > >unfortunately.. > >opensuse103:/home/roland/serialcons # ./mytioccons >ioctl: Device or resource busy > >but i`m not deep enough into programming to understand this. > >int main(void) >{ >int fd = open("/dev/ttyS0", O_RDWR); >int errno; This errno is so out of place. > >ioctl(0, TIOCCONS, NULL); > >if (ioctl(fd, TIOCCONS, NULL) < 0) >printf("ioctl: %s\n", strerror(errno)); >} -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: serial console _after_ boot ? - was: Redirect kernel console
fantastic, thanks! unfortunately.. opensuse103:/home/roland/serialcons # ./mytioccons ioctl: Device or resource busy but, it`s not userspace: opensuse103:/home/roland # lsof |egrep "console|ttyS0" opensuse103:/home/roland # in tty_io.c -> ticoccons() there is if (redirect) { spin_unlock(_lock); return -EBUSY; } but i`m not deep enough into programming to understand this. --- mytioccons.c #include #include #include #include #include #include #include int main(void) { int fd = open("/dev/ttyS0", O_RDWR); int errno; ioctl(0, TIOCCONS, NULL); if (ioctl(fd, TIOCCONS, NULL) < 0) printf("ioctl: %s\n", strerror(errno)); } --- > -Ursprüngliche Nachricht- > Von: "Jan Engelhardt" <[EMAIL PROTECTED]> > Gesendet: 03.01.08 14:28:45 > An: [EMAIL PROTECTED] > CC: linux-kernel@vger.kernel.org > Betreff: Re: serial console _after_ boot ? - was: Redirect kernel console > > > On Jan 3 2008 13:43, [EMAIL PROTECTED] wrote: > > > >hi ! > > > >i was wondering how to make kernel messages appear on /dev/ttyS0 without a > >reboot, i.e. kernelparam "console=ttyS0" > > The solution is simple... the following piece of code is inside > opensuse-10.3/src/sysvinit-2.86-115.src.rpm#showconsole-1.08.tar.bz2#showconsole-1.08/blogd.c > > (void)ioctl(0, TIOCCONS, NULL); /* Undo any current map if any */ > if (ioctl(pts, TIOCCONS, NULL) < 0) > error("can not set console device to %s: %s\n", ptsname, > strerror(errno)); > > so I suppose that's it. Write up a new program that calls the ioctl > on a tty, and you should be done. IOW: > > #include > #include > #include > #include > > int main(void) > { > int fd = open("/dev/ttyS0", O_RDWR); > ioctl(0, TIOCCONS, NULL); > ioctl(fd, TIOCCONS, NULL); > } > __ Erweitern Sie FreeMail zu einem noch leistungsstärkeren E-Mail-Postfach! Mehr Infos unter http://produkte.web.de/club/?mc=021131 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: serial console _after_ boot ? - was: Redirect kernel console
On Jan 3 2008 13:43, [EMAIL PROTECTED] wrote: > >hi ! > >i was wondering how to make kernel messages appear on /dev/ttyS0 without a >reboot, i.e. kernelparam "console=ttyS0" The solution is simple... the following piece of code is inside opensuse-10.3/src/sysvinit-2.86-115.src.rpm#showconsole-1.08.tar.bz2#showconsole-1.08/blogd.c (void)ioctl(0, TIOCCONS, NULL); /* Undo any current map if any */ if (ioctl(pts, TIOCCONS, NULL) < 0) error("can not set console device to %s: %s\n", ptsname, strerror(errno)); so I suppose that's it. Write up a new program that calls the ioctl on a tty, and you should be done. IOW: #include #include #include #include int main(void) { int fd = open("/dev/ttyS0", O_RDWR); ioctl(0, TIOCCONS, NULL); ioctl(fd, TIOCCONS, NULL); } -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: serial console _after_ boot ? - was: Redirect kernel console
hi ! i was wondering how to make kernel messages appear on /dev/ttyS0 without a reboot, i.e. kernelparam "console=ttyS0" after playing for a while with setconsole, setterm and klogconsole i didn`t find a way to make that happen. i can do "setconsole /dev/tty1 /dev/console" and see "test" on tty1 "setterm -msg on -msglevel 8 >/dev/console" (or >/dev/tty1), modprobe loop;rmmod loop - and i see the kernel message there i can do "setconsole /dev/ttyS0 /dev/console" and see "test" on ttyS0 BUT : "setterm -msg on -msglevel 8 >/dev/console" (or >/dev/ttyS0), modprobe loop;rmmod loop .. nothing! since i came across jan`s posting from 2005, which didn`t get a reply i think it`s not that stupid to ask again... any clue how to do that at runtime or what`s the issue here ? (see excerpts below) i can set regards roland List: linux-kernel Subject:Redirect kernel console From: Jan Engelhardt Date: 2005-08-13 12:48:22 Message-ID: Pine.LNX.4.61.0508131447220.4457 () yvahk01 ! tjqt ! qr [Download message RAW] Hi, there is a klogconsole utiltity that allows to change the console to which kernel messages are printed. However, is it possible to redirect to ttyS0 without a reboot? Jan Engelhardt --- >> Subject: Re: serial console _after_ boot ? >> > Setterm outputs the correct escape sequences to stdout. You can >> > configure another tty using 'setterm -msglevel 8 -msg on > /dev/ttyS0'. >> > I tested this on the standard kernel consoles (/dev/tty1-9), and it >> > worked. You obviously need root access to write the escape sequences to >> > the tty's. >> >> oh - yes, this works! but with tty1-9 only. >> not with ttyS0 :( > >.as the docs tell. > > Some options however (marked "virtual consoles only" below) do not > correspond to a terminfo(5) capability. > > -msg [on|off] (virtual consoles only) > Enables or disables the sending of kernel printk() messages to > the console. > > -msglevel 1-8 (virtual consoles only) > Sets the console logging level for kernel printk() messages. > All messages strictly more important than this > will be printed, so a logging level of 0 has the same effect > as -msg on and a logging level of 8 will print > all kernel messages. klogd(8) may be a more convenient > interface to the logging of kernel messages. > > > but i don`t have change_console. > > > searched the net and found that this eventually should be part of > > > sysvinit package. > > > but mine doesn`t provide that tool. > > > > > > found "setconsole" which looks like something similar, but "setconsole > > > /dev/ttyS0 < /dev/console" > > > doesn`t have any effect > > > > What distribution do you use? I have change_console on gentoo, yet I > > cannot find the tool on a debian etch. But that's a vserver, so it's > > probably not a reference. > > i have opensuse 10.3 _ Der WEB.DE SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! http://smartsurfer.web.de/?mc=100071=0066 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: serial console _after_ boot ? - was: Redirect kernel console
hi ! i was wondering how to make kernel messages appear on /dev/ttyS0 without a reboot, i.e. kernelparam console=ttyS0 after playing for a while with setconsole, setterm and klogconsole i didn`t find a way to make that happen. i can do setconsole /dev/tty1 /dev/console and then echo test /dev/console and see test on tty1 setterm -msg on -msglevel 8 /dev/console (or /dev/tty1), modprobe loop;rmmod loop - and i see the kernel message there i can do setconsole /dev/ttyS0 /dev/console and then echo test /dev/console and see test on ttyS0 BUT : setterm -msg on -msglevel 8 /dev/console (or /dev/ttyS0), modprobe loop;rmmod loop .. nothing! since i came across jan`s posting from 2005, which didn`t get a reply i think it`s not that stupid to ask again... any clue how to do that at runtime or what`s the issue here ? (see excerpts below) i can set regards roland List: linux-kernel Subject:Redirect kernel console From: Jan Engelhardt jengelh () linux01 ! gwdg ! de Date: 2005-08-13 12:48:22 Message-ID: Pine.LNX.4.61.0508131447220.4457 () yvahk01 ! tjqt ! qr [Download message RAW] Hi, there is a klogconsole utiltity that allows to change the console to which kernel messages are printed. However, is it possible to redirect to ttyS0 without a reboot? Jan Engelhardt --- Subject: Re: serial console _after_ boot ? Setterm outputs the correct escape sequences to stdout. You can configure another tty using 'setterm -msglevel 8 -msg on /dev/ttyS0'. I tested this on the standard kernel consoles (/dev/tty1-9), and it worked. You obviously need root access to write the escape sequences to the tty's. oh - yes, this works! but with tty1-9 only. not with ttyS0 :( .as the docs tell. Some options however (marked virtual consoles only below) do not correspond to a terminfo(5) capability. -msg [on|off] (virtual consoles only) Enables or disables the sending of kernel printk() messages to the console. -msglevel 1-8 (virtual consoles only) Sets the console logging level for kernel printk() messages. All messages strictly more important than this will be printed, so a logging level of 0 has the same effect as -msg on and a logging level of 8 will print all kernel messages. klogd(8) may be a more convenient interface to the logging of kernel messages. but i don`t have change_console. searched the net and found that this eventually should be part of sysvinit package. but mine doesn`t provide that tool. found setconsole which looks like something similar, but setconsole /dev/ttyS0 /dev/console doesn`t have any effect What distribution do you use? I have change_console on gentoo, yet I cannot find the tool on a debian etch. But that's a vserver, so it's probably not a reference. i have opensuse 10.3 _ Der WEB.DE SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! http://smartsurfer.web.de/?mc=100071distributionid=0066 -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: serial console _after_ boot ? - was: Redirect kernel console
On Jan 3 2008 13:43, [EMAIL PROTECTED] wrote: hi ! i was wondering how to make kernel messages appear on /dev/ttyS0 without a reboot, i.e. kernelparam console=ttyS0 The solution is simple... the following piece of code is inside opensuse-10.3/src/sysvinit-2.86-115.src.rpm#showconsole-1.08.tar.bz2#showconsole-1.08/blogd.c (void)ioctl(0, TIOCCONS, NULL); /* Undo any current map if any */ if (ioctl(pts, TIOCCONS, NULL) 0) error(can not set console device to %s: %s\n, ptsname, strerror(errno)); so I suppose that's it. Write up a new program that calls the ioctl on a tty, and you should be done. IOW: #include sys/ioctl.h #include sys/stat.h #include sys/types.h #include fcntl.h int main(void) { int fd = open(/dev/ttyS0, O_RDWR); ioctl(0, TIOCCONS, NULL); ioctl(fd, TIOCCONS, NULL); } -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: serial console _after_ boot ? - was: Redirect kernel console
fantastic, thanks! unfortunately.. opensuse103:/home/roland/serialcons # ./mytioccons ioctl: Device or resource busy but, it`s not userspace: opensuse103:/home/roland # lsof |egrep console|ttyS0 opensuse103:/home/roland # in tty_io.c - ticoccons() there is if (redirect) { spin_unlock(redirect_lock); return -EBUSY; } but i`m not deep enough into programming to understand this. --- mytioccons.c #include sys/ioctl.h #include sys/stat.h #include sys/types.h #include fcntl.h #include libio.h #include errno.h #include stdio.h int main(void) { int fd = open(/dev/ttyS0, O_RDWR); int errno; ioctl(0, TIOCCONS, NULL); if (ioctl(fd, TIOCCONS, NULL) 0) printf(ioctl: %s\n, strerror(errno)); } --- -Ursprüngliche Nachricht- Von: Jan Engelhardt [EMAIL PROTECTED] Gesendet: 03.01.08 14:28:45 An: [EMAIL PROTECTED] CC: linux-kernel@vger.kernel.org Betreff: Re: serial console _after_ boot ? - was: Redirect kernel console On Jan 3 2008 13:43, [EMAIL PROTECTED] wrote: hi ! i was wondering how to make kernel messages appear on /dev/ttyS0 without a reboot, i.e. kernelparam console=ttyS0 The solution is simple... the following piece of code is inside opensuse-10.3/src/sysvinit-2.86-115.src.rpm#showconsole-1.08.tar.bz2#showconsole-1.08/blogd.c (void)ioctl(0, TIOCCONS, NULL); /* Undo any current map if any */ if (ioctl(pts, TIOCCONS, NULL) 0) error(can not set console device to %s: %s\n, ptsname, strerror(errno)); so I suppose that's it. Write up a new program that calls the ioctl on a tty, and you should be done. IOW: #include sys/ioctl.h #include sys/stat.h #include sys/types.h #include fcntl.h int main(void) { int fd = open(/dev/ttyS0, O_RDWR); ioctl(0, TIOCCONS, NULL); ioctl(fd, TIOCCONS, NULL); } __ Erweitern Sie FreeMail zu einem noch leistungsstärkeren E-Mail-Postfach! Mehr Infos unter http://produkte.web.de/club/?mc=021131 -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: serial console _after_ boot ? - was: Redirect kernel console
On Jan 3 2008 15:39, [EMAIL PROTECTED] wrote: fantastic, thanks! unfortunately.. opensuse103:/home/roland/serialcons # ./mytioccons ioctl: Device or resource busy but i`m not deep enough into programming to understand this. int main(void) { int fd = open(/dev/ttyS0, O_RDWR); int errno; This errno is so out of place. ioctl(0, TIOCCONS, NULL); if (ioctl(fd, TIOCCONS, NULL) 0) printf(ioctl: %s\n, strerror(errno)); } -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: serial console _after_ boot ? - was: Redirect kernel console
This errno is so out of place. yes, that was stupid. anyway: # strace ./mytiocons --snipp-- open(/dev/ttyS0, O_RDWR) = 3 ioctl(0, TIOCCONS) = -1 EBUSY (Device or resource busy) ioctl(3, TIOCCONS) = -1 EBUSY (Device or resource busy) --snipp-- man tty_ioctl is telling: Redirecting console output TIOCCONS void Redirect output that would have gone to /dev/console or /dev/tty0 to the given tty. If that was a pty master, send it to the slave. Anybody can do this as long as the output was not redirected yet. If it was redirected already EBUSY is returned, but root may stop redirection by using this ioctl with fd pointing at /dev/console or /dev/tty0. but it doesn`t seem to make any difference if i do that ioctl on /dev/console or /dev/tty0 , because i`m getting EBUSY there, too On Jan 3 2008 15:39, [EMAIL PROTECTED] wrote: fantastic, thanks! unfortunately.. opensuse103:/home/roland/serialcons # ./mytioccons ioctl: Device or resource busy but i`m not deep enough into programming to understand this. int main(void) { int fd = open(/dev/ttyS0, O_RDWR); int errno; This errno is so out of place. ioctl(0, TIOCCONS, NULL); if (ioctl(fd, TIOCCONS, NULL) 0) printf(ioctl: %s\n, strerror(errno)); } _ Der WEB.DE SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! http://smartsurfer.web.de/?mc=100071distributionid=0066 -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: serial console _after_ boot ? - was: Redirect kernel console
In article [EMAIL PROTECTED], Jan Engelhardt [EMAIL PROTECTED] wrote: On Jan 3 2008 13:43, [EMAIL PROTECTED] wrote: hi ! i was wondering how to make kernel messages appear on /dev/ttyS0 without a reboot, i.e. kernelparam console=ttyS0 The solution is simple... the following piece of code is inside opensuse-10.3/src/sysvinit-2.86-115.src.rpm#showconsole-1.08.tar.bz2#showconsole-1.08/blogd.c (void)ioctl(0, TIOCCONS, NULL); /* Undo any current map if any */ if (ioctl(pts, TIOCCONS, NULL) 0) error(can not set console device to %s: %s\n, ptsname, strerror(errno)); so I suppose that's it. Write up a new program that calls the ioctl on a tty, and you should be done. IOW: TIOCCONS only works for pseudo terminals. Besides, it only redirects stuff you send to /dev/console. It doesn't change what devices printk() prints to. Currently there is no way to change that on a running kernel. Mike. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: serial console _after_ boot ? - was: Redirect kernel console
i was wondering how to make kernel messages appear on /dev/ttyS0 without a reboot, i.e. kernelparam console=ttyS0 The solution is simple... the following piece of code is inside opensuse-10.3/src/sysvinit-2.86-115.src.rpm#showconsole-1.08.tar.bz2#showconsole-1.08/blogd.c (void)ioctl(0, TIOCCONS, NULL); /* Undo any current map if any */ if (ioctl(pts, TIOCCONS, NULL) 0) error(can not set console device to %s: %s\n, ptsname, strerror(errno)); so I suppose that's it. Write up a new program that calls the ioctl on a tty, and you should be done. IOW: TIOCCONS only works for pseudo terminals. Besides, it only redirects stuff you send to /dev/console. It doesn't change what devices printk() prints to. Currently there is no way to change that on a running kernel. Mike. too bad, but thanks for the info. ___ Jetzt neu! Schützen Sie Ihren PC mit McAfee und WEB.DE. 30 Tage kostenlos testen. http://www.pc-sicherheit.web.de/startseite/?mc=00 -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/