Jave on Embedded Linux

M

motionanalyst

I have an embedded system and want to set J2SE or J2ME on Embedded
Linux.
I heard a few ways to install JDK but I cound not understand becase,
didn't have fully information.
I consider about kaffe and blackdown package, I could not build that,
however.

My embedded system's hardware specification

Processor : Intel PXA255 400MHz
SDRAM : Samsung 64 MB
Flash : Intel strata flash 32 MB
Ethernet : CS8900A 10BaseT
Display : LG TFT LCD 6.4" (640X480)
Touch : ADS7843(Touch Screen)
Etc. : USB, 2 Serials, 1 JTAG, PCMCIA(Buffalo WLAN Card), CF(Sandisk CF
512MB), MMC, IR, 8 Key Pads, RTC.

and Linux version is 2.4.18

If you have similar experience or related documents about Java on
Embedded Linux, please advice me. (if you have documents or
information, please send me.)
I really want to build java on embedded Linux.

Please help me.

Best Regards.


Y.K. Moon
 
C

Chris Smith

Processor : Intel PXA255 400MHz
SDRAM : Samsung 64 MB
Flash : Intel strata flash 32 MB
Ethernet : CS8900A 10BaseT
Display : LG TFT LCD 6.4" (640X480)
Touch : ADS7843(Touch Screen)
Etc. : USB, 2 Serials, 1 JTAG, PCMCIA(Buffalo WLAN Card), CF(Sandisk CF
512MB), MMC, IR, 8 Key Pads, RTC.

and Linux version is 2.4.18

Is that 32 MB flash all that you have for persistent storage? A full
J2SE version of the JRE on Linux will run you more than that when
decompressed, even with all the optional pieces removed. You would need
to look for a J2ME virtual machine.

http://java.sun.com/products/personalprofile/download.html is a non-
commercial J2ME implementation for Linux/x86. The page claims tht Sun
sells a commercially distributable version as well.

--
www.designacourse.com
The Easiest Way To Train Anyone... Anywhere.

Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation
 
M

motionanalyst

I am much indebted for your attention and was full of gratitude.

I have more quistions. I have more storage that is file system (ext2)
using Compact Flash(512MB, Sandisk).
Could I build the J2SE on my embedded system? If you have information
about installation of J2SE on an embedded system, please send me.

Thank you, and best regards

Y.K. Moon
 
G

giangiammy

hi,

I installed kaffe 1.1.6 on a embedded platform, based on MIPS:
it works with AWT, not SWING.
I started using the standard diistribution, with some month of works
:)

You can try compiling it for your target, see the errors, and
ask in the kaffe mailing list: it gives a good support

bye
giammy
 
L

linnix

I am much indebted for your attention and was full of gratitude.

I have more quistions. I have more storage that is file system (ext2)
using Compact Flash(512MB, Sandisk).

If you have any kind of graphical output (browser and/or Java console),
you need to include a mininum X installation. 512M would be tight, 1G
would be better. However, with any kind of GUI, 64M RAM is not enough.
We had a Java servlet apps that starts up with 100M without anything
else running.
Could I build the J2SE on my embedded system? If you have information
about installation of J2SE on an embedded system, please send me.

Of course you can, but you have to spend lots of time striping it down
to fit your system.
 
O

Oliver Wong

linnix said:
If you have any kind of graphical output (browser and/or Java console),
you need to include a mininum X installation. 512M would be tight, 1G
would be better. However, with any kind of GUI, 64M RAM is not enough.
We had a Java servlet apps that starts up with 100M without anything
else running.

This is simply not true. Taken literally, we had GUIs even before 1985
when Windows 1.0 came out, and 64MB of RAM was a hell of a lot of RAM back
in those days. But even if you restrict yourself to "modern GUIs", there are
still plenty of lightweight ones out there. In fact, there are GUIs
specifically designed for embedded Linux. See, for example the MatchBox
project: http://projects.o-hand.com/matchbox/screenshots.html with full
unicode support and theme switching, and yet can run on systems with only
40MB of RAM, and the binaries themselves take up a measly 50Kb. That's
kilobytes, not megabytes.

If you're running on devices even more constrained than that, there's
MicroWindows: http://www.linuxdevices.com/links/LK4761626139.html which can
run in 64Kb of RAM. Again, note that that's Kilobytes, not Megabytes.

You can find a list of GUIs for embedded Linux at
http://www.linuxdevices.com/articles/AT9202043619.html

I didn't see the original post, so I don't know what the OP is planning
to do, but if it's something that involves Java 2 SE, the OP may wish to
reconsider. I'm not sure Java is the best choice for memory-constrained
devices; at least not J2SE.

- Oliver
 
L

linnix

Oliver said:
This is simply not true. Taken literally, we had GUIs even before 1985
when Windows 1.0 came out, and 64MB of RAM was a hell of a lot of RAM back
in those days. But even if you restrict yourself to "modern GUIs", there are
still plenty of lightweight ones out there. In fact, there are GUIs
specifically designed for embedded Linux. See, for example the MatchBox
project: http://projects.o-hand.com/matchbox/screenshots.html with full
unicode support and theme switching, and yet can run on systems with only
40MB of RAM, and the binaries themselves take up a measly 50Kb. That's
kilobytes, not megabytes.

This page mentioned quarter VGA resolution. The OP asked for touch
screen VGA.
If you're running on devices even more constrained than that, there's
MicroWindows: http://www.linuxdevices.com/links/LK4761626139.html which can
run in 64Kb of RAM. Again, note that that's Kilobytes, not Megabytes.

Without meanful GUI.
You can find a list of GUIs for embedded Linux at
http://www.linuxdevices.com/articles/AT9202043619.html

I didn't see the original post, so I don't know what the OP is planning
to do, but if it's something that involves Java 2 SE, the OP may wish to
reconsider. I'm not sure Java is the best choice for memory-constrained
devices; at least not J2SE.

The OP asked for J2SE. Perhaps you should read the post before
answering.
 
O

Oliver Wong

linnix said:
This page mentioned quarter VGA resolution. The OP asked for touch
screen VGA.

Yes, the page *mentions* quarter VGA resolution. It also has screenshots
for the Nokia 770 which is of a higher resolution, and the Sony U71 Tablet
PC with runs at 800x600, which exceeds VGA. In other words, MatchBox is not
"locked" at quarter VGA, which you seemed to be implying by your post.
Without meanful GUI.

I assume you mean "meaningful". What's your definition of meaningful?
The site there specifically says it provides an API that is compatible with
X Windows and Win32. Here's a short paragraph from the page I linked above:

<quote>
Microwindows is essentially a layered design that allows different layers to
be used or rewritten to suite the needs of the implementation. At the lowest
level, screen, mouse/touchpad and keyboard drivers provide access to the
actual display and other user-input hardware. At the mid level, a portable
graphics engine is implemented, providing support for line draws, area
fills, polygons, clipping and color models. At the upper level, various
API's are implemented providing access to the graphics applications
programmer.
</quote>

According to http://www.linuxdevices.com/news/NS6390514383.html, the latest
release now supports handwriting recognition, graphics keyboard, and a new
window manager. What more do you need before the GUI becomes "meaningful"?

The OP asked for J2SE. Perhaps you should read the post before
answering.

As I mentioned, I did not see the original post. For whatever reasons,
my newsgroup decided to discard it. As I also mentioned, I don't think J2SE
is the right choice for whatever the OP wants to do, given the limited
information I've seen in the form of quotes in your post.

Additionally, I think you are not in a good position to accuse me of not
reading the original post when it seems to me that you dismissed the
solutions I provided without actually reading the URLs I linked to.

- Oliver
 
L

linnix

Oliver said:
Yes, the page *mentions* quarter VGA resolution. It also has screenshots
for the Nokia 770 which is of a higher resolution, and the Sony U71 Tablet

128M flash and no Java
PC with runs at 800x600, which exceeds VGA. In other words, MatchBox is not
"locked" at quarter VGA, which you seemed to be implying by your post.

No talks of Java at all.
I assume you mean "meaningful". What's your definition of meaningful?

Yes, you are right.
The site there specifically says it provides an API that is compatible with
X Windows and Win32. Here's a short paragraph from the page I linked above:
....

We are not asking for window APIs. We are asking for Java, i.e. J2SE
API.
As I mentioned, I did not see the original post. For whatever reasons,
my newsgroup decided to discard it. As I also mentioned, I don't think J2SE
is the right choice for whatever the OP wants to do, given the limited
information I've seen in the form of quotes in your post.

Additionally, I think you are not in a good position to accuse me of not
reading the original post when it seems to me that you dismissed the
solutions I provided without actually reading the URLs I linked to.

I have not dissmissed solutions that meet the requirements. Please
provide links to successful implementation of J2SE on 64M memory. I
can provide a 128M J2SE system, but not on 64M. Sure, you can run it
with 64M and 64M swap file on Flash, but don't forget to replace the
flash every couple of months.
 
O

Oliver Wong

linnix said:
I have not dissmissed solutions that meet the requirements.

The OP's post finally came through, and I see that (s)he wrote that she
wants J2SE or J2ME, so actually, yes, you did dismiss solutions that met the
requirement. But my main gripe was not whether or not you dismissed
solutions that met the requirement, but rather that you dismissed solutions
without actually reading about them, and then proceed to chatise me for not
reading the original post after I had already said I wasn't able to see the
original post.

Anyway, it doesn't matter to me. There's two directions that I can think
of for this thread can go from here. One is that we get into an argument of
who was right and who was wrong. The other is that we try to post
information that the OP may find helpful. I'm going to try to steer the
thread back towards the latter. We'll see what happens from there.
Please
provide links to successful implementation of J2SE on 64M memory. I
can provide a 128M J2SE system, but not on 64M.

I couldn't find an implementation of J2SE, but I found one for
PersonalJava. The Sharp Zaurus PDA has 64MB of RAM, and supports
PersonalJava via the Jeode JVM. You can see pictures of it at
http://www.linuxdevices.com/articles/AT2134869242.html.

In case (like me) you don't know much about PersonalJava, from Sun's
website,
http://developers.sun.com/techtopics/mobility/personal/articles/ztutorial/:
<quote>
In terms of target device capacity, PersonalJava sits between J2SE and the
CLDC/MIDP stack of J2ME.
</quote>

So it's not quite J2SE, but it's more than J2ME. PersonalJava might be
another route the OP may wish to look at if (s)he finds (s)he cannot fit
J2SE on the device in question.

There also happens to be a guide to Java on embedded Linux located at
http://www.linuxdevices.com/articles/AT8918758707.html . The OP may be
particularly interested in part 4, entitled "Java products of interest to
Embedded Linux based system developers".

- Oliver
 
L

linnix

Oliver said:
Wouldn't you know it -- immediately after my post saying I can't find a
successful implementation of J2SE on 64MB DRAM, I find one:

http://www.8d.com/8DTech.pdf
Servers.


- Oliver

You can pick and choose the context if you want. Let me repeat this:
the requirements are for a VGA grade GUI (not handicapped 1/4 VGA) with
real Java (not subset of Java) on 64M of code space (NOR flash or RAM).
 
L

linnix

Oliver said:
Wouldn't you know it -- immediately after my post saying I can't find a
successful implementation of J2SE on 64MB DRAM, I find one:

http://www.8d.com/8DTech.pdf
Servers.


- Oliver

You can pick and choose the context if you want. Let me repeat this:
the requirements are for a VGA grade GUI (not handicapped 1/4 VGA) with
real Java (not subset of Java) on 64M of code space (NOR flash or RAM).
 
L

linnix

Oliver said:
Wouldn't you know it -- immediately after my post saying I can't find a
successful implementation of J2SE on 64MB DRAM, I find one:

http://www.8d.com/8DTech.pdf

These are all server units (no real GUI), except for the parking
locator. There is no indication of J2SE running on the parking locator
either.
 
D

David N. Welton

linnix said:
No talks of Java at all.

Dude, you're getting free advice... You outlined what hardware you have
to work with, and someone suggested that perhaps using technology other
than Java might be a good approach to solving your problem. Your device
presumably exists to do something like this:

Provide some functionality and a user interface to it on a device.

Your users most likely do not care how you do that, so if someone makes
a reasonable suggestion that perhaps looking at the problem a different
way is worth a few minutes, I wouldn't get too bent out of shape about it.

Same as if someone asks if they can find an e-commerce solution
implemented in Forth - I'm going to say that perhaps they should go back
and look at other solutions.

BTW, I'd at least consider Tcl and Tk for the GUI, myself:)

Ciao,
--
David N. Welton
- http://www.dedasys.com/davidw/

Linux, Open Source Consulting
- http://www.dedasys.com/
 
P

pkriens

Maybe the Slug guys can help you, I think they use the same processor
and are open for other hardware I think:

http://www.nslu2-linux.org/

They have a page how to install Java on it. They are using Jamvm which
is very small at the expense of some performance.

Hope this helps, kind regards,

Peter Kriens
 
G

giangiammy

Hi,

a graphical installation (X server - TinyX, also called Kdrive)
needs 6M flash and 3RAM.
kaffe 1.1.6 need 12M flash, 6M RAM
with this anvironment you can run graphical applications
written in java with AWT (in a machine with 32Mflash, 32MRAM)

bye
giammy
 
L

linnix

David said:
Dude, you're getting free advice... You outlined what hardware you have
to work with, and someone suggested that perhaps using technology other
than Java might be a good approach to solving your problem. Your device
presumably exists to do something like this:

That's not the point. When a client pre-selected real (not handicapped
subset) Java and VGA (not 1/4 VGA) screen, I would not shortchange him
with 64M run-time code space.
Provide some functionality and a user interface to it on a device.

Your users most likely do not care how you do that, so if someone makes
a reasonable suggestion that perhaps looking at the problem a different
way is worth a few minutes, I wouldn't get too bent out of shape about it.

When you go with a subset of the language and a restricted screen size,
there are additional development costs and user adjustments. The
client certainly care more about them than paying for additional
memory.
 
O

Oliver Wong

linnix said:
That's not the point. When a client pre-selected real (not handicapped
subset) Java and VGA (not 1/4 VGA) screen, I would not shortchange him
with 64M run-time code space.

The OP wrote "I have an embedded system and want to set J2SE or J2ME on
Embedded
Linux." Here's a link to the original post in case you don't believe me:

http://groups.google.com/group/comp.arch.embedded/msg/f2bdfb93fe1478d2

Initially you focused on the J2SE part, but now you seemed to have drop
that in exchange for the term "handicapped subset". But we have already a
J2ME and PersonalJava solutions. J2ME fits the requirement exactly, and
PersonalJava gives MORE functionality than J2ME, not less.

Let me re-iterate this point: The OP asked for J2ME, and we gave him/her
J2ME. Where is the "shortchanging" here?

Anyway, you seemed to have missed my point about trying to post things
that would be HELPFUL to the OP.

Your initial reply to the OP was "with any kind of GUI, 64M RAM is not
enough". Fine. The OP may have found that helpful, and may now reconsider
increasing the onboard RAM on whatever device (s)he is working with.

Other people (including myself) have provided links with content such as
"Here's how other people have tackled the 'Java on embedded Linux' problem.
Did you look at what they did and if it can help you?" I sent some of these
documents because I thought they would be helpful, particularly because the
OP wrote:

<quote>
If you have similar experience or related documents about Java on
Embedded Linux, please advice me. (if you have documents or
information, please send me.)
</quote>

Recently your posts seemed to be of the nature "Don't post that kind of
stuff. It doesn't answer the question the OP asked."

Now I don't know whether the OP considered the links people have sent in
helpful or not, but I would imagine that the OP would be MORE "shortchanged"
if we had this documents and links and kept them to ourselves, rather than
share them with the OP, even if those documents are not step by step
instructions on solving the OP's specific problem.

And anyway, Usenet is an open forum. People can post links to documents
related to the subject (e.g. embedded Linux, even if it's non-Java). Maybe
in a few weeks someone else will want to develop a Java on Embedded Linux
system, do a search for past threads, find this thread, see the links, and
find them useful.

Usenet is an open forum. That means you also have the right to continue
posting messages of the nature "This isn't real Java" or "this isn't VGA",
etc. I'm not saying I'm the boss of this Usenet group and you have to stop
or anything like that. I'm just saying that if your intent is to help others
on the group, maybe you should take a step back, and think about if your
current strategy is the best way of accomplishing that.

- Oliver
 
L

linnix

Oliver said:
The OP wrote "I have an embedded system and want to set J2SE or J2ME on
Embedded
Linux." Here's a link to the original post in case you don't believe me:

http://groups.google.com/group/comp.arch.embedded/msg/f2bdfb93fe1478d2

Initially you focused on the J2SE part, but now you seemed to have drop
that in exchange for the term "handicapped subset". But we have already a
J2ME and PersonalJava solutions. J2ME fits the requirement exactly, and
PersonalJava gives MORE functionality than J2ME, not less.

As far as I can tell, J2ME is a framework of environment, not an
implementation. Yes, PersonalJava would be an implementation.
PersonalJava must be developed on State of the Art platforms such as
NT4.0 and Solaris 2.6. If I am not mistaken, NT4.0 is in extended life
support cycle. Not too many people run Solaris 2.6 on their desktop
either. Are these serious development platforms?

What happened to the write once, run everywhere theme? Or is it: write
once, rewrite once and run somewhere? Would you please help me
justify the development platform to potential clients?
 

Members online

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,055
Latest member
SlimSparkKetoACVReview

Latest Threads

Top