WRTnode添加对 RoboPeak Mini USB Display的支持

RoboPeak Mini USB Display 作为一个输出设备

下载RoboPeak Mini USB Display驱动代码

在/driver/video目录下新建目录robopeak
将下载驱动源码放到 /drivers/video/robopeak下
但是会有一些小的问题:比如头文件的位置不对,以及缺少一些头文件等等。

  • 这里提供改动以后的驱动代码

将下载驱动源码放到 drivers/video下并解压。

$ tar -jxvf robopeak.tar.bz2

如何将此添加到内核配置及编译

  • 在drivers/video/Kconfig添加 source "drivers/video/robopeak/Kconfig"

$(PATH)是driver所在的路径。

vi $(PATH)/drivers/video/Kconfig 

comment "Frame buffer hardware drivers"
    source "drivers/video/robopeak/Kconfig"
    depends on FB
  • 在drivers/video/Makefile添加 obj-$(CONFIG_FB_RPUSBDISP) += robopeak/
vi $(PATH)/driver/video/Makefile 

obj-$(CONFIG_FB)  += fb.o
obj-$(CONFIG_FB_RPUSBDISP)   += robopeak/

配置

$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

烧写固件并操作

  • 一旦驱动程序识别的显示器,帧缓冲设备将被创建。(如为/dev/fb0设备)
#cat /proc/fb  
0
#ls /dev/fb0
#cat /dev/urandom > /dev/fb0

您应该看到的显示画面充满了随机的色点。
展示一幅图片到屏幕上:
将picture.bmp放到/tmp目录下。

#cat /tmp/picture.bmp > /dev/fb0

picture.bmp 要求是bmp格式,分辨率320*240,16位图。
显示一张图片在屏上。

清空屏幕:

#dd if=/dev/zero of=/dev/fb0

将fb0中的内容保存下来
Save the contents of the fb0
重新写回屏幕

#dd if=/dev/fb0 of=fbfile

Write back in the screen

#dd if=fbfile of=/dev/fb0

2:输入字符到RoboPeak Mini USB Display上显示
让我们来检查是否已经创建了帧缓冲的虚拟控制台:

# ls /sys/class/vtconsole/vtcon*
/sys/class/vtconsole/vtcon0:
bind       name       subsystem  uevent
/sys/class/vtconsole/vtcon1:
bind       name       subsystem  uevent

控制台已经创建。让我们来检查它是否属于在帧缓冲器:

# cat /sys/class/vtconsole/vtcon1/name
(M) frame buffer device
# cat /sys/class/vtconsole/vtcon1/bind
1
#echo hellowrtnode > /dev/vcs1

RoboPeak Mini USB Display 作为输入设备

在以上配置的前提下做以下配置

$ make menuconfig
Base system:
 <*> busybox:
Linux System Utilities:
 <*> lsusb
Kernel modules:
USB Support:
 <*> kmod-usb-hid

编译

$make V=s -j

烧写固件并操作

在/dev目录中有新设备创建:

#ls /dev/input/ -l
crw-r--r--    1 root     root       13,  64 Sep 17 18:44 event0 

#cat /proc/bus/input/devices
I: Bus=0003 Vendor=0000 Product=0000 Version=0000
N: Name="RoboPeakUSBDisplayTS"
P: Phys=
S: Sysfs=/devices/virtual/input/input0
U: Uniq=
H: Handlers=event0
B: PROP=0 
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=1000003 

#cat /dev/input/event0 |hexdump
Touch RoboPeak Mini USB Display, printed on the wrtnode

本文章由作者:佐须之男 整理编辑,原文地址: WRTnode添加对 RoboPeak Mini USB Display的支持
本站的文章和资源来自互联网或者站长的原创,按照 CC BY -NC -SA 3.0 CN协议发布和共享,转载或引用本站文章应遵循相同协议。如果有侵犯版权的资 源请尽快联系站长,我们会在24h内删除有争议的资源。欢迎大家多多交流,期待共同学习进步。

相关推荐