* Assistance with using /dev/fb0 and No X windows
@ 2003-01-13 16:23 Gallant, John
0 siblings, 0 replies; 9+ messages in thread
From: Gallant, John @ 2003-01-13 16:23 UTC (permalink / raw)
To: linuxppc-embedded
Hello,
I have managed to get the "default" VGA/FB support to access my graphics
device on the onboard PCI bus. We a SMI LynxEM chip on the board. I have
the vga init() code properly accessing the device and the on chip frame
buffer. I have used fbset to determine if /dev/fb0 can be accessed, and the
driver is called. I also tried "ls -l > /dev/fb0" this also gets into the
vga16fb_get_fix() code.
What I need to do, and here is my lack of understanding, is to have some
program access the /dev/fb0 device and display on the CRT. I do not have
any X support, only whatever came with the MVL distribution. I am wondering
what is necessary to use mingetty, or some other display method.
Added wrinkles: No keyboard yet, but I do have the console=ttyS0
working.
So any advice on what I could use or what I may have missed in my
Xconfig settings?
The following is what I have for the CONFIG_FB settings:
#
# Frame-buffer support
#
CONFIG_FB=y
CONFIG_DUMMY_CONSOLE=y
# CONFIG_FB_RIVA is not set
# CONFIG_FB_CLGEN is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_CT65550 is not set
# CONFIG_FB_IMSTT is not set
CONFIG_FB_VGA16=y
# CONFIG_FB_MQ200 is not set
# CONFIG_FB_MATROX is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_RADEON is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_IT8181 is not set
CONFIG_FB_VIRTUAL=y
CONFIG_FBCON_ADVANCED=y
# CONFIG_FBCON_MFB is not set
# CONFIG_FBCON_CFB2 is not set
# CONFIG_FBCON_CFB4 is not set
# CONFIG_FBCON_CFB8 is not set
# CONFIG_FBCON_CFB16 is not set
# CONFIG_FBCON_CFB24 is not set
# CONFIG_FBCON_CFB32 is not set
# CONFIG_FBCON_AFB is not set
# CONFIG_FBCON_ILBM is not set
# CONFIG_FBCON_IPLAN2P2 is not set
# CONFIG_FBCON_IPLAN2P4 is not set
# CONFIG_FBCON_IPLAN2P8 is not set
# CONFIG_FBCON_MAC is not set
CONFIG_FBCON_VGA_PLANES=y
CONFIG_FBCON_VGA=y
# CONFIG_FBCON_HGA is not set
# CONFIG_FBCON_FONTWIDTH8_ONLY is not set
# CONFIG_FBCON_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
Thank you
--------------------------------------------
John A. Gallant
Sr. Embedded Software Engineer
Vanteon Inc.
2851 Clover Street
Pittsford, NY 14534
Phone: 585.248.0510 x279
Fax : 585.248.0537
email: jgallant@vanteon.com
web: www.vanteon.com
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: Assistance with using /dev/fb0 and No X windows
@ 2003-01-14 7:46 Claus Gindhart
2003-01-14 17:27 ` Chirag Kantharia
0 siblings, 1 reply; 9+ messages in thread
From: Claus Gindhart @ 2003-01-14 7:46 UTC (permalink / raw)
To: 'Gallant, John'; +Cc: linuxppc-embedded
Hello John,
i assume you want to see console output on the framebuffer
device.
To achieve this, you need
the framebuffer driver
from your mail i conclude, that You have a framebuffer driver
a keyboard driver
the dummy keyboard driver is o.k., if you dont have a physical kbd
Additionally you have to enable CONFIG_VT and CONFIG_VT_CONSOLE
on your system.
Please remove console=ttyS0 from the kernel command line. Put a console=xxx
command, which is appropriate for your framebuffer driver (see sourcecode
of framebuffer driver)
-----Original Message-----
From: Gallant, John [mailto:jgallant@vanteon.com]
Sent: Montag, 13. Januar 2003 17:23
To: linuxppc-embedded@lists.linuxppc.org
Subject: Assistance with using /dev/fb0 and No X windows
I have managed to get the "default" VGA/FB support to access my graphics
device on the onboard PCI bus. We a SMI LynxEM chip on the board. I have
the vga init() code properly accessing the device and the on chip frame
buffer. I have used fbset to determine if /dev/fb0 can be accessed, and the
driver is called. I also tried "ls -l > /dev/fb0" this also gets into the
vga16fb_get_fix() code.
What I need to do, and here is my lack of understanding, is to have some
program access the /dev/fb0 device and display on the CRT. I do not have
any X support, only whatever came with the MVL distribution. I am wondering
what is necessary to use mingetty, or some other display method.
Added wrinkles: No keyboard yet, but I do have the console=ttyS0
working.
So any advice on what I could use or what I may have missed in my
Xconfig settings?
[...]
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Assistance with using /dev/fb0 and No X windows
2003-01-14 7:46 Claus Gindhart
@ 2003-01-14 17:27 ` Chirag Kantharia
0 siblings, 0 replies; 9+ messages in thread
From: Chirag Kantharia @ 2003-01-14 17:27 UTC (permalink / raw)
To: Claus Gindhart; +Cc: linuxppc-embedded
On Tue, Jan 14, 2003 at 08:46:56AM +0100, Claus Gindhart wrote:
| Please remove console=ttyS0 from the kernel command line. Put a console=xxx
| command, which is appropriate for your framebuffer driver (see sourcecode
| of framebuffer driver)
That's incorrect. console=tty1 should do fine. CONFIG_VT and
CONFIG_VT_CONSOLE, as Claus said, are necessary.
--
Chirag Kantharia, symonds.net/~chyrag/
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: Assistance with using /dev/fb0 and No X windows
@ 2003-01-14 22:17 Gallant, John
2003-01-15 3:55 ` Chirag Kantharia
2003-01-15 10:32 ` Mark Powell
0 siblings, 2 replies; 9+ messages in thread
From: Gallant, John @ 2003-01-14 22:17 UTC (permalink / raw)
To: linuxppc-embedded
I want to thank Claus and Chirag for their responses. I believe that my
access problems are more lower level than I originally thought.
In our searching's we were only able to find an XFree86 driver for the
Silicon Motion LynxEM chip and one that was in the PPCBoot tree. I could
not use the XFree86 driver, it was too dependent on support from the XFree86
environment, and even then the "VGA" stuff was from some other file. As
"per usual" here, things were in crisis and we needed something ASAP.
My original plan was to use the "generic" VGA stuff already in the MVL
kernel to access the chip. The first problem had to do with the "canned"
address that vga16fb.c was using, with the I/O registers being "offset 0 in
I/O space" and the frame buffer at 0xA0000. Are these the "In the PC world"
addresses? With the chip being accessed via the PCI bus, I did not
understand how to "map" the chip via it's single BAR0 Register. After a
while I realized that the chip has a "default" PCI I/O address of 0, all I
needed to do was make sure that the COMMAND_IO bit was set as part of the
PCI config cycles. I also needed to discover the proper PCI memory address
by putting in some PCI search code, (only temporary honest!) into the
vga16fb.c code to find the device and store it's PCI memory address. I was
able to access the I/O registers, i.e. read the MISC and ISR0-1 and read
frame buffer memory. But still nothing I did with /sbin/getty tty1, fbset
or /dev/fb0 appeared to work at all!
So all this rambling leads me to these questions to the distribution list:
1) Does the "generic" VGA stuff expect that the VGA device is already
initialized and setup by the BIOS/LILO/BOOT code?
2) Does anyone know of a driver for the LynxEM chip that is not from the
XFree86 code base?
I am planning to "strategically advance to the rear" and go back to the
PPCBoot code where I was able to get a few bands of color when the LOGO was
supposed to be drawn on the screen. If I can get that to work I am hoping
that I can form a better understanding of the LynxEM chip to either create a
limited driver or hack up the vga16fb.c file some more before I work on a
limited driver.
Thank you for any help or information you can send my way.
--------------------------------------------
John A. Gallant
Sr. Embedded Software Engineer
Vanteon Inc.
2851 Clover Street
Pittsford, NY 14534
Phone: 585.248.0510 x279
Fax : 585.248.0537
email: jgallant@vanteon.com
web: www.vanteon.com
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Assistance with using /dev/fb0 and No X windows
2003-01-14 22:17 Assistance with using /dev/fb0 and No X windows Gallant, John
@ 2003-01-15 3:55 ` Chirag Kantharia
2003-01-15 10:32 ` Mark Powell
1 sibling, 0 replies; 9+ messages in thread
From: Chirag Kantharia @ 2003-01-15 3:55 UTC (permalink / raw)
To: Gallant, John; +Cc: linuxppc-embedded
On Tue, Jan 14, 2003 at 05:17:22PM -0500, Gallant, John wrote:
| 2) Does anyone know of a driver for the LynxEM chip that is not from the
| XFree86 code base?
There is lynxfb.c in the linuxppc_2_4_devel tree
(http://www.penguinppc.org/dev/kernel.shtml). You can use that as the
starting point. It's a WIP.
| I am planning to "strategically advance to the rear" and go back to the
| PPCBoot code where I was able to get a few bands of color when the LOGO was
| supposed to be drawn on the screen. If I can get that to work I am hoping
| that I can form a better understanding of the LynxEM chip to either create a
| limited driver or hack up the vga16fb.c file some more before I work on a
| limited driver.
A working fbset just proves that you are able to talk to the framebuffer
support in the kernel. It doesn't indicate that your framebuffer is
actually able to talk to your hardware.
--
Chirag Kantharia, symonds.net/~chyrag/
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: Assistance with using /dev/fb0 and No X windows
2003-01-14 22:17 Assistance with using /dev/fb0 and No X windows Gallant, John
2003-01-15 3:55 ` Chirag Kantharia
@ 2003-01-15 10:32 ` Mark Powell
2003-01-15 11:38 ` David Gibson
1 sibling, 1 reply; 9+ messages in thread
From: Mark Powell @ 2003-01-15 10:32 UTC (permalink / raw)
To: linuxppc-embedded
On 14-Jan-2003 Gallant, John wrote:
>
> I want to thank Claus and Chirag for their responses. I believe that my
> access problems are more lower level than I originally thought.
>
> In our searching's we were only able to find an XFree86 driver for the
> Silicon Motion LynxEM chip and one that was in the PPCBoot tree.
John,
I don't know about the LynxEM, but we have some experience of the Lynx3DM chip.
There is a driver for this chip in the XFree86 tree too. However, we found that
it relied on the chip having been initialised by the video BIOS.
The manual is incomplete and lacks any information on initialisation; we have
spent months working out what the BIOS does at initialisation and enhancing the
XFree86 driver to initialise enough registers.
> So all this rambling leads me to these questions to the distribution list:
>
> 1) Does the "generic" VGA stuff expect that the VGA device is already
> initialized and setup by the BIOS/LILO/BOOT code?
The 3DM requires some basic initialisation before you can even do VGA
initialisation. The EM may be similar. My understanding is that the linux VGA
driver expects the VGA to be in a basic test mode (mode 3?).
> 2) Does anyone know of a driver for the LynxEM chip that is not from the
> XFree86 code base?
we looked at the lynxfb.c but it didn't do enough to make the 3DM work for us.
There was a comment on this list a while ago from the author, saying that it
only did the extra init he needed for XFree to work.
Not much practical help I'm afraid, but hopefully useful info to see where you
stand.
I expect to add a driver for Lynx3DM to PPCBoot for our card, but not for
another month.
Mark
--
Mark Powell, Senior Software Engineer, Primagraphics Limited
New Cambridge House, Litlington, nr.Royston, Herts, SG8 0SS, UK
Tel. +44 1763 852222, Fax. 853324, medp@primagraphics.co.uk,
http://www.primagraphics.co.uk
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Assistance with using /dev/fb0 and No X windows
2003-01-15 10:32 ` Mark Powell
@ 2003-01-15 11:38 ` David Gibson
2003-01-15 12:28 ` Mark Powell
0 siblings, 1 reply; 9+ messages in thread
From: David Gibson @ 2003-01-15 11:38 UTC (permalink / raw)
To: Mark Powell; +Cc: linuxppc-embedded
On Wed, Jan 15, 2003 at 10:32:56AM -0000, Mark Powell wrote:
>
> On 14-Jan-2003 Gallant, John wrote:
> >
> > I want to thank Claus and Chirag for their responses. I believe that my
> > access problems are more lower level than I originally thought.
> >
> > In our searching's we were only able to find an XFree86 driver for the
> > Silicon Motion LynxEM chip and one that was in the PPCBoot tree.
>
> John,
> I don't know about the LynxEM, but we have some experience of the Lynx3DM chip.
> There is a driver for this chip in the XFree86 tree too. However, we found that
> it relied on the chip having been initialised by the video BIOS.
> The manual is incomplete and lacks any information on initialisation; we have
> spent months working out what the BIOS does at initialisation and enhancing the
> XFree86 driver to initialise enough registers.
Indeed.. however I did find that the folks from Silicon Motion seemed
to be reasonably willing to help with finding the necessary frobbing
to do.
> > So all this rambling leads me to these questions to the distribution list:
> >
> > 1) Does the "generic" VGA stuff expect that the VGA device is already
> > initialized and setup by the BIOS/LILO/BOOT code?
>
> The 3DM requires some basic initialisation before you can even do VGA
> initialisation. The EM may be similar. My understanding is that the linux VGA
> driver expects the VGA to be in a basic test mode (mode 3?).
>
> > 2) Does anyone know of a driver for the LynxEM chip that is not from the
> > XFree86 code base?
>
> we looked at the lynxfb.c but it didn't do enough to make the 3DM work for us.
> There was a comment on this list a while ago from the author, saying that it
> only did the extra init he needed for XFree to work.
Indeed. The crucial part is the (undocumented) procedure for
initializing the memory, without you couldn't access the frame buffer
at all. I have no idea if that will have any bearing on the LynxEM
chip, though.
I'm a bit surprised that lynxfb.c plus XFree wasn't enough to work for
you (well, after modifying the Icebox specific parts), but it was
pretty flaky, so I'm not all that surprised. From memory, it
shouldn't be a really big job to make lynxfb.c a bit more solid, and
even make it work as a proper kernel framebuffer driver, but it worked
enough for my purposes so I never got around to it (plus that would
have meant figuring out the baroque intricacies of the fbdev
interface).
> Not much practical help I'm afraid, but hopefully useful info to see where you
> stand.
>
> I expect to add a driver for Lynx3DM to PPCBoot for our card, but not for
> another month.
>
> Mark
>
>
--
David Gibson | For every complex problem there is a
david@gibson.dropbear.id.au | solution which is simple, neat and
| wrong.
http://www.ozlabs.org/people/dgibson
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Assistance with using /dev/fb0 and No X windows
2003-01-15 11:38 ` David Gibson
@ 2003-01-15 12:28 ` Mark Powell
0 siblings, 0 replies; 9+ messages in thread
From: Mark Powell @ 2003-01-15 12:28 UTC (permalink / raw)
To: David Gibson; +Cc: linuxppc-embedded
On 15-Jan-2003 David Gibson wrote:
> Indeed.. however I did find that the folks from Silicon Motion seemed
> to be reasonably willing to help with finding the necessary frobbing
> to do.
we had mixed response, but had to find the key regs ourselves.
>
> I'm a bit surprised that lynxfb.c plus XFree wasn't enough to work for
> you (well, after modifying the Icebox specific parts), but it was
> pretty flaky, so I'm not all that surprised. From memory, it
> shouldn't be a really big job to make lynxfb.c a bit more solid, and
> even make it work as a proper kernel framebuffer driver, but it worked
> enough for my purposes so I never got around to it (plus that would
> have meant figuring out the baroque intricacies of the fbdev
> interface).
FWIW I have a flaky fb-based console driver for the Lynx3DM. It works as far as
running the X server, but doesn't restore correctly when X exits. Virtual
terminals work on it. There are a few specifics to our card in it, but you're
welcome to it as it stands.
I am planning to make PPCBoot put the Lynx3DM into a basic VGA mode and then
try the linux generic VGA driver. Comments any one?
Mark
--
Mark Powell, Senior Software Engineer, Primagraphics Limited
New Cambridge House, Litlington, nr.Royston, Herts, SG8 0SS, UK
Tel. +44 1763 852222, Fax. 853324, medp@primagraphics.co.uk,
http://www.primagraphics.co.uk
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: Assistance with using /dev/fb0 and No X windows
@ 2004-02-13 16:50 llandre
0 siblings, 0 replies; 9+ messages in thread
From: llandre @ 2004-02-13 16:50 UTC (permalink / raw)
To: jgallant; +Cc: linuxppc-embedded
Hi John,
three months ago I started a thread in the linuxppc-embedded ml about the
Silicon Motion
VGA controllers. Today I realized that you are working with the same chip
by reading
you message on the linuxppc-embedded ml.
Last week I started working with the SM712 chip on an embedded PPC system (a
PPC405EP-based custom board).
So far I successfully enabled the driver under U-Boot. The chip (I'm
working with its PCI evaluation board called Purin) is initialized
correctly and the U-Boot shell is prompted on the monitor (even the famous
penguin
logo appears on the screen).
To do that it is necessary to:
1) define the following symbols to add the SM712 support:
#define CONFIG_VIDEO
#define CONFIG_CFB_CONSOLE
#define CONFIG_VIDEO_SMI_LYNXEM
#define CONFIG_VIDEO_LOGO
#define CONFIG_CONSOLE_EXTRA_INFO
#define CONFIG_VGA_AS_SINGLE_DEVICE
/* This is the base address (on 405EP-side) used to generate I/O accesses
on PCI bus */
#define CFG_ISA_IO 0xE8000000
2) define the symbol CONFIG_PCI_PNP in order to make U-Boot to initialize
the PCI registers (for example, in this case, the BAR0 register is
set to 0x80000000).
Then I tried to enable it under the Linux kernel 2.4.20, too.
First of all I enabled the VGA drivers (s you can see I used a different
configuration from yours):
#
# Character devices
#
CONFIG_VT=y
# CONFIG_VT_CONSOLE is not set
CONFIG_SERIAL=y
CONFIG_SERIAL_CONSOLE=y
# CONFIG_SERIAL_EXTENDED is not set
# CONFIG_SERIAL_NONSTANDARD is not set
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX98_PTY_COUNT=256
...
#
# Frame-buffer support
#
CONFIG_FB=y
CONFIG_DUMMY_CONSOLE=y
# CONFIG_FB_RIVA is not set
# CONFIG_FB_CLGEN is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_CT65550 is not set
# CONFIG_FB_IMSTT is not set
# CONFIG_FB_S3TRIO is not set
CONFIG_FB_VESA=y
CONFIG_FB_VGA16=y
CONFIG_FB_LYNX=y
# CONFIG_FB_MATROX is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_RADEON is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FBCON_ADVANCED is not set
CONFIG_FBCON_CFB8=y
CONFIG_FBCON_CFB16=y
CONFIG_FBCON_CFB24=y
CONFIG_FBCON_CFB32=y
CONFIG_FBCON_VGA_PLANES=y
# CONFIG_FBCON_FONTWIDTH8_ONLY is not set
# CONFIG_FBCON_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
but, when the kernel loaded them, it crashed:
i2c-core.o: i2c core module
vga16fb: mapped to 0xc3070000
Oops: Exception in kernel mode, sig: 4
NIP: C00A4348 XER: 00000000 LR: C00A466C SP: C1F9DCE0 REGS: c1f9dc30 TRAP:
0700 Not tainted
MSR: 00009030 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
TASK = c1f9c000[1] 'swapper' Last syscall: 120
last math 00000000 last altivec 00000000
PLB0: bear= 0x00000800 acr= 0x00000000 besr= 0x00000000
PLB0 to OPB: bear= 0x00000000 besr0= 0x00000000 besr1= 0x00000000
GPR00: C00A4664 C1F9DCE0 C1F9C000 00000000 00000000 E80003CE 00000000 00000050
GPR08: C3079150 00000500 00000010 C0177A18 C01BFEBC 30000000 C01B0000 C1F9DE08
GPR16: 00000050 00000000 C01B0000 C1F9DD08 000012C0 0000001E 000000A0 C02752C0
GPR24: 00000000 C01B0C90 000000A0 00000001 C01B0B94 00000001 00000000 00000000
Call backtrace:
C00A4664 C00A4D14 C00D138C C00D0AB4 C00A4794 C00A8834 C00CF980
C0192B98 C0190D94 C018B498 C01825B4 C0182600 C0002448 C0006D54
Kernel panic: Attempted to kill init!
Oops: Exception in kernel mode, sig: 4
NIP: C00A8CC0 XER: 00000000 LR: C0135380 SP: C1F9DB00 REGS: c1f9da50 TRAP:
0700 Not tainted
MSR: 00009030 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
TASK = c1f9c000[1] 'swapper' Last syscall: 120
last math 00000000 last altivec 00000000
PLB0: bear= 0x00000800 acr= 0x00000000 besr= 0x00000000
PLB0 to OPB: bear= 0x00000000 besr0= 0x00000000 besr1= 0x00000000
Today I tried to use the same configuration you posted to the ml, but it
crashed anyway
when executing vga16fb. I'll do further investigations. I suspect the
VGA_FB_PHYS in
vga16fb.c must be changed to take into account how U-Boot initialized the
BAR0 register.
In my understanding, the default 0xA0000 value is ok for PCs.
Did you experience similar problems? Did you need to hack the VGA drivers?
I'll keep you informed about what it is going on.
Thanks in advance and best regards,
llandre
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2004-02-13 16:50 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-01-14 22:17 Assistance with using /dev/fb0 and No X windows Gallant, John
2003-01-15 3:55 ` Chirag Kantharia
2003-01-15 10:32 ` Mark Powell
2003-01-15 11:38 ` David Gibson
2003-01-15 12:28 ` Mark Powell
-- strict thread matches above, loose matches on Subject: below --
2004-02-13 16:50 llandre
2003-01-14 7:46 Claus Gindhart
2003-01-14 17:27 ` Chirag Kantharia
2003-01-13 16:23 Gallant, John
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).