ASUS EeeTop ET2002T

From LinuxMCE
Jump to: navigation, search
Version Status Date Updated Updated By
710 Unknown N/A N/A
810 Unknown N/A N/A
1004 Unknown N/A N/A
1204 Unknown N/A N/A
Usage Information
Asus-Eee-Top-ET2002T.jpg

Introduction

Asus launched a really nice gadget called the EeeTop ET2002T. While its predecessor, the ET1602 was an based on an Intel chipset, this one is based on the nVidia Ion platform.

The touchscreen works perfectly with the evtouch driver. The X configuration for the touch screen is almost identical to that of the ET1602.

Configuring the touch screen

Add your Eee Top as an MD

Connect your Eee Top to the LAN side of your Core (set it for PXE boot in BIOS first of course) and power it up. The Eee Top should start to PXE boot and you will see the following yellow text on screen - "We have announced ourselves to the Router..." and you should see that the script "DisklessSetup.sh" is running. This stage will take some time... be patient. The Eee Top will then reboot and continue the setup process. After a few mins the Eee Top will be sitting there in the AVwizard. The connector to use is "DVI" - even if you see a picture when you select VGA. Now we are ready to continue onto the next step...

Use Web Admin to identify the ID of your Eee Top

Go to Web Admin on your Core and then to Wizard -> Devices -> Media Directors and scroll down to the bottom of the page. The last Media Director listed will be your recently added Eee Top. Make a note of the number with a '#' in front of it next to the drop down that is used to select the room the MD should be in. This number is the 'Moon' number or unique ID of the MD.

SSH into your Eee Top

Go to your Core (or ssh into your Core from another computer), open a Konsole window and sudo yourself;

sudo su -

Ubuntu 7.10, Ubuntu 8.04

For Ubuntu 10.10 (or 10.04) see below.

chroot yourself to the Eee Top

Use chroot to gain access to your Eee Top so that we can make the changes in the following steps;

chroot /usr/pluto/diskless/<Moon No. from above step>

Your prompt should change and you are now working on the Eee Top's file system.

Install the evtouch and void drivers

apt-get install xserver-xorg-input-evtouch xserver-xorg-input-void

Configure udev

Configure udev so it creates a stable symlink. The /dev/input/eventX entry may change, so this symlink will be used to point to it Create the /etc/udev/rules.d/69-touchscreen.rules file with this content:

KERNEL=="event*", SUBSYSTEM=="input", ATTRS{modalias}=="input:b0003v1CB6p6681e0110-e0,1,3,k110,111,140,14A,ra0,1,2,3,18,mlsfw", SYMLINK+="input/evtouch"

I found the weird modalias string using udevinfo. I also found out, using Google, that the match string can only contain values from the device itself and ONLY ONE of its parents. So you can't use more than one parrent. This explains the why the vendor and product IDs arent tested above. But the modalias contains them anyway.

The touchscreen device exposes two mouse devices. So far, I couldn't get any data out of the second mouse. I can only assume it has something to do with multi-touch, but I have no proof of it. The second mouse has a slightly different modalias. Testing using the vendor and product ID resulted in /dev/input/evtouch pointing to the second mouse device, i.e. the touchscreen wouldn't work.

Setup xorg.conf

My xorg.conf looks like this right now. Notice that the Mouse Input device has had the Driver set to 'void' other wise you will get double taps whenever you touch the screen. This will of course disable the mouse. (The changes relevant to the Eee Top are in bold):

Section "ServerLayout"
	Identifier	"XFree86 Configured"
	Screen	  0	"Screen0"	0 0
	InputDevice	"Mouse0"	"CorePointer"
	InputDevice	"Keyboard0"	"CoreKeyboard"
	InputDevice	"Touch0"
EndSection

Section "Files"
	RgbPath		"/usr/X11R6/lib/X11/rgb"
	ModulePath	"/usr/lib/xorg/modules"
	FontPath	"/usr/share/fonts/X11"
	FontPath	"/usr/X11R6/lib/X11/fonts/misc/"
	FontPath	"/usr/X11R6/lib/X11/fonts/Speedo/"
	FontPath	"/usr/X11R6/lib/X11/fonts/Type1/"
	FontPath	"/usr/X11R6/lib/X11/fonts/CID/"
	FontPath	"/usr/X11R6/lib/X11/fonts/75dpi/"
	FontPath	"/usr/X11R6/lib/X11/fonts/100dpi/"
EndSection

Section "Module"
	Load	"dbe"
	Load	"extmod"
	Load	"record"
	Load	"xtrap"
	Load	"speedo"
	Load	"type1"
	Load	"glx"
	Load	"int10"
	Load	"v4l"
EndSection

Section "InputDevice"
	Identifier	"Keyboard0"
	Driver		"keyboard"
	Option		"XkbLayout"		"us"
	Option		"XkbVariant"	"basic"
	Option		"XkbModel"		"pc105"
EndSection

Section "InputDevice"
	Identifier	"Mouse0"
	#Driver		"mouse"
    Driver          "void"
	Option		"Protocol"		"auto"
	Option		"Device"		"/dev/input/mice"
	Option		"ZAxisMapping"	"4 5"
EndSection

Section "InputDevice"
	Identifier	"Touch0"
	Driver		"evtouch"
	Option		"device"	"/dev/input/evtouch"
	#Option		"TapTimer"	"10"
	#Option		"LongTouchTimer"	"1500"
	Option		"MinX"	"180"
	Option		"MinY"	"0"
	Option		"MaxX"	"8192"
	Option		"MaxY"	"8192"
	Option		"ReportingMode"	"Raw"
	Option		"Emulate3Buttons"	"false"
	Option		"Emulate3Timeout"	"50"
	Option		"SendCoreEvents"	"on"
	Option		"MoveLimit"	"100"
EndSection

Section "Monitor"
	Identifier	"Monitor0"
	VendorName	"Unknown Monitor Vendor"
	ModelName	"Unknown Monitor Model"
	Modeline 	"1920x1080" 148.5 1920 1960 2016 2200 1080 1082 1088 1125
	HorizSync	20-500
	VertRefresh	59-61
EndSection

Section "Device"
	Identifier	"Card0"
	Driver		"nvidia"
	VendorName	"Unknown Vendor Name"
	BoardName	"Unknown Board Name"
	Option		"LinearAlloc"		"16384"
	#BusID		"PCI:0:2:0"
#	Option		"NoDDC"				"true"
	Option "XvmcUsesTextures" "true"
	Option "renderAccel" "true"
	Option "NoDDCValue"
	Option "UseEDID" "true"
	Option "ExactModeTimingsDVI" "true"
	Option "NoLogo" "true"
	Option "NoBandWidthTest" "true"
	Option "ModeValidation" "NoDFPNativeResolutionCheck, NoEdidMaxPClkCheck, NoMaxPClkCheck, AllowInterlacedModes, AllowNon60HzDFPModes, NoEdidModes"
	Option "DynamicTwinView" "false"
	Option "UseEvents" "true"
	Option		"ConnectedMonitor" "DFP-0"
EndSection

Section "Screen"
	Identifier	"Screen0"
	Device		"Card0"
	Monitor		"Monitor0"
	DefaultDepth	24
	SubSection "Display"
		Modes		"1920x1080"
		Virtual		1920 1080
	EndSubSection
	Option "XvmcUsesTextures" "true"
	Option "renderAccel" "true"
	Option "NoDDCValue"
	Option "UseEDID" "true"
	Option "ExactModeTimingsDVI" "true"
	Option "NoLogo" "true"
	Option "NoBandWidthTest" "true"
	Option "ModeValidation" "NoDFPNativeResolutionCheck, NoEdidMaxPClkCheck, NoMaxPClkCheck, AllowInterlacedModes, AllowNon60HzDFPModes, NoEdidModes"
	Option "DynamicTwinView" "false"
	Option "UseEvents" "true"
	Option	"TVStandard"	"1080p"
EndSection

Section "ServerFlags"
	Option	"AllowMouseOpenFail"	"true"
	Option	"BlankTime"		"0"
	Option	"StandbyTime"	"0"
	Option	"SuspendTime"	"0"
	Option	"OffTime"		"0"
	Option	"AIGLX"			"Off"
EndSection
Section "Extensions"
	Option "Composite" "false"
	Option "RENDER" "true"
EndSection

Finalize

  • Reboot
  • Complete the AVwizard selecting UI1

You need to reboot so that udev creates the symlink properly. That, or you open up the EeeTop to disconnect and reconnect the USB port (if there is a USB header in there of course)

  • Enjoy your touchscreen

Ubuntu 10.10 (and maybe 10.04)

In Ubuntu 10.10 (and possibly 10.04) you no longer need the udev rule and xorg.conf is slightly different.

xorg.conf

Section "ServerLayout"
	Identifier	"XFree86 Configured"
	Screen	  0	"Screen0"	0 0
	InputDevice	"Mouse0"		# "CorePointer" is removed from this line
	InputDevice	"Keyboard0"	"CoreKeyboard"
	InputDevice	"TouchAsusET2002T"	"CorePointer"
EndSection

Section "Files"
	RgbPath		"/usr/X11R6/lib/X11/rgb"
	ModulePath	"/usr/lib/xorg/extra-modules,/usr/lib/xorg/modules"
	FontPath	"/usr/share/fonts/X11"
	FontPath	"/usr/X11R6/lib/X11/fonts/misc/"
	FontPath	"/usr/X11R6/lib/X11/fonts/Speedo/"
	FontPath	"/usr/X11R6/lib/X11/fonts/Type1/"
	FontPath	"/usr/X11R6/lib/X11/fonts/CID/"
	FontPath	"/usr/X11R6/lib/X11/fonts/75dpi/"
	FontPath	"/usr/X11R6/lib/X11/fonts/100dpi/"
EndSection

Section "Module"
	Load	"dbe"
	Load	"extmod"
	Load	"record"
	Load	"xtrap"
	Load	"speedo"
	Load	"type1"
	Load	"glx"
	Load	"int10"
	Load	"v4l"
EndSection

Section "InputDevice"
	Identifier	"Keyboard0"
	Driver		"keyboard"
	Option		"XkbLayout"		"us"
	Option		"XkbVariant"	"basic"
	Option		"XkbModel"		"pc105"
EndSection

Section "InputDevice"
	Identifier	"Mouse0"
	Driver		"mouse"
	Option		"Protocol"		"auto"
	Option		"Device"		"/dev/input/mice"
	Option		"ZAxisMapping"	"4 5"
EndSection

Section "InputDevice"
	Identifier	"TouchAsusET2002T"
	Driver		"evtouch"
	Option		"Device"	"/dev/input/by-id/usb-IDEACO__IDC_6681-event-mouse"
	#Option		"TapTimer"	"10"
	#Option		"LongTouchTimer"	"1500"
	Option		"MinX"	"180"
	Option		"MinY"	"0"
	Option		"MaxX"	"8192"
	Option		"MaxY"	"8192"
	Option		"ReportingMode"	"Raw"
	Option		"Emulate3Buttons"	"false"
	#Option		"Emulate3Timeout"	"50"
	Option		"SendCoreEvents"	"on"
	Option		"MoveLimit"	"100"
EndSection

Section "Monitor"
	Identifier	"Monitor0"
	VendorName	"Unknown Monitor Vendor"
	ModelName	"Unknown Monitor Model"
	Modeline 	"1920x1080" 148.5 1920 1960 2016 2200 1080 1082 1088 1125
	HorizSync	20-500
	VertRefresh	59-61
EndSection

Section "Device"
	Identifier	"Card0"
	Driver		"nvidia"
	VendorName	"Unknown Vendor Name"
	BoardName	"Unknown Board Name"
	Option		"LinearAlloc"		"16384"
	#BusID		"PCI:0:2:0"
#	Option		"NoDDC"				"true"
	Option "XvmcUsesTextures" "true"
	Option "renderAccel" "true"
	Option "NoDDCValue"
	Option "UseEDID" "true"
	Option "ExactModeTimingsDVI" "true"
	Option "NoLogo" "true"
	Option "NoBandWidthTest" "true"
	Option "ModeValidation" "NoDFPNativeResolutionCheck, NoEdidMaxPClkCheck, NoMaxPClkCheck, AllowInterlacedModes, AllowNon60HzDFPModes, NoEdidModes"
	Option "DynamicTwinView" "false"
	Option "UseEvents" "true"
	Option		"ConnectedMonitor" "DFP-0"
EndSection

Section "Screen"
	Identifier	"Screen0"
	Device		"Card0"
	Monitor		"Monitor0"
	DefaultDepth	24
	SubSection "Display"
		Modes		"1920x1080"
		Virtual		1920 1080
	EndSubSection
	Option "XvmcUsesTextures" "true"
	Option "renderAccel" "true"
	Option "NoDDCValue"
	Option "UseEDID" "true"
	Option "ExactModeTimingsDVI" "true"
	Option "NoLogo" "true"
	Option "NoBandWidthTest" "true"
	Option "ModeValidation" "NoDFPNativeResolutionCheck, NoEdidMaxPClkCheck, NoMaxPClkCheck, AllowInterlacedModes, AllowNon60HzDFPModes, NoEdidModes"
	Option "DynamicTwinView" "false"
	Option "UseEvents" "true"
	Option	"TVStandard"	"1080p"
EndSection

Section "ServerFlags"
	Option	"AllowMouseOpenFail"	"true"
	Option	"BlankTime"		"0"
	Option	"StandbyTime"	"0"
	Option	"SuspendTime"	"0"
	Option	"OffTime"		"0"
	Option	"AIGLX"			"Off"
EndSection
Section "Extensions"
	Option "Composite" "false"
	Option "RENDER" "true"
EndSection
Section "InputClass"
	Identifier "Asus ET2002T touchscreen"
	MatchProduct "IDC 6681"
	Option "Ignore" "true"
EndSection

Dianemo

Xconfigure takes care of xorg.conf for you automatically, and you don't need to make any manual changes to it. The resulting xorg.conf looks like the 10.10 file above, but without the "Files". The "Files" section is gone to let X use its default search paths.