Re: Huh??!? xterm: Error 14, errno 2: No such file or directory
David Wolfskill wrote: Built -CURRENT rebooted after mergemaster as usual, and some X applications (xbattbar; xlockmore; oclock) work OK, but no xterm. At least, not from X (XF86-4.0.3). I tried using Ctl-Alt-F2 to get to a non-X login, logged in , set DISPLAY to m147:0.0, issued xterm , and got an xterm OK. Known problem. phk changed the semantics of /dev/tty in the most recent commits. Traditional behavior for a process *without* a controlling tty when it opens /dev/tty is to get ENXIO. Formerly, ctty_open() returns ENXIO: cttyopen(dev, flag, mode, p) { struct vnode *ttyvp = cttyvp(p); if (ttyvp == NULL) return (ENXIO); ... and now: ctty_clone(void *arg, char *name, int namelen, dev_t *dev) { struct vnode *vp; if (*dev != NODEV) return; if (strcmp(name, tty)) return; vp = cttyvp(curproc); if (vp == NULL) return; here, leads to ENOENT. *dev = vp-v_rdev; } There used to be a device for the ctty. We still maintain it for the non-devfs case. The following hack may work, I have not tested or even compiled it: Index: kern/tty_tty.c === RCS file: /home/ncvs/src/sys/kern/tty_tty.c,v retrieving revision 1.34 diff -u -r1.34 tty_tty.c --- tty_tty.c 2001/05/14 08:22:56 1.34 +++ tty_tty.c 2001/05/15 08:30:17 @@ -177,6 +177,8 @@ static void ctty_clone __P((void *arg, char *name, int namelen, dev_t *dev)); +static dev_t ctty; + static void ctty_clone(void *arg, char *name, int namelen, dev_t *dev) { @@ -187,9 +189,11 @@ if (strcmp(name, tty)) return; vp = cttyvp(curproc); - if (vp == NULL) - return; - *dev = vp-v_rdev; + if (vp == NULL) { + if (ctty) + *dev = ctty; + } else + *dev = vp-v_rdev; } @@ -201,6 +205,7 @@ if (devfs_present) { EVENTHANDLER_REGISTER(dev_clone, ctty_clone, 0, 1000); + ctty = make_dev(ctty_cdevsw, 0, 0, 0, 0666, ctty); } else { make_dev(ctty_cdevsw, 0, 0, 0, 0666, tty); } This hack recreates a /dev/ctty hook that works the old way, and makes /dev/tty switch through to that one instead. This is evil and is probably even more broken than before, but I think it will work. The alternative is to edit the XFree86 xterm source and rebuild it. look for xc/programs/xterm/main.c where it opens /dev/tty and then checks an inclusive list of errno's, including ENXIO and ENODEV etc. Add ENOENT to the list of 'acceptable' errors. Incidently, the xterm binary is broken, it does not use libutil/openpty(). Cheers, -Peter -- Peter Wemm - [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED] All of this is for nothing if we don't go to the stars - JMS/B5 To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message
Re: Huh??!? xterm: Error 14, errno 2: No such file or directory
This makes xterm work again. Any objections to a commit ? David Wolfskill wrote: Built -CURRENT rebooted after mergemaster as usual, and some X applications (xbattbar; xlockmore; oclock) work OK, but no xterm. At least, not from X (XF86-4.0.3). I tried using Ctl-Alt-F2 to get to a non-X login, logged in , set DISPLAY to m147:0.0, issued xterm , and got an xterm OK. Known problem. phk changed the semantics of /dev/tty in the most recent commits. Traditional behavior for a process *without* a controlling tty when it opens /dev/tty is to get ENXIO. Formerly, ctty_open() returns ENXIO: cttyopen(dev, flag, mode, p) { struct vnode *ttyvp = cttyvp(p); if (ttyvp == NULL) return (ENXIO); ... and now: ctty_clone(void *arg, char *name, int namelen, dev_t *dev) { struct vnode *vp; if (*dev != NODEV) return; if (strcmp(name, tty)) return; vp = cttyvp(curproc); if (vp == NULL) return; here, leads to ENOENT. *dev = vp-v_rdev; } There used to be a device for the ctty. We still maintain it for the non-devfs case. The following hack may work, I have not tested or even compiled it: Index: kern/tty_tty.c === RCS file: /home/ncvs/src/sys/kern/tty_tty.c,v retrieving revision 1.34 diff -u -r1.34 tty_tty.c --- tty_tty.c 2001/05/14 08:22:56 1.34 +++ tty_tty.c 2001/05/15 08:30:17 @@ -177,6 +177,8 @@ static void ctty_clone __P((void *arg, char *name, int namelen, dev_t *dev)); +static dev_t ctty; + static void ctty_clone(void *arg, char *name, int namelen, dev_t *dev) { @@ -187,9 +189,11 @@ if (strcmp(name, tty)) return; vp = cttyvp(curproc); - if (vp == NULL) - return; - *dev = vp-v_rdev; + if (vp == NULL) { + if (ctty) + *dev = ctty; + } else + *dev = vp-v_rdev; } @@ -201,6 +205,7 @@ if (devfs_present) { EVENTHANDLER_REGISTER(dev_clone, ctty_clone, 0, 1000); + ctty = make_dev(ctty_cdevsw, 0, 0, 0, 0666, ctty); } else { make_dev(ctty_cdevsw, 0, 0, 0, 0666, tty); } This hack recreates a /dev/ctty hook that works the old way, and makes /dev/tty switch through to that one instead. This is evil and is probably even more broken than before, but I think it will work. The alternative is to edit the XFree86 xterm source and rebuild it. look for xc/programs/xterm/main.c where it opens /dev/tty and then checks an inclusive list of errno's, including ENXIO and ENODEV etc. Add ENOENT to the list of 'acceptable' errors. Incidently, the xterm binary is broken, it does not use libutil/openpty(). Cheers, -Peter -- Peter Wemm - [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED] All of this is for nothing if we don't go to the stars - JMS/B5 To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message -- Brian [EMAIL PROTECTED]brian@[uk.]FreeBSD.org http://www.Awfulhak.org brian@[uk.]OpenBSD.org Don't _EVER_ lose your sense of humour ! To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message
Re: Huh??!? xterm: Error 14, errno 2: No such file or directory
On Tue, May 15, 2001 at 01:34:27AM -0700, Peter Wemm wrote: David Wolfskill wrote: Built -CURRENT rebooted after mergemaster as usual, and some X applications (xbattbar; xlockmore; oclock) work OK, but no xterm. At least, not from X (XF86-4.0.3). I tried using Ctl-Alt-F2 to get to a non-X login, logged in , set DISPLAY to m147:0.0, issued xterm , and got an xterm OK. Known problem. phk changed the semantics of /dev/tty in the most recent commits. Traditional behavior for a process *without* a controlling tty when it opens /dev/tty is to get ENXIO. I am confused now. I have just finished building and installing world and kernel from top-of-the-tree sources: FreeBSD fonix.hos.u-szeged.hu 5.0-CURRENT FreeBSD 5.0-CURRENT #42: Tue May 15 18 :32:49 CEST 2001 [EMAIL PROTECTED]:/usr/src/sys/compile/FONIX i386 and I am (for the first time ever) a proud owner of a devfs-powered FreeBSD system. So far things are looking A-OK. Having read about all the trouble people were having with xterms, I grew a bit anxious and fired up X. It crashed because the config file contained /dev/mouse and that node no longer exists, but of course correcting it to /dev/sysmouse made things work. Then... I proceeded to open an xterm... and it opened! Just right-clicked the root window and chose xterm form the popup menu and it worked without any patch... although I am confident I do have the latest of phk-s commits and I am running on a new kernel... I am using XFree-3.3.6 and olvwm if that at all counts... of course I am happy to see no problems but why are others seeing them? -- Regards: Szilveszter ADAM Szeged University Szeged Hungary To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message
Re: Huh??!? xterm: Error 14, errno 2: No such file or directory
Have you got v1.23 of sys/fs/devfs/devfs_vnops.c and are you running as non-root ? On Tue, May 15, 2001 at 01:34:27AM -0700, Peter Wemm wrote: David Wolfskill wrote: Built -CURRENT rebooted after mergemaster as usual, and some X applications (xbattbar; xlockmore; oclock) work OK, but no xterm. At least, not from X (XF86-4.0.3). I tried using Ctl-Alt-F2 to get to a non-X login, logged in , set DISPLAY to m147:0.0, issued xterm , and got an xterm OK. Known problem. phk changed the semantics of /dev/tty in the most recent commits. Traditional behavior for a process *without* a controlling tty when it opens /dev/tty is to get ENXIO. I am confused now. I have just finished building and installing world and kernel from top-of-the-tree sources: FreeBSD fonix.hos.u-szeged.hu 5.0-CURRENT FreeBSD 5.0-CURRENT #42: Tue May 15 18 :32:49 CEST 2001 [EMAIL PROTECTED]:/usr/src/sys/compile/FONIX i386 and I am (for the first time ever) a proud owner of a devfs-powered FreeBSD system. So far things are looking A-OK. Having read about all the trouble people were having with xterms, I grew a bit anxious and fired up X. It crashed because the config file contained /dev/mouse and that node no longer exists, but of course correcting it to /dev/sysmouse made things work. Then... I proceeded to open an xterm... and it opened! Just right-clicked the root window and chose xterm form the popup menu and it worked without any patch... although I am confident I do have the latest of phk-s commits and I am running on a new kernel... I am using XFree-3.3.6 and olvwm if that at all counts... of course I am happy to see no problems but why are others seeing them? -- Regards: Szilveszter ADAM Szeged University Szeged Hungary -- Brian [EMAIL PROTECTED]brian@[uk.]FreeBSD.org http://www.Awfulhak.org brian@[uk.]OpenBSD.org Don't _EVER_ lose your sense of humour ! To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message
Re: Huh??!? xterm: Error 14, errno 2: No such file or directory
Date: Tue, 15 May 2001 19:16:44 +0200 From: Szilveszter Adam [EMAIL PROTECTED] Built -CURRENT rebooted after mergemaster as usual, and some X applications (xbattbar; xlockmore; oclock) work OK, but no xterm. At least, not from X (XF86-4.0.3). I tried using Ctl-Alt-F2 to get to a non-X login, logged in , set DISPLAY to m147:0.0, issued xterm , and got an xterm OK. Known problem. phk changed the semantics of /dev/tty in the most recent commits. Traditional behavior for a process *without* a controlling tty when it opens /dev/tty is to get ENXIO. I am confused now. I have just finished building and installing world and kernel from top-of-the-tree sources: ... and I am (for the first time ever) a proud owner of a devfs-powered FreeBSD system. So far things are looking A-OK. :-) Having read about all the trouble people were having with xterms, I grew a bit anxious and fired up X. It crashed because the config file contained /dev/mouse and that node no longer exists, but of course correcting it to /dev/sysmouse made things work. What I did was add ln -fs /dev/sysmouse /dev/mouse to /etc/rc.devfs, and that part no longer was a problem. Then... I proceeded to open an xterm... and it opened! Just right-clicked the root window and chose xterm form the popup menu and it worked without any patch... although I am confident I do have the latest of phk-s commits and I am running on a new kernel... I am using XFree-3.3.6 and olvwm if that at all counts... of course I am happy to see no problems but why are others seeing them? How are you starting X? Based on Peter's analysis, I'd expect that if you use startx or xinit after logging in, it should still work... because you would still have a controlling tty (I think). In my case, I'm using XFree86-4 (required for the hardware I use), so I start up X via xdm, so there's no controlling tty. Then again, I may have a penchant for breaking things :-} Cheers, david -- David H. Wolfskill [EMAIL PROTECTED] As a computing professional, I believe it would be unethical for me to advise, recommend, or support the use (save possibly for personal amusement) of any product that is or depends on any Microsoft product. To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message
Re: Huh??!? xterm: Error 14, errno 2: No such file or directory
On Tue, May 15, 2001 at 06:32:16PM +0100, Brian Somers wrote: Have you got v1.23 of sys/fs/devfs/devfs_vnops.c and are you running as non-root ? Yes: ident /usr/src/sys/fs/devfs/devfs_vnops.c /usr/src/sys/fs/devfs/devfs_vnops.c: $FreeBSD: src/sys/fs/devfs/devfs_vnops.c,v 1.23 2001/05/14 08:20:46 phk Exp $ and, uhm, yes:-) But as David pointed out, it may make a difference if you use startx/xinit or xdm. I did not think of that because I never use xdm. So, clarfying things a bit, I am running as non-root but using startx, as I always have. BTW David, you can use startx too with XFree4 if you want just install the wrapper script from /usr/ports/x11/wrapper. I did this on a friend's machine and it works:-) -- Regards: Szilveszter ADAM Szeged University Szeged Hungary To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message
Re: Huh??!? xterm: Error 14, errno 2: No such file or directory
Go ahead! In message [EMAIL PROTECTED], Brian Somers writes: This makes xterm work again. Any objections to a commit ? David Wolfskill wrote: Built -CURRENT rebooted after mergemaster as usual, and some X applications (xbattbar; xlockmore; oclock) work OK, but no xterm. At least, not from X (XF86-4.0.3). I tried using Ctl-Alt-F2 to get to a non-X login, logged in , set DISPLAY to m147:0.0, issued xterm , and got an xterm OK. Known problem. phk changed the semantics of /dev/tty in the most recent commits. Traditional behavior for a process *without* a controlling tty when it opens /dev/tty is to get ENXIO. Formerly, ctty_open() returns ENXIO: cttyopen(dev, flag, mode, p) { struct vnode *ttyvp = cttyvp(p); if (ttyvp == NULL) return (ENXIO); ... and now: ctty_clone(void *arg, char *name, int namelen, dev_t *dev) { struct vnode *vp; if (*dev != NODEV) return; if (strcmp(name, tty)) return; vp = cttyvp(curproc); if (vp == NULL) return; here, leads to ENOENT. *dev = vp-v_rdev; } There used to be a device for the ctty. We still maintain it for the non-devfs case. The following hack may work, I have not tested or even compiled it: Index: kern/tty_tty.c === RCS file: /home/ncvs/src/sys/kern/tty_tty.c,v retrieving revision 1.34 diff -u -r1.34 tty_tty.c --- tty_tty.c2001/05/14 08:22:56 1.34 +++ tty_tty.c2001/05/15 08:30:17 @@ -177,6 +177,8 @@ static void ctty_clone __P((void *arg, char *name, int namelen, dev_t *dev)); +static dev_t ctty; + static void ctty_clone(void *arg, char *name, int namelen, dev_t *dev) { @@ -187,9 +189,11 @@ if (strcmp(name, tty)) return; vp = cttyvp(curproc); -if (vp == NULL) -return; -*dev = vp-v_rdev; +if (vp == NULL) { +if (ctty) +*dev = ctty; +} else +*dev = vp-v_rdev; } @@ -201,6 +205,7 @@ if (devfs_present) { EVENTHANDLER_REGISTER(dev_clone, ctty_clone, 0, 1000); +ctty = make_dev(ctty_cdevsw, 0, 0, 0, 0666, ctty); } else { make_dev(ctty_cdevsw, 0, 0, 0, 0666, tty); } This hack recreates a /dev/ctty hook that works the old way, and makes /dev/tty switch through to that one instead. This is evil and is probably even more broken than before, but I think it will work. The alternative is to edit the XFree86 xterm source and rebuild it. look for xc/programs/xterm/main.c where it opens /dev/tty and then checks an inclusive list of errno's, including ENXIO and ENODEV etc. Add ENOENT to the list of 'acceptable' errors. Incidently, the xterm binary is broken, it does not use libutil/openpty(). Cheers, -Peter -- Peter Wemm - [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED] All of this is for nothing if we don't go to the stars - JMS/B5 To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message -- Brian [EMAIL PROTECTED]brian@[uk.]FreeBSD.org http://www.Awfulhak.org brian@[uk.]OpenBSD.org Don't _EVER_ lose your sense of humour ! To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 [EMAIL PROTECTED] | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence. To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message
Huh??!? xterm: Error 14, errno 2: No such file or directory
This is today's -CURRENT: FreeBSD m147.whistle.com 5.0-CURRENT FreeBSD 5.0-CURRENT #64: Mon May 14 09:06:50 PDT 2001 root@localhost:/common/C/obj/usr/src/sys/LAPTOP_30W i386 Earlier today, I built -STABLE: FreeBSD m147.whistle.com 4.3-STABLE FreeBSD 4.3-STABLE #49: Mon May 14 06:37:18 PDT 2001 [EMAIL PROTECTED]:/common/S1/obj/usr/src/sys/LAPTOP_30W i386 and it seems OK. Built -CURRENT rebooted after mergemaster as usual, and some X applications (xbattbar; xlockmore; oclock) work OK, but no xterm. At least, not from X (XF86-4.0.3). I tried using Ctl-Alt-F2 to get to a non-X login, logged in , set DISPLAY to m147:0.0, issued xterm , and got an xterm OK. Once I did that, I could start another xterm from that one. Sounds as if something's hosed $DISPLAY... but then why would other X apps display OK? (I just checked; xfig xv come up fine, direct from the tvtwm menu.) So I tried cd /usr/ports/x11/XFree86-4; sudo make reinstall; that done, I re-booted. Still no joy. So... I wouldn't normally sent this to the -current list, but I'm rather at a loss, and as far as I can tell, the difference would seem to have been a recent one in -CURRENT -- after all, I have been tracking each of -STABLE and -CURRENT daily (including the weekends, yes). The one other thing that appears to be fairly bogus (and possibly related) is that although I was prompted for my SSH passphrase in .xsession as usual, today (for the first time that I can recall), I see the following: m147[14] ssh-add -l Could not open a connection to your authentication agent. Normally, I see something indicating that ssh-agent did the right thing for me Now, in order to get -CURRENT to build yesterday, I had patched src/usr.sbin/kbdcontrol/kbdcontrol.c at revision 1.34 (patch sent out by John Hay), then did a make all install from the src/usr.sbin/kbdcontrol directory, then a make buildworld sequence from /usr/src. This morning, I see that sobomax patched src/usr.sbin/kbdcontrol/kbdcontrol.c to revision 1.35, so I blew away my patched version re-synced it with the repostory (revision 1.35) before the make buildworld. Maybe I need to re-build world...??!??? (I recall that (part of?) the issue with yesterday's breakage was that the make dependencies uses some userland programs, /usr/sbin/kbdcontrol among them.) Thanks, david -- David H. Wolfskill [EMAIL PROTECTED] As a computing professional, I believe it would be unethical for me to advise, recommend, or support the use (save possibly for personal amusement) of any product that is or depends on any Microsoft product. To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message