Search:  
Gentoo Wiki

Motion_Computing_M1200

This article is part of the Hardware series.
Laptops TV Tuner Cards Wireless Servers Storage Other Hardware Motherboards Related

Contents

Motion Computing M1200

The Motion Computing M1200 is a so called "Slate" TabletPC. It doesn't have a keyboard attached like normal laptops do.

Hardware Facts

lspci output

Code: lspci
0000:00:00.0 Host bridge: Intel Corp. 82830 830 Chipset Host Bridge (rev 04)
0000:00:02.0 VGA compatible controller: Intel Corp. 82830 CGC [Chipset Graphics Controller] (rev 04)
0000:00:02.1 Display controller: Intel Corp. 82830 CGC [Chipset Graphics Controller]
0000:00:1d.0 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #1) (rev 02)
0000:00:1d.1 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #2) (rev 02)
0000:00:1d.2 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #3) (rev 02)
0000:00:1e.0 PCI bridge: Intel Corp. 82801 PCI Bridge (rev 42)
0000:00:1f.0 ISA bridge: Intel Corp. 82801CAM ISA Bridge (LPC) (rev 02)
0000:00:1f.1 IDE interface: Intel Corp. 82801CAM IDE U100 (rev 02)
0000:00:1f.3 SMBus: Intel Corp. 82801CA/CAM SMBus Controller (rev 02)
0000:00:1f.5 Multimedia audio controller: Intel Corp. 82801CA/CAM AC'97 Audio Controller (rev 02)
0000:00:1f.6 Modem: Intel Corp. 82801CA/CAM AC'97 Modem Controller (rev 02)
0000:02:00.0 FireWire (IEEE 1394): Texas Instruments TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link)
0000:02:02.0 Network controller: Broadcom Corporation BCM4301 802.11b (rev 02)
0000:02:04.0 CardBus bridge: O2 Micro, Inc. OZ6912 Cardbus Controller
0000:02:07.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

Sound

Works out of the box on any recent kernel with ALSA

Ethernet

Works out of the box.

Uses ~0.1 watt extra when connected.

USB & Firewire

Works, you should note it's only USB 1.1 "High Speed" and not USB 2.0 "Full speed".

Wifi

Please note that the built-in MiniPCI card only supports 802.11b. See the Broadcom 43xx article.

PC Card

See this guide.

Modem

Untested..

Around kernel 2.6.8 'mutex' error messages began showing up. On 2.6.11 they are rather prevalent. According to people on LKML this is related to the snd_intel8x0m module which drives the modem. On 2.6.24 I haven't seen this message with the module loaded.

X11

Graphics

See this guide.

Digitizer Pen

Now add the following to your X configuration file or use the example config files below:

File: /etc/X11/xorg.conf
# Here we define the Tablet/Pen devices, you need to
# "emerge linuxwacom" to add the appropriate driver
# ("wacom") to your system.
Section "InputDevice"
   Identifier "stylus"
   Driver     "wacom"
   Option     "Device"        "/dev/ttyS3"
   Option      "Type"          "stylus"
   Option      "ForceDevice"   "ISDV4"
   Option     "SendCoreEvents"
   Option     "Button2" "3" # The pen button is for right click, not middle click
EndSection

Section "InputDevice"
   Identifier "cursor"
   Driver     "wacom"
   Option     "Device"        "/dev/ttyS3"
   Option     "Type"          "cursor"
   Option     "ForceDevice"   "ISDV4"
   Option     "SendCoreEvents"
EndSection

Follow the instructions as described in the newly added config data.

And add this in your ServerLayout section:

   InputDevice "stylus" "SendCoreEvents"
   InputDevice "cursor" "SendCoreEvents"

Older kernels

The tablet is connected via an internal serial port which needs to be initialized with setserial at boot time. It seems somewhere between kernel 2.6.16 and 2.6.24 the behaviour changed. On newer kernels the wacom digitizer now is automatically available on /dev/ttyS0. If your digitizer is not, you need to do the following:

Please emerge setserial first. Then test the digitizer's serial device from the commandline:

# setserial /dev/ttyS3 port 0x0238 irq 4 autoconfig
# wacdump /dev/ttyS3

The magic number 0x0238 is taken from the Windows driver.

Wacdump will now show lots of output when you move the stylus over the screen. When the digitizer is already working under X and you run wacdump then the pen might stop working untill your restart X.

Now add the working command to /etc/serial.conf:

/dev/ttyS3 port 0x0238 irq 4 autoconfig

Change /dev/ttyS0 in the xorg.conf to /dev/ttyS3.

Working xorg.conf

With DRI using the i915 kernel module:

File: /etc/X11/xorg.conf
Section "ServerLayout"
	Identifier     "XFree86 Configured"
	Screen 0       "Screen0" 0 0
	InputDevice    "Touchpad" "SendCoreEvents"
	InputDevice    "Mouse1" "SendCoreEvents"
	InputDevice    "cursor" "CorePointer"
	InputDevice    "stylus" "SendCoreEvents"
	InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
	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  "dri"
	Load  "extmod"
	Load  "glx"
	Load  "record"
	Load  "xtrap"
	Load  "type1"
	Load  "synaptics"
EndSection

Section "InputDevice"
	Identifier  "Keyboard0"
	Driver      "keyboard"
EndSection
Section "InputDevice"
  Identifier "Touchpad"
  Driver "synaptics"
  Option "SendCoreEvents"
  Option "Device" "/dev/input/event0" # eventX number may vary depending on the laptop model.
  Option "Protocol" "event"
  # Next line required only if you want to disable the mousepad while typing:
  Option "SHMConfig" "on"
  # The rest of the options are NOT required, just a default similar to the Windows drivers with non of the extra features.
  Option "LeftEdge" "1900"
  Option "RightEdge" "5400"
  Option "TopEdge" "1400"
  Option "BottomEdge" "4500"
  Option "FingerLow" "25"
  Option "FingerHigh" "30"
  Option "MaxTapTime" "180"
  Option "MaxTapMove" "220"
  Option "VertScrollDelta" "100"
  Option "MinSpeed" "0.02"
  Option "MaxSpeed" "0.18"
  Option "AccelFactor" "0.0010"
EndSection
Section "InputDevice"
	Identifier  "Mouse1"
	Driver      "mouse"
	Option	    "Protocol" "auto"
	Option	    "Device" "/dev/psaux"
EndSection
Section "InputDevice"
	Identifier "stylus"
	Driver "wacom"
	Option "Device" "/dev/ttyS0"
	Option "Type" "stylus"
	Option "ForceDevice" "ISDV4"
	Option "SendCoreEvents"
EndSection

Section "InputDevice"
	Identifier "cursor"
	Driver "wacom"
	Option "Device" "/dev/ttS0"
	Option "Type" "cursor"
	Option "ForceDevice" "ISDV4"
	Option "SendCoreEvents"
EndSection

Section "Monitor"
	Identifier   "Monitor0"
	VendorName   "Monitor Vendor"
	ModelName    "Monitor Model"
# 	DisplaySize   244 183 # Will give large fonts
	Modeline "1024x768@60.0"   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync
	Option "PreferredMode" "1024x768@60.0"
	Option       "DPMS"
EndSection
Section "Device"
	Identifier  "Card0"
	Driver      "i810"
	VideoRam     65536
	BusID       "PCI:0:2:0"
	Option      "VBERestore" "false"
	Option      "ModeDebug" "true"
	Option "Monitor-LVDS" "Monitor0"
EndSection

Section "Screen"
	Identifier "Screen0"
	Device     "Card0"
	Monitor    "Monitor0"
	DefaultDepth 24

	Subsection "Display"
		Depth       8
		Modes       "1024x768" "800x600" "640x480"
	EndSubsection

	Subsection "Display"
		Depth       16
		Modes       "1024x768" "800x600" "640x480"
	EndSubsection
	
	Subsection "Display"
		Depth       24
		Modes       "1024x768" "800x600" "640x480"
	EndSubsection

	# Does not work..
	Subsection "Display"
		Depth       32
		Modes       "1024x768" "800x600" "640x480"
	EndSubsection
EndSection

Section "DRI"
	Mode 0666
EndSection

Nowadays a much more empty xorg.conf can be used. I haven't tried stripping options.

Note: For pen/digitizer of M1400, use wacom0 instead of ttyS0

Dimming the backlight

As root:

echo N > /proc/acpi/video/GRFX/LCD/brightness

Where N is a number between 0 (very dark) and 10 (very bright)

Total power usage: 8 Watt (dark) -> 11.8 Watt (bright)

ACPI

Standby and wakeup works from X:

# echo -n "standby" > /sys/power/state

Deeper sleep states

On older kernels the pen stops working when the TabletPC wakes up from standby. On 2.6.24 the tablet hangs on wakeup (in X11). Haven't dug very deep.

'mem' seems to cause a kernel hang. The 'disk' methode is not tested. There are some handy scripts standby/suspend related available:

emerge -av hibernate-scripts
nano -w  /etc/hibernate/hibernate.conf

Suspend to RAM

Get the above mentioned `hibernate` application. Edit /etc/hibernate/ram.conf and add at the bottom:

File: /etc/hibernate/ram.conf
USuspendToRamForce yes
USuspendToRamACPISleep 3
SwitchToTextMode yes

Suspend to Disk

Works out of the box when hibernate and uswsusp tools are installed and configured. Run `dpgk-reconfigure uswsusp` when on Debian. Watch if /etc/uswsusp.conf exists. Then run:

hibernate-disk

Or use KLaptop for example to trigger running s2disk.

Battery monitoring

Works out of the box.

But might need the appropriate modules modprobed, these can be found in /lib/modules/<kernelname>/kernel/drivers/acpi/

External keyboard

The external keyboard seems to use ~0.25 watt.

See Also

An old Wiki that's now only available from archive.org

Retrieved from "http://www.gentoo-wiki.info/Motion_Computing_M1200"

Last modified: Thu, 28 Aug 2008 21:18:00 +0000 Hits: 15,407