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)

5 Comments

  1. 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…

  2. Onno Zweers says:

    Thanks, DPK! I ran into the same Lynx/Google problem and your DISPLAY= trick saved me a lot of time.

  3. 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.

  4. Martin Vermeer says:

    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.

Leave a Reply