Debian Sarge, lynx, 400, google
and I have trouble getting the X server to see the right amount of video memory. It turns out it’s because the default Dell Dimension 3000 BIOS options only allocate 1MB to the video card, rather than the extremely beefy 8MB(!!). Anyways..
At 1MB of video RAM you are pretty much stuck with a max of 640×480 and 16 bit color. I wasn’t too interested in trying a graphical browser in such a small space, so I went to the old standby, lynx. A quick “aptitude install lynx” and I’m ready, right?
$ lynx http://www.google.com/
Alert!: HTTP/1.0 400 Bad Request
Google
Error
Bad Request
Your client has issued a malformed or illegal request.
What the hell? I try all sorts of things, eventually running “strace -s65536 lynx” to figure out what it is sending. Here’s what I found:
write(3, "GET / HTTP/1.0rnHost: www.google.comrnAccept: text/html, text/plain, application/vnd.sun.xml.calc, application/vnd.sun.xml.calc.template, application/vnd.sun.xml.draw, application/vnd.sun.xml.draw.template, application/vnd.sun.xml.impress, application/vnd.sun.xml.impress.templaternAccept: application/vnd.sun.xml.writer, application/vnd.sun.xml.writer.global, application/vnd.sun.xml.writer.math, application/vnd.sun.xml.writer.template, application/x-archive, application/x-bzip, application/x-gzip, application/x-lharnAccept: application/x-lzop, application/x-rar, application/x-tar, application/x-tarz, application/x-tbz, application/x-tgz, application/x-tzo, application/x-zip, application/x-zoo, application/pdf, application/x-shellscript, text/english, text/x-c++rnAccept: text/x-c++hdr, text/x-c++src, text/x-c, text/x-chdr, text/x-csrc, text/x-java, text/x-makefile, text/x-moc, text/x-pascal, text/x-tcl, text/x-tex, application/x-deb, application/x-rpm, application/x-dia-diagramrnAccept: application/x-bzip-compressed-tar, application/x-compress, application/x-compressed-tar, application/x-java-archive, application/x-stuffit, application/ghostview, application/postscript, application/x-gnumeric, text/comma-separated-valuesrnAccept: application/vnd.ms-excel, application/x-applix, application/x-troff-man, image/avs, image/bie, image/x-ms-bmp, image/cmyk, image/dcx, image/eps, image/fax, image/fits, image/gif, image/gray, image/gradation, image/hdf, image/jpeg, image/pjpegrnAccept: image/map, image/miff, image/mono, image/mtv, image/x-portable-bitmap, image/pcd, image/pcx, image/pdf, image/x-portable-graymap, image/pict, image/png, image/x-portable-anymap, image/x-portable-pixmap, image/ps, image/rad, image/x-rgbrnAccept: image/rgba, image/rla, image/rle, image/sgi, image/sun-raster, image/targa, image/tiff, image/uyvu, image/vid, image/viff, image/x-xbitmap, image/x-xpixmap, image/x-xwindowdump, image/yuv, image/svg+xml, image/svg, image/fax-g3, image/x-epsrnAccept: image/x-jng, image/x-xbm, video/x-mng, image/bmp, image/x-xpm, text/xml, application/x-ogg, application/ogg, audio/mpeg, audio/x-mpegurl, audio/x-ms-wax, audio/x-ms-wma, audio/x-pls, audio/x-scpls, audio/x-wav, video/mpeg, video/quicktimernAccept: video/x-mpeg2, video/x-mpeg, video/x-ms-afs, video/x-ms-asf, video/x-msvideo, video/x-ms-wma, video/x-ms-wmv, video/x-ms-wmx, video/x-ms-wvx, audio/mpegurl, audio/x-mp2, audio/x-mp3, application/x-staroffice, application/vnd.stardivision.calcrnAccept: application/vnd.stardivision.chart, application/vnd.stardivision.draw, application/vnd.stardivision.impress, application/vnd.stardivision.math, application/vnd.stardivision.writer-global, application/vnd.stardivision.writer, audio/x-mpegrnAccept: application/x-flac, application/x-gtar, audio/x-ogg, application/x-dvi, application/msword, application/mspowerpoint, application/vnd.ms-word, application/vnd.ms-powerpoint, application/rtf, application/x-msword, application/x-msexcelrnAccept: application/x-mspowerpoint, application/wordperfect, application/wordperfect5.1, application/vnd.wordperfect, application/x-abiword, text/abiword, text/richtext, text/rtf, text/*, application/x-debian-package, audio/basic, */*;q=0.01rnAccept-Encoding: gzip, compressrnAccept-Language: enrnUser-Agent: Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/1.0.16rnrn", 3348) = 3348
This is from a stock Sarge install, with nothing more added than lynx, epic4, screen, and a couple of small programs. I’m not sure why Lynx would feel the need to send all of that, by default. :) Anyways, if you get this error, here’s the fix:
DISPLAY= lynx http://www.google.com/
(mind the gap)
Bozorrific.
Lynx can save your life
To quote from the Lynx man page:-
Lynx is a fully-featured World Wide Web (WWW) client for users running cursor-addressable, character-cell display devices (e.g., vt100 terminals, vt100 emulators running on Windows 95/NT or Macintoshes, or any ot…
Thanks, DPK! I ran into the same Lynx/Google problem and your DISPLAY= trick saved me a lot of time.
Good tip on lynx.
Note that you’ve got the option of links, elinks, elinks2, or my fave, w3m, as other console-mode browsers. All of which appear to work fine with Google.
The reason why DISPLAY= works, is that lynx reads the mailcap file,
but uses it selectively: some items are only used on an X display,
others only on a command line interface. There are many more of the
former than of the latter.
The underlying problem seems to be that Google has a limit on the total
size of ACCEPT statements it can take in. Copying and sanitizing
mailcap, and pointing lynx to the sanitized version — as some web pages
correctly advise — is a more fundamental workaround.