Meego Wiki
Views
From MeeGo wiki
< Devices(Difference between revisions)
Jump to: navigation, search
m (HDMI Output: My previous edit was misleading.)
(Crystal HD Video Decoder (BCM70015): correct git url)
 
(5 intermediate revisions not shown)
Line 2: Line 2:
== How to install latest MeeGo Snapshot ==
== How to install latest MeeGo Snapshot ==
-
* Download img from http://download.meego.com/snapshots/latest/images/meego-tablet-ia32-pinetrail/ (latest points to the 1.2.80 series and is currently broken, use http://download.meego.com/snapshots/ and pick a recent 1.2.'''0'''.90 directory and go to ''images'' and ''meego-tablet-ia32-pinetrail'' inside)
+
* Download img from http://download.meego.com/snapshots/ and pick a recent 1.2.'''0'''.90 directory and go to ''images'' and ''meego-tablet-ia32-pinetrail'' inside
* Write to your usb stick with '''dd if=meego.img of=/dev/sdb bs=4M'''
* Write to your usb stick with '''dd if=meego.img of=/dev/sdb bs=4M'''
* Put usb stick in tablet and boot up, press "BBS" (on the touchscreen), select usb stick, now you need a usb keyboard to select install only option
* Put usb stick in tablet and boot up, press "BBS" (on the touchscreen), select usb stick, now you need a usb keyboard to select install only option
Line 190: Line 190:
<pre>
<pre>
-
git clone http://git.wilsonet.com/crystalhd.git
+
git clone git://git.wilsonet.com/crystalhd.git
</pre>
</pre>
Line 245: Line 245:
=== HDMI Output ===
=== HDMI Output ===
-
This can be enabled by copying the following two files from a WeTab OS installation ([http://www.wetab-community.com/index.php?/topic/12074-hdmi-ausgang/ source link]) or from [http://repo.pub.meego.com/home:/arfoll:/utils/meego_1.1_core/i586/ MeeGo 1.1 repos] chrontel-1.0-11212.1.i586.rpm package:
+
Install the chrontel RPM available [http://build.meego.com/package/show?package=chrontel&project=home%3Abrendan here].
-
<pre>
+
This will add a dbus permissions file, a udev file to map the i2c device to /dev/hdmi, and a modprobe.d config to load the i2c_dev module when the i2c_i801 module is loaded. You will need the following two modules in your kernel:
-
rpm -qpl /tmp/chrontel-1.0-11212.1.i586.rpm
+
  CONFIG_I2C_CHARDEV=m
-
/etc/xdg/autostart/tiitoo-hdmi.desktop
+
  CONFIG_I2C_I801=m
-
/lib/firmware/chrontel/fw7036.bin
+
-
/usr/bin/tiitoo-hdmi-daemon
+
-
/usr/bin/tiitoo-hdmi.sh
+
-
</pre>
+
-
After you have copied the files, you need to load two kernel modules and start the HDMI Daemon:
+
I have a MeeGo 1.2 kernel here with these modules [http://build.meego.com/project/show?project=home%3Abrendan%3Abranches%3Adevel%3Akernel%3A1.2 here].
-
<pre>
+
See bug #15637 for status on inclusion in MeeGo 1.2 [https://bugs.meego.com/show_bug.cgi?id=15637 here].
-
sudo modprobe i2c-i801
+
-
sudo modprobe i2c-dev
+
-
sudo tiitoo-hdmi-daemon
+
-
</pre>
+
=== Accelerometer ===
=== Accelerometer ===

Latest revision as of 15:03, 26 September 2011

June 2011: forum thread

Contents

How to install latest MeeGo Snapshot

  • Download img from http://download.meego.com/snapshots/ and pick a recent 1.2.0.90 directory and go to images and meego-tablet-ia32-pinetrail inside
  • Write to your usb stick with dd if=meego.img of=/dev/sdb bs=4M
  • Put usb stick in tablet and boot up, press "BBS" (on the touchscreen), select usb stick, now you need a usb keyboard to select install only option
    • You can go through the bootloader using the button in the top left corner of the screen, short press to move to the next entry, long press to boot it. USB keyboard is optional.

Mobile World Congress 2011 / MeeGo Summit.fi Machines : Update Repos

These machines were pre-installed with MeeGo 1.1 using a trunk-daily build of 1.1.90.2.20110209.4 (see /etc/zypp/repos/core.repo on the device); this is no longer available.

In the absence of a more stable repo an alternative is to track the latest package set by setting

 baseurl=http://download.meego.com/trunk-daily/builds/trunk/latest/repos/oss/ia32/packages/

in the core.repo file.

Then:

 zypper ref

(If anyone is brave enough to run zypper up and potentially need to reinstall then please say how this works.)

I tried that against the latest weekly repo at that time (http://repo.meego.com/MeeGo/builds/1.1.90/1.1.99.2.20110412.6/repos/oss/ia32/packages/) and first it hung on updating libc. After a reboot it ran through, but after one more reboot the Tablet UX didn't come back up anymore. Didn't investigate it further. I'll most likely use these instructions: http://meego.com/downloads/releases/1.2/meego-tablet-developer-preview and the image for aforementioned weekly.

--Dm8tbr 04:30, 18 April 2011 (UTC)

Connecting Qt Creator to the Device

Go to Tools->Options; then Projects section, MeeGo Device Configurations tab.

Note that the meego user seems to need sudo rights to be able to run the remote execution:

 cat <<EOF > /etc/sudoers.d/su-meego
 meego        ALL=(ALL)       NOPASSWD: ALL
 EOF
 chmod 440 /etc/sudoers.d/su-meego
 sed -i -e's/##includedir/#includedir/' /etc/sudoers

Also, for some reason, /usr/local and /usr/local/bin end up as root:root, mode 770. Fix this with:

 sudo chmod 755 /usr/local
 sudo chmod 755 /usr/local/bin

This looks like it's due to Qt Creator packaging

Old Installation Notes

Warning: both the handset and netbook images running on the ExoPC have some problems as of 1/30/2011. See below. Warning: as with any other device, if you incorrectly reflash the bootloader and/or kernel, you may brick your system.

Sometimes the unit won't boot when a USB mouse is plugged in. An external keyboard doesn't cause the same problems. A mouse can be attached as soon as the MeeGo splashscreen appears. This might be a power problem that would be resolved by a USB hub with an external supply.

Installing the Handset image before the Netbook saves a bit of trouble if both are desired.

The version of parted that is invoked by the MeeGo installers will not resize an NTFS partition, so if you want to preserve Windows, use another partitioning tool before booting the MeeGo USB stick. systemrescuecd worked fine.

The installation described here shrank the Windows partition to the (recommended minimum) 20 GB, then created an extended (logical) partition in the remaining space with a 2 GB swap partition and two primary (Is this right?) partitions of equal size in the remaining space.

Windows may come up and say that the partition table has been corrupted and that it will repair it ;-). The result is that the boot flag is set for the Win System partition, which prevents the extlinux bootloader from starting. To fix the problem, boot once more from the handy systemrescuecd stick and clear the duplicate boot flag from the System partition. Presto: your MeeGo install is again accessible.

Installation

Result of successful partitioning for triple-boot.    Booting Windows may cause it to set the "boot" flag on its System partition as shown here and prevent extlinux from loading.    Boot again with the systemrescuecd stick to clear the duplicate flag.

The ExoPC has an unlocked bootloader, so installation is relatively simple. First prepare a USB stick with the image of your choice. After holding the power button for 4 seconds to start the boot process, touch the "Setup" soft button in the upper-righthand corner of the screen and disable "Quiet Boot." Boot again and touch the "BBS" soft button to manually select your USB drive as the boot device.

The netbook image does not create a useful /boot/extlinux/extlinux.conf file. One way of solving the problem is to install the handset image first, mount the handset image from the netbook image and just copy over the extlinux.conf file. Copy the entry for the handset image over to the end of the extlinux.conf file and change the details in order to create a file that works for all the images, then copy back to the handset image.

Don't forget to run "zypper update" from a terminal window as soon as your image is installed.

Warning: always unmount the USB filesystem before pulling the Flash drive out of the slot.


Handset-specific notes

Touchscreen works great in the as-installed image. WiFi does not. A symptom of the problem is that both the ath9k (correct) and ath3K (wrong) kernel modules are autoloaded at boot time. Edit /etc/modprobe.d/blacklist.conf and add "blacklist ath3k" and then reboot. Unfortunately, WiFi still doesn't come up even though "lsmod" shows the same drivers as on netbook image, whose WiFi works great. "dmesg" says "ADDRCONF(NETDEV_UP): wlan0: link is not ready.

Before WiFi is working the easiest ways to get files onto the handset images are either from a mounted USB stick filesystem or by mounting the MeeGo netbook filesystem read-only and copying. In order to accomplish the latter, type "fdisk -l" to list the existing partitions. Create the directory where the netbook filesystem will be mounted, e.g. "mkdir -p /netbook". Then, assuming your netbook partition is /dev/sdaX and the filesystem type is ext3, enter "mount -t ext3 -o ro /dev/sdaX /netbook". Then "ls /netbook" will display the files on the netbook partition.

Netbook-specific notes

WiFi works great with the as-installed netbook image.

As installed, the netbook image does not have a working touchscreen. The system responds to a screen touch by darkening slightly and moving the cursor to the upper-lefthand corner. The needed driver, hid_egalax, is not autoloaded. Manually loading the driver with "modprobe -i hid_egalax" makes the touchscreen fully functional about half the time. Other times the behavior seems to be unaffected by the driver load.

Netbook trunk (1.2)

Some notes about installing a more recent MeeGo netbook image (I used meego-netbook-ia32-1.2.80.0.20110503.2.img) on ExoPC hardware:

  1. Installation needs an external keyboard, but went smoothly. However, on first boot (where you have to enter default user/password etc.), the external keyboard seemed to cause some power issue (even with the tablet plugged into its adapter), where X respawns too quickly.
    To work around this, I followed these instructions, summarised here:
    1. Plug in USB keyboard.
    2. Boot and start bashing the space key on the external keyboard (to interrupt grub).
    3. In the grub menu, press Tab so you can edit the kernel boot options.
    4. Append ' s' (space then 's', no quotation marks). This will mean you can boot into single user mode before X starts (and the keyboard causes X to continually respawn).
    5. Once you have a console available, run startx to get a minimal X environment.
    6. In the terminal window, run /usr/bin/firstboot. This starts the normal firstboot environment with the keyboard plugged in. Fill in the necessary.
    7. Once you're done with firstboot, back in the terminal, use the halt command to shut down.
    8. You should now be able to boot the tablet with the keyboard plugged in.
  2. Once you've booted successfully, you'll probably need to use the Terminal application to do stuff.
  3. With more recent images, hid_egalax does appear to be autoloaded (see the previous section). However, the pointer behaviour is still a little skittish. I found that installing evtouch stabilised it a bit:
    zypper in xorg-x11-drv-evtouch
  4. To hide the pointer, edit /etc/sysconfig/uxlaunch and add a line like this to the end of the file:
    xopts=-nocursor
    But, once the pointer is gone, it is tricky to put the pointer to the top of the screen to see the toolbar (with links to MyZone etc.). However, if you've got an external keyboard plugged in, you can press the Windows key on the external keyboard to get there.
  5. This one is for those of you interested in running HTML5/JS web apps on netbook: The version of Chromium installed by default on the netbook image is quite old, and behaves pretty poorly for frameworks like Sencha Touch. You can instead install a developer build of Chrome, which works much better.
    1. Install lsb:
      sudo zypper in lsb
    2. Download a developer build of Chrome (to replace Chromium) from
      http://www.google.com/chrome/intl/en/eula_dev.html?dl=unstable_i386_rpm
    3. Install the RPM:
      sudo rpm -i google-chrome-unstable_current_i386.rpm
    4. Run it:
      google-chrome
      NB on first run, it asks you to select a search engine; I chose Yahoo!, as selecting Google didn't work (ironically).
  6. On the other hand, if you're happy with the version of Chromium on the netbook image, and just want to be able to use it with touch, the chromeTouch extension works pretty well. However, this mucks up touch tracking in Sencha Touch.
  7. I had pretty much zero luck getting a decent virtual keyboard to work. I tried matchbox-keyboard, the meegotouch keyboard (Maliit), and fvkbd. matchbox-keyboard and fvkbd at least appeared onscreen; I had no luck with the meegotouch keyboard at all.
    I ended up keeping fvkbd with the following small edits:
    • I changed its .desktop file (/usr/share/applications/fvkbd.desktop) to run the keyboard docked to the bottom of the screen, by changing the Exec line to:
      Exec=fvkbd-gtk -d -l keyboard-s.xml
      (note the extra -d to dock to the bottom of the screen)
    • I also edited the keyboard-s.xml file (/usr/share/fvkbd/keyboard-s.xml) and set the width to 1366 and height to 330 (attributes on the outermost XML element). This makes the keyboard properly span the screen without being truncated (though I didn't work out how to centre the keys on the background)
    To use the keyboard, start the fvkbd application first (from the Applications zone), then the application you want to use. The keyboard then sits on top of the application. This can be useful for emergencies, but it's not really adequate for full, everyday use.
  8. For some reason I couldn't discover, the screen dims when the power lead is unplugged. I was unable to figure out how to prevent this from happening (I tried looking through the BIOS, using xset, looking at upower, tried to turn off acpi etc. to no avail). However, there is a utility for setting the backlight brightness called xbacklight which at least helps you reset the screen brightness (the netbook image has no software control for this, and the tablet has no hardware keys for it).
    Install it with:
    sudo zypper in xbacklight
    Then, to set the backlight brightness to 100%, do:
    xbacklight -set 100
    (Obviously, this is less than ideal. If anyone knows how to permanently prevent the screen from dimming when the power is unplugged, please let me know.)
  9. The ExoPC has a light sensor (tiny rectangle next to the power LEDs in the top left). When it's on, a reduction in the ambient light causes the screen to dim. This can be quite annoying in a British spring as bright sunlight rapidly alternates with storm clouds.
    You can turn off the light sensor temporarily with:
    sudo echo 0 > /sys/devices/platform/asus_laptop/ls_switch
    However, you have to do this manually on each boot. There's probably some way to switch it off permanently, but no one on the internet has written it down. So the easiest thing for me to do was write a script in /etc/init.d/ls_switch to run on each boot (see below).
    Make sure you sudo chmod +x /etc/init.d/ls_switch too.
    With this script in place, set it to run on each boot with:
    chkconfig --add ls_switch
    When you reboot, the light sensor should be off.
# script to go in /etc/init.d/ls_switch
#!/bin/sh
#
# ls_switch	Turn light sensor off
#
# chkconfig: 2345 08 92
# description:	Turns light sensor off on boot
#
#
### BEGIN INIT INFO
# Provides: ls_switch
# Default-Start:  2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: turn off light sensor
# Description: turn off light sensor
### END INIT INFO

# Source function library.
. /etc/init.d/functions

case "$1" in
  start)
	  echo "disabling light sensor"
    echo 0 > /sys/devices/platform/asus_laptop/ls_switch
	  RETVAL=$?
	  ;;
  stop)
    RETVAL=0
    ;;
  *)
    echo "Usage: ls_switch {start|stop}"
    RETVAL=2
    ;;
esac

exit $RETVAL

IVI-specific notes

IVI 1.2 running on ExoPC

Hardware Fixes

Please add steps here how to get hardware features working on MeeGo Tablet UX that don't work out of the box:

Crystal HD Video Decoder (BCM70015)

This should probably get packaged up, but for now:

Grab the latest crystalhd driver source from http://git.wilsonet.com/crystalhd.git

git clone git://git.wilsonet.com/crystalhd.git

Install the kernel headers to compile the kernel module

zypper install kernel-adaptation-pinetrail-devel

Compile and install the kernel module (currently won't just work, due to a bug in one of the kernel headers [1] )

cd ~/crystalhd/driver/linux
autoconf
./configure
make
sudo make install

Compile and install the user-space library libcrystalhd

cd ~/crystalhd/linux_lib/libcrystalhd
make
sudo make install

OPTIONAL (?): It is also possible to compile a gstreamer plugin... but you need some extra development libraries

sudo zypper install gstreamer-devel gst-plugins-base-devel

Then some more compiling and installing

cd ~/crystalhd/filters/gst/gst-plugin/
./autogen.sh
./configure
make
sudo make install

Hardware H.264 Video Decoding with Flash Player

According to Flash Player 10.3 Release Notes [2] under section Known Issues, subsection Audio/Video, Adobe has support for the Broadcom Crystal HD BCM70015 under Linux:

  • H.264 Hardware decoding on Linux is available as an experimental feature and has been tested on NVidia GT 330 and Broadcom BCM70015 GPUs. Users may choose to enable hardware decoding by adding EnableLinuxHWVideoDecode=1 in an mms.cfg configuration file. Users may experiance instability and crashes while watching hardware accelerated video. Please report any issues to http://bugs.adobe.com/flashplayer.
  • H.264 Video Hardware acceleration is not available for DRM-protected content on Broadcom graphics chips.

The mms.cfg file mentioned should be created in /etc/adobe/mms.cfg

HDMI Output

Install the chrontel RPM available here.

This will add a dbus permissions file, a udev file to map the i2c device to /dev/hdmi, and a modprobe.d config to load the i2c_dev module when the i2c_i801 module is loaded. You will need the following two modules in your kernel:

 CONFIG_I2C_CHARDEV=m
 CONFIG_I2C_I801=m

I have a MeeGo 1.2 kernel here with these modules here.

See bug #15637 for status on inclusion in MeeGo 1.2 here.

Accelerometer

The fix to bug 10886 was to remove the MeeGo Sensors module in the kickstart file of the Tablet Image. This, however, causes the sensor to not be accessible to Qt Mobility (bug 17461). The workaround as described in bug 17461 is as follows:

  • Download the RPM: libqtsensors1-1.2.0~beta0+git2726-10.11.i586.rpm
  • Extract it: rpm2cpio libqtsensors1-1.2.0~beta0+git2726-10.11.i586.rpm | cpio -idv
  • Copy the module (as root): cp usr/lib/qt4/plugins/sensors/libqtsensors_meego.so /usr/lib/qt4/plugins/sensors/

To test, you can install the qt-mobility-examples package (using zypper install qt-mobility-examples) and run one of the examples:

$ /usr/lib/qtmobility/examples/accel
loaded the Generic plugin 
loaded the grue plugin 
Loaded the MeeGo sensor plugin 
New sensor "accelerometersensor" interface created with session id 10 ... 
acceleration:  "0.12 0.27 2.35" 
acceleration:  "0.12 0.29 2.39" 
acceleration:  "0.10 0.29 2.39" 
acceleration:  "0.11 0.30 2.33"

Display brightness

If for some reason the display backlight becomes too dark, you can use the following command as root to set the brightness:

echo 15 >/sys/devices/virtual/backlight/acpi_video0/brightness

The value 15 has been obtained from the file /sys/devices/virtual/backlight/acpi_video0/max_brightness.

Another option is to install xbacklight (available in the MeeGo repos) and run:

xbacklight -set 100

You don't need to be root to do this.

Personal tools