Difference between revisions of "Dell Inspiron 1090 (Duo)"

From ArchWiki
Jump to: navigation, search
(Screen rotation)
m (See also: dead link)
 
(74 intermediate revisions by 5 users not shown)
Line 1: Line 1:
[[Category:Dell (English)]]
+
[[Category:Dell]]
{{stub}}
+
The Dell Inspiron 1090 (also Dell Inspiron Duo or Dell Duo) is a notebook/tablet convertible with a touchscreen with two-finger multitouch support. The touchscreen (with multitouch), wireless/bluetooth controller, sound system, webcam and CrystalHD chip work without problem. The only component which currently does not work is the [[#Accelerometer]].
  
The Dell Inspiron 1090 is a notebook/tablet convertible.
+
==Hardware specifications==
  
 +
===Official specifications===
  
==Hardware Specifications==
+
*'''Processor:''' Intel® Atom® Dual Core Processor N570 (1.6GHz, 512K L2 Cache).
*'''Model:''' Dell Inspiron 1090
+
*'''Memory:''' 2GB DDR3 SDRAM.
 +
*'''Chipset:''' Intel® NM10 Express Chipset.
 +
*'''Video card:''' Intel NM10 Express Video.
 +
*'''Display:''' 10.1" Widescreen (1366x768) Capacitive Multi Touch.
 +
*'''Audio and speakers:''' 2 X 1W speakers for total of 2W standard.
 +
*'''Hard drive:''' Up to 320GB5 SATA hard drive (7200RPM).
 +
*'''Battery:''' 29Whr 4 cell battery, captive, factory replaceable.
 +
**'''Battery life:''' Up to 3 hours and 57 minutes of battery life.
 +
*'''Camera:''' Built-in 1.3 megapixel Webcam.
 +
*'''Wireless:''' Wireless 802.11b/g/n.
 +
*'''Bluetooth:''' Wireless 802.11b/g/n / Bluetooth 3.0 combo Card (Optional).
 +
*'''Ports:'''
 +
**(1) Microphone.
 +
**(1) Headphone JACK.
 +
**(2) USB 2.0.
 +
**(1) AC adapter connector.
 +
*'''Dimensions and weight:'''
 +
**Width: 11.22" (285.0mm).
 +
**Height: 1.03" (26.2mm) front – 1.13" (28.7mm) back.
 +
**Depth: 7.66" (194.5mm).
 +
**Starting weight: 3.39 lbs (1.54Kg).
  
===Enable Bluetooth===
+
===Specifications according to {{ic|uname}}, {{ic|lspci}} and {{ic|lsusb}}===
Add the {{ic|bluetooth} daemon to {{ic|/etc/rc.conf}}:
 
DAEMONS=(... bluetooth ...)
 
  
===Enable Speakers===
+
====Microarchitecture, processor and platform====
 +
{{hc|uname -mpi|i686 Intel(R) Atom(TM) CPU N550 @ 1.50GHz GenuineIntel}}
  
Add the {{ic|snd-hda-intel}} module to {{ic|/etc/rc.conf}}:
+
====PCI buses and devices====
MODULES=(... snd-hda-intel ...)
+
{{hc|lspci|
 +
00:00.0 Host bridge: Intel Corporation N10 Family DMI Bridge (rev 02)
 +
00:02.0 VGA compatible controller: Intel Corporation N10 Family Integrated Graphics Controller (rev 02)
 +
00:02.1 Display controller: Intel Corporation N10 Family Integrated Graphics Controller (rev 02)
 +
00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 02)
 +
00:1c.0 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 1 (rev 02)
 +
00:1c.1 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 2 (rev 02)
 +
00:1c.2 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 3 (rev 02)
 +
00:1c.3 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 4 (rev 02)
 +
00:1d.0 USB controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #1 (rev 02)
 +
00:1d.1 USB controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #2 (rev 02)
 +
00:1d.2 USB controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #3 (rev 02)
 +
00:1d.3 USB controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #4 (rev 02)
 +
00:1d.7 USB controller: Intel Corporation N10/ICH 7 Family USB2 EHCI Controller (rev 02)
 +
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
 +
00:1f.0 ISA bridge: Intel Corporation NM10 Family LPC Controller (rev 02)
 +
00:1f.2 SATA controller: Intel Corporation N10/ICH7 Family SATA AHCI Controller (rev 02)
 +
00:1f.3 SMBus: Intel Corporation N10/ICH 7 Family SMBus Controller (rev 02)
 +
01:00.0 Multimedia controller: Broadcom Corporation BCM70015 Video Decoder [Crystal HD]
 +
02:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev 01)}}
  
===HD Video Playback===
+
====USB devices====
 +
{{hc|lsusb|
 +
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 +
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 +
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 +
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 +
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 +
Bus 001 Device 002: ID 0bda:58f4 Realtek Semiconductor Corp.
 +
Bus 004 Device 002: ID 0eef:725e D-WAV Scientific Co., Ltd
 +
Bus 004 Device 003: ID 0cf3:3005 Atheros Communications, Inc. AR3011 Bluetooth}}
 +
 
 +
==Hardware configuration==
 +
 
 +
===Accelerometer===
 +
 
 +
According to [http://lukeross.name/dell/ this source], model name is {{ic|LSM303DLH}}. Only partial configuration has been achieved so far, athough the cited source claims to have full support of the accelerometer. See [[STMicroelectronics LSM303DLH Accelerometer/Magenetometer]].
 +
 
 +
===Wireless===
 +
Works out of the box.
 +
 
 +
===Webcam===
 +
Detected by {{ic|udev}} as
 +
Bus 001 Device 002: ID 0bda:58f4 Realtek Semiconductor Corp.
 +
Works out of the box. Uses the {{ic|uvcvideo}} module, see [[Kernel modules]] and [[Webcam setup]].
 +
 
 +
===Graphics controller===
 +
[[Install]] the {{Pkg|xf86-video-intel}} package. See [[Intel]].
 +
 
 +
===Touchpad===
 +
[[Install]] the {{Pkg|xf86-input-synaptics}} package.
 +
 
 +
===Bluetooth===
 +
Uses {{ic|bluetooth}} daemon, see [[Daemon]].
 +
 
 +
===Speakers===
 +
Uses {{ic|snd-hda-intel}} module, see [[Kernel modules]].
 +
 
 +
===HD video playback===
 +
Install {{AUR|crystalhd-git}}{{Broken package link|{{aur-mirror|crystalhd-git}}}}, available in the [[Arch User Repository]]. The new module is located in
 +
/lib/modules/$(uname -r)/kernel/drivers/video/broadcom/crystalhd.ko
 +
Unload the staging module {{ic|crystalhd}} and load the new one, see [[Kernel modules]].
 +
 
 +
===Touchscreen===
 +
Detected by {{ic|udev}} as:
 +
Bus 004 Device 002: ID 0eef:725e D-WAV Scientific Co., Ltd
 +
For configuration, see [[Multitouch displays]].
 +
 
 +
===Docking Station===
 +
 
 +
A docking station is sold optionally with this computer. {{Expansion}}
 +
 
 +
The docking station is an apparant PCI bus, connected from the bottom of the computer, that adds two USB, one audio, and one 10/100 hardwire 10/100 ethernet port.
 +
 
 +
==Tablet Mode==
 +
 
 +
The instructions above make the 1090 a fully-working netbook. To take advantage of this hardware, some tablet-related features need to be configured.
 +
 
 +
===(Un)folding detection===
 +
 
 +
When this computer is folded (or unfolded) into a tablet, it sends a keystroke. You can assign the keys {{ic|XF86LAUNCH1}} and {{ic|XF86LAUNCH2}} to these keystrokes with the following commands, respectively:
  
Install {{ic|crystalhd-git}} from the [http://aur.archlinux.org/packages.php?ID=34308 AUR] . Unload the staging module and insert the new one with these commands:
 
 
{{bc|
 
{{bc|
# modprobe -r crystalhd
+
setkeycodes e073 148
# insmod /lib/modules/$(uname -r)/kernel/drivers/video/broadcom/crystalhd.ko
+
setkeycodes e074 149
 
}}
 
}}
You can add those to {{ic|/etc/rc.local}} to run them automatically on boot.
 
  
===Touchscreen===
+
{{Tip|Add those commands to {{ic|/etc/rc.local}} to execute them when booting.}}
Install the driver from the [http://home.eeti.com.tw/web20/eGalaxTouchDriver/linuxDriver.htm eGalax website]. Since version 1.01.1014, the driver supports (two finger) multitouch input. Requires reboot.
 
  
====Invert Y-axis====
+
===Transparent cursor===
If after installing the eGalax driver the Y-axis of the touchscreen is inverted, edit the file {{ic|/etc/eGTouchd.ini}} an change the value of {{ic|Direction}} from 0 to 2:
 
{{hc|/etc/eGtouchd.ini|...
 
DetectRotation 0
 
Direction 2
 
Orientation 0
 
...}}
 
  
===Tablet Mode===
+
Install {{AUR|xcursor-transparent-theme}}, available in the [[Arch User Repository]].
  
====(Un)folding Detection====
+
====Hide mouse pointer in Gnome 3.x====
  
 +
Run the following commands as a normal user:
 
{{bc|
 
{{bc|
setkeycodes e073 148 # assigns key XF86Launch1 to folding keystroke
+
gsettings set org.gnome.desktop.interface cursor-theme "xcursor-transparent" &
setkeycodes e074 149 # assigns key XF86Launch2 to unfolding keystroke
+
gconftool-2 --type string  --set /desktop/gnome/peripherals/mouse/cursor_theme xcursor-transparent &}}
 +
 
 +
====Hide mouse pointer in GDM====
 +
 
 +
{{Warning|This will also hide the pointer in ''all'' Qt applications (you can only see the arrow pointer, secondary pointers as hand, beam or move will be invisible).}}
 +
 
 +
Create/edit the file {{ic|/usr/share/icons/default/index.theme}} with the following contents:
 +
{{bc|<nowiki>
 +
[Icon Theme]
 +
Inherits=xcursor-transparent</nowiki>}}
 +
 
 +
===On-screen keyboard===
 +
 
 +
====Generic====
 +
 
 +
Install {{AUR|florence}}, available in the [[Arch User Repository]].
 +
 
 +
====Gnome 3.2.x====
 +
 
 +
[[Install]] the {{Pkg|caribou}} package.
 +
 
 +
===Gesture recognition===
 +
 
 +
Install {{AUR|easystroke-mt}}{{Broken package link|{{aur-mirror|easystroke-mt}}}}, available in the [[Arch User Repository]]. It has multitouch support.
 +
{{Note|{{Pkg|easystroke}} (also available in the [[Arch User Repository]] does not work properly with multitouch. When the screen is touched with two fingers it is interpreted at a gesture given by the line defined between the two points of contact.}}
 +
 
 +
===Screen rotation===
 +
 
 +
The screen can be rotated with {{ic|xrandr}}, but the coordinates of the touchscreen are not rotated accordingly. You can fix this with {{ic|xinput}} by running the following commands:
 +
 
 +
{{Warning|This commmands depend on the output of {{ic|xinput --list}}, which may change on driver updates for the touchscreen.}}
 +
 
 +
{{hc|xrandr -o left|
 +
xinput set-prop "eGalax Inc. USB TouchController" 'Coordinate Transformation Matrix' 0 1 0 1 0 0 0 0 1
 +
xinput set-prop "eGalax Inc. USB TouchController" 'Evdev Axis Inversion' 0 1
 +
xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Coordinate Transformation Matrix' 0 1 0 1 0 0 0 0 1
 +
xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Evdev Axis Inversion' 0 1
 +
xinput set-prop "eGalaxTouch Virtual Device for Single" 'Coordinate Transformation Matrix' 0 1 0 1 0 0 0 0 1
 +
xinput set-prop "eGalaxTouch Virtual Device for Single" 'Evdev Axis Inversion' 0 1
 +
}}
 +
 
 +
{{hc|xrandr -o right|
 +
xinput set-prop "eGalax Inc. USB TouchController" 'Coordinate Transformation Matrix' 0 1 0 1 0 0 0 0 1
 +
xinput set-prop "eGalax Inc. USB TouchController" 'Evdev Axis Inversion' 1 0
 +
xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Coordinate Transformation Matrix' 0 1 0 1 0 0 0 0 1
 +
xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Evdev Axis Inversion' 1 0
 +
xinput set-prop "eGalaxTouch Virtual Device for Single" 'Coordinate Transformation Matrix' 0 1 0 1 0 0 0 0 1
 +
xinput set-prop "eGalaxTouch Virtual Device for Single" 'Evdev Axis Inversion' 1 0
 +
}}
 +
 
 +
{{hc|xrandr -o inverted|
 +
xinput set-prop "eGalax Inc. USB TouchController" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
 +
xinput set-prop "eGalax Inc. USB TouchController" 'Evdev Axis Inversion' 1 1
 +
xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
 +
xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Evdev Axis Inversion' 0 0
 +
xinput set-prop "eGalaxTouch Virtual Device for Single" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
 +
xinput set-prop "eGalaxTouch Virtual Device for Single" 'Evdev Axis Inversion' 0 0
 
}}
 
}}
  
 +
{{hc|xrandr -o normal|
 +
xinput set-prop "eGalax Inc. USB TouchController" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
 +
xinput set-prop "eGalax Inc. USB TouchController" 'Evdev Axis Inversion' 0 0
 +
xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
 +
xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Evdev Axis Inversion' 0 0
 +
xinput set-prop "eGalaxTouch Virtual Device for Single" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
 +
xinput set-prop "eGalaxTouch Virtual Device for Single" 'Evdev Axis Inversion' 0 0
 +
}}
 +
 +
Observe that the transformation matrix is the same for normal and inverted orientations, and for left and right orientations. Therefor the corresponding commands need to be applied only when changing between orientations with ''different'' transformation matrix.
 +
 +
==Examples of use==
 +
 +
===Script for rotating the screen===
  
====Hide mouse pointer in tablet mode====
+
The commands above can be used to make a simple shell script for toggling the screen orientation between landscape and portrait as follows, see also [[#Screen rotation]]:
  
====Gesture recognition====
+
{{hc|~/toggle_orientation.sh|<nowiki>
 +
#!/bin/bash
  
====Screen rotation====
+
rotation="$(xrandr -q --verbose | grep 'connected' | egrep -o  '\) (normal|left|inverted|right) \(' | egrep -o '(normal|left|inverted|right)')"
  
The following script changes the orientation from landscape to portrait. It can be run by a gesture with {{ic|easystroke-mt}}, for example.
+
if [ $rotation = "normal" ] ;
 +
then
 +
    xrandr -o left
 +
    xinput set-prop "eGalax Inc. USB TouchController" 'Coordinate Transformation Matrix' 0 1 0 1 0 0 0 0 1
 +
    xinput set-prop "eGalax Inc. USB TouchController" 'Evdev Axis Inversion' 0 1
 +
    xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Coordinate Transformation Matrix' 0 1 0 1 0 0 0 0 1
 +
    xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Evdev Axis Inversion' 0 1
 +
    xinput set-prop "eGalaxTouch Virtual Device for Single" 'Coordinate Transformation Matrix' 0 1 0 1 0 0 0 0 1
 +
    xinput set-prop "eGalaxTouch Virtual Device for Single" 'Evdev Axis Inversion' 0 1
 +
else
 +
    xrandr -o normal
 +
    xinput set-prop "eGalax Inc. USB TouchController" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
 +
    xinput set-prop "eGalax Inc. USB TouchController" 'Evdev Axis Inversion' 0 0
 +
    xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
 +
    xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Evdev Axis Inversion' 0 0
 +
    xinput set-prop "eGalaxTouch Virtual Device for Single" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
 +
    xinput set-prop "eGalaxTouch Virtual Device for Single" 'Evdev Axis Inversion' 0 0
 +
fi
 +
exit 0</nowiki>}}
  
{{hc|toggle_orientation.sh|
+
{{Tip|For an improved user experience you can:
#!/bin/bash
+
*Associate this script to a gesture using {{AUR|easystroke-mt}}{{Broken package link|{{aur-mirror|easystroke-mt}}}}, see [[#Gesture recognition]].
# Input devices IDs
+
*Create a desktop launcher/system tray icon to run this script.
eGalax0=10 # "eGalax Inc. USB TouchController"
 
eGalax1=14 # "eGalaxTouch Virtual Device for Multi"
 
eGalax2=15 # "eGalaxTouch Virtual Device for Single"
 
 
}}
 
}}
  
====Web browser add-ons and extensions====
+
===Script for toggling tablet mode ON and OFF (Gnome 3.x)===
  
 +
The following shell script hides the mouse pointer and activates Gnome 3.x's on-screen keyboard, {{Pkg|caribou}}, when the netbook is fold into a tablet. It detects the current mode based on the current cursor theme (if the cursor is hidden, then the computer is in tablet mode). When you unfold the computer, it returns the screen to the default orientation.
 +
{{Note|It assumes {{AUR|xcursor-transparent-theme}} and {{Pkg|caribou}} are installed, see [[#Transparent cursor]] and [[#On-screen keyboard]]; and that {{ic|Adwaita}}, Gnome 3.x's default cursor theme is in use. See also [[#Screen rotation]].}}
  
 +
{{hc|~/toggle_tabletmode.sh|<nowiki>
 +
#!/bin/bash
  
=====Firefox=====
+
if [ $(echo $(gsettings get org.gnome.desktop.interface cursor-theme) | cut -c2- | sed 's/\(.*\)./\1/') = "xcursor-transparent" ] ;
 +
then
 +
    gsettings set org.gnome.desktop.interface cursor-theme "Adwaita" &
 +
    gconftool-2 --type string  --set /desktop/gnome/peripherals/mouse/cursor_theme Adwaita &
 +
    dconf write /org/gnome/desktop/a11y/applications/screen-keyboard-enabled false &
 +
    xrandr -o normal
 +
    xinput set-prop "eGalax Inc. USB TouchController" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
 +
    xinput set-prop "eGalax Inc. USB TouchController" 'Evdev Axis Inversion' 0 0
 +
    xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
 +
    xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Evdev Axis Inversion' 0 0
 +
    xinput set-prop "eGalaxTouch Virtual Device for Single" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
 +
    xinput set-prop "eGalaxTouch Virtual Device for Single" 'Evdev Axis Inversion' 0 0
 +
else
 +
    gsettings set org.gnome.desktop.interface cursor-theme "xcursor-transparent" &
 +
    gconftool-2 --type string  --set /desktop/gnome/peripherals/mouse/cursor_theme xcursor-transparent &
 +
    dconf write /org/gnome/desktop/a11y/applications/screen-keyboard-enabled true &
 +
fi
 +
exit 0</nowiki>}}
  
There is an add-on called "Grab and Drag".
+
{{Tip|You can run this script when (un)folding the netbook associating it to the keys {{ic|XF86LAUNCH1}} and {{ic|XF86LAUNCH2}}, see [[#(Un)folding detection]].}}
  
=====Chromium=====
+
==See also==
  
There is an extension called "chromeTouch".
+
* Thread in the [http://ubuntuforums.org/showthread.php?t=1658635 Ubuntu Forums].
 +
* [http://lukeross.name/dell/ Luke Ross' website]{{Dead link|2017|06|02}}

Latest revision as of 10:13, 2 June 2017

The Dell Inspiron 1090 (also Dell Inspiron Duo or Dell Duo) is a notebook/tablet convertible with a touchscreen with two-finger multitouch support. The touchscreen (with multitouch), wireless/bluetooth controller, sound system, webcam and CrystalHD chip work without problem. The only component which currently does not work is the #Accelerometer.

Hardware specifications

Official specifications

  • Processor: Intel® Atom® Dual Core Processor N570 (1.6GHz, 512K L2 Cache).
  • Memory: 2GB DDR3 SDRAM.
  • Chipset: Intel® NM10 Express Chipset.
  • Video card: Intel NM10 Express Video.
  • Display: 10.1" Widescreen (1366x768) Capacitive Multi Touch.
  • Audio and speakers: 2 X 1W speakers for total of 2W standard.
  • Hard drive: Up to 320GB5 SATA hard drive (7200RPM).
  • Battery: 29Whr 4 cell battery, captive, factory replaceable.
    • Battery life: Up to 3 hours and 57 minutes of battery life.
  • Camera: Built-in 1.3 megapixel Webcam.
  • Wireless: Wireless 802.11b/g/n.
  • Bluetooth: Wireless 802.11b/g/n / Bluetooth 3.0 combo Card (Optional).
  • Ports:
    • (1) Microphone.
    • (1) Headphone JACK.
    • (2) USB 2.0.
    • (1) AC adapter connector.
  • Dimensions and weight:
    • Width: 11.22" (285.0mm).
    • Height: 1.03" (26.2mm) front – 1.13" (28.7mm) back.
    • Depth: 7.66" (194.5mm).
    • Starting weight: 3.39 lbs (1.54Kg).

Specifications according to uname, lspci and lsusb

Microarchitecture, processor and platform

uname -mpi
i686 Intel(R) Atom(TM) CPU N550 @ 1.50GHz GenuineIntel

PCI buses and devices

lspci
00:00.0 Host bridge: Intel Corporation N10 Family DMI Bridge (rev 02)
00:02.0 VGA compatible controller: Intel Corporation N10 Family Integrated Graphics Controller (rev 02)
00:02.1 Display controller: Intel Corporation N10 Family Integrated Graphics Controller (rev 02)
00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 2 (rev 02)
00:1c.2 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 3 (rev 02)
00:1c.3 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 4 (rev 02)
00:1d.0 USB controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #1 (rev 02)
00:1d.1 USB controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #2 (rev 02)
00:1d.2 USB controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #3 (rev 02)
00:1d.3 USB controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #4 (rev 02)
00:1d.7 USB controller: Intel Corporation N10/ICH 7 Family USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation NM10 Family LPC Controller (rev 02)
00:1f.2 SATA controller: Intel Corporation N10/ICH7 Family SATA AHCI Controller (rev 02)
00:1f.3 SMBus: Intel Corporation N10/ICH 7 Family SMBus Controller (rev 02)
01:00.0 Multimedia controller: Broadcom Corporation BCM70015 Video Decoder [Crystal HD]
02:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev 01)

USB devices

lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0bda:58f4 Realtek Semiconductor Corp. 
Bus 004 Device 002: ID 0eef:725e D-WAV Scientific Co., Ltd 
Bus 004 Device 003: ID 0cf3:3005 Atheros Communications, Inc. AR3011 Bluetooth

Hardware configuration

Accelerometer

According to this source, model name is LSM303DLH. Only partial configuration has been achieved so far, athough the cited source claims to have full support of the accelerometer. See STMicroelectronics LSM303DLH Accelerometer/Magenetometer.

Wireless

Works out of the box.

Webcam

Detected by udev as

Bus 001 Device 002: ID 0bda:58f4 Realtek Semiconductor Corp. 

Works out of the box. Uses the uvcvideo module, see Kernel modules and Webcam setup.

Graphics controller

Install the xf86-video-intel package. See Intel.

Touchpad

Install the xf86-input-synaptics package.

Bluetooth

Uses bluetooth daemon, see Daemon.

Speakers

Uses snd-hda-intel module, see Kernel modules.

HD video playback

Install crystalhd-gitAUR[broken link: archived in aur-mirror], available in the Arch User Repository. The new module is located in

/lib/modules/$(uname -r)/kernel/drivers/video/broadcom/crystalhd.ko

Unload the staging module crystalhd and load the new one, see Kernel modules.

Touchscreen

Detected by udev as:

Bus 004 Device 002: ID 0eef:725e D-WAV Scientific Co., Ltd

For configuration, see Multitouch displays.

Docking Station

A docking station is sold optionally with this computer.

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:Dell Inspiron 1090 (Duo)#)

The docking station is an apparant PCI bus, connected from the bottom of the computer, that adds two USB, one audio, and one 10/100 hardwire 10/100 ethernet port.

Tablet Mode

The instructions above make the 1090 a fully-working netbook. To take advantage of this hardware, some tablet-related features need to be configured.

(Un)folding detection

When this computer is folded (or unfolded) into a tablet, it sends a keystroke. You can assign the keys XF86LAUNCH1 and XF86LAUNCH2 to these keystrokes with the following commands, respectively:

setkeycodes e073 148
setkeycodes e074 149
Tip: Add those commands to /etc/rc.local to execute them when booting.

Transparent cursor

Install xcursor-transparent-themeAUR, available in the Arch User Repository.

Hide mouse pointer in Gnome 3.x

Run the following commands as a normal user:

gsettings set org.gnome.desktop.interface cursor-theme "xcursor-transparent" &
gconftool-2 --type string  --set /desktop/gnome/peripherals/mouse/cursor_theme xcursor-transparent &

Hide mouse pointer in GDM

Warning: This will also hide the pointer in all Qt applications (you can only see the arrow pointer, secondary pointers as hand, beam or move will be invisible).

Create/edit the file /usr/share/icons/default/index.theme with the following contents:

[Icon Theme]
Inherits=xcursor-transparent

On-screen keyboard

Generic

Install florenceAUR, available in the Arch User Repository.

Gnome 3.2.x

Install the caribou package.

Gesture recognition

Install easystroke-mtAUR[broken link: archived in aur-mirror], available in the Arch User Repository. It has multitouch support.

Note: easystroke (also available in the Arch User Repository does not work properly with multitouch. When the screen is touched with two fingers it is interpreted at a gesture given by the line defined between the two points of contact.

Screen rotation

The screen can be rotated with xrandr, but the coordinates of the touchscreen are not rotated accordingly. You can fix this with xinput by running the following commands:

Warning: This commmands depend on the output of xinput --list, which may change on driver updates for the touchscreen.
xrandr -o left
xinput set-prop "eGalax Inc. USB TouchController" 'Coordinate Transformation Matrix' 0 1 0 1 0 0 0 0 1
xinput set-prop "eGalax Inc. USB TouchController" 'Evdev Axis Inversion' 0 1
xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Coordinate Transformation Matrix' 0 1 0 1 0 0 0 0 1
xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Evdev Axis Inversion' 0 1
xinput set-prop "eGalaxTouch Virtual Device for Single" 'Coordinate Transformation Matrix' 0 1 0 1 0 0 0 0 1
xinput set-prop "eGalaxTouch Virtual Device for Single" 'Evdev Axis Inversion' 0 1
xrandr -o right
xinput set-prop "eGalax Inc. USB TouchController" 'Coordinate Transformation Matrix' 0 1 0 1 0 0 0 0 1
xinput set-prop "eGalax Inc. USB TouchController" 'Evdev Axis Inversion' 1 0
xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Coordinate Transformation Matrix' 0 1 0 1 0 0 0 0 1
xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Evdev Axis Inversion' 1 0
xinput set-prop "eGalaxTouch Virtual Device for Single" 'Coordinate Transformation Matrix' 0 1 0 1 0 0 0 0 1
xinput set-prop "eGalaxTouch Virtual Device for Single" 'Evdev Axis Inversion' 1 0
xrandr -o inverted
xinput set-prop "eGalax Inc. USB TouchController" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
xinput set-prop "eGalax Inc. USB TouchController" 'Evdev Axis Inversion' 1 1
xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Evdev Axis Inversion' 0 0
xinput set-prop "eGalaxTouch Virtual Device for Single" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
xinput set-prop "eGalaxTouch Virtual Device for Single" 'Evdev Axis Inversion' 0 0
xrandr -o normal
xinput set-prop "eGalax Inc. USB TouchController" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
xinput set-prop "eGalax Inc. USB TouchController" 'Evdev Axis Inversion' 0 0
xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Evdev Axis Inversion' 0 0
xinput set-prop "eGalaxTouch Virtual Device for Single" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
xinput set-prop "eGalaxTouch Virtual Device for Single" 'Evdev Axis Inversion' 0 0

Observe that the transformation matrix is the same for normal and inverted orientations, and for left and right orientations. Therefor the corresponding commands need to be applied only when changing between orientations with different transformation matrix.

Examples of use

Script for rotating the screen

The commands above can be used to make a simple shell script for toggling the screen orientation between landscape and portrait as follows, see also #Screen rotation:

~/toggle_orientation.sh
#!/bin/bash

rotation="$(xrandr -q --verbose | grep 'connected' | egrep -o  '\) (normal|left|inverted|right) \(' | egrep -o '(normal|left|inverted|right)')"

if [ $rotation = "normal" ] ;
then
    xrandr -o left
    xinput set-prop "eGalax Inc. USB TouchController" 'Coordinate Transformation Matrix' 0 1 0 1 0 0 0 0 1
    xinput set-prop "eGalax Inc. USB TouchController" 'Evdev Axis Inversion' 0 1
    xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Coordinate Transformation Matrix' 0 1 0 1 0 0 0 0 1
    xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Evdev Axis Inversion' 0 1
    xinput set-prop "eGalaxTouch Virtual Device for Single" 'Coordinate Transformation Matrix' 0 1 0 1 0 0 0 0 1
    xinput set-prop "eGalaxTouch Virtual Device for Single" 'Evdev Axis Inversion' 0 1
else
    xrandr -o normal
    xinput set-prop "eGalax Inc. USB TouchController" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
    xinput set-prop "eGalax Inc. USB TouchController" 'Evdev Axis Inversion' 0 0
    xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
    xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Evdev Axis Inversion' 0 0
    xinput set-prop "eGalaxTouch Virtual Device for Single" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
    xinput set-prop "eGalaxTouch Virtual Device for Single" 'Evdev Axis Inversion' 0 0
fi
exit 0
Tip: For an improved user experience you can:

Script for toggling tablet mode ON and OFF (Gnome 3.x)

The following shell script hides the mouse pointer and activates Gnome 3.x's on-screen keyboard, caribou, when the netbook is fold into a tablet. It detects the current mode based on the current cursor theme (if the cursor is hidden, then the computer is in tablet mode). When you unfold the computer, it returns the screen to the default orientation.

Note: It assumes xcursor-transparent-themeAUR and caribou are installed, see #Transparent cursor and #On-screen keyboard; and that Adwaita, Gnome 3.x's default cursor theme is in use. See also #Screen rotation.
~/toggle_tabletmode.sh
#!/bin/bash

if [ $(echo $(gsettings get org.gnome.desktop.interface cursor-theme) | cut -c2- | sed 's/\(.*\)./\1/') = "xcursor-transparent" ] ;
then
    gsettings set org.gnome.desktop.interface cursor-theme "Adwaita" &
    gconftool-2 --type string  --set /desktop/gnome/peripherals/mouse/cursor_theme Adwaita &
    dconf write /org/gnome/desktop/a11y/applications/screen-keyboard-enabled false &
    xrandr -o normal
    xinput set-prop "eGalax Inc. USB TouchController" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
    xinput set-prop "eGalax Inc. USB TouchController" 'Evdev Axis Inversion' 0 0
    xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
    xinput set-prop "eGalaxTouch Virtual Device for Multi" 'Evdev Axis Inversion' 0 0
    xinput set-prop "eGalaxTouch Virtual Device for Single" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
    xinput set-prop "eGalaxTouch Virtual Device for Single" 'Evdev Axis Inversion' 0 0
else
    gsettings set org.gnome.desktop.interface cursor-theme "xcursor-transparent" &
    gconftool-2 --type string  --set /desktop/gnome/peripherals/mouse/cursor_theme xcursor-transparent &
    dconf write /org/gnome/desktop/a11y/applications/screen-keyboard-enabled true &
fi
exit 0
Tip: You can run this script when (un)folding the netbook associating it to the keys XF86LAUNCH1 and XF86LAUNCH2, see #(Un)folding detection.

See also