Packard Bell OneTwo all-in-one with touch screen

I’ve just bought a Packard Bell OneTwo (M3700), a 600 Euros all-in-one computer with a 20″ multipoint touch screen (there are bigger models with 23″ touch screen, wifi and some other options). This machine will be used to run OpenBravoPOS, a free (libre) point of sale software. So far, I think this machine is just perfect for the job.

Getting it to run smoothly under Linux is not a walk in the park, however. There are some quirks and some assembly is required, but once you’re done (that takes a couple of hours at most once you’ve got all the info, which you have if you’re reading this) this machine is just great.

It’s fast, with a 2.1 GHz Pentium Dual-Core (T4300) CPU, 4 GB of RAM, an Intel GM45 GPU with up to 256 MB of shared RAM, gigabit networking, a fast 320 GB SATA disk and a combo DVD-drive (not a slot-in, too bad). The screen is nice, and the touchscreen is incredibly smooth, precise and sensitive. The sound is good, the webcam is great and it works out of the box, too!

Update: added a note about the card reader.

Update 2: the instructions can also be found on the Debian wiki now.

Before you go

Enter the BIOS and bump the amount of memory allocated to the GPU to 256 MB. By default, the machine ships with only 64 MB allocated to the GPU, which is low and ridiculous considering it is equipped with 4 GB …

Installing Debian

Forget about installing Lenny with debian-installer on this machine. The standard installer with its 2.6.26 kernel doesn’t support the network interface properly. Upgraded installer images with 2.6.28 or 2.6.30 kernels end up locking the machine solid before the first installer screen.

Your best friend: System Rescue CD. Your other best friend: debootstrap.

Before rebooting, install the 2.6.30 kernel from backports.org. It works like a charm, even if the 2.6.30 on the upgraded installer locked up solid. Go figure :) While you’re at it, install X from Testing. You need a recent enough version of the intel driver that will support the GM45 chip.

Configuring X

This is the first and the biggest quirk on this machine. The LCD is actually wired up to both the VGA and the LVDS outputs on the graphic card, and advertises different resolutions on both. The native resolution (1600×900 on this model) is only advertised on the LVDS output.

While fiddling with X, it becomes obvious that the VGA output is used as the boot video device. If you disable the output in X with xrandr, you loose the text consoles. My un(?)educated guess is that this setup allowed them to use a standard desktop PC BIOS instead of using a more expensive laptop BIOS. I may be wrong, but that’s pretty much the only thing that makes sense to me.

Anyway. If you want X to work properly, you’ll have to tell it to ignore the VGA output entirely.

Section "Device"
 Identifier      "Intel X4500"
 Option          "Monitor-LVDS"  "Panel on LVDS"
 Option          "Monitor-VGA"   "Panel on VGA"
EndSection

Section "Monitor"
 Identifier      "Panel on LVDS"
EndSection

Section "Monitor"
 Identifier      "Panel on VGA"
 # The LCD panel is wired up on both VGA and LVDS
 # Ignore the VGA output as far as X is concerned
 Option          "Ignore"        "True"
EndSection

If you don’t tell X to ignore the VGA output, you’ll end up with a mirror setup and your desktop will use the smallest size so as to fit on both monitors. It isn’t pretty, it’s plain silly and we want those 20″ used fully, dammit!

See the full xorg.conf.

Touch screen

The touch screen is an infrared multipoint touch screen from Quanta. No kernel driver is needed, only an input driver for X is required.

Start by adding an udev rule like this one:

SUBSYSTEM=="usb", ATTRS{idVendor}=="0408", ATTRS{idProduct}=="3000", SYMLINK+="usb/quanta_touch"

The touch screen will now appear as /dev/usb/quanta_touch, which is more handy and stable than /dev/usb/hiddevN.

Grab xf86-input-hidtouch from HidTouch Suite on SF.net, and apply this patch. The aim of the patch is to ignore anything but the first reported pressure point. The touch screen is a multipoint touch screen and as such can report 2 or 3 (not sure) pressure points at the same time. The driver can’t handle that … yet. The patch also fixes a bad comment and an API difference with newer X versions.

Build and install the driver, then edit xorg.conf:

Section "InputDevice"
 Identifier      "Optical Touch Screen"
 Driver          "hidtouch"
 Option          "SendCoreEvents"        "true"
 Option          "ReportingMode"         "Raw"
 Option          "Device"                "/dev/usb/quanta_touch"
 Option          "PacketCount"           "13"
 Option          "OpcodePressure"        "852034"
 Option          "OpcodeX"               "65584"
 Option          "OpcodeY"               "65585"
 Option          "CalibrationModel"      "1"
 Option          "CornerTopLeftX"        "0"
 Option          "CornerTopLeftY"        "0"
 Option          "CornerTopRightX"       "1600"
 Option          "CornerTopRightY"       "0"
 Option          "CornerBottomLeftX"     "0"
 Option          "CornerBottomLeftY"     "900"
 Option          "CornerBottomRightX"    "1600"
 Option          "CornerBottomRightY"    "900"
 Option          "CornerScreenWidth"     "1600"
 Option          "CornerScreenHeight"    "900"
EndSection

There you are. Working touch screen!

Credit: the above touch screen setup instructions, including the patch (which I reworked slightly…) were taken from this post on the Ubuntu-fr.org forum. The instructions cover the Packard Bell Viseo 200T touch screen, which is identical to what’s used on the OneTwo. If you’re looking for a 20″ touch screen, go for it; at 200 Euros it’s a good deal.

Sound

The Realtek ALC268 codec as used in the OneTwo isn’t properly supported yet, however using model=acer-aspire works for the integrated speakers and the headphone jack. Line out and the integrated microphone do not work.

Webcam

The webcam is a UVC webcam and the image quality is stunning. I’m seriously considering stealing that webcam to replace the iSight in my MacBook Pro. It works out of the box without any firmware. Quite a good surprise :)

Flash card reader

The integrated flash card reader also works out of the box, for the card formats supported by Linux.

Comments are closed.