RATOC REX-USBDVI2は、USBディスプレイアダプタです。
OpenBlocks A6での接続検証を行いました。
--
2012/8/8 最新のudlfbソースコードを用いて動作確認し、記事を修正しました。
OBDN技術ブログによる動作検証は、該当するデバイスの動作を保証およびサポートを行うものではありません。
内容に関するご指摘などありましたら、ブログ記事の担当までご連絡下さい。
<検証環境>
OpenBlocks A6 Debian 6.0 kernel: 2.6.31.8
REX-USBDVI2 USBディスプレイアダプタ
OKI Minikeyboard Pro ポインティングデバイス付きミニキーボード
ELECOM U2H-TZS410B USBハブ
1. カーネルの再構築
以下のCONFIGを有効にして、カーネルの再構築を行います。
なお、カーネルの再構築に関しては、あらかじめSSD上にswapファイルを作成し、使用できる状態にしておく必要があります。
<USBキーボードおよびマウスへの対応>
CONFIG_INPUT_EVDEV=y
<Virtual Terminalの設定>
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
<Graphics Support / FB >
CONFIG_FB=y
CONFIG_FB_CFB_IMAGEBLIT=m
CONFIG_FB_DEFERRED_IO=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_VIRTUAL=m
ただし、上記のconfigを追加して、/usr/src/linux下にて
# make obsa6_defconfig arch=ARM oldconfig
を行っても、
CONFIG_FB_CFB_IMAGEBLIT=m
CONFIG_FB_DEFERRED_IO=y
がうまく組み込まれません。
対策としては、他のディスプレイドライバ(たとえばS3等)を組み込むなどの方法があるようですが、今回は、山下さんのハックしようのページから、
第三世代 LinkStation/玄箱をハックしよう
のページを参考に、Kconfigを書き換えてみました。
---
root@obsa6:/usr/src/linux/drivers/video# diff -c Kconfig.orig Kconfig
*** Kconfig.orig Sat Aug 4 10:17:28 2012
--- Kconfig Mon Aug 6 17:03:42 2012
***************
*** 114,120 ****
config FB_CFB_IMAGEBLIT
tristate
depends on FB
! default n
---help---
Include the cfb_imageblit function for generic software image
blitting. This is used by drivers that don't provide their own
--- 114,120 ----
config FB_CFB_IMAGEBLIT
tristate
depends on FB
! default m
---help---
Include the cfb_imageblit function for generic software image
blitting. This is used by drivers that don't provide their own
***************
*** 188,193 ****
--- 188,194 ----
config FB_DEFERRED_IO
bool
depends on FB
+ default y
config FB_HECUBA
tristate
---
上記の修正をして、カーネルの再構築を行います。
2. X11パッケージの導入
X11の環境をインストールします。
Displaylink用Xserverの構築に必要な環境も合わせてインストールします。
# aptitude install xorg
# aptitude install xserver-xorg
# aptitude install xserver-xorg-dev
その他、ウィンドウマネージャ等、X11関連のパッケージリストは以下にありますので、環境整備に必要と思われるものをインストールしてください。
Debian リファレンス / 第7章 X Window システム
3. ディスプレイドライバの準備
REX-USBDVI2は、Displaylink社DL-195を使用しており、FrameBuffer用のドライバとして、udlfbを、
Xorg用のドライバとして、
xf86-driver-displaylink ( udlfb-0.2.3_and_xf86-video-displaylink-0.3.tar.gz )
を使用します。
<udlfb>
udlfbに関しては、A6標準の2.6.31カーネルにもドライバが組み込まれていますが、バージョンが古いため、最新のudlfbを入手し、インストールします。
gitをインストールしていない場合は、以下の手順によりインストールしてください。
# aptitude install git-core
udlfbのソースコードを入手します。
# git clone http://git.plugable.com/webdav/udlfb
udlfbディレクトリ下にソースコードが展開されます。
# cd udlfb
# make
# make install
dmesgでは、以下のメッセージが表示されます。
usb 1-1.1: new high speed USB device using ehci_marvell and address 6
usb 1-1.1: device descriptor read/64, error -32
usb 1-1.1: configuration #1 chosen from 1 choice
udlfb: DisplayLink REX-USBDVI2 - serial #240450
udlfb: vid_17e9&pid_0129&rev_0001 driver's dlfb_data struct at d2168000
udlfb: console enable=1
udlfb: fb_defio enable=1
udlfb: shadow enable=1
udlfb: vendor descriptor length:29 data:29 5f 01 0027 00 04 04 01 00 03
udlfb: udlfb: DL chip limited to 2360000 pixel modes
udlfb: allocated 4 65024 byte urbs
usbcore: registered new interface driver udlfb
udlfb: 1280x1024 @ 60 Hz valid mode
udlfb: 720x400 @ 70 Hz valid mode
udlfb: 640x480 @ 60 Hz valid mode
udlfb: 640x480 @ 67 Hz valid mode
udlfb: 640x480 @ 72 Hz valid mode
udlfb: 640x480 @ 75 Hz valid mode
udlfb: 800x600 @ 56 Hz valid mode
udlfb: 800x600 @ 60 Hz valid mode
udlfb: 800x600 @ 72 Hz valid mode
udlfb: 800x600 @ 75 Hz valid mode
udlfb: 832x624 @ 75 Hz valid mode
udlfb: 1024x768 @ 60 Hz valid mode
udlfb: 1024x768 @ 70 Hz valid mode
udlfb: 1024x768 @ 75 Hz valid mode
udlfb: 1280x1024 @ 75 Hz valid mode
udlfb: 1152x864 @ 75 Hz valid mode
udlfb: 1280x1024 @ 60 Hz valid mode
udlfb: 1280x960 @ 60 Hz valid mode
udlfb: 1152x864 @ 75 Hz valid mode
udlfb: udlfb: Reallocating framebuffer. Addresses will change!
udlfb: 1280x1024 @ 60 Hz valid mode
udlfb: set_par mode 1280x1024
udlfb: DisplayLink USB device /dev/fb0 attached. 1280x1024 resolution. Using 5120K framebuffer memory
udlfb: open /dev/fb0 user=1 fb_info=da12b800 count=1
udlfb: udlfb: released /dev/fb0 user=1 count=0
udlfb: open /dev/fb0 user=1 fb_info=da12b800 count=1
udlfb: open /dev/fb0 user=1 fb_info=da12b800 count=2
udlfb: /dev/fb0 FB_BLANK mode 0 --> 0
また、fbsetコマンドにより設定の確認が出来ます。
出荷状態ではfbsetが無いため、以下の手順でパッケージをインストールして下さい。
# aptitude install fbset
# fbset -i
udlfb: open /dev/fb0 user=1 fb_info=da12b800 count=3
mode "1280x1024-udlfb: udlfb: released /dev/fb0 user=1 count=2
60"
# D: 108.003 MHz, H: 63.983 kHz, V: 60.021 Hz
geometry 1280 1024 1280 1024 16
timings 9259 248 48 38 1 112 3
hsync high
vsync high
rgba 5/11,6/5,5/0,0/0
endmode
Frame buffer device information:
Name : udlfb
Address : 0xe0983000
Size : 2621440
Type : PACKED PIXELS
Visual : TRUECOLOR
XPanStep : 0
YPanStep : 0
YWrapStep : 0
LineLength : 2560
Accelerator : No
<xf86-driver-displaylink>
wgetによりドライバの構築環境を取得します。
# wget http://projects.unbit.it/downloads/udlfb-0.2.3_and_xf86-video-displaylink-0.3.tar.gz
取得したソースコードを展開します。
# tar zxf udlfb-0.2.3_and_xf86-video-displaylink-0.3.tar.gz
上記の展開により、
udlfb
xf86-video-displaylink
の2つのディレクトリにそれぞれのソースコードが展開されますが、udlfbは使用しません。
xf86-video-displaylinkへ移動します。
makeの前に、今回使用した環境では、ソースコードの一部に修正を加える必要があります。
以下のページを参考にしてください。
DL + Ubuntu 10.04 working OK
以下の部分を修正してください。
diff -Nu displaylink.c.orig displaylink.c
--- displaylink.c.orig 2009-06-11 02:38:15.000000000 +1200
+++ displaylink.c 2010-05-02 16:16:56.000000000 +1200
@@ -46,9 +46,6 @@
#include "fb.h"
-#include "xf86Resources.h"
-#include "xf86RAC.h"
-
#include "fbdevhw.h"
@@ -282,10 +279,6 @@
fPtr->pEnt = xf86GetEntityInfo(pScrn->entityList[0]);
- pScrn->racMemFlags = RAC_FB | RAC_COLORMAP | RAC_CURSOR | RAC_VIEWPORT;
- /* XXX Is this right? Can probably remove RAC_FB */
- pScrn->racIoFlags = RAC_FB | RAC_COLORMAP | RAC_CURSOR | RAC_VIEWPORT;
-
/* open device */
if (!fbdevHWInit(pScrn,NULL,xf86FindOptionValue(fPtr->pEnt->device->options,"fbdev")))
return FALSE;
@@ -545,8 +538,6 @@
xf86DPMSInit(pScreen, fbdevHWDPMSSetWeak(), 0);
- xf86CrtcScreenInit (pScreen);
-
pScreen->SaveScreen = fbdevHWSaveScreenWeak();
/* Wrap the current CloseScreen function */
上記の修正の後、makeし、install します。出荷状態の場合、pkg-configが含まれていませんので、パッケージ導入する必要があります。
# aptitude install pkg-config
# cd displaylink/
# ./configure
# make
# sudo make install
4. Xorgの設定
/etc/X11/xorg.confに以下の設定をしてください。
Section "Files"
ModulePath "/usr/lib/xorg/modules"
ModulePath "/usr/local/lib/xorg/modules"
EndSection
Section "Device"
Identifier "DisplayLinkDevice"
driver "displaylink"
Option "fbdev" "/dev/fb0"
EndSection
3. Xの起動のテストと、ウィンドウマネージャの導入
今回のテストにおいても、以下のgnomeのパッケージをインストールし、gdmによりログインが可能な状態としてみました。
#aptitude install gnome-desktop-environment
日本語環境およびchromiumブラウザなどはDebian/squeezeのパッケージを入れています。
モニタは、1280x1024 LCDモニタです。
1920x1080dot のLCDモニタにおいても、若干転送が苦しい感じはしますが、出力は可能です。
--
2012/8/8 最新のudlfbを導入し、該当部分を書き換えました。
[PR]
0 件のコメント:
コメントを投稿