Using rpld for linux to remote boot Novell RPL boot
workstations. |
rpld CAN remote boot Novell RPL workstations, but currently you have to calculate |
the image load and execute address (depending on the boot rom) to use it. |
|
Some more technical info on this: |
|
|
1st packet,
request from booting workstation to ethernet broadcast address (030002000000) |
|
VIA Rhino |
DLC: |
Dest Address: 030002000000 |
DLC: |
Src Address: remote WS (000D873814B3) |
DLC: |
Type: 802.2 Length = (0056) |
LLC: |
SSAP DSAP: RPL (FCFC) |
LLC: |
Control: UI (03) |
|
[83 bytes of data] |
────────────────────────────────
Hex Decode ───────────────────────────── |
0000: |
03 |
00 |
02 |
00 |
00 |
00 |
00 |
0D |
- |
87 |
38 |
14 |
B3 |
00 |
56 |
FC |
FC |
| .........8...V.. |
0010: |
03 |
00 |
53 |
00 |
01 |
00 |
08 |
40 |
- |
03 |
00 |
00 |
00 |
00 |
00 |
10 |
00 |
| ..S....@........ |
0020: |
08 |
00 |
06 |
40 |
09 |
05 |
EA |
00 |
- |
06 |
40 |
0A |
00 |
01 |
00 |
0A |
40 |
| ...@.....@.....@ |
0030: |
06 |
00 |
0D |
87 |
38 |
14 |
B3 |
00 |
- |
05 |
40 |
07 |
FC |
00 |
28 |
00 |
04 |
| ....8....@...(.. |
0040: |
00 |
24 |
C0 |
05 |
08 |
00 |
FC |
01 |
- |
00 |
74 |
00 |
00 |
42 |
23 |
02 |
40 |
|
| .$.......t..B#.@ |
0050: |
01 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
- |
53 |
42 |
46 |
45 |
54 |
4F |
44 |
49 |
| ........SBFETODI |
0060: |
00 |
00 |
00 |
00 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| .... |
|
Realtek 819x |
DLC: |
Dest Address: 030002000000 |
DLC: |
Src Address: remote WS2 (000EA678F29E) |
DLC: |
Type: 802.2 Length = (0056) |
LLC: |
SSAP DSAP: RPL (FCFC) |
LLC: |
Control: UI (03) |
|
[83 bytes of data] |
────────────────────────────────
Hex Decode ───────────────────────────── |
0000: |
03 |
00 |
02 |
00 |
00 |
00 |
00 |
0E |
- |
A6 |
78 |
F2 |
9E |
00 |
56 |
FC |
FC |
| .........x...V.. |
0010: |
03 |
00 |
53 |
00 |
01 |
00 |
08 |
40 |
- |
03 |
00 |
00 |
00 |
00 |
00 |
10 |
00 |
| ..S....@........ |
0020: |
08 |
00 |
06 |
40 |
09 |
05 |
EA |
00 |
- |
06 |
40 |
0A |
00 |
01 |
00 |
0A |
40 |
| ...@.....@.....@ |
0030: |
06 |
00 |
0E |
A6 |
78 |
F2 |
9E |
00 |
- |
05 |
40 |
07 |
FC |
00 |
28 |
00 |
04 |
| ....x....@...(.. |
0040: |
00 |
24 |
C0 |
05 |
08 |
00 |
FC |
01 |
- |
00 |
70 |
00 |
00 |
44 |
23 |
02 |
39 |
|
| .$.......p..D#.9 |
0050: |
03 |
10 |
00 |
00 |
00 |
00 |
00 |
00 |
- |
53 |
42 |
52 |
54 |
53 |
4F |
44 |
49 |
| ........SBRTSODI |
0060: |
00 |
00 |
00 |
00 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| .... |
|
NE2000 (Accton
LANStation 486) |
DLC: |
Dest Address: 030002000000 |
DLC: |
Src Address: 0000E8D41FA2 |
DLC: |
Type: 802.2 Length = (0056) |
LLC: |
SSAP DSAP: RPL (FCFC) |
LLC: |
Control: UI (03) |
|
[83 bytes of data] |
────────────────────────────────
Hex Decode ───────────────────────────── |
0000: |
03 |
00 |
02 |
00 |
00 |
00 |
00 |
00 |
- |
E8 |
D4 |
1F |
A2 |
00 |
56 |
FC |
FC |
| .............V.. |
0010: |
03 |
00 |
53 |
00 |
01 |
00 |
08 |
40 |
- |
03 |
00 |
00 |
00 |
00 |
00 |
10 |
00 |
| ..S....@........ |
0020: |
08 |
00 |
06 |
40 |
09 |
05 |
EA |
00 |
- |
06 |
40 |
0A |
00 |
01 |
00 |
0A |
40 |
| ...@.....@.....@ |
0030: |
06 |
00 |
00 |
E8 |
D4 |
1F |
A2 |
00 |
- |
05 |
40 |
07 |
FC |
00 |
28 |
00 |
04 |
| .........@...(.. |
0040: |
00 |
24 |
C0 |
05 |
08 |
00 |
FC |
01 |
- |
00 |
70 |
00 |
00 |
44 |
23 |
02 |
50 |
|
| .$.......p..D#.P |
0050: |
01 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
- |
53 |
42 |
4E |
57 |
4D |
4C |
49 |
44 |
| ........SBNWMLID |
0060: |
00 |
00 |
00 |
00 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| .... |
|
|
2nd packet,
reply from RPL server to booting WS - (irrelevant) |
|
|
3rd packet,
request from booting workstation to specified RPL server |
|
VIA Rhino |
DLC: |
Dest Address: 00B086635A36 |
DLC: |
Src Address: remote WS (000D873814B3) |
DLC: |
Type: 802.2 Length = (0056) |
LLC: |
SSAP DSAP: RPL (FCFC) |
LLC: |
Control: UI (03) |
|
[83 bytes of data] |
────────────────────────────────
Hex Decode ───────────────────────────── |
0000: |
00 |
B0 |
86 |
63 |
5A |
36 |
00 |
0D |
- |
87 |
38 |
14 |
B3 |
00 |
56 |
FC |
FC |
| ...cZ6...8...V.. |
0010: |
03 |
00 |
53 |
00 |
10 |
00 |
08 |
40 |
- |
11 |
00 |
00 |
00 |
00 |
00 |
10 |
00 |
| ..S....@........ |
0020: |
08 |
00 |
06 |
40 |
09 |
05 |
DC |
00 |
- |
06 |
40 |
0A |
00 |
01 |
00 |
0A |
40 |
| ...@.....@.....@ |
0030: |
06 |
00 |
0D |
87 |
38 |
14 |
B3 |
00 |
- |
05 |
40 |
07 |
FC |
00 |
28 |
00 |
04 |
| ....8....@...(.. |
0040: |
00 |
24 |
C0 |
05 |
08 |
00 |
FC |
01 |
- |
00 |
74 |
00 |
00 |
42 |
23 |
02 |
40 |
|
| .$.......t..B#.@ |
0050: |
01 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
- |
53 |
42 |
46 |
45 |
54 |
4F |
44 |
49 |
| ........SBFETODI |
0060: |
00 |
00 |
00 |
00 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| .... |
|
Realtek 819x |
DLC: |
Dest Address: 030002000000 |
DLC: |
Src Address: remote WS2 (000EA678F29E) |
DLC: |
Type: 802.2 Length = (0056) |
LLC: |
SSAP DSAP: RPL (FCFC) |
LLC: |
Control: UI (03) |
|
[83 bytes of data] |
────────────────────────────────
Hex Decode ───────────────────────────── |
0000: |
03 |
00 |
02 |
00 |
00 |
00 |
00 |
0E |
- |
A6 |
78 |
F2 |
9E |
00 |
56 |
FC |
FC |
| .........x...V.. |
0010: |
03 |
00 |
53 |
00 |
10 |
00 |
08 |
40 |
- |
11 |
00 |
00 |
00 |
00 |
00 |
10 |
00 |
| ..S....@........ |
0020: |
08 |
00 |
06 |
40 |
09 |
05 |
DC |
00 |
- |
06 |
40 |
0A |
00 |
01 |
00 |
0A |
40 |
| ...@.....@.....@ |
0030: |
06 |
00 |
0E |
A6 |
78 |
F2 |
9E |
00 |
- |
05 |
40 |
07 |
FC |
00 |
28 |
00 |
04 |
| ....x....@...(.. |
0040: |
00 |
24 |
C0 |
05 |
08 |
00 |
FC |
01 |
- |
00 |
70 |
00 |
00 |
44 |
23 |
02 |
39 |
|
| .$.......p..D#.9 |
0050: |
03 |
10 |
00 |
00 |
00 |
00 |
00 |
00 |
- |
53 |
42 |
52 |
54 |
53 |
4F |
44 |
49 |
| ........SBRTSODI |
0060: |
00 |
00 |
00 |
00 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| .... |
|
NE2000 (Accton
LANStation 486) |
DLC: |
Dest Address: Hunetwork10 (00105AC4591A) |
DLC: |
Src Address: 0000E8D41FA2 |
DLC: |
Type: 802.2 Length = (0056) |
LLC: |
SSAP DSAP: RPL (FCFC) |
LLC: |
Control: UI (03) |
|
[83 bytes of data] |
────────────────────────────────
Hex Decode ───────────────────────────── |
0000: |
00 |
10 |
5A |
C4 |
59 |
1A |
00 |
00 |
- |
E8 |
D4 |
1F |
A2 |
00 |
56 |
FC |
FC |
| ..Z.Y........V.. |
0010: |
03 |
00 |
53 |
00 |
10 |
00 |
08 |
40 |
- |
11 |
00 |
00 |
00 |
00 |
00 |
10 |
00 |
| ..S....@........ |
0020: |
08 |
00 |
06 |
40 |
09 |
05 |
EA |
00 |
- |
06 |
40 |
0A |
00 |
01 |
00 |
0A |
40 |
| ...@.....@.....@ |
0030: |
06 |
00 |
00 |
E8 |
D4 |
1F |
A2 |
00 |
- |
05 |
40 |
07 |
FC |
00 |
28 |
00 |
04 |
| .........@...(.. |
0040: |
00 |
24 |
C0 |
05 |
08 |
00 |
FC |
01 |
- |
00 |
70 |
00 |
00 |
44 |
23 |
02 |
50 |
|
| .$.......p..D#.P |
0050: |
01 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
- |
53 |
42 |
4E |
57 |
4D |
4C |
49 |
44 |
| ........SBNWMLID |
0060: |
00 |
00 |
00 |
00 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| .... |
|
|
4th packet,
reply ro specific request from RPL server, containing the load and execute addresses |
|
VIA Rhino |
DLC: |
Dest Address: remote WS (000D873814B3) |
DLC: |
Src Address: MARS NWE (000D61C65A6C) |
DLC: |
Type: 802.2 Length = (05C0) |
LLC: |
SSAP DSAP: RPL (FCFC) |
LLC: |
Control: UI (03) |
|
[1469 bytes of data] |
────────────────────────────────
Hex Decode ───────────────────────────── |
0000: |
00 |
0D |
87 |
38 |
14 |
B3 |
00 |
0D |
- |
61 |
C6 |
5A |
6C |
05 |
C0 |
FC |
FC |
| ...8....a.Zl.... |
0010: |
03 |
05 |
BD |
00 |
20 |
00 |
08 |
40 |
- |
11 |
00 |
00 |
00 |
00 |
00 |
0D |
C0 |
| .... ..@........ |
0020: |
14 |
00 |
|
08 |
E0 |
|
70 |
00 |
|
08 |
E0 |
- |
70 |
20 |
05 |
A4 |
40 |
18 |
FA |
E9 |
| ....p...p ..@... |
0030: |
96 |
1C |
4E |
65 |
74 |
77 |
2E |
52 |
- |
70 |
4C |
05 |
05 |
C7 |
00 |
FF |
FF |
| ..Netw.RpL...... |
0040: |
00 |
02 |
90 |
00 |
00 |
00 |
00 |
04 |
- |
C2 |
70 |
C2 |
70 |
00 |
00 |
C2 |
70 |
| .........p.p...p |
0050: |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
- |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
| ................ |
0060: |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
14 |
02 |
00 |
00 |
| ................ |
0070: |
59 |
00 |
00 |
7C |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
22 |
22 |
00 |
| Y..|........."". |
|
Realtek 819x |
DLC: |
Dest Address: remote WS2 (000EA678F29E) |
DLC: |
Src Address: MARS2 (000D61C5F228) |
DLC: |
Type: 802.2 Length = (05C0) |
LLC: |
SSAP DSAP: RPL (FCFC) |
LLC: |
Control: UI (03) |
|
[1469 bytes of data] |
────────────────────────────────
Hex Decode ───────────────────────────── |
0000: |
00 |
0E |
A6 |
78 |
F2 |
9E |
00 |
0D |
- |
61 |
C5 |
F2 |
28 |
05 |
C0 |
FC |
FC |
| ...x....a..(.... |
0010: |
03 |
05 |
BD |
00 |
20 |
00 |
08 |
40 |
- |
11 |
00 |
00 |
00 |
00 |
00 |
0D |
C0 |
| .... ..@........ |
0020: |
14 |
00 |
|
08 |
C4 |
|
70 |
00 |
|
08 |
C4 |
- |
70 |
20 |
05 |
A4 |
40 |
18 |
FA |
E9 |
| ....p...p ..@... |
0030: |
96 |
1C |
4E |
65 |
74 |
77 |
2E |
52 |
- |
70 |
4C |
05 |
05 |
C7 |
00 |
FF |
FF |
| ..Netw.RpL...... |
0040: |
00 |
02 |
90 |
00 |
00 |
00 |
00 |
04 |
- |
C2 |
70 |
C2 |
70 |
00 |
00 |
C2 |
70 |
| .........p.p...p |
0050: |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
- |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
| ................ |
0060: |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
14 |
02 |
00 |
00 |
| ................ |
0070: |
59 |
00 |
00 |
7C |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
22 |
22 |
00 |
| Y..|........."". |
|
NE2000 (Accton
LANStation 486) |
DLC: |
Dest Address: 0000E8D41FA2 |
DLC: |
Src Address: Hunetwork10 (00105AC4591A) |
DLC: |
Type: 802.2 Length = (05DB) |
LLC: |
SSAP DSAP: RPL (FCFC) |
LLC: |
Control: UI (03) |
|
[1496 bytes of data] |
────────────────────────────────
Hex Decode ───────────────────────────── |
0000: |
00 |
00 |
E8 |
D4 |
1F |
A2 |
00 |
10 |
- |
5A |
C4 |
59 |
1A |
05 |
DB |
FC |
FC |
| ........Z.Y..... |
0010: |
03 |
05 |
D8 |
00 |
20 |
00 |
08 |
40 |
- |
11 |
00 |
00 |
00 |
00 |
00 |
0D |
C0 |
| .... ..@........ |
0020: |
14 |
00 |
|
09 |
20 |
|
70 |
00 |
|
09 |
20 |
- |
70 |
30 |
05 |
BF |
40 |
18 |
FA |
E9 |
| ... p.. p0..@... |
0030: |
96 |
1C |
4E |
65 |
74 |
77 |
2E |
52 |
- |
70 |
4C |
05 |
05 |
C7 |
00 |
00 |
00 |
| ..Netw.RpL...... |
0040: |
00 |
02 |
90 |
00 |
53 |
42 |
05 |
04 |
- |
00 |
00 |
00 |
00 |
02 |
00 |
00 |
00 |
| ....SB.......... |
0050: |
00 |
00 |
FF |
FF |
FF |
FF |
FF |
FF |
- |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
| ................ |
0060: |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
FF |
14 |
02 |
00 |
00 |
| ................ |
0070: |
59 |
00 |
00 |
7C |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
00 |
22 |
22 |
00 |
| Y..|........."". |
|
To calculate
the load and execute (same) addresses, we have to use the following formula: |
|
signed FFFFFFE070 (-8080 decimal) + returned
byte * 0x400 hex (1K, 1024 decimal) |
|
|
Some samples: |
|
|
returned byte: |
|
load/exec address: |
|
240 |
8E070 |
|
239 |
8C470 |
|
250 |
92070 |
|
0 |
FFFFFFE070 |
|
1 |
FFFFFFE470 |
|
2 |
FFFFFFE870 |
|
7 |
FFFFFFFC70 |
|
8 |
70 |
|
9 |
470 |
|
A |
870 |
|
100 |
3E070 |
|
200 |
7E070 |
|
300 |
BE070 |
|
A00 |
27E070 |
|
1000 |
3FE070 |
|
4000 |
FFE070 |
|
|
An excel formula to calc this: |
=DEC2HEX((HEX2DEC( ReturnedByteInHex )*1024)-8080) |
|
|
So if the
captured packet of your booting workstation sends "200" in the |
requesting packet, you have to set RPLD.CONF as follows: |
|
|
HOST { |
|
|
ethernet = 00:0d:87:38:14:b3; |
|
|
|
// Load RBOOT.RPL from the beginning to load
address |
|
|
FILE { |
|
|
|
path="/mnt/md2/sys/login/rboot.rpl"; |
|
|
|
offset=0x0; |
|
|
|
load=0x7E070; |
|
|
}; |
|
|
|
// Jump into the start |
|
|
|
execute=0x7E070; |
|
|
}; |
|
Of course the
best would be that RPLD would do this math - as Novell's |
RPL server does -, instead of this manual action... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|