HARDWARE Motion Computing M1200
From Gentoo Linux Wiki
| Laptops • TV Tuner Cards • Wireless • Servers • Storage • Other Hardware • Motherboards • Related |
Contents |
[edit] Motion Computing M1200
The Motion Computing M1200 is a so called "Slate" TabletPC. It doesn't have a keyboard attached like normal laptops do.
[edit] Hardware Facts
- 1024x768 12.1" TFT LCD (Later models offer a "ViewAnywhere" Display)
- Wacom digitizer built into the display, compatible with presure sensitive digitizer pens
- 933MHz Mobile Intel(R) Pentium(R) III ULV
- 256MB - 1GB RAM
- 20GB / 40GB / 60GB Harddisk
- Intel i830 chipset
- Intel i830MG Chipset Graphics Controller
- Battery life: 2.5 - 3 hours
- Broadcom Wifi (board BCM94301MP, chip BCM4301KPF)
- 2x speakers
- 1x Microphone connector
- 1x Headphone connector
- 2x USB 1.1 ports
- 1x Firewire port
- 1x PCMCIA slot
- 1x External VGA
- 1x RJ-45 Ethernet
- 1x Modem connection
[edit] 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) |
[edit] Sound
Works out of the box on any recent kernel with ALSA
[edit] Ethernet
Works out of the box.
Uses ~0.1 watt extra when connected.
[edit] USB & Firewire
Works, you should note it's only USB 1.1 "High Speed" and not USB 2.0 "Full speed".
[edit] Wifi
Please note that the built-in MiniPCI card only supports 802.11b.
Wifi is not working out of the box because Broadcom doesn't want to release the specs of the chip. A driver for Linux does exist. It can be found in the boot image of some Linksys Wifi routers. Problem is, it's binary only, and it's not for x86. The card works fine with NDISWrapper and Windows drivers (version 3.100.65.1). Apple iBook owners who want to run Linux have the same problem, but they can't use the Windows drivers. Bug Broadcom for this. Some people are developing a reverse-engineered linux driver.
The reverse engineered b43legacy driver hangs during boot. The machine will boot without the wireless card installed. So for the time being disable the driver:
| File: /etc/modprobe.d/blacklist.local |
|
blacklist b43legacy
|
st3 -a b43 driver developer- just got a similar MiniPCI card and will look into it shortly. The old bcm43xx driver might work.
[edit] Cardbus / PCMCIA slot
Works according to Rene Rask.
[edit] 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.
[edit] X11
You will need a (very) recent X.org, with an i810 driver that can change the videomodes by itself (not using the VideoBIOS). When you start X out of the box, you will be greeted by a black screen with a lit backlight. Hop over to a virtual console, enable {{{Option "ModeDebug" "true"}}} the xorg.conf Device section, and read the proper 1024x768 Modeline from the Xorg.0.log. Or just copy the following:
| File: /etc/X11/xorg.conf |
Section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "Monitor Model" Option "DPMS" # 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" EndSection Section "Device" Identifier "Card0" Driver "i810" BusID "PCI:0:2:0" VideoRam 65536 Option "VBERestore" "false" # needed ? doesn't seem to break anything Option "ModeDebug" "true" Option "Monitor-LVDS" "Monitor0" EndSection |
Update - 10 march 2008: A patch got committed to the xorg intel driver that will make the screen work out of the box. The above isn't needed past that point.
[edit] Older X11
With older X.org & XFree86 versions you don't get higher than 800x600 due to a badly configured VideoBIOS. This is probably different from the "stolen memory" problem, as since the Video BIOS is merely severely broken. For example setting the graphics chips to the 'supported' 1024x600 crashes the BIOS. Xorg bug ticket1, ticket 2. Forum topic on Wim's BIOS.
Bug Motion Computing for this.
X works by default under XFree86 4.3.0.1, X.org 6.8.2 needs a little bit of handholding.
A working setup can be generated from the commandline either with (XFree86)
# Xfree86 -configure
X.org autoconfigure fails with "Missing output drivers. Configuration failed."
# Xorg -configure
Follow the instructions you see on the commandline to test your configuration. If X works you can copy the generated file to /etc/X11/XF86Config-4 (XFree86 and X.org) or /etc/X11/xorg.conf (X.org only, has priority over the previous file).
[edit] 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" |
[edit] 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.
[edit] Working XF86Config-4 (old)
| File: /etc/X11/XF86Config-4 |
Section "ServerLayout"
Identifier "XFree86 Configured"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "cursor" "SendCoreEvents"
InputDevice "stylus" "SendCoreEvents"
# InputDevice "eraser" "SendCoreEvents"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
ModulePath "/usr/X11R6/lib/modules"
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 "speedo"
Load "type1"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "keyboard"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
EndSection
# Here we define the Tablet/Pen devices, you need to
# "emerge linuxwacom" to add the appropriate driver
# ("wacom") to your system.
# The tablet is connected via an internal serial port
# which needs to be initialized with setserial at
# boot time.
# Please "emerge setserial" and add the following line
# to /etc/serial.conf:
# /dev/ttyS3 port 0x0238 irq 4 autoconfig
Section "InputDevice"
Identifier "stylus"
Driver "wacom"
Option "Device" "/dev/ttyS3"
Option "Type" "stylus"
Option "ForceDevice" "ISDV4"
Option "SendCoreEvents"
EndSection
Section "InputDevice"
Identifier "cursor"
Driver "wacom"
Option "Device" "/dev/ttyS3"
Option "Type" "cursor"
Option "ForceDevice" "ISDV4"
Option "SendCoreEvents"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
EndSection
Section "Device"
Identifier "Card0"
# VideoRam 16384
VideoRam 32768
Driver "i810"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 1
Modes "1024x768 800x600"
EndSubSection
SubSection "Display"
Depth 4
Modes "1024x768 800x600"
EndSubSection
SubSection "Display"
Depth 8
Modes "1024x768 800x600"
EndSubSection
SubSection "Display"
Depth 15
Modes "1024x768 800x600"
EndSubSection
SubSection "Display"
Depth 16
Modes "1024x768 800x600"
EndSubSection
SubSection "Display"
Depth 24
Modes "1024x768 800x600"
EndSubSection
EndSection
Section "DRI"
Mode 0666
EndSection
|
[edit] 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.
[edit] 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)
[edit] ACPI
Standby and wakeup works from X:
# echo -n "standby" > /sys/power/state
[edit] 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
[edit] 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 |
[edit] 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.
[edit] 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/
[edit] External keyboard
The external keyboard seems to use ~0.25 watt.
