第十七课--MicroWRT USB 显示屏
本节教程主要介绍如何在microWRT上完成对RoboPeak Mini USB Display的支持。Robopeak Mini USB是一个知名创客团队的产品, 他为小型嵌入式设备提供了一个非常好用的USB Display,并提供了完善的驱动,方便用户使用。下面就介绍如何在microWRT上使用USB Display。
获取 RoboPeak Mini USB Display 驱动代码1:RoboPeak Mini USB Dispaly 源码 https://github.com/robopeak/rpusbdisp/tree/master/drivers/linux-driver/ 在Linux kerenle 的 /driver/video目录下新建目录robopeak,并将驱动源码放到此目录下。 但是在编译过程中,会因为头文件缺失导致编译出错。所以我们提供了编译通过的源码包,玩家只需要直接下载即可。 将下载驱动源码放到 drivers/video下并解压。 $ tar -jxvf robopeak.tar.bz2 Robopeak Source Code 文件:Robopeak USB Display 修改配置文件及Makefile1:在drivers/video/Kconfig添加 source "drivers/video/robopeak/Kconfig" $(Dir)是driver所在的路径,就是openwrt中linux kernel的目录路径。 vi $(Dir)/drivers/video/Kconfig comment "Frame buffer hardware drivers" source "drivers/video/robopeak/Kconfig" depends on FB 2:在drivers/video/Makefile添加 obj-$(CONFIG_FB_RPUSBDISP) += robopeak/ vi $(PATH)/driver/video/Makefile obj-$(CONFIG_FB) += fb.o obj-$(CONFIG_FB_RPUSBDISP) += robopeak/ 配置USB Display in Kernel在openwrt的根目录下运行kernel的配置命令,并选择下面列出的配置选项。 $make kernel_menuconfig Device Drivers: USB Support: <*> Support for Host-side USB Graphics support: <*> Support for frame buffer devices: <*> Enable firmware EDID <*> Framebuffer foreign endianness support <*> Enable Video Mode Handling Helpers <*> Enable Tile Blitting Support <*> Robopeak USB Display <*> Displaylink USB Framebuffer support [*]Bootup logo: <*> Standard 224-color Linux logo Character devices: <*> Virtual terminal <*> Enable character translations in console <*> Support for console on virtual terminal <*> Support for binding and unbinding console 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 8x16 font 编译及烧写固件运行命令 make V=s 来编译固件,编译完成后,将固件下载到板子上。玩家也可以直接将下面编译好的固件烧写到板子上去测试。 USB Display Firmware 文件:USB Display Firmware 测试固件将USB Display 通过USB接口连接到microWRT上,显示屏会显示RoboPea的图标,大约3s后就会变白屏。 如果屏幕显示白色的噪点并打印出字符:Waiting for signal,你就必须用“dmesg”命令来查看启动的日志,正常情况下,如果USB display被识别,会有如下信息输出。 [ 1814.173232] rp-usbdisp 4-1:1.0: RP USB Display found (#1), Firmware Version: X.XX, S/N: XXXXXXXXXXXX Once the driver recognizes the display, a framebuffer device will be created. (e.g. /dev/fb0) 当USB display被正确检测到后,会在/proc 目录下创建帧缓冲设备,如/proc/fb0, 可以用下面的命令检测帧缓冲设备是否正常。 # cat /dev/urandom > /dev/fb2 屏幕将显示随机的色点。 下面我们演示如何显示一幅图片到屏幕上: 下载logo.bmp 并将它放到/tmp目录下。 logo 文件:Logo picture #cat /tmp/picture.bmp > /dev/fb0 logo.bmp 要求是bmp格式,分辨率320*240,16位图。将会看到一张图片显示在屏上。
|