« Home | 查詢某檔案,屬於那個RPM » | Fedora/Linux: cp為何一直出現 overwrite ? » | BIOS相關網路資源 » | Make的預設規則 » | The Linux Kernel API » | 讓GNOME可以用root登入 » | 解決Linux Com port不能收ctrl+c 中斷 process » | 不小心把 uClibc 0.9.28給release到Fedora 4的lib了 » | 如何找出linux kernel的所有Parameters » | CUPS(Common Unix Printing System) » 

2006/03/15 

在RDC上使用Microwindows

在RDC上使用Microwindows

環境說明

硬體
CPU:RDC:R3210G ( 32-BIT RISC MICROPROCESSOR)
http://www.rdc.com.tw
VGA:XGI Z7

軟體
OS:Linux Kernel 2.6.11
BootLoader:redboot
VGA:Z7 frame buffer Driver並建立/dev/fb0
Compiler環境:
Package: Fedora 4
Compiler:gcc 4.0 (uclibc)
路徑/opt/bin/i386-linux-uclibc-gcc

步驟:
1. 由於microwindows的xconfigure需要/bin/wish所以安裝
#rpm -ivh tk-8.4.9-1_2.rhfc4.at.i386.rpm
2.下載 microwindows-src-0.91.tar.gz 工作目錄 /work
# tar -zxvf microwindows-src-0.91.tar.gz -C /work
3.修改config
建議使用/work/microwindows-0.91/src/Configs/config.uclibc
#cp config.uclibc ../config
#vi /work/microwindows-0.91/src/config
修改內容如下
NATIVETOOLSPREFIX = /opt/bin/i386-linux-uclibc- #指定compiler
SHAREDLIBS = N #microwindows本身的Lib不使用Share (但uclibc還是dynamic)
FBVGA = N
HAVETEXTMODE = N #無/dev/ttys0
GPMMOUSE = N #無mouse
NOMOUSE = Y
SCANKBD = N #無keyboard
NOKBD = Y
4.修正部份gcc版本問題
4.1 file: src/demos/nanowm/wlist.c 修改
//static win *windows = NULL;
win *windows = NULL;
4.2 file: src/mwin/winevent.c 修改
//static int
int
abs(int n)
實在非常不習慣這種GUN code style :p
5. make
6. 完成
試試將 bin/mdemo放到target board上試試

完整config如下
####################################################################
# Microwindows and Nano-X configuration file
#
# This package can be configured to run on Linux (MIPS, ARM, POWERPC or x86)
# UNIX, ELKS, DJGPP, or RTEMS.
# On Linux, we've got drivers for Linux 2.x framebuffers, X11, or,
# svgalib for VGA hardware.
# In addition, a gpm or direct serial mouse driver can be configured.
# On ELKS, the bios screen driver and serial mouse driver are always used.
#
# Either Microwindows and/or Nano-X can be built.
# Microwindows and Nano-X have several demos.
#
# For MSDOS makes, see mcmwin.mak and mcnanox.mak
####################################################################

####################################################################
#
# build target platform
#
# Valid ARCH values are:
#
# LINUX-NATIVE
# LINUX-TCC
# LINUX-ARM
# LINUX-MIPS
# LINUX-POWERPC (BIGENDIAN=Y)
# LINUX-SPARC (BIGENDIAN=Y)
# LINUX-SH
# FREEBSD-X86
# SOLARIS (BIGENDIAN=Y)
# TRIMEDIA
# RTEMS
# DJGPP
# ELKS
#
# note: ELKS can't build client/server nano-X, nor widget lib
#
####################################################################
ARCH = LINUX-NATIVE
BIGENDIAN = N
NATIVETOOLSPREFIX = /opt/bin/i386-linux-uclibc-
ARMTOOLSPREFIX = arm-linux-
MIPSTOOLSPREFIX = mipsel-linux-
POWERPCTOOLSPREFIX = powerpc-linux-
SHTOOLSPREFIX = sh-linux-gnu
RTEMSTOOLSPREFIX = i386-rtemself-

####################################################################
#
# Compiling options
#
####################################################################
OPTIMIZE = Y
DEBUG = N
VERBOSE = N
THREADSAFE = Y
GPROF = N

####################################################################
#
# Libraries to build: microwin, nano-X, nanowidget, object frameworks
#
####################################################################
MICROWIN = Y
NANOX = Y
SHAREDLIBS = N
OBJFRAMEWORK = N


####################################################################
#
# Demos to build
#
####################################################################
MICROWINDEMO = Y
NANOXDEMO = Y

####################################################################
#
# Applications to build
#
####################################################################
NANOWM = Y

####################################################################
#
# The pixeltype of the native hardware or underlying graphics library.
# This definition defines the PIXELVAL to be 32, 16 or 8 bits wide.
# If using Linux framebuffer, set to MWPF_TRUECOLOR0888, and use fbset.
# It also enables GdArea/GrArea for this particular pixel packing format.
#
# define MWPF_PALETTE /* pixel is packed 8 bits 1, 4 or 8 pal index*/
# define MWPF_TRUECOLOR8888 /* pixel is packed 32 bits 8/8/8/8 truecolor w/alpha*/
# define MWPF_TRUECOLOR0888 /* pixel is packed 32 bits 8/8/8 truecolor*/
# define MWPF_TRUECOLOR888 /* pixel is packed 24 bits 8/8/8 truecolor*/
# define MWPF_TRUECOLOR565 /* pixel is packed 16 bits 5/6/5 truecolor*/
# define MWPF_TRUECOLOR555 /* pixel is packed 16 bits 5/5/5 truecolor*/
# define MWPF_TRUECOLOR332 /* pixel is packed 8 bits 3/3/2 truecolor*/
#
####################################################################
SCREEN_PIXTYPE = MWPF_TRUECOLOR0888

####################################################################
#
# NanoX: Put Y to the following line to link the nano-X application
# with the server. This is required for ELKS, if no network is present,
# or for speed or debugging. This affects the nano-X server only.
#
####################################################################
LINK_APP_INTO_SERVER = N

####################################################################
# Shared memory support for Nano-X client/server protocol speedup
####################################################################
HAVE_SHAREDMEM_SUPPORT = N

####################################################################
#
# File I/O support
# Supporting either below drags in libc stdio, which may not be wanted
#
####################################################################
HAVE_FILEIO = Y

####################################################################
# BMP, GIF reading support
####################################################################
HAVE_BMP_SUPPORT = Y
HAVE_GIF_SUPPORT = Y
HAVE_PNM_SUPPORT = Y
HAVE_XPM_SUPPORT = Y

####################################################################
# JPEG support through libjpeg, see README.txt in contrib/jpeg
####################################################################
HAVE_JPEG_SUPPORT = N
INCJPEG = .
LIBJPEG = /usr/lib/libjpeg.so

####################################################################
# PNG support via libpng and libz
####################################################################
HAVE_PNG_SUPPORT = N
INCPNG = .
LIBPNG = /usr/lib/libpng.a
LIBZ = /usr/lib/libz.a

####################################################################
# TIFF support through libtiff
####################################################################
HAVE_TIFF_SUPPORT = N
INCTIFF = .
LIBTIFF = /usr/lib/libtiff.a

####################################################################
# native .fnt loadable font support
####################################################################
HAVE_FNT_SUPPORT = Y
HAVE_FNTGZ_SUPPORT = N
FNT_FONT_DIR = "fonts/bdf"

####################################################################
# T1 adobe type1 font support thru t1lib
####################################################################
HAVE_T1LIB_SUPPORT = N
INCT1LIB = .
LIBT1LIB = /usr/lib/libt1.a

####################################################################
# TrueType font support thru FreeType 1.x
####################################################################
HAVE_FREETYPE_SUPPORT = N
INCFTLIB = /usr/include/freetype1
LIBFTLIB = /usr/lib/libttf.so
FREETYPE_FONT_DIR = "fonts/truetype"

####################################################################
# Support for many kinds of font thru FreeType 2.x
# Must also set FREETYPE_FONT_DIR in the Freetype 1.x section
####################################################################
HAVE_FREETYPE_2_SUPPORT = N
INCFT2LIB = .
LIBFT2LIB = /usr/lib/libfreetype.a

####################################################################
# PCF font support
# Selecting HAVE_PCFGZ_SUPPORT will allow you to directly read
# .pcf.gz files, but it will add libz to the size of the server
####################################################################
HAVE_PCF_SUPPORT = Y
HAVE_PCFGZ_SUPPORT = N
PCF_FONT_DIR = "fonts/pcf"

####################################################################
# Chinese Han Zi Ku loadable font support
####################################################################
HAVE_HZK_SUPPORT = N
HZK_FONT_DIR = "fonts/chinese"

####################################################################
# Chinese BIG5 compiled in font support (big5font.c)
####################################################################
HAVE_BIG5_SUPPORT = N

####################################################################
# Chinese GB2312 compiled in font support (gb2312font.c)
####################################################################
HAVE_GB2312_SUPPORT = N

####################################################################
# Japanese JISX0213 compiled in font support (jisx0213-12x12.c)
####################################################################
HAVE_JISX0213_SUPPORT = N

####################################################################
# Korean HANGUL font support (jo16x16.c)
####################################################################
HAVE_KSC5601_SUPPORT = N

####################################################################
# Japanese EUC-JP support using loadable MGL font
####################################################################
HAVE_EUCJP_SUPPORT = N
EUCJP_FONT_DIR = "fonts/japanese"

####################################################################
# Generate screen driver interface only with no fonts or clipping
####################################################################
NOFONTSORCLIPPING = N

####################################################################
#
# Window move algorithms for Microwindows
# Change for tradeoff between cpu speed and looks
# ERASEMOVE repaints only backgrounds while window dragging, quicker.
# Otherwise an XOR redraw is used for window moves only after button up,
# quickest (should set for ELKS)
# UPDATEREGIONS paints in update clipping region only for better look and feel
#
####################################################################
ERASEMOVE = Y
UPDATEREGIONS = Y

####################################################################
#
# Link with Gray Palette (valid only for 4bpp modes)
#
####################################################################
GRAYPALETTE = N

####################################################################
#
# If the platform is running UNIX, Linux or RTEMS...
#
####################################################################
ifneq ($(ARCH), ELKS)

# X Window screen, mouse and kbd drivers
X11 = N

ifeq ($(X11), Y)
# startup screen width, height, (depth for palette mode only)
SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480
SCREEN_DEPTH = 4

# You may want to turn this on for XFree86 4.x or if your backing store
# isn't functioning properly
USE_EXPOSURE = Y

else

# framebuffer screen driver (linear and/or vga 4 planes)
# set VTSWITCH to include virtual terminal switch code
# set FBREVERSE to reverse bit orders in 1,2,4 bpp
FBVGA = N
FRAMEBUFFER = Y
FBVGA = N
VTSWITCH = N
FBREVERSE = N

# set HAVETEXTMODE=Y for systems that can switch between text & graphics.
# On a graphics-only embedded system, such as Osprey and Embedded
# Planet boards, set HAVETEXTMODE=N
HAVETEXTMODE = N

# svgalib screen driver
VGALIB = N

# direct VGA hardware access screen driver
HWVGA = N

####################################################################
# Mouse drivers
# GPMMOUSE gpm mouse
# SERMOUSE serial Microsoft, PC, Logitech, PS/2 mice (/dev/psaux)
# SUNMOUSE Sun Workstation mouse (/dev/sunmouse)
# NOMOUSE no mouse driver
#
# Touchscreen drivers
# IPAQMOUSE Compaq iPAQ, Intel Assabet (/dev/h3600_tsraw)
# ZAURUSMOUSE Sharp Zaurus (/dev/sharp_ts)
# TUXMOUSE TuxScreen (/dev/ucb1x00-ts)
# ADSMOUSE Applied Data Systems GC+ (/dev/ts)
# ADS7846MOUSE ADS7846 chip, PSI OMAP Innovator (/dev/innnovator_ts)
# EPMOUSE Embedded Planet (/dev/tpanel)
# VHMOUSE Vtech Helio (/dev/tpanel)
# MTMOUSE MicroTouch serial (/dev/ttyS1)
# PSIONMOUSE Psion 5 (/dev/touch_psion)
# YOPYMOUSE Yopy (/dev/yopy-ts)
# HARRIERMOUSE NEC Harrier (/dev/tpanel)
####################################################################
GPMMOUSE = N
SERMOUSE = N
SUNMOUSE = N
NOMOUSE = Y
IPAQMOUSE = N
ZAURUSMOUSE = N
TUXMOUSE = N
ADSMOUSE = N
ADS7846MOUSE = N
EPMOUSE = N
VHMOUSE = N
MTMOUSE = N
PSIONMOUSE = N
YOPYMOUSE = N
HARRIERMOUSE = N
LIRCMOUSE = N

# keyboard or null kbd driver
TTYKBD = N
SCANKBD = N
PIPEKBD = N
IPAQKBD = N
LIRCKBD = N
NOKBD = Y

endif

# Secondary keyboard drivers.
# You may have a normal keyboard driver in addition to these
# drivers, e.g. for both normal keyboard and IR input.
LIRCKBD2 = N

####################################################################
# Screen driver specific configuration
# SA1100_LCD_LTLEND 4bpp driver with arm SA1100 LCD controller
# INVERT4BPP 4bpp inverted pixel driver for VTech Helio
####################################################################
SA1100_LCD_LTLEND = N
INVERT4BPP = N

####################################################################
#
# If the platform is a RTEMS box ....
#
####################################################################
ifeq ($(ARCH), RTEMS)

# Location & BSP information of the RTEMS build
RTEMS_BUILD = /tools/build-i386-elf-rtems
RTEMS_BSP = pc386
LINK_APP_INTO_SERVER = Y

endif

endif

####################################################################
#
# If the platform is an ELKS box ...
#
####################################################################
ifeq ($(ARCH), ELKS)

# Higher speed asm driver, c driver of hercules screen driver
ASMVGADRIVER = Y
CVGADRIVER = N
HERCDRIVER = N
DBGDRIVER = N

# Mouse support
SERMOUSE = Y

endif

About me

  • I'm Martin's blog 馬汀的部落格
  • From 中壢市, 桃園縣, Taiwan
  • -----BEGIN GEEK CODE BLOCK----- Version: 3.1 Comment: For info see http://www.geekcode.com GC/CS/CC/E/IT/TW d- s a C++++ L++++ P+ L++++ E--- W+++ N++ o+ K- w+++ O- M- V- PS+ PE++ Y+ PGP+ t 5- X++ R- tv- b+++ DI+ D-- G e+++ h+ r+ y+ z? ------END GEEK CODE BLOCK------ /**************************** 旅行是我生命的動力 它的樂趣從計劃旅行開始 我樂於分享旅行及Linux Kernel上的每一件事. ****************************/
My profile