Directfb移植到Telichip平台上


1,  交叉编译的方法:

export LDFLAGS="-L/media/work/a8-work/htpc/dest/freetype/lib -L/home/harrison/V43/telechips/lib "
export CFLAGS="-g -I/media/work/a8-work/htpc/dest/freetype/include -I/home/harrison/V43/telechips/include"
./configure --host=arm-linux --prefix=/data/directfb --with-gfxdrivers=davinci --enable-fbdev --with-inputdrivers=none  --enable-zlib=yes --enable-sdl=no --enable-gif=no --disable-x11 --enable-debug --with-tests --enable-unique --sysconfdir=/etc

  其中   --sysconfdir=/etc  用来指定directfb配置文件directfbrc的位置。

  directfbrc文件存放在/etc目录下。

2, 编译好的软件不能运行,用strace能看到下面信息。

open("/dev/fb2", O_RDWR)                = 3
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
setsid()                                = 1744
open("/dev/tty0", O_RDONLY|O_NOCTTY)    = 4
ioctl(4, VT_GETSTATE, 0xbe8f88fa)       = 0
ioctl(4, VIDIOC_QUERYCAP or VT_OPENQRY, 0x15740) = 0
ioctl(3, FBIOGET_CON2FBMAP, 0xbe8f88d8) = 0
fstat64(3, {st_mode=S_IFCHR|0660, st_rdev=makedev(29, 2), ...}) = 0
ioctl(3, FBIOPUT_CON2FBMAP, 0xbe8f88d0) = 0
ioctl(4, VIDIOC_G_COMP or VT_ACTIVATE, 0x2) = 0
ioctl(4, VIDIOC_S_COMP or VT_WAITACTIVE

这个信息是输入设备不能被操作的问题。


需要在directfbrc文件中增加一行

no-vt

就能运行了。

有可能找不到tty0设备需要创建一个链接

ln  -sf   /dev/ttySAC0    /dev/tty0

从串口输入。

相关内容