Introduction
|
This wiki is a spin off of Caboose885's Ubuntu Forum Thread. Some of the hardware doesn't work quite right but most functionality works. There will be more added as more progress is made. Migrating and restructuring the information from the forum format to a proper wiki format is a time consuming process so please be patient.
What Works
Headphone Port
Microphone
Multitouch (No software uses it)
Touchpad
Touchscreen Single Input
Webcam
Wireless/Bluetooth
What Doesn't Work
Accelerometer
General Procedures
A majority of the information on this wiki works across the many versions of Ubuntu. However special instructions for the different versions will be noted in the appropriate subsections.
Accelerometer
ls /lib/modules/$(uname -r)/kernel/drivers/iio/accel/
should at least show
st_accel.ko st_accel_i2c.ko st_accel_spi.ko
if it doesn't then you need at least kernel version 3.10 (it did work with backported drivers in 3.7 too). so if you have those required modules, do
modprobe i2c_i801
modprobe st_accel_i2c
echo lsm303dlh_accel 25 >/sys/class/i2c-adapter/i2c-6/new_device
Check dmesg if everything is ok. If the last line is not correct, you need to run the following command.
cat /sys/class/i2c-adapter/i2c-*/name
This will allow you to find the directory which has a name file that outputs SMBus I801 adapter at 5000 and then change the i2c-6 accordingly. If everything worked, there should be a new directory /sys/bus/iio/devices/iio\:device0 which you can explore with shell-commands like echo and cat. Unfortunetly there are no opensource program that makes use of this driver, so you'd have to write your own. Hence, it doesn't do anything yet.
Microphone and Headphone Jack
1. Edit the following file.
sudo vim /etc/modprobe.d/alsa-base.conf
2. Append to the very bottom of the file the following line and save the changes.
options snd-hda-intel model=ideapad
Tablet Mode Recognition
1. Add the following lines to /etc/rc.local using your favorite editor. Make sure you open it as root. These commands maps these keystrokes to XF86LAUNCH1 and XF86LAUNCH2.
setkeycodes e073 148 & setkeycodes e074 149 exit 0
2. Reboot the computer for the changes to take effect.
3. When you flip the screen and close/open the lid, a keystroke is sent. Open "Keyboard Shortcuts" and add two new shortcuts, one for "Tablet Mode ON", "Tablet Mode OFF", and tell them to run your scripts for each mode. Click "New Shortcut" and then flip the screen and close the lid. The correct keystroke will be added. Reverse the process for the other shortcut.
As an example, we create a scrip to run an onscreen keyboard in tablet mode.
gksudo gedit /etc/acpi/duo-tabletmode.sh
Edit the file as follows:
#!/bin/bash [ "$1" ] && [ "$1" = "0" -o "$1" = "1" ] && MODE=${MODE:=${1}} if [ "$MODE" = "1" ]; then onboard & else killall onboard fi
Make it executable:
sudo chmod +x /etc/acpi/duo-tabletmode.sh
The command bound to XF86Launch1 should then be
/etc/acpi/duo-tabletmode.sh 1
and when exitting the tablet mode bind the following command to XF86Launch2
/etc/acpi/duo-tabletmode.sh 0
Touchscreen
1. Download the drivers from eGalax Downloads
2. Extract the file from the archive and run the setup.sh script as root.
sudo sh setup.sh
Ubuntu 14.04
The method described in Tablet Mode Recognition may not fully function. When editing the custom keybindings by flipping the screen/lid, the keystrokes map to Launch1 and Launch2 rather than XF86Launch1 and XF86Lauch2. These values can be edited manually using "dconf Editor" and the function will work as expected.