473 lines
8.2 KiB
HTML
473 lines
8.2 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
<HTML
|
|
><HEAD
|
|
><TITLE
|
|
>Textmode 100x37</TITLE
|
|
><META
|
|
NAME="GENERATOR"
|
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
|
|
REL="HOME"
|
|
TITLE="Linux on the Road"
|
|
HREF="index.html"><LINK
|
|
REL="UP"
|
|
TITLE="NeoMagic Graphics Chipset Series NM20xx"
|
|
HREF="mobile-guide-a6-neomagic-chip.html"><LINK
|
|
REL="PREVIOUS"
|
|
TITLE="Introduction"
|
|
HREF="mobile-guide-p6a6s1-introduction.html"><LINK
|
|
REL="NEXT"
|
|
TITLE="Annotated Bibliography: Books For Linux Nomads"
|
|
HREF="mobile-guide-a7-annotated-bibliography.html"></HEAD
|
|
><BODY
|
|
CLASS="sect1"
|
|
BGCOLOR="#FFFFFF"
|
|
TEXT="#000000"
|
|
LINK="#0000FF"
|
|
VLINK="#840084"
|
|
ALINK="#0000FF"
|
|
><DIV
|
|
CLASS="NAVHEADER"
|
|
><TABLE
|
|
SUMMARY="Header navigation table"
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TH
|
|
COLSPAN="3"
|
|
ALIGN="center"
|
|
>Linux on the Road: </TH
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="left"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="mobile-guide-p6a6s1-introduction.html"
|
|
ACCESSKEY="P"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="80%"
|
|
ALIGN="center"
|
|
VALIGN="bottom"
|
|
>Appendix G. NeoMagic Graphics Chipset Series NM20xx</TD
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="right"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="mobile-guide-a7-annotated-bibliography.html"
|
|
ACCESSKEY="N"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"></DIV
|
|
><DIV
|
|
CLASS="sect1"
|
|
><H1
|
|
CLASS="sect1"
|
|
><A
|
|
NAME="mobile-guide-p6a6s2-textmode-100-37"
|
|
></A
|
|
>G.2. Textmode 100x37</H1
|
|
><P
|
|
> This chapter is a courtesy of Cedric Adjih
|
|
|
|
, though I have changed some minor parts. Please note: Another method to
|
|
achieve a better resolution in text mode is the use of the framebuffer
|
|
driver (as explained in the X-Windows chapter above). This method
|
|
requires kernel reconfiguration (some Linux distributions include an
|
|
appropriate kernel already) and a new entry (vga=NNN) in
|
|
<TT
|
|
CLASS="filename"
|
|
>/etc/lilo.conf</TT
|
|
>. In text mode it works even with
|
|
VESA BIOSes before version 2.0, at least on the models I could test it.
|
|
Though the SVGATextMode method could be faster (couldn't check this
|
|
yet).
|
|
</P
|
|
><P
|
|
> An apparently little known fact about the Neomagic chipset NM20xx is
|
|
that you can run text mode in 100x37 (i.e. 800x600). This text mode is
|
|
very nice (as opposed to the 80x25 which is ugly). I tried this with a
|
|
HP OmniBook 800 and suppose it might work with other laptops using the
|
|
NeoMagic chip, too.
|
|
</P
|
|
><P
|
|
> The main problem is that is a bit difficult to set up, and if you're
|
|
going wrong with the commands <B
|
|
CLASS="command"
|
|
>SVGATextMode</B
|
|
>
|
|
or <B
|
|
CLASS="command"
|
|
>restoretextmode</B
|
|
> some results on the
|
|
<SPAN
|
|
CLASS="acronym"
|
|
>LCD</SPAN
|
|
> might be frightening. Although I didn't manage to
|
|
break my <SPAN
|
|
CLASS="acronym"
|
|
>LCD</SPAN
|
|
> with many attempts going wrong,
|
|
DISCLAMER: THIS MIGHT DAMAGE YOUR HARDWARE. YOU HAVE BEEN WARNED. FOLLOW
|
|
THE FOLLOWING INSTRUCTIONS AT YOUR OWN RISKS. I'M NOT RESPONSIBLE IF
|
|
SOMETHING BAD HAPPENS.
|
|
</P
|
|
><DIV
|
|
CLASS="sect2"
|
|
><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="AEN5506"
|
|
></A
|
|
>G.2.1. Survey</H2
|
|
><P
|
|
> You need to do <EM
|
|
>three</EM
|
|
> main steps:
|
|
|
|
<P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
> Enable Linux to boot in 800x600 textmode. The problem is that you won't
|
|
see any text before the following two steps aren't done.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> Automatically run <B
|
|
CLASS="command"
|
|
>restoretextmode</B
|
|
> with correct register data.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> Automatically run <B
|
|
CLASS="command"
|
|
>SVGATextMode</B
|
|
>.
|
|
</P
|
|
></LI
|
|
></OL
|
|
>
|
|
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect2"
|
|
><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="AEN5519"
|
|
></A
|
|
>G.2.2. More Details</H2
|
|
><P
|
|
> All the files I have modified, are available for now on
|
|
<A
|
|
HREF="http://starship.python.net/crew/adjih/data/cda-omni-trick.tar.gz"
|
|
TARGET="_top"
|
|
>my pages</A
|
|
>
|
|
</P
|
|
><DIV
|
|
CLASS="sect3"
|
|
><H3
|
|
CLASS="sect3"
|
|
><A
|
|
NAME="AEN5523"
|
|
></A
|
|
>G.2.2.1. Enabling Linux to Boot in 800x600</H3
|
|
><P
|
|
> Recent kernels (2.2.x) need to be compiled with CONFIG_VIDEO_GFX_HACK
|
|
defined. Default is off. (look in
|
|
<TT
|
|
CLASS="filename"
|
|
>/usr/src/linux-2.2.x/arch/i386/boot/video.S</TT
|
|
>)
|
|
</P
|
|
><P
|
|
> This is done by passing the parameter <B
|
|
CLASS="command"
|
|
>vga=770</B
|
|
> to
|
|
older kernels or <B
|
|
CLASS="command"
|
|
>vga=7</B
|
|
> to 2.2.x kernels. Example with
|
|
<TT
|
|
CLASS="filename"
|
|
>lilo.conf</TT
|
|
>:
|
|
</P
|
|
><P
|
|
>
|
|
<TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><FONT
|
|
COLOR="#000000"
|
|
><PRE
|
|
CLASS="programlisting"
|
|
> image=/boot/bzImage-modif
|
|
label=22
|
|
append="svgatextmode=100x37x8_SVGA" #explained later
|
|
vga=7
|
|
read-only
|
|
</PRE
|
|
></FONT
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
>
|
|
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect3"
|
|
><H3
|
|
CLASS="sect3"
|
|
><A
|
|
NAME="AEN5533"
|
|
></A
|
|
>G.2.2.2. Running restoretextmode and SVGATextMode at Boot Time</H3
|
|
><P
|
|
> Running <B
|
|
CLASS="command"
|
|
>restoretextmode</B
|
|
> and
|
|
<B
|
|
CLASS="command"
|
|
>SVGATextMode</B
|
|
> at Boot Time. You must arrange to run
|
|
<B
|
|
CLASS="command"
|
|
>restoretextmode <name of some textreg.dat file></B
|
|
>
|
|
and <B
|
|
CLASS="command"
|
|
>SVGATextMode 100x37x8_SVGA</B
|
|
> at boot time.
|
|
</P
|
|
><P
|
|
> An example <TT
|
|
CLASS="filename"
|
|
>textreg.dat</TT
|
|
> for restoretextmode
|
|
(obtained using <B
|
|
CLASS="command"
|
|
>savetextmode</B
|
|
>) is in my tar archive in
|
|
<TT
|
|
CLASS="filename"
|
|
>tmp/</TT
|
|
>, and an example
|
|
<TT
|
|
CLASS="filename"
|
|
>/etc/TextConfig</TT
|
|
>.
|
|
</P
|
|
><P
|
|
> Since I'm lazy, I've simply put <B
|
|
CLASS="command"
|
|
>SVGATextMode</B
|
|
> and
|
|
<B
|
|
CLASS="command"
|
|
>restoretextmode</B
|
|
> in the
|
|
<TT
|
|
CLASS="filename"
|
|
>/etc/rc.boot/kbd</TT
|
|
> file from my Debian/GNU Linux
|
|
which get executed at boot time (also available in the tar archive).
|
|
</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect3"
|
|
><H3
|
|
CLASS="sect3"
|
|
><A
|
|
NAME="AEN5549"
|
|
></A
|
|
>G.2.2.3. Now the Key Point</H3
|
|
><P
|
|
> Annoying things will be displayed if you don't use the right
|
|
SVGATextMode in the right video text mode: this is why I also pass the
|
|
environmental variable <B
|
|
CLASS="command"
|
|
>"svgatextmode=100x37x8_SVGA"</B
|
|
>
|
|
(arbitrary name) to the kernel (using append=xxx in lilo.conf) when I
|
|
also set <B
|
|
CLASS="command"
|
|
>vga=7</B
|
|
>: the script
|
|
<TT
|
|
CLASS="filename"
|
|
>/etc/rc.boot/kbd</TT
|
|
> tests this variable and calls
|
|
<B
|
|
CLASS="command"
|
|
>restoretextmode</B
|
|
> and <B
|
|
CLASS="command"
|
|
>SVGATextMode</B
|
|
>
|
|
IF AND ONLY IF.
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="sect2"
|
|
><H2
|
|
CLASS="sect2"
|
|
><A
|
|
NAME="AEN5557"
|
|
></A
|
|
>G.2.3. Road Map</H2
|
|
><P
|
|
>
|
|
<P
|
|
></P
|
|
><OL
|
|
TYPE="1"
|
|
><LI
|
|
><P
|
|
> Recompile the kernel 2.2.x with CONFIG_VIDEO_GFX_HACK
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> Insert the restoretextmode with the correct parameter in the
|
|
initialisation script, with no other changes.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> Boot with normal text mode (80x25) but restoretextmode: you should see
|
|
the screen going to 100x37, but with only 80x25 usable. Don't use
|
|
SVGATextMode yet.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> It is much better to conditionnalize your initialize code as I did, to
|
|
keep the possibility of booting in both modes: you may test this now
|
|
with some reboots (starting restoretextmode or not).
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> Boot with 100x37 text mode using parameter <B
|
|
CLASS="command"
|
|
>vga=7</B
|
|
>
|
|
(lilo.conf), you should see white background at some point, but the
|
|
characters will be black on black. This is ok. You'll have to reboot
|
|
blindly now.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> Insert the <path>/SVGATextMode 100x37x8_SVGA after the
|
|
restoretextmode in initialization scripts.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> Reboot with <B
|
|
CLASS="command"
|
|
>vga=7</B
|
|
> (lilo.conf)
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> Should be OK now. Enjoy.
|
|
</P
|
|
></LI
|
|
></OL
|
|
>
|
|
</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="NAVFOOTER"
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"><TABLE
|
|
SUMMARY="Footer navigation table"
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="mobile-guide-p6a6s1-introduction.html"
|
|
ACCESSKEY="P"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="index.html"
|
|
ACCESSKEY="H"
|
|
>Home</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="mobile-guide-a7-annotated-bibliography.html"
|
|
ACCESSKEY="N"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
>Introduction</TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="mobile-guide-a6-neomagic-chip.html"
|
|
ACCESSKEY="U"
|
|
>Up</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
>Annotated Bibliography: Books For Linux Nomads</TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></BODY
|
|
></HTML
|
|
> |