The following steps assume the kernel sources are in
/usr/src/linux. It is also assumed the patch file version matches
the Linux kernel version. For illustration purposes we assume the kernel
to be Linux-2.4.26. We also assume you are familiar with the kernel build
and boot process.
To build an Epson frame buffer display driver,
follow these steps:
- First apply the patch file.
Copy the file
s1d13xxxfb-2.4.26.280905.diff.gz in the directory
/usr/src/linux and issue the
commands:
cd
/usr/src/linux gzip -cd
s1d13xxxfb-2.4.26.280905.diff.gz | patch -Np1
- Having patched the kernel, you must provide hardware values for the
video controller and display you will use. The driver patch file comes
with default configuration values, however it is likely they will not
reflect your particular hardware configuration. The easiest method to
create new values for your hardware configuration is to modify the
existing header file with your values. For example, if you plan on
building a driver for S1D13733, you would modify the file
/usr/src/linux/drivers/video/epson/s1d13733.h.
The other
option to obtain the configuration values would be to generate the
complete include file based on your hardware requirements using the
Win32 based configuration utility. There is a configuration utility for
each supported controller. The utility is available at the EPSON web site
, typically called S1DxxxxxCFG (where xxxxx is 13706, 13733, 13A05,
etc.). Beware the generated include file will be in DOS text file format
and MUST be converted to the Linux text file
format by a utility such as dos2unix.
-
In the directory /usr/src/linux run the
command
make
menuconfig
Select
Code maturity
level options-->
[y] Prompt for
development and/or incomplete code/drivers
Under Console
drivers we must select support for frame buffer devices and choose our
chip from the Epson chips menu. The following assumes we want to support
S1D13733 on an Epson 13733B00C evaluation board:
Console drivers-->
Frame-buffer support--->
[y] Support for
frame buffer devices
EPSON LCD/CRT/TV
controller drivers --->
[y] Epson LCD/CRT/TV controller support
[y] Epson S1D13733 Support
[y] Epson PCI Bridge adapter support
Finally, select the desired color depth (bits per
pixel: bpp). Only one color depth at a time is supported, so you must
first deselect all color depths and then select the one you want. The
menu permits selecting color depths which are not supported by some
Epson controllers or the display driver. In this case you will be
notified by a forced error during the build time. You will get a similar
error if you fail to select a single color depth.
Console drivers-->
Frame-buffer support--->
[y] Advanced low level
driver options <y>
16 bpp packed pixel support
As part of this step, disable all options that say VGA. You should
also disable support for display mode switching.
- Back in the console under /usr/src/linux run the
command
make dep make
bzImage
If the kernel builds without an error you should be able
to boot the new kernel with your new frame buffer display driver.
If you are using Epson development/evaluation boards
which includes an external clock generation chip, make sure the board is
jumpered to use oscillators and not the on board clock chip. The external
clock chips are not supported by this driver. |