When I tried the JNode ISO in VMWare today
Project: | JNode Core |
Component: | Miscellaneous |
Category: | bug report |
Priority: | normal |
Assigned: | Unassigned |
Status: | closed |
Jump to:
When I tried the JNode ISO in VMWare today, I noticed that it went haywire if the GUI was started. So, I decided to build it and look into it.
At first, per the docs, I did a svn checkout, then went in and ran build. Found out there was no 'build all' option, but instead tried 'build x86_64 cd-x86 javadoc'. When this failed due to not having yasm [yasm? that was needed? note: update documentation], I searched the forums and found this comment: It would also be useful for the docs to note that the 'jnode.enable.jnasm' property can be set to 'true' to use the JNode's assembler (worked for 32 bit, not for 64 yet).
Ok. So I enabled the property and tried to do a 32-bit build. Unfortunately, that is a no-go (for 32 or 64-bit):
[bootimage] --- Nested Exception ---
[bootimage] org.jnode.assembler.x86.InvalidOpcodeException
[bootimage] at org.jnode.assembler.x86.X86BinaryAssembler.writeMOV_Const(X86BinaryAssembler.java:3263)
[bootimage] at org.jnode.assembler.x86.X86BinaryAssembler.writeMOV_Const(X86BinaryAssembler.java:3247)
[bootimage] at org.jnode.jnasm.assembler.x86.X86Core.emitMOV(X86Core.java:928)
[bootimage] at org.jnode.jnasm.assembler.x86.X86Core.emit(X86Core.java:280)
[bootimage] at org.jnode.jnasm.assembler.x86.X86Support.emit(X86Support.java:144)
[bootimage] at org.jnode.jnasm.assembler.x86.X86Support.doAssembly(X86Support.java:110)
[bootimage] at org.jnode.jnasm.assembler.x86.X86Support.assemble(X86Support.java:68)
[bootimage] at org.jnode.jnasm.assembler.Assembler.assemble(Assembler.java:145)
[bootimage] at org.jnode.jnasm.assembler.Assembler.performTwoPasses(Assembler.java:132)
[bootimage] at org.jnode.jnasm.JNAsm.assembler(JNAsm.java:69)
[bootimage] at org.jnode.build.x86.BootImageBuilder.compileKernel(BootImageBuilder.java:754)
[bootimage] at org.jnode.build.AbstractBootImageBuilder.doExecute(AbstractBootImageBuilder.java:472)
[bootimage] at org.jnode.build.AbstractBootImageBuilder.execute(AbstractBootImageBuilder.java:786)
[bootimage] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
[bootimage] at org.apache.tools.ant.Task.perform(Task.java:364)
[bootimage] at org.apache.tools.ant.Target.execute(Target.java:341)
[bootimage] at org.apache.tools.ant.Target.performTasks(Target.java:369)
[bootimage] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
[bootimage] at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:37)
[bootimage] at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
[bootimage] at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:382)
[bootimage] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
[bootimage] at org.apache.tools.ant.Task.perform(Task.java:364)
[bootimage] at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:64)
[bootimage] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
[bootimage] at org.apache.tools.ant.Task.perform(Task.java:364)
[bootimage] at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:378)
[bootimage] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
[bootimage] at org.apache.tools.ant.Task.perform(Task.java:364)
[bootimage] at org.apache.tools.ant.Target.execute(Target.java:341)
[bootimage] at org.apache.tools.ant.Target.performTasks(Target.java:369)
[bootimage] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
[bootimage] at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
[bootimage] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
[bootimage] at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
[bootimage] at org.apache.tools.ant.Main.runBuild(Main.java:668)
[bootimage] at org.apache.tools.ant.Main.startAnt(Main.java:187)
[bootimage] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
[bootimage] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
I'll probably end up installing yasm so I can build jnode -- but that really needs to be in the documentation along with the notes about downloading from svn.
- Login to post comments
Hi, there are several
Hi,
there are several comments I have to add:
* You need java 1.6 to build JNode
* cd-x86 target builds the 32bit and 64bit CD versions of JNode
* take cd-x86-lite for 32bit only
* yasm is the 64bit assembler, for 32bit you only need nasm
* jnasm ist the java replacement for nasm, but it still has at least one bug, that prevents JNode to boot with jnasm
So only install yasm if you want the 64bit version and don't use jnasm for the moment. Hope that helps
Current status
I am using JDK 1.7
I downloaded both yasm-0.5.0-win32.exe and yasm-0.5.0-win64.exe, and put a copy of the 64-bit one on my path with the name "yasm.exe"
'build x86_64 javadoc' works, although the .pln file is unusable by VMWare
'build cd-x86_64-lite' fails:
BUILD FAILED
C:\Java\jnode\trunk\all\build.xml:341: The following error occurred while executing this line:
C:\Java\jnode\trunk\all\build-x86.xml:293: The following error occurred while executing this line:
C:\Java\jnode\trunk\all\build-x86.xml:260: Execute failed: java.io.IOException: Cannot run program "mkisofs" (in directory "C:\Java\jnode\trunk\all"):
CreateProcess error=2, The system cannot find the file specified
I realized I had cdrtools-2.0.1.01a03-win32 on my system, so added that to the path, and now it has created the ISO
That manged to build the ISO, which I told VMWare Server to boot from. When choosing the AMD64 version during boot, I get spammed with "00000001" over and over and over...
If I choose to run a non-AMD64 version, I get a file not found error from GRUB.
I guess I should try the 32-bit version?
32-bit version boots
Ok, I got the 32-bit version booting. Now I just have to figure out how to debug the graphics problem.
It's a temporary situation
So, the screen scrambles. If I wait a few minutes, then it starts working.
Do you have enough physical memory?
It sounds like Vmware might be thrashing.
You need to tell Vmware to run with enough memory to boot JNode. But if you give it too much (compared with your PC's physical memory size), Vmware will cause your host OS's virtual memory to thrash, and JNode will run horribly slowly.
I'd recommend kitting your PC out with at least 1Gb physical memory if you are going to run JNode from vmware. As a stop gap, it will help if you exit Eclipse and other memory hungry apps before launching Vmware.
Enough memory?
3GB installed. 1GB given to VM.
Only other thing open was Firefox.
Thrashing isn't your problem ...
I get by with 0.5GB ... just
#1
Not a bug, the original problem seems to be solved.
#2
Automatically closed -- issue fixed for two weeks with no activity.
#3
Automatically closed -- issue fixed for two weeks with no activity.