1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
|
- Contents of floppy
apb.exe Alpha Processor bootloader v. 1.0.1.
apb.cfg Sample apb configuration file.
up1000.pal PAL code for Linux on UP1000.
vmlinux.gz Linux kernel v. 2.2.12 with UP1000 patch.
System.gz Kernel Symbol table.
INSTALL This file.
- Installation of RedHat Linux from CD ROM
1. Copy this directory to a floppy disk.
2. Insert floppy disk and RedHat Linux CD ROM.
This installation guide assumes
- hard disk is connected to primary channel as a master
- CD ROM drive is connected to primary channel as a slave
3. From AlphaBIOS run apb.exe as a utility program.
[F2]->Utility->Run maintanace program
4. At the apb command prompt, type
apb> cd floppy
apb> bootl up1000.pal vmlinux.gz root=/dev/hdb
This assumes you have an ATAPI CD ROM drive which Linux recognizes
as /dev/hdb (you may have to try /dev/hda, /dev/hdc, etc. depending
on your configuration. For a SCSI CD ROM drive, /dev/scd or
/dev/scd0.
5. This should get you into the RedHat installation program. During the
disk partitioning phase of the installation be sure to allocate a small
FAT partition to be used as the "boot" partition. 10 MB should be ample.
If you choose 'Workstation' or 'Server' package then you don't need to
partition the disk by yourself.
* Follow the common redhat installation procedure.
* During install, Don't configure X server,
* Select 'Startup through ARC console' on timezone setup menu.
6. Due to bugs in redhat 6.0, FAT partition is not formatted during installation
depends on package selection.
So, After installation, run apb.exe from flopy again and at the
apb command prompt, type
apb> cd floppy
apb> bootl up1000.pal vmlinux.gz root=/dev/hda5 single
You'll get shell prompt then type following commands.
# mkfs -t msdos /dev/hda1
# mount /dev/hda1 /dos
# mcopy a:*.* /dos
# gzip -dc /dos/system.gz > /boot/System.map
# ln -s Tsunami /etc/alpha_systype
# init 6
8. Configure the OS selection menu of AlphaBIOS to start apb.exe
from the boot partition.
In 'OS Selection' menu([F2]->Operating system->OS selection setup),
Make an entry like this.
Boot name: Linux
Boot file: Disk 0 Partition 1 \apb.exe
OS Path : Disk 0 Partition 2 \winnt
OS Options:
OS Path doesn't have any meaning, just leave it intact.
9. You can run apb from hard disk by selecting what you configured on step 8.
10. Set the environment variable APB_DEVICE to be the AlphaBIOS name
of the boot partition.
For example,
apb> setenv APB_DEVICE scsi(0)disk(0)rdisk(0)partition(1)
type 'cd' once to make above environment variable change to be applied.
apb> cd
11. Now, You can boot linux by selecting 'Linux' on BIOS' OS boot menu
and then type this on apb prompt
apb> bootl up1000.pal vmlinux.gz root=/dev/hda5
If you don't want to type above long line everytime. You have two options
1. Create apb.cfg file under /dos directory, Its contents look like
linux|bootl up1000.pal vmlinux.gz root=/dev/hda5
then you can boot linux by typying
apb> boot linux
2. Put option string in OS Selection setup menu of BIOS setup.
Boot name: Linux
Boot file: Disk 0 Partition 1 \apb.exe
OS Path : Disk 0 Partition 2 \winnt
OS Options: bootl up1000.pal vmlinux.gz root=/dev/hda5
Then this setup will boot linux without apb prompt.
-------------------------------------------------------------------------------
APB -- Alpha Processor Bootstrap Loader for AlphaBIOS
Alpha Processor, Inc.
130C Baker Ave. Ext.
Concord, MA 01742, USA
David Daniel, Soohoon Lee, Stig Telfer
customer.support@alpha-processor.com
========================================================================
Copyright (c) 1999, Alpha Processor, Inc.
All Rights Reserved
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the copyright notice and this permission notice appear
in all copies of software and supporting documentation, and that the
name of Alpha Processor not be used in advertising or publicity
pertaining to distribution of the software without specific, written
prior permission. Alpha Processor grants this permission provided
that you prominently mark, as not part of the original, any
modifications made to this software or documentation.
Alpha Processor disclaims all warranties and/or guarantees with regard
to this software, including all implied warranties of fitness for a
particular purpose and merchantability, and makes no representations
regarding the use of, or the results of the use of, the software and
documentation in terms of correctness, accuracy, reliability,
currentness or otherwise; and you rely on the software, documentation
and results solely at your own risk.
========================================================================
0. Introduction
APB is a bootstrap loader for Alpha processor based systems with
AlphaBIOS firmware. It is primarily intended to be used for booting
Linux, though it may also be useful for free BSD derived systems.
APB borrows ideas and some code from many places, notably Linux and
other Linux loaders for Alpha systems (aboot and MILO), and the ARCDos
example in the ARC Application Development Kit. APB can also be
linked against zlib to support reading compressed kernel and PALcode
images. See the file CREDITS for details.
1. Using APB
+ Overview
APB presents a simple command line interface with the following
commands
boot TARGET boot a target in the configuration file
bootl PALCODE KERNEL ARG1 ... boot Unix
cd DEVICE set the current device
cp | copy FILE1 FILE2 copy files
exit | quit exit to AlphaBIOS
halt | reset system shutdown options
ls | dir list files on the current device
mkdir DIR make a directory
more FILE list a file
mv | rename FILE1 FILE2 rename a file
pwd print the current device
rm | delete FILE delete a file
printenv [NAME] print environment variable(s)
setenv [NAME [VAL]] (un)set environment variable
show targets | devices show information
At any time an AlphaBIOS is device is selected as the default or
current device. On initialization this is set to the value of the
APB_DEVICE firmware environment variable, or "multi(0)disk(0)fdisk(0)"
(usually the floppy device) if this is not set.
To change the default device, use the "cd" command. For example
cd scsi(0)disk(0)rdisk(0)partition(2)\os\linux
sets the default device to be the second partition of the disk 0 on
the 0th SCSI controller. To save this for future invocations, set the
APB_DEVICE firmware environment variable using the "setenv" command:
setenv APB_DEVICE scsi(0)disk(0)rdisk(0)partition(2)\os\linux
After this you can return to this device using "cd".
Also the special targets
cd floppy
cd cdrom
will take you to the (first) floppy and CD-ROM drives respectively.
If there is a file system supported by AlphaBIOS on the device -- FAT,
ISO 9660 (CD-ROM) -- then a directory listing can be obtained using
the "dir" or "ls" command:
apb> ls
Directory listing of scsi(0)disk(0)rdisk(0)partition(2):
APB.CFG
APB.EXE
LINUX.PAL
VMLINUX
+ Booting from disk
The recommended way to boot a system using APB is set aside a small
(10 - 30 MB) FAT partition on one disk to be used as a boot partition.
The following files should be placed on the boot partition:
The APB image (APB.EXE)
The PALcode image
The kernel image
An optional configuration file "APB.CFG" (see below)
Run APB (either from floppy or from the boot partition and use it to
set the environment variable APB_DEVICE to the name of the boot
partition. For example if the boot partition is the first partition
on a SCSI disk with SCSI ID 3 on the first SCSI controller, and the files are in directory \os\linux set APB_DEVICE using
apb> setenv APB_DEVICE scsi(0)disk(3)rdisk(0)partition(1)\os\linux
To enable autoboot
apb> setenv APB_AUTOBOOT 1
This performs the first boot command it finds in the APB configuration
file, unless interrupted.
Otherwise boot manually using a command such as
apb> bootl palcode kernel [kernel_arg1 [kernel_arg1 ...]]
or use one of the labels defined in the APB configuration file, for
example
apb> boot linux
See below for the configuration file format.
+ Environment variables
APB uses the following firmware environment variables to set default
noptions:
APB_DEVICE Default device for all operations
APB_AUTOBOOT Determines whether an autoboot should be attempted
If these are not set on invocation, then they are set to reasonable
values, namely
APB_DEVICE=multi(0)disk(0)fdisk(0)
APB_AUTOBOOT=0
+ Configuration file
APB consults a configuration file "APB.CFG" that is assumed to be
located at the current device path (initially given by environment
variable APB_DEVICE). The file consists of lines that are either
comments, or boot commands prefixed with a mnemonic label. For example
# This is comment
linux-2.2|bootl linux.pal vmlinux.gz root=/dev/sda3
linux-2.0|bootl linux.pal vml20.gz root=/dev/sda3
In this case, to boot linux-2.2, type
apb> boot linux-2.2
which is equivalent to
apb> bootl linux.pal vmlinux.gz root=/dev/sda3
If the AUTO_BOOT environment variable is set TRUE, then the default
configuration will be booted after 10 seconds, unless a key is
pressed.
+ Boot devices
APB can boot from any filesystem supported by AlphaBIOS. At present
these are limited to FAT, NTFS and ISO 9660 (CD-ROM).
+ Booting from a network device
Not yet implemented.
2. Building APB
APB is an AlphaBIOS/ARC application. Currently it must be built on an
Microsoft Windows NT 4.0 Alpha processor system, with Microsoft Visual
C++ 5.0 (or higher), the Microsoft Software Development Kit (SDK) and
Device Driver Development Kit (DDK) for NT 4.0, and Compaq ARC
Application Development Kit (ADK) 1.3.
Optionally, APB can be linked against zlib (a free compression
library) to support reading compressed kernel and PALcode images.
To build, open a command window, set up the environment:
VC++ (e.g "C:Program Files\DevStudio\VC\bin\vcvars32.bat")
DDK (e.g. "C:\DDK\bin\setenv.bat C:\DDK")
ADK (e.g. "set ADK=C:\adkv13\adk")
and then and make using nmake. For example:
C:\apb-1.0> nmake
where the DDK has been installed on the C: drive.
If building with compressed file support, obtain and unpack zlib
(http://www.cdrom.com/pub/infozip/zlib/), set the variable ZLIB to
the zlib directory, and then make. For example
C:\apb-1.0> set ZLIB=C:\zlib-1.1.3
C:\apb-1.0> nmake
In either case, the executable is placed in the "obj\alpha"
subdirectory.
3. What APB does
Booting Linux with APB involves the following steps:
AlphaBIOS loads and transfers control to APB.
APB is called with an argument specifying the device (as known to
AlphaBIOS) from which to read the Linux kernel, and additional
arguments to be passed on to the kernel.
APB sets up the environment for Linux, including loading and
switching to the correct PAL code, setting up the HWRPB, copying
kernel arguments to the right location in memory etc.
APB reads the Linux kernel image into memory from the specified
device (raw disk initially, and eventually filesystems or network
devices via bootp) and transfers control.
4. Modifying APB
APB has been written with the aim of maintaining platform independence
across all AlphaBIOS (and ARC) systems. Furthermore, all dependence
on the ARC API has been isolated in the file "arc.c", so that porting
to another firmware environment should not be too difficult as long as
it provides a sufficiently complete API.
Additional user commands can be incorporated through the command
dispatch table in "cmd.c".
|