Skip to main content

Nokia N800 Branch

52 replies [Last post]
cgallaty
Offline
Joined: 2007-01-31

Hullo,
Just picked up a Nokia N800 a bit ago (actually a few days before it was even announced, oddly enough) and noted that there is no JVM on the thing. I seek to fix that. I am a developer with much Java experience, but have mostly done PalmOS and WinCE code for the last few years. I gave up on Palm as they can't seem to figure out what they want to be. (They where pushing J2ME hard a few years back but *still* won't stick it in the ROM, go figure) With ACCESS on the horizon, Linux seems the next thing to try. What the hell.

I've been a Linux guy for years (run Slackware) I recently started a bit of an experiment with getting the Maemo dev tools up in a debian image in the VMPlayer on my laptop (which is XP as I still need to do PPC dev >|^P ) I'm ready (time permitting) to do the deep dive on the port.

A) Who's interested and
B) Is there a doc on the general structure of the code and the area that one needs to focus on for porting?

Chris

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
teadrinker
Offline
Joined: 2008-02-06

Terrence,

Seems it would at least be worth investigating. Who would be the best person to contact?

Thanks,

Jim

Terrence Barr - Evangelist, Java Mobile & Embedded

Jim,

Sorry for the delayed reply. I'd need to take down some information
from you to forward to the sales folks. Please contact me off-forum
at evangelist[at]mobileandembedded.org.

Thanks,

-- Terrence

phonemeadvanced@mobileandembedded.org wrote:
> Terrence,
>
> Seems it would at least be worth investigating. Who would be the best person to contact?
>
> Thanks,
>
> Jim
> [Message sent by forum member 'teadrinker' (teadrinker)]
>
> http://forums.java.net/jive/thread.jspa?messageID=259303
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
> For additional commands, e-mail: advanced-help@phoneme.dev.java.net
>
>
[terrence.barr.vcf]
---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

terrencebarr
Offline
Joined: 2004-03-04

teadrinker,

This question was asked right when phoneME was open sourced. Here is my blog entry at the time:

http://weblogs.java.net/blog/terrencebarr/archive/2006/11/a_license_to_i...

For much more detail also refer to the Java open source FAQ:

http://www.sun.com/software/opensource/java/faq.jsp

Also, the ME Interest forum (in this community) has an archive of some of the discussions.

Hope this helps. Let me know if you have more questions.

-- Terrence

teadrinker
Offline
Joined: 2008-02-06

Sorry, I should have clarified. We distribute Java Applications (http://www.ergotech.com) for manufacturing and factory automation. The key point is that we deliver the Application, the JVM, OS and system hardware are simply necessary evils from our viewpoint.

We provide a drag-and-drop development tool and a deployment engine. We ship the deployment engine on hardware that the end user sees only as a "Black Box". By and large they have no interest in the technology of the deployment, they just want to be able to hit buttons in the development tool and have the deployment work.

We have three or four ARM platforms, for example the NSLU2, on which customers have requested our application run. Since this would involve shipping the system, OS, JVM and deployment engine the GPL license restrictions hit us. I don't think that there's much doubt about this - you can't distribute non-GPL's applications and phoneME.

The choice of licensing for phoneME is Sun's. I'm sanguine about this. It's just part of life and there are other JVMs. All JVMs have restrictions. For commercial/closed source implementations it's usually the high cost of porting/limited platform availability for low volume factory automation deployment (all manufacturing deployments are low volume when compared with consumer deployments). For phoneME it just happens to be the GPL. For OpenJDK it's too big. The lack of JVMs on small or embedded platforms has long been a limitation for us, but the situation is improving and we have other options. JAMVM seems the most generally applicable and is the next in line. Maybe we'll pre-compiling with GCJ and interpret only the deployed code. However, with it's current licensing, PhoneME is not an option.

terrencebarr
Offline
Joined: 2004-03-04

Hi again,

Thanks for the additional info. GPL-licensed code is probably a bad match for your current business (the way I understand it). But cases like yours are what Sun's commercial Java ME licenses are designed for - including pricing models that should allow for small-scale deployments. If you'd like I can get you in touch with our sales team to work on a quote.

Hope that help,

-- Terrence Barr
Technical Evangelist
Sun Microsystems

Hinkmond Wong

phonemeadvanced@mobileandembedded.org wrote:
> Hi again,
>
> Thanks for the additional info. GPL-licensed code is probably a bad match for your current business (the way I understand it). But cases like yours are what Sun's commercial Java ME licenses are designed for - including pricing models that should allow for small-scale deployments. If you'd like I can get you in touch with our sales team to work on a quote.
>
> Hope that help,
>
> -- Terrence Barr
>

I agree with Terrence. The advantage of phoneME is that it is
dual-licensed. So, if you don't like the GPL license, you can use the
other license that phoneME falls under.

Hinkmond

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

Hinkmond Wong

phonemeadvanced@mobileandembedded.org wrote:
> Hi Hinkmond,
>
> All these generalities leave me at a loss. I need an example. Take the pertinent case. If I would spend a man-year doing the N800 graphics port, which scenario do you see for me to not loose my investment? Will Sun reward me for my visiiblity? Will Nokia sign a contract with me? Do you want me to keep the work for the N800 in my hands, proving its quality only by actual demonstration, until someone pays me for revealing the code?
>

Hi Rene,

I saw Terrence made some good reasons already. All I can add is that
first off, a very minor point is that finishing the N800 graphics port
of CDC/PP to Maemo Linux/ARM/GTK would take about a man-week (less for
you, I'm guessing ;-)), not a man-year, but I get your point that you
are presenting a hypothetical case.

If I were an engineer spending 1 man-year doing phoneME work, I would
contribute back the source code to the phoneME and then immediately post
an offer where you can download or buy a CD-ROM with a binary build of
the source code from my own Web site, charging money for it, because no
one really wants to go through the hassle of setting up scratchbox to
build a binary, when they can buy it from you instead.

Then, on my Web site where I offer the binary, I would advertise my
consulting services for any company that would like to have a fully
QA-tested version of the port, not just the downloadable version or the
source files from the repository.

Also, I would advertise my other services on that Web site.

Here's an example of what that Web site would look like:

http://www.apple.com/safari/download/
(Just substitute your product name where it says "Safari" and the word
"phoneME" for where it says "WebKit") :-)

Or like this:
http://www.apple.com/safari/
(Again, sub your product name for Safari, and phoneME for WebKit)

Heck, I would add coffee mugs and t-shirts with your product logo on
them, from your Web site too, linked from cafepress.com just for fun. ;-)

The point is no one wants just a pointer to the repository of open
sourced source code nowadays. It's good to have that to show you are
part of a bigger developer community. But, customers want a binary
build and they want a live human to turn to for questions, problems, bug
fixing, and enhancements. That's where the money is, not source code.

Hinkmond

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

nsicom100
Offline
Joined: 2007-04-30

Hinkmond, Terrence, thanks for sharing your thoughts.

- Rene

teadrinker
Offline
Joined: 2008-02-06

Jumping in late to the discussion...

I don't see a "classpath" exception on PhoneME (please correct me if I'm wrong). This means that it can only run GPL'd code. You cannot run commercial code on the application because this would constitute "dynamic" linking.

So, if my understanding is correct, this model is NOT like the Linux model. I don't think that Linux would have any commercial success if it could only run GPL'd code and I don't think that it would have many contributors. For example, it would be impossible to run the Sun JDK licensed JDK if commercial code was not allowed, that limitation on Java support alone would have crippled Linux.

Assume that there are no plans to add the "classpath" exception, I'll move along...

Roger Brinkley

Currently there isn't the Classpath Exception but that doesn't mean that
you can't run non-GPL software. Distribution is key WRT to GPL and the
strong copy left protection. If you're not distributing a GPL
implementation then you can use the code and implement against it with
nonGPL code. If you are distributing the GPL implementation with some
other code then the additional code would have to be GPL as well.

Make sense?

Binky

phonemeadvanced@mobileandembedded.org wrote:
> Jumping in late to the discussion...
>
> I don't see a "classpath" exception on PhoneME (please correct me if I'm wrong). This means that it can only run GPL'd code. You cannot run commercial code on the application because this would constitute "dynamic" linking.
>
> So, if my understanding is correct, this model is NOT like the Linux model. I don't think that Linux would have any commercial success if it could only run GPL'd code and I don't think that it would have many contributors. For example, it would be impossible to run the Sun JDK licensed JDK if commercial code was not allowed, that limitation on Java support alone would have crippled Linux.
>
> Assume that there are no plans to add the "classpath" exception, I'll move along...
> [Message sent by forum member 'teadrinker' (teadrinker)]
>
> http://forums.java.net/jive/thread.jspa?messageID=257762
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
> For additional commands, e-mail: advanced-help@phoneme.dev.java.net
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

Hinkmond Wong

Simone Giannecchini wrote:
> Hi list,
> I am really a newbie to the mobile world, hence I am sorry if my
> question my seem very stupid. I have been asked to check for the
> possibility to port an existing Swing JFrame based application to the
> N800 platform. I have looked around for a couple of hours my guess for
> the moment is that this cannot be done right away. Am I right?
>
>
> Sorry again for this very basic (very stupid) question.
>

Hi Simone,

That's actually a very good question. However, Swing for Java ME
(phoneME) or what we call JSR 209 (Advanced Graphics User Interface,
AGUI) has not been open sourced yet because of 3rd party encumbrances.
AWT on the other hand is open sourced in the phoneME project as what is
known as the CDC/Personal Profile.

So, if you wrote an AWT Frame based app, you could help port
CDC/Personal Profile to the N800 and run it without problem.

Hinkmond

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

terrencebarr
Offline
Joined: 2004-03-04

Yep, that is what a commercial license is about - it allows you to build a proprietary product, mix in additional 3rd party components and licenses, and it provides you with TCK validation and Java branding. All things that a commercial vendor would certainly want. It's a dual-license business model that is fairly common in the industry, for example at Trolltech.

-- Terrence

nsicom100
Offline
Joined: 2007-04-30

And a commercial-license agreement between Nokia and Sun would give no legal rights to co-owners of parts of the code, like volunteers who did the port to the N800. Correct?

- Rene

terrencebarr
Offline
Joined: 2004-03-04

I assume so but for these types of questions our business people would need to be involved. Licenses are a notoriously tricky subject.

-- Terrence

nsicom100
Offline
Joined: 2007-04-30

Do you see the problem, Terrence? As it stands, professional third parties will not contribute, because doing so would be against business logic.

- Rene

Hinkmond Wong

phonemeadvanced@mobileandembedded.org wrote:
> Do you see the problem, Terrence? As it stands, professional third parties will not contribute, because doing so would be against business logic.
>

Hi Rene,

I see it as counter to what you are thinking. Professional third
parties will want to contribute to show they are active participants in
a totally open project, so that their changes are put into the trunk or
the repository which means they won't have to keep manually merging as
the trunk evolves, and to retain the IP of their contribution so they
can still make money off of the changes.

Just like the way Ubuntu, Debian, SuSE, Red Hat, etc. contribute to
Linux, you can still create a vialbe 3rd party business while
contributing your source code to an open source project like phoneME.
It makes good logical business sense as evidenced by other GPL projects.

Sun with the phoneME project is no different than the Linux project.
There is nothing new about this model, since it shows that it works with
projects such as Linux, where 3rd parties can make lots of money even
when they give back their contributions to the open source.

I think there might be a bit of unfair prejudice against Sun thinking
that we have some type of hidden agenda with phoneME. But, what is
really happening is that phoneME is just like other GPL projects out
there already.

Hinkmond

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

nsicom100
Offline
Joined: 2007-04-30

Hi Hinkmond,

These generalities leave me at a loss. I need an example. Take the pertinent case. If I would spend a man-year doing the N800 graphics port, which scenario do you see for me to not loose my investment? Will Sun reward me for my visiiblity? Will Nokia sign a contract with me? Java programmers do not need me - I am only implementing a well-known API. Do you want me to keep the work for the N800 in my hands, while proving its quality only by actual demonstration, until someone pays me for revealing the code?

Perhaps the problem is that I am too ignorant about the Linux case to understand the parallel you mention. We already established that in practice Nokia will pay licensing costs for Java to Sun. Does Nokia also pay a license fee for Linux? Who gets it?

- Rene

terrencebarr
Offline
Joined: 2004-03-04

Rene,

This is a good discussion, thanks for starting it.

First, I'd just like to second Hinkmonds last email ... the GPL-based business model is a very common one in the industry and phoneME is no different. That doesn't mean it works for everybody, and it might not work for you. It depends on your strategy and goals.

As for your concrete situation: If you spend a year on an N800 graphics port I see the following opportunities:

- You will be the first one who can offer an integrated and tested phoneME stack with support on the specific graphics platforms. That's a time-to-market advantage.
- You will be a preeminent expert for graphics support on phoneME and there is good possibility 3rd parties will engage with you for support and services when they need optimizations and support for the open source version of your graphics port
- Since you have demonstrated your expertize with phoneME you may be hired for follow-on work on entirely different commercial projects around phoneME, mobile Java, or related technologies
- You can create a commercial package for your graphics code and offer it to commercial licensees of phoneME as a fee-based graphics module
- And finally, because phoneME is GPL its footprint in the market is growing more rapidly than a commercial version alone could and that gives you much greater opportunity to monetize on the aforementioned points ("rising tide lifts all boats")

There are several additional points I can think of as well. But this should give you a general idea of the opportunities. The transition to open source business models is not always obvious or easy, the industry as a whole is still struggling with some of this. The underlying principle is that monetization is moving from the point of sale of code (old model) to the point of value (i.e. when code is working and has proven its value then business is generated).

Hope that makes sense.

-- Terrence

nsicom100
Offline
Joined: 2007-04-30

Thanks for that. Let me answer you point by point:

> - You will be the first one who can offer an integrated and tested phoneME stack with support on the specific graphics platforms. That's a time-to-market advantage.

That depends on my timing. You seem to almost suggest that I do a lot of coding off-line, put it in the repository at the last moment and then sell before others, like Sun, can do the same. My business case would seem to be marginal rather than essential, and not one very much in the spirit of GPL.

> - You can create a commercial package for your graphics code and offer it to commercial licensees of phoneME as a fee-based graphics module.

This would not seem to apply in any simple way to our example, Personal Profile for N800. Note that Personal Profile is not a product I am free to define. The API is fixed, standard. My work would be to produce the native implementation for the N800, largely C/C++-code. This native code, ultimately compiled into a dyamic library, would be shared property between me and Sun. Together with a jar file containing the corresponding Java classes, that would be a software product that could be interesting to who has CDC/Foundation Profile, but not yet Personal Profile. So far so good. However, I co-own my dynamic library with Sun, so we would at least be in direct competition. Worse, for me, the jar would be owned by Sun, and so in fact I will not be able sell a thing if my competitor would object. Also, if Sun would decide to put Personal Profile in its standard commercially supported CDC distribution, I will be out of business. I mean, let me say it frankly, Sun Microsystems is known to have become a company in which sales people and lawyers have relatively strong positions.

>- Since you have demonstrated your expertize with phoneME you may be hired for follow-on work on entirely different commercial projects around phoneME, mobile Java, or related technologies

I have already demonstrated this. You may know the CrE-ME VM for Windows Mobile.

> - And finally, because phoneME is GPL its footprint in the market is growing more rapidly than a commercial version alone could and that gives you much greater opportunity to monetize on the aforementioned points ("rising tide lifts all boats")

This is an important point, and in fact the reason why I am writing. I find it hard to understand how this prediction can come true in the absence of proper incentives for professional third parties to contribute. If I have no boat, the rising tide would have no way to lift me. Why would I help rising the tide, if that would lift up only other people's boats?

Respectfully,

- Rene

terrencebarr
Offline
Joined: 2004-03-04

I am not sure how you are trying to install the MIDlet. This should work: Start the MIDlet Manager, click on "Install" (in the manager) and point the installer to the jad file.

-- Terrence

terrencebarr
Offline
Joined: 2004-03-04

nsicom100,

I can give you some guidance but since I am not a lawyer you will have to consult with your legal advisor and/or Sun's legal department for specifics. (Sorry, I am required to state that).

Contributions to phoneME can only be made if you have signed the Sun Contributor agreement (SCA), see here: http://www.sun.com/software/opensource/contributor_agreement.jsp. Please refer to the FAQ and the SCA itself which is now available in a plain English version and easy to understand.

Among other things the SCA says that you retain all your rights to your contribution and intellectual property but that you grant Sun joint ownership. This allows Sun to use the contribution in a commercial product. You are free to exercise all your rights as the original owner of the contribution without consulting with Sun, including providing commercial products or services based upon your contribution.

Furthermore, since phoneME is licensed under GPLv2 you are also free to provide products and services based on the phoneME code subject to the GPLv2 rules.

Let me know if you have more questions.

-- Terrence
Technical Evangelist, Java Mobile & Embedded Community

nsicom100
Offline
Joined: 2007-04-30

Terrence,

Thanks for your answer. I have in fact more questions. Let me start with just one, as my other questions would depend on the answer to this one.

If I am "free to provide products", and I am Nokia, can I port phoneME code to my N800 and sell millions of N800 devices with built-in java without paying to Sun?

Thank you,
- Rene

terrencebarr
Offline
Joined: 2004-03-04

Rene,

Well, phoneME is just GPL code. So the standard GPL properties apply to combined works you create by adding phoneME to a bunch of other code that you install onto a device. If that is OK for you then, yes, you can sell your devices without paying Sun. In fact, some people are doing just that today.

But here are some important things to remember:

- Some terms and conditions of the GPL license are open to interpretations. You should definitely get legal advice before embarking on such a path.

- Using phoneME by itself does not imply Java TCK compatibility nor branding rights.

- phoneME is community supported on a best-effort basis, it does not imply any sort of service level or support by Sun

For some projects and products these may be perfectly acceptable limitations, for others they may not be - so you have to consider your situation carefully.

-- Terrence

nsicom100
Offline
Joined: 2007-04-30

Terrence, thanks again.

Any legal advice may turn out invalid. Therefore, do I understand correctly that you are telling me that it would be best for let us say Nokia, being not prepared to give exactly everything over to GPL, to sign a license agreement with Sun to prevent problems?

- Rene

Simone Giannecchini

Hi list,
I am really a newbie to the mobile world, hence I am sorry if my
question my seem very stupid. I have been asked to check for the
possibility to port an existing Swing JFrame based application to the
N800 platform. I have looked around for a couple of hours my guess for
the moment is that this cannot be done right away. Am I right?

Sorry again for this very basic (very stupid) question.

Thx,
Simone.

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

simboss1
Offline
Joined: 2005-08-08

Ops,
sorry about breaking the thread guys, bad mistake.
I will open a new one.

Simone.

mfabiop
Offline
Joined: 2005-03-06

I saw that i don't have gtk-config installed. I'm installing now and i will post my results soon.

Sorry...

mfabiop
Offline
Joined: 2005-03-06

Hi Chris and Hinkmond,

I've installed gtk-config and xlibs. Now i get the following errors:

cc ../../src/linux/personal/native/sun/audio/audioDevice.c
cc ../../src/share/personal/native/sun/awt/common/embeddedframe.c
cc ../../src/share/personal/native/awt/gtk/GComponentPeer.c
In file included from /usr/include/gtk-1.2/gdk/gdkx.h:30,
from ../../src/share/personal/native/awt/gtk/GComponentPeer.c:29:
/usr/include/gtk-1.2/gdk/gdkprivate.h:31:22: X11/Xlib.h: No such file or directory
/usr/include/gtk-1.2/gdk/gdkprivate.h:32:23: X11/Xutil.h: No such file or directory
In file included from /usr/include/gtk-1.2/gdk/gdkx.h:30,
from ../../src/share/personal/native/awt/gtk/GComponentPeer.c:29:
/usr/include/gtk-1.2/gdk/gdkprivate.h:64: error: syntax error before "Window"
/usr/include/gtk-1.2/gdk/gdkprivate.h:64: warning: no semicolon at end of struct or union
/usr/include/gtk-1.2/gdk/gdkprivate.h:65: warning: type defaults to `int' in declaration of `xdisplay'
/usr/include/gtk-1.2/gdk/gdkprivate.h:65: warning: data definition has no type or storage class
/usr/include/gtk-1.2/gdk/gdkprivate.h:73: error: syntax error before ':' token
/usr/include/gtk-1.2/gdk/gdkprivate.h:74: error: syntax error before ':' token

I didn't have the Xlib.h file in the folder /usr/include/X11, but i've just installed xlibs-dev and now it exist in this folder.

Thanks a lot in advance and again!

cjplummer
Offline
Joined: 2006-10-16

>
> make: *** No rule to make target
> `../../src/linux/personal/native/sun/audio/sun_audio_AudioDevice.h', needed by
> `../../build/linux-arm-generic/./obj/audioDevice.o'.
> Stop.
>

Try doing a "make clean" first. Sometimes if the previous build fails, the JNI headers aren't created properly, and the makefiles don't detect this.

Chris

nsicom100
Offline
Joined: 2007-04-30

> Hi, yes it's possible but the port of Java ME Personal Profile (AWT) is
> not finished yet for the Nokia N800. We are looking for volunteers to
> help make this happen. Would you be willing to do the work in getting
> AWT working on CDC/Personal Profile for the Nokia N800? (This is one of
> the main reasons we open sourced this project, when you find something
> is missing you participate and help add to the project)

>Hinkmond

If volunteers finish the implementation for the N800, will Sun retain exclusive rights when the resulting JVM is deployed commercially?

I assure you that there are people who can finish this and other ports quite fast, but do not do so because they are unsure about their subsequent rights. Can one become a third-party vendor of Java ports?

Hinkmond, can you please be explicit about Sun's policy in these matters?

Terrence Barr - Evangelist, Java Mobile & Embedded

phonemeadvanced@mobileandembedded.org wrote:
>> Hi, yes it's possible but the port of Java ME Personal Profile (AWT) is
>> not finished yet for the Nokia N800. We are looking for volunteers to
>> help make this happen. Would you be willing to do the work in getting
>> AWT working on CDC/Personal Profile for the Nokia N800? (This is one of
>> the main reasons we open sourced this project, when you find something
>> is missing you participate and help add to the project)
>
>
>> Hinkmond
>
> If volunteers finish the implementation for the N800, will Sun retain exclusive rights when the resulting JVM is deployed commercially?
>
> I assure you that there are people who can finish this and other ports quite fast, but do not do so because they are unsure about their subsequent rights. Can one become a third-party vendor of Java ports?
>
> Hinkmond, can you please be explicit about Sun's policy in these matters?
> [Message sent by forum member 'nsicom100' (nsicom100)]
>
> http://forums.java.net/jive/thread.jspa?messageID=249881
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
> For additional commands, e-mail: advanced-help@phoneme.dev.java.net
>
>

--
[terrence.barr.vcf]
---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

frisket
Offline
Joined: 2007-11-05

I'm looking for a JRE/JVM in order simply to run some commandline stuff like Saxon, so I'm not looking for any kind of graphics or GUI development kit.

Has anyone actually compiled plain ol' Java for the N800 yet?

Hinkmond Wong

phonemeadvanced@mobileandembedded.org wrote:
> I'm looking for a JRE/JVM in order simply to run some commandline stuff like Saxon, so I'm not looking for any kind of graphics or GUI development kit.
>
> Has anyone actually compiled plain ol' Java for the N800 yet?

Johannes Eickhold posted a compiled version of Java ME CDC/Foundation
Profile (no GUI) here for the N770 which should also run on the N800:

http://wiki.java.net/bin/view/Mobileandembedded/PhoneMEAdvancedPlatforms...

Hinkmond

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

efebo_abel
Offline
Joined: 2004-06-11

Hi

I already installed the PhoneME AS, but i want to start making graphic apps using netbeans but all the sample apps crashed, there's no java.awt.Frame, so this PhoneME thing is not intended to be a side choice for maemo plattform?

cjplummer
Offline
Joined: 2006-10-16

> Hi
>
> I already installed the PhoneME AS, but i want to
> start making graphic apps using netbeans but all the
> sample apps crashed, there's no java.awt.Frame, so
> this PhoneME thing is not intended to be a side
> choice for maemo plattform?

I'm sorry but I don't understand your question. Others in the forum have successfully built PhoneME Advanced for the Nokia 770 and 800. Please search this forum for "770" and "800" for more information. There are also twikis you can look at:

http://wiki.java.net/bin/view/Mobileandembedded/PhoneMEAdvancedPlatforms...
http://wiki.java.net/bin/view/Mobileandembedded/PhoneMEAdvancedPlatforms...

thanks,

Chris

efebo_abel
Offline
Joined: 2004-06-11

My question is the following:

How do i create GUIs (like javax.swing.JFrame or java.awt.Frame) using The Phone ME on my nokia n800? is it possible?

Hinkmond Wong

phonemeadvanced@mobileandembedded.org wrote:
> My question is the following:
>
> How do i create GUIs (like javax.swing.JFrame or java.awt.Frame) using The Phone ME on my nokia n800? is it possible?

Hi, yes it's possible but the port of Java ME Personal Profile (AWT) is
not finished yet for the Nokia N800. We are looking for volunteers to
help make this happen. Would you be willing to do the work in getting
AWT working on CDC/Personal Profile for the Nokia N800? (This is one of
the main reasons we open sourced this project, when you find something
is missing you participate and help add to the project)

Hinkmond

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

efebo_abel
Offline
Joined: 2004-06-11

wow sounds interesting, what does it takes to get involved on this? besides knowing java, what i was trying to say on my previous thread was, that i downloaded netbeans, and i was trying to use the cdc examples bundled in neatbeans and none of this examples worked, obviousbly because this port is not finished, thanks for letting me know that

Hinkmond Wong

phonemeadvanced@mobileandembedded.org wrote:
> wow sounds interesting, what does it takes to get involved on this? besides knowing java, what i was trying to say on my previous thread was, that i downloaded netbeans, and i was trying to use the cdc examples bundled in neatbeans and none of this examples worked, obviousbly because this port is not finished, thanks for letting me know that
>
>

Hi please follow the instructions here:

http://wiki.java.net/bin/view/Mobileandembedded/PhoneMEAdvancedPlatforms...

After you verify you can build with the above instructions, your next
step is to try to build with the GUI.

make J2ME_CLASSLIB=personal AWT_PEERSET=gtk ...
(You should see 19 class build errors currently)

Once you are here, I can tell you how to fix those 19 class compilation
errors.

Let me know when you are ready for that.

Thanks,

Hinkmond

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

mfabiop
Offline
Joined: 2005-03-06

Hi Wong,

I saw your post and now i`m here

make J2ME_CLASSLIB=personal AWT_PEERSET=gtk ...
(You should see 19 class build errors currently)

How can i resolve that build erros?

Thanks in advance!

Hinkmond Wong

phonemeadvanced@mobileandembedded.org wrote:
> Hi Wong,
>
> I saw your post and now i`m here
>
> make J2ME_CLASSLIB=personal AWT_PEERSET=gtk ...
> (You should see 19 class build errors currently)
>
> How can i resolve that build erros?
>
> Thanks in advance!
>

Hi mfabiop,

Great to hear you are now at the point where you see the build errors.
Now for each build error go to the file where each build error occurred
and add an empty method with the indicated method signature from the
build error line. Each method does not need to be fully implemented for
now, just the skeleton with the matching method signature needs to be
added to each file, to get past the 19 compilation errors.

This should allow you to then build cleanly.

Let me know if you run into any problems.

Thanks,

Hinkmond

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

mfabiop
Offline
Joined: 2005-03-06

Hi Wong,

I've been added the empty methods and i had to create the following classes and interfaces because there isn't any in trunk:

New classes CDC Personal

java.awt.goem.AffineTransform
java.awt.font.GlyphVector
java.awt.font.FontRenderContext
java.awt.Paint
java.awt.image.BufferedImageOp
java.awt.image.RenderedImage
java.awt.image.renderable.RenderableImage

New interfaces CDC Personal

java.awt.Paint

Now, i get the following error message:

make: *** No rule to make target `../../src/linux/personal/native/sun/audio/sun_audio_AudioDevice.h', needed by `../../build/linux-arm-generic/./obj/audioDevice.o'. Stop.

Do you know how to resolve it? I've put the make command with the following arguments:

make CVM_TARGET_TOOLS_PREFIX=/scratchbox/compilers/cs2005q3.2-glibc-arm/bin/arm-linux- USE_AAPCS=true J2ME_CLASSLIB=personal AWT_PEERSET=gtk TOOLS_DIR=/pmea/tools/trunk/

Thanks in advance and again :)

Marcos Fábio

Hinkmond Wong

phonemeadvanced@mobileandembedded.org wrote:
> Hi Wong,
>
> I've been added the empty methods and i had to create the following classes and interfaces because there isn't any in trunk:
>
> New classes CDC Personal
>
> java.awt.goem.AffineTransform
> java.awt.font.GlyphVector
> java.awt.font.FontRenderContext
> java.awt.Paint
> java.awt.image.BufferedImageOp
> java.awt.image.RenderedImage
> java.awt.image.renderable.RenderableImage
>
> New interfaces CDC Personal
>
> java.awt.Paint
>
> Now, i get the following error message:
>
> make: *** No rule to make target `../../src/linux/personal/native/sun/audio/sun_audio_AudioDevice.h', needed by `../../build/linux-arm-generic/./obj/audioDevice.o'. Stop.
>
> Do you know how to resolve it? I've put the make command with the following arguments:
>
> make CVM_TARGET_TOOLS_PREFIX=/scratchbox/compilers/cs2005q3.2-glibc-arm/bin/arm-linux- USE_AAPCS=true J2ME_CLASSLIB=personal AWT_PEERSET=gtk TOOLS_DIR=/pmea/tools/trunk/

Hi Marcos,

Please let me know if it's OK to call you Marcos. And, please call me
"Hinkmond" (my first name) :-).

The problem you are seeing is strange, since sun_audio_AudioDevice.h is
supposed to be automatically generated by the JNI (javah) part of the
build, since sun.audio.audioDevice.c is a native module with native
methods called from

src/share/personal/classes/common/sun/audio/AudioDevice.java

The native method is at:

src/linux/personal/native/sun/audio/audioDevice.c

Did you change or modify anything in the Makefiles especially, these
lines needed in defs_personal.mk (which should automate the JNI javah
generation of the missing sun_audio_AudioDevice.h file):

#
# Shared Native code
#
AWT_LIB_OBJS += \
audioDevice.o \
embeddedframe.o \

If you didn't make any strange modifications in the Makefiles, try doing
a "make clean", then build with your make command (above) again. Maybe
you did a Cntrl-C or interrupted the build while it was in the middle of
doing the JNI javah auto-generation of .h files???

Hinkmond

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

mfabiop
Offline
Joined: 2005-03-06

Hi Hinkmond,

It's OK to call me Marcos (my first name too :) ).

I didn't make any modification in the Makefiles, i've just download the source code and did what i wrote in the previous post.

I did a "make clean" how you and Chris said, but now i get the following errors:

bash: /usr/tools/lib/linux-arm-generic/usr/bin/gtk-config: No such file or directory
bash: /usr/tools/lib/linux-arm-generic/usr/bin/gtk-config: No such file or directory
cc ../../src/linux/personal/native/sun/audio/audioDevice.c
bash: /usr/tools/lib/linux-arm-generic/usr/bin/gtk-config: No such file or directory
bash: /usr/tools/lib/linux-arm-generic/usr/bin/gtk-config: No such file or directory
cc ../../src/share/personal/native/sun/awt/common/embeddedframe.c
bash: /usr/tools/lib/linux-arm-generic/usr/bin/gtk-config: No such file or directory
bash: /usr/tools/lib/linux-arm-generic/usr/bin/gtk-config: No such file or directory
cc ../../src/share/personal/native/awt/gtk/GComponentPeer.c
../../src/share/personal/native/awt/gtk/GComponentPeer.c:28:21: gtk/gtk.h: No such file or directory
../../src/share/personal/native/awt/gtk/GComponentPeer.c:29:22: gdk/gdkx.h: No such file or directory
In file included from ../../src/share/personal/native/awt/gtk/GComponentPeer.h:31,
from ../../src/share/personal/native/awt/gtk/GComponentPeer.c:37:
../../src/share/personal/native/awt/gtk/awt.h:34:22: X11/Xlib.h: No such file or directory
../../src/share/personal/native/awt/gtk/awt.h:35:23: X11/Xatom.h: No such file or directory
../../src/share/personal/native/awt/gtk/awt.h:36:23: X11/Xutil.h: No such file or directory
In file included from ../../src/share/personal/native/awt/gtk/GComponentPeer.c:37:
../../src/share/personal/native/awt/gtk/GComponentPeer.h:46: error: syntax error before "GtkWidget"
../../src/share/personal/native/awt/gtk/GComponentPeer.h:46: warning: no semicolon at end of struct or union
../../src/share/personal/native/awt/gtk/GComponentPeer.h:50: warning: type defaults to `int' in declaration of `drawWidget'
../../src/share/personal/native/awt/gtk/GComponentPeer.h:50: warning: data definition has no type or storage class
../../src/share/personal/native/awt/gtk/GComponentPeer.h:59: error: syntax error before "lastClickTime"
../../src/share/personal/native/awt/gtk/GComponentPeer.h:59: warning: type defaults to `int' in declaration of `lastClickTime'
../../src/share/personal/native/awt/gtk/GComponentPeer.h:59: warning: data definition has no type or storage class
../../src/share/personal/native/awt/gtk/GComponentPeer.h:67: error: syntax error before '*' token
../../src/share/personal/native/awt/gtk/GComponentPeer.h:67: warning: type defaults to `int' in declaration of `cursor'

and more and more errors... :)

Thank you, Hinkmond and Chris!

cjplummer
Offline
Joined: 2006-10-16

Try setting GTK_CONFIG to the path to your gtk-config tool. Since is looks like you are doing a cross build, you will need to use the gtk-config for the gtk your device is using, so this is most likely not the gtk-config that is on your $PATH.

Chirs

mfabiop
Offline
Joined: 2005-03-06

I think i'm doing anything wrong, of course :)

I'm using scratchbox 4 and maemo 3.2. Is there something i need to do before compile CDC? Have i to compile inside scratchbox?

Thanks

yhilem
Offline
Joined: 2004-10-31

Please, can you help JNA project (https://jna.dev.java.net/) with a WinCE implementation ?

Hinkmond Wong

phonemeadvanced@mobileandembedded.org wrote:
> Please, can you help JNA project (https://jna.dev.java.net/) with a WinCE implementation ?
>

Hi yhilem,

Can you help our project first by porting JNA to Java ME CDC/Foundation
Profile? That would be the preliminary step.

Here is a pointer to our Java ME CDC/FP specs:

http://java.sun.com/javame/reference/apis.jsp

Thanks,

Hinkmond

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

yhilem
Offline
Joined: 2004-10-31

Hi Hinkmond Wong,

JNA is a wrapper of JNI.
PhoneMe CDD already offers an implementation of JNI.

I do not understand what you mean by "porting JNA to Java ME CDC/Foundation Profile".

Hinkmond Wong

phonemeadvanced@mobileandembedded.org wrote:
> Hi Hinkmond Wong,
>
> JNA is a wrapper of JNI.
> PhoneMe CDD already offers an implementation of JNI.
>
> I do not understand what you mean by "porting JNA to Java ME CDC/Foundation Profile".
>
>

As Dean points out, you have to rewrite JNA to not use java.nio.* API
calls. In your rewrite of JNA code, make sure it only calls Java ME
CDC/Foundation Profile APIs.

See:

http://java.sun.com/javame/reference/apis/jsr219/

Hinkmond

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net