This is a frame buffer driver module for PYNQ-Z1 board with the base overlay, which enables to use applications which supports kernel framebuffer device to render its graphical outputs like X Window System on PYNQ-Z1 board.
-
A PYNQ-Z1 board or equivalent.
-
PYNQ-Z1 prebuilt image released at Feb 2017 or later.
-
An environment which can compile linux kernel for ARM.
- PYNQ-Z1 board with prebuilt image also can run compile linux kernel by itself, though it takes very long time.
-
Device tree compiler (dtc) command
- If you are using Ubuntu, you can install this command by installing
device-tree-compiler
package
sudo apt-get install device-tree-compiler
- If you are using Ubuntu, you can install this command by installing
-
A display which supports the resolutions listed below:
- 640x480 @ 60Hz
- 800x480 @ 60Hz
- 800x600 @ 60Hz
- 1280x720 @ 60Hz
- 1280x1024 @ 60Hz
- 1920x1080 @ 60Hz
- Other display resolutions will be supported in future release.
- If you want to use prebuilt binary of this framebuffer driver, download the prebuilt binary from here and begin from the procedure 7.
-
clone this repository into somewhere.
git clone https://github.com/ciniml/pynqz1fb
-
Download Linux kernel source code from Xilinx Linux kernel source repository on GitHub.
wget https://github.com/Xilinx/linux-xlnx/archive/xilinx-v2016.4-sdsoc.tar.gz tar zxf xilinx-v2016.4-sdsoc.tar.gz
-
Run
make
on the top directory ofpynqz1fb
working tree with kernel source path.cd pynqz1fb KERNEL_SRC_ROOT=`pwd`/../linux-xlnx-v2016.4-sdsoc make all -j8
-
After a few minutes,
pynqz1fb.ko
is generated in thepynqz1fb
directory. -
Modify device tree file
pynqz1.dts
if needed. -
Compile modified device tree source (*.dts) to device tree binary (*.dtb) format.
dtc -I dts -O dtb -o devicetree.dtb pynqz1.dts
-
Copy
devicetree.dtb
into the boot partition of your SD card.- Note that you should backup the original
devicetree.dtb
to somewhere.
- Note that you should backup the original
-
Turn on your PYNQ-Z1 board and connect a HDMI display to its HDMI out port.
-
Copy
pynqz1fb.ko
to PYNQ-Z1 board via Jupiter notebook. -
Open a terminal in the Jupyter notebook.
-
Move to the Jupyter notebook root directory.
cd /home/xilinx/jupyter-notebook
-
Insert the kernel module with
insmod
command.insmod ./pynqz1fb.ko
-
Now you can see a prompt is shown in your display.
-
If you cannot see anything, please confirm that the parameters in device tree is correct or not.
- Are
width
andheight
parameters correct?
- Are
GPL whose version is the same with the Linux kernel source because this driver is based on simplefb.c
in the linux kernel source.