Difference between revisions of "LunaCE on Pre3"

From WebOS-Ports
Jump to: navigation, search
(Instructions)
m (moved LunaSysMgr CE for Pre3 to LunaCE on Pre3: New name)
 
(40 intermediate revisions by 3 users not shown)
Line 1: Line 1:
===Introduction===
+
==Introduction==
This page is dedicated to running the WOCE version of LunaSysMgr on a Pre3.
+
This page is dedicated to running the WOCE version of LunaSysMgr on webOS 2.x devices.
  
===What Works===
+
The information here was collated using WOCE on a Pre3, so it may not be accurate if you're using a different device.
Touch Input
 
  
Volume Keys (may not actually set the volume)
+
The page will be updated to reflect new findings as and when they surface.
  
Sound (may not work fully, cannot test properly in the current state)
+
==What Works==
 +
'''Touch Input'''
  
Launcher
+
'''Ringer Switch'''
  
Status Bar
+
'''Sound'''
  
System Menu
+
'''Status Bar'''
  
===What Doesn't Work===
+
'''System Menu'''
App Launching (cards will appear, but solid white with no contents)
 
  
UI Layout isn't optimized for the resolution
+
==What 'Sort Of' Works==
 +
'''Virtual Keyboard'''
  
Screenshot with Opt+Sym+P (Crash, luna-send method works fine)
+
Opens and works w/password unlock
  
Keyboard Input (Crash)
+
Characters are all garbled
  
Just Type (Crash)
+
Doesn't hide/show when slider is opened/closed in a text field
  
Gesture Area
+
Opens and crashes in maximized cards (lock & unlock when maximised to show keyboard button):
 +
** (LunaSysMgr:3437): DEBUG: IME: Window got focus change in sysmgr com.palm.app.clock focused: 1, fieldtype: 0, fieldactions: 0x00
 +
** Message: void DisplayManager::setTouchpanelMode(bool): Setting hal touchpanel mode to 1
 +
** (LunaSysMgr:3437): DEBUG: System request to show the IME
 +
** (LunaSysMgr:3437): DEBUG: bool SystemUiController::changeNegativeSpace(int, bool, bool): 423
 +
** (LunaSysMgr:3441): DEBUG: WindowedWebApp::onKeyboardShown if (window.Mojo && window.Mojo.keyboardShown) {window.Mojo.keyboardShown(true);}
 +
** (LunaSysMgr:3437): DEBUG: Allowing touch-end event through
 +
** (LunaSysMgr:3441): DEBUG: WEBKIT PERF: PAINT appid: \xc0\xc3, time: 892404
 +
 +
LunaSysMgr: symbol lookup error: LunaSysMgr: undefined symbol: _ZN4Palm7WebView24unmapCompositingTexturesEv
 +
 +
** (LunaSysMgr:3437): CRITICAL **: virtual void WebAppMgrProxy::onDisconnected() (181): WebAppMgrProxy was Disconnected!!
 +
 +
** (LunaSysMgr:3437): CRITICAL **: virtual void WebAppMgrProxy::onDisconnected() (185): Exiting Sysmgr...
  
===Disclaimer===
+
'''Hardware Keyboard'''
Before continuing, be sure to understand that '''this version of LunaSysMgr is NOT usable in it's current state'''. It is here for the purpose of further development.
 
  
===Instructions===
+
Enter & Backspace work w/password unlock, other keys unresponsive.
'''Transfer the required libraries to the Pre3'''
+
 
 +
Doesn't wake the screen from lock.
 +
 
 +
Crashes on input in card view/launcher with the following:
 +
** Message: dockStateTransition: transitioned to state 1
 +
 
 +
'''Power Button'''
 +
 
 +
Screen lock/unlock works
 +
 
 +
Press-and-hold doesn't function (may be to do with app launching)
 +
 
 +
'''Volume Keys'''
 +
 
 +
Indicator appears on-screen, changes boot sound volume.
 +
 
 +
Keyboard clicks & card 'swoosh' sounds unaffected.
 +
 
 +
'''UI Layout'''
 +
 
 +
Status Bar dimensions are too large.
 +
 
 +
''(The above can be fixed by replacing /etc/palm/luna-platform.conf with LunaSysMgr/conf/luna-mantaray.conf)''
 +
 
 +
Quick Launch icons overflow over the launcher button.
 +
 
 +
Launcher displays 2 columns instead of 3.
 +
 
 +
Everything's tiny due to lack of scaling.
 +
 
 +
Just Type bar is too big for the screen.
 +
 
 +
'''Launcher'''
 +
 
 +
Flick handling is intermittent, sometimes works, sometimes doesn't. Somewhat random.
 +
 
 +
==What Doesn't Work==
 +
'''App Launching'''
 +
 
 +
Icons glow & cards appear, but solid white with no content.
 +
 
 +
Cards never reach MaximizeState
 +
 
 +
Core apps (Phone, Contacts, Mail, etc) don't even get a card.
 +
 
 +
'''Voice Dial'''
 +
 
 +
Timeout sound plays some seconds after triggering via icon/volume keys.
 +
 
 +
Otherwise non-functional.
 +
 
 +
'''Just Type'''
 +
 
 +
When tapped, search bar & quick launch fade out to make way for just type, but it never appears.
 +
 
 +
Cannot go back from there, as the gesture area doesn't work.
 +
 
 +
'''Gesture Area'''
 +
 
 +
No response, CoreNavi LED doesn't function.
 +
 
 +
Logs complain about not being able to find a target for the gesture:
 +
 
 +
** (LunaSysMgr:8396): WARNING **: QWarning: QGestureManager::deliverEvent: could not find the target for gesture
 +
 
 +
'''MinimalUI'''
 +
 
 +
First Use Mode?
 +
 
 +
Hangs at the HP logo while wiping /media/internal/.palm and setting up core apps.
 +
 
 +
Presumably dependent on First Use app, which doesn't launch currently.
 +
 
 +
'''Accellerometer'''
 +
 
 +
Screen does not rotate,
 +
 
 +
LunaSysMgr throws HAL errors relating to it:
 +
 
 +
webos-device user.err LunaSysMgr: module (halSensorOrientationDefault.module) does not exist
 +
webos-device user.err LunaSysMgr: in /lib/hal/modules
 +
webos-device user.err LunaSysMgr: nor in  /lib/hal/modules.mock
 +
webos-device user.crit LunaSysMgr: {LunaSysMgr}: Unable to open Sensor : [virtual hal_error_t HALConnectorBase::openSensor() : 103] : [HAL Sensor Type = 2]
 +
webos-device user.crit LunaSysMgr: {LunaSysMgr}: Unable to open the requested sensor type :
 +
                          [static HALConnectorBase* HALConnectorBase::getSensor(HALConnectorBase::Sensor, HALConnectorObserver*, bool) : 485] : [SensorType = 2]
 +
 
 +
==Disclaimer==
 +
 
 +
Before continuing, be sure to understand that '''this version of LunaSysMgr is NOT usable in it's current state'''. It is here for the purpose of further development, and you '''will''' have to doctor your device to get it back to normal functionality.
 +
 
 +
Also, if you're attempting to install LunaSysMgr CE on a Pre2 or earlier device, note that the Qt4.8 libs are very large and may not fit into your rootfs. In this case, it is recommended to either use either Tailor or the webOS Internals Meta Doctor to increase the partition's size.
 +
 
 +
==Instructions==
 +
'''Transfer the required libraries'''
  
 
Open a Terminal and cd into woce-build/rootfs/armv7/usr/lib/
 
Open a Terminal and cd into woce-build/rootfs/armv7/usr/lib/
  
Compress the libraries into a .tar file for easy transfer
+
Compress the libraries into a .tar file for easy transfer (-h to follow symbolic links, otherwise libaffinity.so breaks)
 
  tar -chvf lunaLibs.tar libQt* libhal.so libaffinity.so libqpalm.so libpsc.so
 
  tar -chvf lunaLibs.tar libQt* libhal.so libaffinity.so libqpalm.so libpsc.so
 
Copy the files to the device
 
Copy the files to the device
Line 45: Line 150:
 
  tar -xvf lunaLibs.tar
 
  tar -xvf lunaLibs.tar
 
  rm lunaLibs.tar
 
  rm lunaLibs.tar
 +
Copy libqpalm to the Qt Libraries folder
 +
mkdir -p /usr/plugins/platforms
 +
cp ./libqpalm.so /usr/plugins/platforms
 
Link the new libraries
 
Link the new libraries
 
  ldconfig -v
 
  ldconfig -v
Line 50: Line 158:
 
  exit
 
  exit
  
'''Transfer the required resources to the Pre3'''  
+
'''Transfer the required HAL modules'''
 +
 
 +
Open a Terminal and cd into woce-build/rootfs/armv7/lib/hal/modules
 +
 
 +
Compress the libraries into a .tar file for easy transfer
 +
tar -cvf lunaHAL.tar ./*
 +
Copy the files to the device
 +
novacom put file:///lib/hal/modules/lunaHAL.tar < lunaHAL.tar
 +
Extract them
 +
novaterm
 +
cd /lib/hal/modules/
 +
tar -xvf lunaHAL.tar
 +
rm lunaHAL.tar
 +
Close novaterm
 +
exit
 +
 
 +
'''Transfer the required Luna modules'''
 +
 
 +
cd into woce-build/rootfs/armv7/usr/lib/luna
 +
 
 +
Compress the libraries into a .tar file for easy transfer
 +
tar -cvf lunaModules.tar ./*
 +
Copy the files to the device
 +
novacom put file:///usr/lib/luna/lunaModules.tar < lunaModules.tar
 +
Extract them
 +
novaterm
 +
cd /usr/lib/luna
 +
tar -xvf lunaModules.tar
 +
rm lunaModules.tar
 +
Close novaterm
 +
exit
 +
 
 +
'''Transfer the required Luna resources'''  
  
 
cd into woce-build/rootfs/armv7/usr/palm/sysmgr
 
cd into woce-build/rootfs/armv7/usr/palm/sysmgr
Line 67: Line 207:
  
 
'''Prevent LunaSysMgr from crashing on startup'''  
 
'''Prevent LunaSysMgr from crashing on startup'''  
 +
 +
'''Option A''': Clone a git repository
 +
 +
git clone git://github.com/ShiftyAxel/LunaSysMgr.git
 +
git checkout lsm-pre3
 +
 +
And to pull down the latest changes
 +
 +
git pull origin lsm-pre3
 +
 +
'''Option B''': Download a patch
  
 
Download and apply the following patch to your own LSM sources:
 
Download and apply the following patch to your own LSM sources:
  curl https://github.com/ShiftyAxel/LunaSysMgr/commit/87137d043beabc4e4c18f1c61ed2885b51e2a442.diff > lsm-pre3.diff
+
cd /path/to/LunaSysMgr
 +
  curl https://github.com/ericblade/LunaSysMgr/commit/329e500b0ae0d0a2aaede30d7ae9086f66f49034.diff > lsm-pre3.diff
 +
patch -p1 < lsm-pre3.diff
  
 
'''Build and Run'''
 
'''Build and Run'''
Line 75: Line 228:
 
Modify woce-build/support/cross-compile.mk, changing MACHINE=topaz to MACHINE=mantaray  
 
Modify woce-build/support/cross-compile.mk, changing MACHINE=topaz to MACHINE=mantaray  
  
Build LunaSysMgr, noting that the output will now be in the release-mantaray folder instead of release-topaz
+
Build LunaSysMgr, noting that the output will now be in the release-<MACHINE> folder (for instance, Pre3 would be release-mantaray)
  
 
Backup your old LunaSysMgr  
 
Backup your old LunaSysMgr  
Line 87: Line 240:
 
  novaterm
 
  novaterm
 
  LunaSysMgr
 
  LunaSysMgr
 +
 +
== Getting apps to start ==
 +
 +
While technically it is possible to get apps to actually start, there's something crashing in the visuals area, so we can only see it actually working from the logs at startup.
 +
 +
To get apps "operating", you'll need the libWebKitLuna.so from 3.0.5.  This also requires libSimpleStats.so.  BrowserServer also requires libWebKitLuna, and will need a replacement libv8.so to operate for it's "SetLocaleCollator" function, and a new libnapp.so for it's "MallocTrim" function. libnapp.so requires libdlmalloc.so to function, as well.
 +
 +
After getting everything operating, libnapp will crash Luna out with the following backtrace:
 +
 +
 +
#0  0x3610422c in NWindow::SetBuffer(int, NWindowBuffer*) () from /usr/lib/libnapp.so
 +
#1  0x38d99700 in WSEGL_SwapDrawable(void*, unsigned long) () from /usr/lib/egl/libeglsubdrv.so
 +
#2  0x37f0e738 in IMGeglSwapBuffers () from /usr/lib/libIMGegl.so
 +
#3  0x36145a7c in QEGLPlatformContext::swapBuffers() () from /usr/lib/libqpalm.so
 +
#4  0x3614609c in QEglFSWindowSurface::flush(QWidget*, QRegion const&, QPoint const&) () from /usr/lib/libqpalm.so
 +
#5  0x367f7280 in QWidgetBackingStore::flush(QWidget*, QWindowSurface*) () from /var/lib/libQt/libQtGui.so.4
 +
#6  0x36a43950 in ?? () from /var/lib/libQt/libQtGui.so.4
 +
 +
Attempting to copy in new versions of the dependencies for libnapp will result in much earlier crashing:
 +
 +
try copying in new /usr/lib/egl/libeglsubdrv.so ...
 +
results:
 +
 +
** (LunaSysMgr:17141): WARNING **: QWarning: Could not open egl display
 +
** ERROR **: QFatal: EGL error
 +
 +
crash, very early in startup.
 +
 +
copied in libPiranha.*, no change
 +
copied /usr/lib/egl/* no change
 +
copied /usr/lib/libpvrtc no change
 +
copied /usr/lib/libEGL.so no change

Latest revision as of 18:57, 14 September 2012

Introduction

This page is dedicated to running the WOCE version of LunaSysMgr on webOS 2.x devices.

The information here was collated using WOCE on a Pre3, so it may not be accurate if you're using a different device.

The page will be updated to reflect new findings as and when they surface.

What Works

Touch Input

Ringer Switch

Sound

Status Bar

System Menu

What 'Sort Of' Works

Virtual Keyboard

Opens and works w/password unlock

Characters are all garbled

Doesn't hide/show when slider is opened/closed in a text field

Opens and crashes in maximized cards (lock & unlock when maximised to show keyboard button):

** (LunaSysMgr:3437): DEBUG: IME: Window got focus change in sysmgr com.palm.app.clock focused: 1, fieldtype: 0, fieldactions: 0x00
** Message: void DisplayManager::setTouchpanelMode(bool): Setting hal touchpanel mode to 1
** (LunaSysMgr:3437): DEBUG: System request to show the IME
** (LunaSysMgr:3437): DEBUG: bool SystemUiController::changeNegativeSpace(int, bool, bool): 423
** (LunaSysMgr:3441): DEBUG: WindowedWebApp::onKeyboardShown if (window.Mojo && window.Mojo.keyboardShown) {window.Mojo.keyboardShown(true);}
** (LunaSysMgr:3437): DEBUG: Allowing touch-end event through
** (LunaSysMgr:3441): DEBUG: WEBKIT PERF: PAINT appid: \xc0\xc3, time: 892404

LunaSysMgr: symbol lookup error: LunaSysMgr: undefined symbol: _ZN4Palm7WebView24unmapCompositingTexturesEv

** (LunaSysMgr:3437): CRITICAL **: virtual void WebAppMgrProxy::onDisconnected() (181): WebAppMgrProxy was Disconnected!!

** (LunaSysMgr:3437): CRITICAL **: virtual void WebAppMgrProxy::onDisconnected() (185): Exiting Sysmgr...

Hardware Keyboard

Enter & Backspace work w/password unlock, other keys unresponsive.

Doesn't wake the screen from lock.

Crashes on input in card view/launcher with the following:

** Message: dockStateTransition: transitioned to state 1

Power Button

Screen lock/unlock works

Press-and-hold doesn't function (may be to do with app launching)

Volume Keys

Indicator appears on-screen, changes boot sound volume.

Keyboard clicks & card 'swoosh' sounds unaffected.

UI Layout

Status Bar dimensions are too large.

(The above can be fixed by replacing /etc/palm/luna-platform.conf with LunaSysMgr/conf/luna-mantaray.conf)

Quick Launch icons overflow over the launcher button.

Launcher displays 2 columns instead of 3.

Everything's tiny due to lack of scaling.

Just Type bar is too big for the screen.

Launcher

Flick handling is intermittent, sometimes works, sometimes doesn't. Somewhat random.

What Doesn't Work

App Launching

Icons glow & cards appear, but solid white with no content.

Cards never reach MaximizeState

Core apps (Phone, Contacts, Mail, etc) don't even get a card.

Voice Dial

Timeout sound plays some seconds after triggering via icon/volume keys.

Otherwise non-functional.

Just Type

When tapped, search bar & quick launch fade out to make way for just type, but it never appears.

Cannot go back from there, as the gesture area doesn't work.

Gesture Area

No response, CoreNavi LED doesn't function.

Logs complain about not being able to find a target for the gesture:

** (LunaSysMgr:8396): WARNING **: QWarning: QGestureManager::deliverEvent: could not find the target for gesture

MinimalUI

First Use Mode?

Hangs at the HP logo while wiping /media/internal/.palm and setting up core apps.

Presumably dependent on First Use app, which doesn't launch currently.

Accellerometer

Screen does not rotate,

LunaSysMgr throws HAL errors relating to it:

webos-device user.err LunaSysMgr: module (halSensorOrientationDefault.module) does not exist
webos-device user.err LunaSysMgr: in /lib/hal/modules
webos-device user.err LunaSysMgr: nor in  /lib/hal/modules.mock
webos-device user.crit LunaSysMgr: {LunaSysMgr}: Unable to open Sensor : [virtual hal_error_t HALConnectorBase::openSensor() : 103] : [HAL Sensor Type = 2]
webos-device user.crit LunaSysMgr: {LunaSysMgr}: Unable to open the requested sensor type :
                         [static HALConnectorBase* HALConnectorBase::getSensor(HALConnectorBase::Sensor, HALConnectorObserver*, bool) : 485] : [SensorType = 2]

Disclaimer

Before continuing, be sure to understand that this version of LunaSysMgr is NOT usable in it's current state. It is here for the purpose of further development, and you will have to doctor your device to get it back to normal functionality.

Also, if you're attempting to install LunaSysMgr CE on a Pre2 or earlier device, note that the Qt4.8 libs are very large and may not fit into your rootfs. In this case, it is recommended to either use either Tailor or the webOS Internals Meta Doctor to increase the partition's size.

Instructions

Transfer the required libraries

Open a Terminal and cd into woce-build/rootfs/armv7/usr/lib/

Compress the libraries into a .tar file for easy transfer (-h to follow symbolic links, otherwise libaffinity.so breaks)

tar -chvf lunaLibs.tar libQt* libhal.so libaffinity.so libqpalm.so libpsc.so

Copy the files to the device

novacom put file:///usr/lib/lunaLibs.tar < lunaLibs.tar

Extract them

novaterm
cd /usr/lib
tar -xvf lunaLibs.tar
rm lunaLibs.tar

Copy libqpalm to the Qt Libraries folder mkdir -p /usr/plugins/platforms

cp ./libqpalm.so /usr/plugins/platforms

Link the new libraries

ldconfig -v

Close novaterm

exit

Transfer the required HAL modules

Open a Terminal and cd into woce-build/rootfs/armv7/lib/hal/modules

Compress the libraries into a .tar file for easy transfer

tar -cvf lunaHAL.tar ./*

Copy the files to the device

novacom put file:///lib/hal/modules/lunaHAL.tar < lunaHAL.tar

Extract them

novaterm
cd /lib/hal/modules/
tar -xvf lunaHAL.tar
rm lunaHAL.tar

Close novaterm

exit

Transfer the required Luna modules

cd into woce-build/rootfs/armv7/usr/lib/luna

Compress the libraries into a .tar file for easy transfer

tar -cvf lunaModules.tar ./*

Copy the files to the device

novacom put file:///usr/lib/luna/lunaModules.tar < lunaModules.tar

Extract them

novaterm
cd /usr/lib/luna
tar -xvf lunaModules.tar
rm lunaModules.tar

Close novaterm

exit

Transfer the required Luna resources

cd into woce-build/rootfs/armv7/usr/palm/sysmgr

Compress the resources into a .tar file for easy transfer

tar -cvf lunaRes.tar ./*

Copy the files to the device

novacom put file:///usr/palm/sysmgr/lunaRes.tar < lunaRes.tar

Extract them

novaterm
cd /usr/palm/sysmgr
tar -xvf lunaRes.tar
rm lunaRes.tar

Close novaterm

exit

Prevent LunaSysMgr from crashing on startup

Option A: Clone a git repository

git clone git://github.com/ShiftyAxel/LunaSysMgr.git
git checkout lsm-pre3

And to pull down the latest changes

git pull origin lsm-pre3

Option B: Download a patch

Download and apply the following patch to your own LSM sources:

cd /path/to/LunaSysMgr
curl https://github.com/ericblade/LunaSysMgr/commit/329e500b0ae0d0a2aaede30d7ae9086f66f49034.diff > lsm-pre3.diff
patch -p1 < lsm-pre3.diff

Build and Run

Modify woce-build/support/cross-compile.mk, changing MACHINE=topaz to MACHINE=mantaray

Build LunaSysMgr, noting that the output will now be in the release-<MACHINE> folder (for instance, Pre3 would be release-mantaray)

Backup your old LunaSysMgr

novaterm
stop LunaSysMgr
mv /usr/bin/LunaSysMgr /usr/bin/LunaSysMgr.old
exit

Upload the new LunaSysMgr

novacom put file:///usr/bin/LunaSysMgr < /path/to/compiled/LunaSysMgr

Run the new LunaSysMgr

novaterm
LunaSysMgr

Getting apps to start

While technically it is possible to get apps to actually start, there's something crashing in the visuals area, so we can only see it actually working from the logs at startup.

To get apps "operating", you'll need the libWebKitLuna.so from 3.0.5. This also requires libSimpleStats.so. BrowserServer also requires libWebKitLuna, and will need a replacement libv8.so to operate for it's "SetLocaleCollator" function, and a new libnapp.so for it's "MallocTrim" function. libnapp.so requires libdlmalloc.so to function, as well.

After getting everything operating, libnapp will crash Luna out with the following backtrace:


  1. 0 0x3610422c in NWindow::SetBuffer(int, NWindowBuffer*) () from /usr/lib/libnapp.so
  2. 1 0x38d99700 in WSEGL_SwapDrawable(void*, unsigned long) () from /usr/lib/egl/libeglsubdrv.so
  3. 2 0x37f0e738 in IMGeglSwapBuffers () from /usr/lib/libIMGegl.so
  4. 3 0x36145a7c in QEGLPlatformContext::swapBuffers() () from /usr/lib/libqpalm.so
  5. 4 0x3614609c in QEglFSWindowSurface::flush(QWidget*, QRegion const&, QPoint const&) () from /usr/lib/libqpalm.so
  6. 5 0x367f7280 in QWidgetBackingStore::flush(QWidget*, QWindowSurface*) () from /var/lib/libQt/libQtGui.so.4
  7. 6 0x36a43950 in ?? () from /var/lib/libQt/libQtGui.so.4

Attempting to copy in new versions of the dependencies for libnapp will result in much earlier crashing:

try copying in new /usr/lib/egl/libeglsubdrv.so ... results:

    • (LunaSysMgr:17141): WARNING **: QWarning: Could not open egl display
    • ERROR **: QFatal: EGL error

crash, very early in startup.

copied in libPiranha.*, no change copied /usr/lib/egl/* no change copied /usr/lib/libpvrtc no change copied /usr/lib/libEGL.so no change