-
Notifications
You must be signed in to change notification settings - Fork 495
FBTFT image build process
Note: This is obsolete. fbtft-spindle is used now.
This shows the steps used to make the prebuilt FBTFT images. All done on the Raspberry Pi itself.
Start with a fresh image: 2013-12-20-wheezy-raspbian
Expand root file system size.
sudo raspi-config
# expand_rootfs
Disk space needed: src,build 1.0 GB + zip,image 2.8 GB = 3.8 GB
$ df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 15G 1.4G 13G 11% /
sudo apt-get update
sudo apt-get -y install git bc libncurses5-dev zip kpartx
Update rpi-update
sudo wget https://raw.github.com/Hexxeh/rpi-update/master/rpi-update -O /usr/bin/rpi-update && sudo chmod +x /usr/bin/rpi-update
Kernel source.
We don't need the complete git history (--depth 1). This will speed things up considerly.
cd
git clone --depth 1 git://github.com/raspberrypi/linux.git
DMA capable SPI master driver
wget -O ~/linux/drivers/spi/spi-bcm2708.c https://raw.github.com/notro/spi-bcm2708/master/spi-bcm2708.c
FBTFT source
cd linux/drivers/video/
git clone https://github.com/notro/fbtft.git
# Let make/kbuild see the directory and config options.
echo "obj-y += fbtft/" >> Makefile
sed -i 's/endmenu/source "drivers\/video\/fbtft\/Kconfig"\n\nendmenu/' Kconfig
Use default config
cd ~/linux && make bcmrpi_defconfig
Start kernel configuration program
make menuconfig
Enable FBTFT as modules
Device Drivers ---> Graphics support --->
<M> Support for small TFT LCD display modules (NEW) --->
--- Support for small TFT LCD display modules
Enable all as modules
Framebuffer Console Config Enable rotation and include all fonts
Device Drivers ---> Graphics support ---> Console display driver support --->
<*> Framebuffer Console support
[ ] Map the console to the primary display device
[*] Framebuffer Console Rotation
[*] Select compiled-in fonts
[*] VGA 8x8 font
-*- VGA 8x16 font
[*] Mac console 6x11 font (not supported by all drivers)
[*] console 7x14 font (not supported by all drivers)
[*] Pearl (old m68k) console 8x8 font
[*] Acorn console 8x8 font
[*] Mini 4x6 font
[*] Sparc console 8x16 font
[*] Sparc console 12x22 font (not supported by all drivers)
[*] console 10x18 font (not supported by all drivers)
Touch screen support
Device Drivers ---> Input device support --->
[*] Touchscreens --->
--- Touchscreens
<M> ADS7846/TSC2046/AD7873 and AD(S)7843 based touchscreens
gpio_mouse
Device Drivers ---> Input device support --->
[*] Mice --->
--- Mice
< > PS/2 mouse (NEW)
< > Serial mouse (NEW)
< > Apple USB Touchpad support (NEW)
< > Apple USB BCM5974 Multitouch trackpad support (NEW)
< > DEC VSXXX-AA/GA mouse and VSXXX-AB tablet (NEW)
<M> GPIO mouse (NEW)
< > Synaptics I2C Touchpad support (NEW)
< > Synaptics USB device support (NEW)
gpio_keys & gpio_keys_polled
Device Drivers ---> Input device support --->
[*] Keyboards --->
--- Keyboards
<M> GPIO Buttons
<M> Polled GPIO buttons
# This takes 8-9 hours
make
Tip:
I run this command on a laptop through SSH. Some time after the laptop goes to sleep, the SSH connection terminates and the build process stops. To alleviate this I use screen (terminal multiplexer)
# Install modules
sudo make modules_install
# Install kernel
sudo cp --preserve=timestamps ~/linux/arch/arm/boot/zImage /boot/kernel.img
# Reboot into the new kernel
sudo shutdown -r now
cd
git clone https://github.com/notro/fbtft_tools.git
cd ~/fbtft_tools/ads7846_device; make && sudo make install
cd ~/fbtft_tools/gpio_keys_device; make && sudo make install
cd ~/fbtft_tools/gpio_mouse_device; make && sudo make install
Set variables
IMAGE=2013-12-20-wheezy-raspbian
FBTFT=2014-01-03-fbtft
Copy $IMAGE.zip to working dir (Tunnelier is free for Windows)
Unzip
unzip $IMAGE.zip
Rename image
mv $IMAGE.img $IMAGE-$FBTFT.img
Mount image partitions
sudo mkdir /media/{bootfs,rootfs}
sudo losetup /dev/loop0 $IMAGE-$FBTFT.img
sudo kpartx -a /dev/loop0
sudo mount /dev/mapper/loop0p1 /media/bootfs
sudo mount /dev/mapper/loop0p2 /media/rootfs
Update firmware
sudo UPDATE_SELF=0 SKIP_KERNEL=1 ROOT_PATH=/media/rootfs BOOT_PATH=/media/bootfs WORK_PATH=~/rpi-firmware rpi-update
Copy kernel and modules into image
sudo cp --preserve=timestamps /boot/kernel.img /media/bootfs/
sudo rm -R /media/rootfs/lib/modules/*
sudo cp -R /lib/modules/$(uname -r) /media/rootfs/lib/modules/
Copy files needed for development
mkdir /media/rootfs/home/pi/extra
cp ~/linux/{.config,Module.symvers} /media/rootfs/home/pi/extra
Uncomment SPI blacklisting
sudo nano /media/rootfs/etc/modprobe.d/raspi-blacklist.conf
Fix X windows issue
Disable option in /media/rootfs/usr/share/X11/xorg.conf.d/99-fbturbo.conf
# Option "fbdev" "/dev/fb0"
Unmount partitions
sudo umount /media/bootfs
sudo umount /media/rootfs
sudo kpartx -d /dev/loop0
sudo losetup -d /dev/loop0
Zip up image
# Takes approx. 45 minutes
zip $IMAGE-$FBTFT.zip $IMAGE-$FBTFT.img
![piwik](https://tronnes-org.secure.domeneshop.no/piwik/piwik.php?idsite=5&rec=1&action_name=FBTFT image_build_process)