OpenCores
URL https://opencores.org/ocsvn/or1k_old/or1k_old/trunk

Subversion Repositories or1k_old

[/] [or1k_old/] [trunk/] [mw/] [src/] [INSTALL] - Blame information for rev 673

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 673 markom
Microwindows Installation Documentation
2
September 6, 2001 g haerr 
3
 
4
- For notes on Intel Assabet, see bottom of file -
5
 
6
Microwindows compiles and runs on Linux, UNIX, ELKS, MSDOS,
7
RTEMS, X11 and bare hardware.  There is support for the MIPS,
8
ARM, and x86 cpu's using the GNU C cross compiler.
9
 
10
Microwindows can be compiled to use different screen,
11
mouse and keyboard drivers for a given operating system environment.
12
Most options are set using configuration file (microwin/src/config) options.
13
These options can be manually editted, or if running X11,
14
by running a graphical configuration program that will read and
15
write the config file if desired by running "make xconfig".
16
Other options are set in the graphics drawing engine's header
17
file microwin/src/include/device.h.
18
 
19
After changing any options in microwin/src/config, Microwindows
20
is built by typing "make clean; make".
21
 
22
Microwindows' header files can be written to /usr/lib/microwin,
23
and libraries to /usr/lib by typing "make install".  This
24
is not required unless using Microwindows to build other
25
applications, however.  All demos build using the headers
26
and libraries built in the source tree.
27
 
28
Config options are detailed in the config file itself and
29
following each operating environment below.  Setting the line
30
        MICROWIN=Y
31
will build Microwindows.  The line
32
        NANOX=Y
33
will build Nano-X.  Both are built by default.
34
 
35
Setting OPTIMIZE=Y will run an the compiler's -O switch.
36
Setting DEBUG=Y will add -g.  Setting VERBOSE=Y will display
37
the full compiler command line when making.  When cross-compiling
38
for different platforms, the various XXXTOOLSPREFIX values
39
must be set accordingly.
40
 
41
The Nano-X server can be built with a compiled-in application,
42
or use UNIX sockets to allow seperately compiled applications
43
to connect to the server.  Setting the line
44
        LINK_APP_INTO_SERVER=Y
45
will build a linked application/server, which is useful for debugging
46
and speed.  The client/server networking code has been rewritten for speed.
47
 
48
We now have support for scaled, rotated, and antialiased
49
fonts with both truetype and adobe type 1 fonts.  To include
50
support for truetype fonts, download freetype-1.3.1.tar.gz from
51
either microwindows.org or www.freetype.org, and set:
52
        HAVE_FREETYPE_SUPPORT=Y
53
in the config file. For Adobe Type 1 font support, download
54
t1lib-1.0.tar.tz from microwindows.org or
55
ftp://ftp.neuroinformatik.ruhr-uni-bochum.de/pub/software/t1lib/
56
and set:
57
        HAVE_T1LIB_SUPPORT=Y
58
in the config file.  The ftdemo and t1demo programs demonstrate
59
use of both truetype and type 1 fonts.
60
 
61
All the demos are built in the microwin/src/bin directory.  Following
62
are the current demos:
63
 
64
mdemo           Microwindows 3d demo
65
mterm           Microwindows terminal emulator
66
demo            Nano-X demo
67
demo3           Nano-X .bmp and .jpeg display demo
68
landmine        Nano-X landmine game
69
world           Nano-X world graph demo
70
nterm           Nano-X terminal emulator
71
nclock          Nano-X clock
72
nano-X          Nano-X server (must be run before Nano-X demo)
73
                (see demo*.sh)
74
 
75
Linux
76
=====
77
Linux users set the line below in the config file.
78
        ARCH=LINUX-NATIVE
79
 
80
Linux users have the choice of running framebuffer screen drivers,
81
which require kernel 2.2.x, the svgalib screen driver for
82
Linux 2.0.x users, or X Windows.  The framebuffer driver runs on
83
1, 2, 4, 8, 16 and 32bpp systems.  Both linear and VGA memory
84
layouts are supported.  To choose between the framebuffer,
85
svgalib driver or X Windows, (should run on all Linux systems),
86
set one of the following lines in the config file:
87
        FRAMEBUFFER=Y           (for 1, 2, 4, 8, 16 or 32 bpp linear fb access)
88
        VGALIB=Y                (svgalib vga access)
89
        HWVGA=Y                 (hardware vga access for rtems)
90
        X11=Y                   (for X11)
91
 
92
If FRAMEBUFFER is set, the following line enables the optional
93
4 planes VGA non-linear driver:
94
        FBVGA=Y                 (for 4 planes VGA 16 color framebuffer)
95
For MIPS and SuperH compilations, set FBVGA=N, since system header
96
files don't contain outb() and outw() macros.
97
 
98
When building the X11 version, it is very important to
99
set the SCREEN_PIXTYPE value correctly, as Microwindows
100
will emulate the target pixel depth in X11.  See the
101
config file for more details.
102
 
103
Linux users can use either the GPM mouse driver, or a "bare"
104
serial mouse driver that decodes the mouse directly from the
105
serial port.  Set either line in the config file.
106
        GPMMOUSE=Y      or
107
        SERMOUSE=Y
108
        NOMOUSE=Y               (for no mouse)
109
 
110
Note that to use the GPM driver, you must start GPM with
111
the -R option, and usually specify the mouse type with -t.
112
See mouse.sh for an example.  If using the direct serial
113
mouse driver, the serial port may have to be specified in
114
microwin/src/drivers/mou_ser.c, as it defaults to /dev/ttyS1.
115
 
116
I have written a utility that converts MS fonts, for exact
117
MS-Windows look and feel.  You must own a MS license in order
118
to use an MS font.  To use the MS fonts, run mwin/src/fonts/convfnt32.exe
119
on a Windows system, and it will create the win*.c font tables.
120
Then, set the following line in the config file:
121
        HAVEMSFONTS=Y
122
 
123
 
124
ELKS
125
====
126
ELKS users set the line below in the config file.
127
        ARCH=ELKS
128
 
129
The NWIDGET=N line must be set, as bcc can't handle
130
ansi C's token paste operator, used in the widget library.
131
 
132
The serial mouse driver is in microwin/src/drivers/mou_ser.c.
133
The default mouse port and type can be changed with the following
134
environment variables, or changed in the driver.
135
 
136
Environment Var         Default         Allowed
137
MOUSE_TYPE              pc              ms, pc, logi(same as pc)
138
MOUSE_PORT              /dev/ttys0      any serial port
139
 
140
It might also be a good idea to use the XOR frame-redraw window
141
move algorithm, by setting the following lines in the config file.
142
The XOR algorithm redraws only after the window move is
143
completed, which works well on slower cpu's.
144
        ERASEMOVE=N
145
        UPDATEREGIONS=N
146
 
147
Since ELKS doesn't currently have a floating point library,
148
the 3d demo is automatically compiled out of
149
microwin/src/demos/microwin/demo.c:
150
        #define GRAPH3D 0
151
        #define IMAGE   0
152
The IMAGE define is set to 0 as bringing in most
153
images will break the 64k data segment limit.  The ELKS
154
version also doesn't include the button control or wallpaper
155
in the demo to keep the text/data sizes down.
156
 
157
The latest version of the ELKS kernel supports a variant
158
of UNIX sockets, using numbers rather than names.  To
159
build a client/server version of Nano-X for ELKS, the config line
160
        LINK_APP_INTO_SERVER=y
161
must be set.  In addition, the bcc compiler doesn't support
162
the ANSI C '##' token pasting operator which is used
163
in the client request code, client.c.  Run the following
164
perl script to preprocess the client.c source file:
165
 
166
        cd microwin/src/nanox
167
        mv client.c client.dist
168
        ./elkspatch.pl < client.dist > client.c
169
 
170
MSDOS
171
=====
172
Microwindows is currently ported using MSC v5.10, and MASM.
173
The file mcmwin.mak will build microwin.exe, and mcnanox.mak
174
will build nanox.exe.  The DEMO= line can be changed to build
175
different nano-X demos.
176
 
177
There are contributed DJGPP, TURBO C and PACIFIC C ports.
178
Instructions are in microwin/src/contrib/djgpp, turboc and
179
pacific.
180
 
181
Framebuffer notes:
182
If you haven't used any of the Linux 2.2 framebuffer drivers before,
183
it can be a little daunting at first. Alex Buell has written a
184
Framebuffer HOWTO, which is available on his website at
185
http://www.tahallah.demon.co.uk/ which goes into detail about the
186
various drivers, command line options, and the fbset utility.
187
For any frame buffer other than the Vesa framebuffer
188
(which can only change modes at bootup because it needs to
189
execute the code in the video card's ROM in real mode),
190
you can change bits per pixel with the command 'fbset -depth {8|16|24|32}'.
191
Another very useful framebuffer site is http://www.linux-fbdev.org
192
 
193
Intel Assabet
194
-------------
195
Microwindows compiles up fine on the StrongARM-based Intel
196
Assabet.  The following information is known to work:
197
 
198
1. Kernel version - linux-2.4.0-test11
199
2. Patches - patch-2.4.0-test11-rmk1, diff-2.4.0-test11-rmk1-np3
200
3. Set IPAQMOUSE=Y in Microwindows' config file
201
4. "mknod /dev/h3600_ts c 11 0" to create the touchscreen device file
202
5. If your screen isn't calibrated, you'll have to edit the Linux kernel:
203
        - edit drivers/char/ucb1200_ts.c
204
        - search for x_rev = 0 [around line 190]
205
        - change x_rev and y_rev both to 1
206
        - recompile the kernel
207
6. More help is available at
208
        http://www.cs.cmu.edu/~wearable/software/assabet.html
209
 
210
Have fun!
211
 
212
Greg Haerr
213

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.