cd booting problem on pc, jnode-0.1.6.iso -> cdrecord

I invoked
cdrecord -v -eject speed=4 dev=0,0,0 jnode-0.1.6.iso
on linux. No errors, wrote about 16meg to cdrom.
Then I tried to boot this written cd on XP machine:
DEL key to invoke bios setup: change to scsi cdrom.
Error: incompatable types, reported by bios.
But, I also have atapi cdrom on same machine, and thus changed
1st boot device: atapi cdrom.
Same error.

I note that when I read the cd rom, it appears to be blank.
Now, is this because it is bootable, or in FACT blank?
Or, do I need to check my xp pc, again, perhaps configuring with just a single atapi
cd rom.

Jnode looks very promising, and I have many questions, and want to experiment.
Of course, I need to get it working first.
Thanks.

iso burn using Magic ISO works

I was able to boot jnode from cd after burning the iso image in win xp using Magic ISO from

http://www.magiciso.com/

Cheers,
Shahid

Success in bootable cdrom using cdroast

Hi. Thanks for the note. After reading magiciso.com documentation,
I realized that two files are required:
jnode.iso and bootimage.bin, in order to create a bootable cdrom.
Thanks for the help.
But, I still am running into problems (see other posts in core).

Luke P. Immes
www.multisegment.com

Iso selfcontained

Hi,
The iso file contains everything needed to boot JNode.
Just writing the iso to cd should be sufficient.

Ewout

iso self contained, when using magicISO

Me again. When burning CD, using magicISO (as one member suggested), and using jnode.iso, as the single file input, then
jnode boots.
Thank you for making jnode.iso contain the implicit boot image.
I did not realize it was that simple.

But, if anyone is using cd-roast, then a boot image is required,
which is listed in the x86 dir. From my reading on the net, apparently, the boot image can be extracted from the .iso image. But
in this case, I don't need to do this, since it is a product of the
build operation.

I note that the resultant cd contents appear to be identical in each
case, after the burn operation.

Luke P. Immes
www.multisegment.com

Still problem booting

Ok, after writing cd using xroast (linux), as explained in preceeding post, then reboot xp machine.
Message: Searching for boot record from cdrom....
eventually it does NOT find it, and we boot into xp.

So, what am I doing wrong?
Any comments would be helpful. Also see preceeding posts.
Thanks.

-- cd write log from xroast --
Calling: /usr/lib/xcdroast-0.98/bin/xcdrwrap CDRECORD dev= "0,0,0" fs=4096k driveropts=burnproof -v -useinfo speed=4 -eject -pad -data "/home/lpimmes/dev/imgDirBurn/jnode.iso" ...

scsidev: '0,0,0'
scsibus: 0 target: 0 lun: 0
Linux sg driver version: 3.1.24
pregap1: -1
Cdrecord 1.10 (i686-pc-linux-gnu) Copyright (C) 1995-2001 Jörg Schilling
TOC Type: 1 = CD-ROM
Using libscg version 'schily-0.5'
Driveropts: 'burnproof'
atapi: 1
Device type : Removable CD-ROM
Version : 0
Response Format: 2
Capabilities :
Vendor_info : 'TOSHIBA '
Identifikation : 'DVD-ROM SD-R2212'
Revision : '1013'
Device seems to be: Generic mmc CD-RW.
Using generic SCSI-3/mmc CD-R driver (mmc_cdr).
Driver flags : SWABAUDIO
Drive buf size : 1791936 = 1749 KB
FIFO size : 4194304 = 4096 KB
Track 01: data 16 MB padsize: 30 KB
Total size: 18 MB (01:50.09) = 8257 sectors
Lout start: 18 MB (01:52/07) = 8257 sectors
Current Secsize: 2048
ATIP info from disk:
Indicated writing power: 5
Reference speed: 0
Is not unrestricted
Is erasable
ATIP start of lead in: -12900 (97:10/00)
ATIP start of lead out: 359849 (79:59/74)
Disk type: unknown
Manuf. index: -1
Manufacturer: unknown (not in table)
Blocks total: 359849 Blocks current: 359849 Blocks remaining: 351592
Starting to write CD/DVD at speed 4 in write mode for single session.
0 seconds. Operation starts.
Waiting for reader process to fill input buffer ...
input buffer ready.
cdrecord: Turning BURN-Proof on
Performing OPC...
Starting new track at sector: 0

Track 01: writing 30 KB of pad data.
Track 01: Total bytes read/written: 16875520/16906240 (8255 sectors).
Writing time: 31.755s
Fixating...
Fixating time: 83.619s
-- end log --

Luke P. Immes
www.multisegment.com

burning cd seems to be a problem

I conclude thus far that burning of the cd from a jnode.iso image
seems to be the problem. At least now, after experimenting with
CD-roast (program on linux), I can create a bootable image.
The contents are not viewable on linux (mount CD), but are on an xp
machine.
The ultimate goal, short term, is to boot jnode from an xp macine.
However, now I am running into a Grub stage2 problem: an error from the bios.
I suspect that some files from ../jnode/all/build/x86
(subdirs.. bootimage, grub...)
are missing from the image written to cd.
Lets go through the process in detail.

Is jnode.iso the only file I need to create a bootable cd rom,
el-torinto standard, emulating a hard disk boot?
I think this is true. Is so, then using x-cd-roast (linux):
1) blank a cd rom
2) master tracks, choose boot option table, choose jnode.iso
boot from hard disk
3) Write tracks, layout tab, then write, write to cd.
The CD created should now be bootable from XP.

Grub and support files should be included, right?
If this is not correct, would someone inform me.
I am trying to understand the process, vs. a trial and error approach. Thanks.

Luke P. Immes
www.multisegment.com

Tried building from cvs?

Hava you tried the latest version in CVS?

Do a "build.sh cdrom" to create the iso image yourself.

Ewout

ok, jnodedisk.dat, 16meg

OK.
bash build.sh cdrom
...
successful.

Now I copy this jnodedisk.dat to a cdrom; verify: viewable in
explorer. This should be bootable from a PC, right?
In bios, make sure that we boot from ATAPI cdrom. That means driver cannot be scsi. Right?

Not this file but jnode-x86.iso !

To burn an CDROM image use the following file :
path to your JNode project\all\build\cdroms\jnode-x86-lite.iso

OR in your case (target = cdrom) :
path to your JNode project\all\build\cdroms\jnode-x86.iso

still uncertain about pc cdrom boot

After doing:
jnode> bash build.sh cdrom

then cdrom dir. is created:
file:/home/lpimmes/dev/jnode/all/build/cdrom
jnodedisk.dat
The only *.iso files are:
file:/home/lpimmes/dev/jnode/all/build
jnode.iso

So, then what file(s) am I supposed to finish with?
Note that we have:
file:/home/lpimmes/dev/jnode/all/build/x86/bootimage
bootimage.bin
No errors during build, except for some exceptions with Java lang.
constants.

What are the exact steps to create these files, hopefully from here?
Steps, means what commands and arguments.
Grub is documented for Linux, but I want to boot from a PC.
Furthermore, I don't want to get involved with vmware.

As a suggestion, once we get this working, the entire process should
be documented for other users.

Thanks again.

ISO

You have to write the .iso file (whatever filename it has in front of the file extension) to the CD. This is the exact bootable CD image of type ISO9660 as the result of calling the build process with CD related targets.

Grub Error 18

Hi,

I tried this with the latest CVS version and the same cdrecord command.

Grub kicks in and I get three bootable options. When selecting JNode or DHCP/TFTP, I get the following error:

Error 18: Selected cylinder exceeds maximum supported by BIOS

I didn't try JNode Install, because I wasn't sure what the install bit would do to my disk.

Any idea or suggestion? This happens on my both PCs (and both have a DVD-ROM drive).

-Patrik

I could not build the latest version in CVS

I can build 0.16,but could not build the latest version in CVS, I am using FreeBSD.

%./build.sh
Buildfile: ./all/build.xml

prepare:

assemble:

prepare:

compile:
[javac] Compiling 64 source files to /usr/home/hwh/try/jnode/core/build/classes
[javac] /usr/home/hwh/try/jnode/core/src/classpath/gnu/gnu/java/security/Engine.java:217: cannot resolve symbol
[javac] symbol : method getConstructors ()
[javac] location: class java.lang.Class
[javac] Constructor[] c = clazz.getConstructors();
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/classpath/gnu/gnu/java/security/PolicyFile.java:433: cannot resolve symbol
[javac] symbol : method getSubjectX500Principal ()
[javac] location: class java.security.cert.X509Certificate
[javac] .equals(((X509Certificate) cert)
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/classpath/gnu/gnu/java/security/x509/X509CRL.java:195: clone() has protected access in java.lang.Object
[javac] return (Date) thisUpdate.clone();
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/classpath/gnu/gnu/java/security/x509/X509CRL.java:201: clone() has protected access in java.lang.Object
[javac] return (Date) nextUpdate.clone();
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/classpath/gnu/gnu/java/security/x509/X509CRLEntry.java:149: clone() has protected access in java.lang.Object
[javac] return (Date) revocationDate.clone();
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/classpath/gnu/gnu/java/security/x509/X509Certificate.java:242: clone() has protected access in java.lang.Object
[javac] return (Date) notBefore.clone();
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/classpath/gnu/gnu/java/security/x509/X509Certificate.java:247: clone() has protected access in java.lang.Object
[javac] return (Date) notAfter.clone();
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/debugger/Debugger.java:45: cannot resolve symbol
[javac] symbol : method getOut ()
[javac] location: class org.jnode.vm.VmSystem
[javac] VmSystem.getOut().println("[Debugger ('h' for help)]");
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/debugger/Debugger.java:80: cannot resolve symbol
[javac] symbol : method getOut ()
[javac] location: class org.jnode.vm.VmSystem
[javac] final PrintStream out = VmSystem.getOut();
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/debugger/Debugger.java:140: cannot resolve symbol
[javac] symbol : method setPreferredListener (org.jnode.driver.input.KeyboardListener)
[javac] location: interface org.jnode.driver.input.KeyboardAPI
[javac] api.setPreferredListener(l);
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/VmAccessController.java:38: cannot resolve symbol
[javac] symbol : method isThreadSwitchActive ()
[javac] location: class org.jnode.vm.VmProcessor
[javac] if (!Unsafe.getCurrentProcessor().isThreadSwitchActive()) {
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/VmAccessController.java:63: cannot resolve symbol
[javac] symbol : method getProtectionDomain ()
[javac] location: class org.jnode.vm.classmgr.VmType
[javac] final ProtectionDomain pd = declClass.getProtectionDomain();
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/VmAccessController.java:79: cannot resolve symbol
[javac] symbol : method getContext ()
[javac] location: class org.jnode.vm.VmThread
[javac] final VmAccessControlContext inheritedCtx = thread.getContext();
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/VmAccessController.java:111: cannot resolve symbol
[javac] symbol : method getProtectionDomain ()
[javac] location: class org.jnode.vm.classmgr.VmType
[javac] domains[ i] = method.getDeclaringClass().getProtectionDomain();
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/VmAccessController.java:115: cannot resolve symbol
[javac] symbol : method getContext ()
[javac] location: class org.jnode.vm.VmThread
[javac] return new VmAccessControlContext(domains, thread.getContext());
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/VmAccessController.java:138: cannot resolve symbol
[javac] symbol : method getContext ()
[javac] location: class org.jnode.vm.VmThread
[javac] final VmAccessControlContext prevContext = thread.getContext();
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/VmAccessController.java:139: cannot resolve symbol
[javac] symbol : method setContext (org.jnode.vm.VmAccessControlContext)
[javac] location: class org.jnode.vm.VmThread
[javac] thread.setContext(context);
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/VmAccessController.java:143: cannot resolve symbol
[javac] symbol : method setContext (org.jnode.vm.VmAccessControlContext)
[javac] location: class org.jnode.vm.VmThread
[javac] thread.setContext(prevContext);
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/VmAccessController.java:172: cannot resolve symbol
[javac] symbol : method getContext ()
[javac] location: class org.jnode.vm.VmThread
[javac] final VmAccessControlContext prevContext = thread.getContext();
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/VmAccessController.java:173: cannot resolve symbol
[javac] symbol : method setContext (org.jnode.vm.VmAccessControlContext)
[javac] location: class org.jnode.vm.VmThread
[javac] thread.setContext(context);
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/VmAccessController.java:181: cannot resolve symbol
[javac] symbol : method setContext (org.jnode.vm.VmAccessControlContext)
[javac] location: class org.jnode.vm.VmThread
[javac] thread.setContext(prevContext);
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/x86/compiler/l1a/RefItem.java:162: cannot resolve symbol
[javac] symbol : method writePUSH_Const (java.lang.Object)
[javac] location: class org.jnode.assembler.x86.AbstractX86Stream
[javac] os.writePUSH_Const(value);
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/x86/compiler/l1a/X86BytecodeVisitor.java:165: add(int,int) in org.jnode.vm.compiler.CompiledMethod cannot be applied to (org.jnode.vm.classmgr.VmMethod,int,int)
[javac] cm.add(currentMethod, address, offset);
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/x86/compiler/l1a/X86BytecodeVisitor.java:1523: cannot resolve symbol
[javac] symbol : method writeADD (org.jnode.assembler.x86.Register,int)
[javac] location: class org.jnode.assembler.x86.AbstractX86Stream
[javac] os.writeADD(r1, v2.getValue());
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/x86/compiler/l1a/X86BytecodeVisitor.java:1573: cannot resolve symbol
[javac] symbol : method writeAND (org.jnode.assembler.x86.Register,org.jnode.assembler.x86.Register,int)
[javac] location: class org.jnode.assembler.x86.AbstractX86Stream
[javac] os.writeAND(r1, FP, v2.getOffsetToFP());
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/x86/compiler/l1a/X86BytecodeVisitor.java:1681: cannot resolve symbol
[javac] symbol : method writeCMP_Const (org.jnode.assembler.x86.Register,int)
[javac] location: class org.jnode.assembler.x86.AbstractX86Stream
[javac] os.writeCMP_Const(r1, c2);
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/x86/compiler/l1a/X86BytecodeVisitor.java:1909: cannot resolve symbol
[javac] symbol : method writeIMUL (org.jnode.assembler.x86.Register,org.jnode.assembler.x86.Register)
[javac] location: class org.jnode.assembler.x86.AbstractX86Stream
[javac] os.writeIMUL(r1, v2.getRegister());
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/x86/compiler/l1a/X86BytecodeVisitor.java:1912: cannot resolve symbol
[javac] symbol : method writeIMUL_3 (org.jnode.assembler.x86.Register,org.jnode.assembler.x86.Register,int)
[javac] location: class org.jnode.assembler.x86.AbstractX86Stream
[javac] os.writeIMUL_3(r1, r1, v2.getValue());
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/x86/compiler/l1a/X86BytecodeVisitor.java:1915: cannot resolve symbol
[javac] symbol : method writeIMUL (org.jnode.assembler.x86.Register,org.jnode.assembler.x86.Register,int)
[javac] location: class org.jnode.assembler.x86.AbstractX86Stream
[javac] os.writeIMUL(r1, FP, v2.getOffsetToFP());
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/x86/compiler/l1a/X86BytecodeVisitor.java:2205: cannot resolve symbol
[javac] symbol : method writeOR (org.jnode.assembler.x86.Register,org.jnode.assembler.x86.Register,int)
[javac] location: class org.jnode.assembler.x86.AbstractX86Stream
[javac] os.writeOR(r1, FP, v2.getOffsetToFP());
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/x86/compiler/l1a/X86BytecodeVisitor.java:2208: cannot resolve symbol
[javac] symbol : method writeOR (org.jnode.assembler.x86.Register,int)
[javac] location: class org.jnode.assembler.x86.AbstractX86Stream
[javac] os.writeOR(r1, v2.getValue());
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/x86/compiler/l1a/X86BytecodeVisitor.java:2330: cannot resolve symbol
[javac] symbol : method writeSUB (org.jnode.assembler.x86.Register,org.jnode.assembler.x86.Register,int)
[javac] location: class org.jnode.assembler.x86.AbstractX86Stream
[javac] os.writeSUB(r1, FP, v2.getOffsetToFP());

[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/x86/compiler/l1a/X86BytecodeVisitor.java:2381: cannot resolve symbol
[javac] symbol : method writeXOR (org.jnode.assembler.x86.Register,org.jnode.assembler.x86.Register,int)
[javac] location: class org.jnode.assembler.x86.AbstractX86Stream
[javac] os.writeXOR(r1, FP, v2.getOffsetToFP());
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/x86/compiler/l1a/X86BytecodeVisitor.java:2384: cannot resolve symbol
[javac] symbol : method writeXOR (org.jnode.assembler.x86.Register,int)
[javac] location: class org.jnode.assembler.x86.AbstractX86Stream
[javac] os.writeXOR(r1, v2.getValue());
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/x86/compiler/l1a/X86BytecodeVisitor.java:2700: cannot resolve symbol
[javac] symbol : method writeCMP_Const (org.jnode.assembler.x86.Register,int)
[javac] location: class org.jnode.assembler.x86.AbstractX86Stream
[javac] os.writeCMP_Const(r, matchValues[ i]);
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/x86/compiler/l1a/X86BytecodeVisitor.java:2769: cannot resolve symbol
[javac] symbol : method writeCMP_Const (org.jnode.assembler.x86.Register,int)
[javac] location: class org.jnode.assembler.x86.AbstractX86Stream
[javac] os.writeCMP_Const(Register.ECX, 32);
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/x86/compiler/l1a/X86BytecodeVisitor.java:2801: cannot resolve symbol
[javac] symbol : method writeCMP_Const (org.jnode.assembler.x86.Register,int)
[javac] location: class org.jnode.assembler.x86.AbstractX86Stream
[javac] os.writeCMP_Const(Register.ECX, 32);
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/x86/compiler/l1a/X86BytecodeVisitor.java:2868: cannot resolve symbol
[javac] symbol : method writeCMP_Const (org.jnode.assembler.x86.Register,int)
[javac] location: class org.jnode.assembler.x86.AbstractX86Stream
[javac] os.writeCMP_Const(Register.ECX, 32);
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/x86/compiler/l1a/X86BytecodeVisitor.java:2960: cannot resolve symbol
[javac] symbol : method getAllocMultiArrayMethod ()
[javac] location: class org.jnode.vm.x86.compiler.X86CompilerContext
[javac] helper.invokeJavaMethod(context.getAllocMultiArrayMethod());
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/x86/compiler/l1a/X86BytecodeVisitor.java:3240: cannot resolve symbol
[javac] symbol : method writeCMP_Const (org.jnode.assembler.x86.Register,int)
[javac] location: class org.jnode.assembler.x86.AbstractX86Stream
[javac] os.writeCMP_Const(r, lowValue + i);
[javac] ^
[javac] /usr/home/hwh/try/jnode/core/src/core/org/jnode/vm/x86/compiler/l1a/X86Level1ACompiler.java:79: cannot resolve symbol
[javac] symbol : variable L1A_COMPILER_MAGIC
[javac] location: class org.jnode.vm.x86.compiler.l1a.X86Level1ACompiler
[javac] return L1A_COMPILER_MAGIC;
[javac] ^
[javac] 41 errors

BUILD FAILED
/usr/home/hwh/try/jnode/all/build.xml:78: Following error occured while executing this line
/usr/home/hwh/try/jnode/core/build.xml:28: Compile failed; see the compiler error output for details.

Total time: 8 seconds