Rockbox

  • Status Unconfirmed
  • Percent Complete
    0%
  • Task Type Patches
  • Category Operating System/Drivers
  • Assigned To No-one
  • Operating System Generic RaaA
  • Severity Low
  • Priority Very Low
  • Reported Version Daily build (which?)
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by captainkewl - 2011-12-30

FS#12496 - RaaA WebOS

Rockbox WebOS app.

Built on r31467, 32/64-bit Ubuntu 11.10, running on a 32GB Touchpad

Directions (only tested on the above):

* Install WebOS PDK: https://developer.palm.com/content/resources/develop/sdk_pdk_download.html

* Install platform-native libsdl-dev if you haven't already. Only needed to pass configuration check as the PDK doesn't properly install staging sdl-config for some reason.

* Apply patch (patch -p0 < filename.patch)

* cd webos

* ../tools/configure, select WebOS target (206)

* make && make install && sh ./buildpkg.sh

Notes:

* This is one big hack – I fudged just about everything in /firmware (how the target system works is still not altogether clear to me) and piggybacked a lot of this off of the SDL target. Mostly in the interest of getting it to run without adding ifdefs all over the place. Obviously we'll want to be more methodical and thorough about exactly which changes need to go where moving forward.

* The Touchpad's SDL video implementation appears to adjust orientation and scale output to fit within 1024x768 as best as possible. This means that a 800x480 build will appear in landscape mode, letterboxed, while a 320x480 will appear in portrait mode, pillarboxed. The device itself automatically orients to landscape – meaning, if you're in a portrait resolution and then you exit, everything will initially be sideways – but that doesn't affect input. Scaling routines are noticeably slow.

* I tried building this as a hybrid Enyo/PDK (window mgr friendly) app but had some problems with the native part failing to execute at SDL_Init. So for now no backgrounding or notification bar.

* Make scripts use the ARM compilers installed with the PDK. I'm wondering though if this is superfluous given that the Rockbox toolchain also supports ARM7. I did try exposing some of the ARM-specific assembly but the compilation failed with the PDK compiler.

800x480 build: http://www.jasonyu.net/webos/org.rockbox.raap_0.0.1_all.ipk

Also: database writing and/or reading seems to be broken somehow. Only happens when run at the user level through the GUI. Only usable database categories are Ratings and Year – the rest are all empty.

Works fine when the app is launched through the console though. Permissions???

Cool, will try as soon as my touchpad arrives!

However, I don't think we want to have the WebOS port using sdl. You can use the SDL port instead. Your work isn't much different from running the SDL port as is, the differences boil down to packaging.

For the toolchain: You can try the new "arm-app" toolchain that rockboxdev.sh can build. Perhaps that one works.

Agreed… next step is to get it working as a hybrid app. With only maybe 3 lines of new code – the rest is just environment and packaging – I'm not sure if there's much point to this existing as a separate target as is.

You can put this port under firmware/target/hosted/sdl/webos, e.g. the button map. And I don't think a new PLATFORM_WEBOS is qualified at this point.

r31646 (last svn, haven't switched to git yet). Still proof of concepting so I haven't really reorganized this yet – just wanted to post this to so others could see where I'm going with this.

Changed to Hybrid app, new app ID. Beginning work on integration with WebOS, particularly notification dashboard. Still need to figure out backgrounding.
Dimensions in Hyrbid mode are defined in app.js – by default they're 320x480. You'll want to modify this if you build at a different res as this scales video only.
Uses OpenGL ES to render surface to texture on plane – I believe hardware rendering in 3d is faster than software 2d.

(short recap from irc) FPS is far to below with both patches to be useful.

FWIW, the it reaches 60fps (as expected) in the android port.

Can't build with today's latest source. I'll try again later.

It says:

CC firmware/asm/arm/memset16.S
/home/yzflcyq/PMP-Firmware-s-Rockbox-X/firmware/asm/arm/memset16.S: Assembler messages:
/home/yzflcyq/PMP-Firmware-s-Rockbox-X/firmware/asm/arm/memset16.S:62: Error: bad instruction `ldrpc cond=eq'
make: *** [/home/yzflcyq/PMP-Firmware-s-Rockbox-X/webos/firmware/asm/arm/memset16.o] 错误 1

Has anyone tried again in recent days to build this on the current Git master? I'd like to take this patch and see if maybe
we can make this an official port.

Yep I've been trying to fix it but failed. I've tried to build gigabeats target as a simulator using arm-none-linux-gcc, the compiler for WebOS APPs but get errors.

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing