summaryrefslogtreecommitdiffstats
path: root/isolinux
diff options
context:
space:
mode:
Diffstat (limited to 'isolinux')
-rw-r--r--isolinux/README.TXT132
-rw-r--r--isolinux/README_SPLIT.TXT21
-rw-r--r--isolinux/f2.txt16
-rw-r--r--isolinux/iso.sort3
-rw-r--r--isolinux/isolinux.bootbin0 -> 2048 bytes
-rw-r--r--isolinux/isolinux.cfg12
-rw-r--r--isolinux/message.txt16
-rw-r--r--isolinux/sbootmgr/RAWRITE12.DOC86
-rw-r--r--isolinux/sbootmgr/RAWRITENT.DOC176
-rw-r--r--isolinux/sbootmgr/README.TXT29
-rw-r--r--isolinux/setpkg48
11 files changed, 539 insertions, 0 deletions
diff --git a/isolinux/README.TXT b/isolinux/README.TXT
new file mode 100644
index 000000000..94f84489d
--- /dev/null
+++ b/isolinux/README.TXT
@@ -0,0 +1,132 @@
+
+HOW TO MAKE A BOOTABLE SLACKWARE DVD ISO IMAGE
+
+To make a bootable Slackware install DVD, get into the top level Slackware
+directory (The one with ChangeLog.txt in it) and issue a command like this
+to build the ISO image in /tmp:
+
+mkisofs -o /tmp/slackware-dvd.iso \
+ -R -J -A "Slackware Install" \
+ -hide-rr-moved \
+ -v -d -N \
+ -no-emul-boot -boot-load-size 4 -boot-info-table \
+ -sort isolinux/iso.sort \
+ -b isolinux/isolinux.bin \
+ -c isolinux/isolinux.boot \
+ -V "SlackDVD" .
+
+On my system, here's the command I'd use to burn the resulting DVD ISO:
+
+growisofs -speed=2 -dvd-compat -Z /dev/dvd=slackware-dvd.iso
+
+If your burner is not /dev/dvd, replace the device with the one your
+system uses.
+
+I find discs burned at 2x are more reliable than ones burned at higher
+speeds, but you may see completely different results depending on media
+and burner type. The -dvd-compat option is also used so that a complete
+lead-out is written to the media for maximum compatibility.
+
+Or, you can burn directly from the Slackware tree to a DVD(-/+)R(W):
+
+growisofs \
+ -Z /dev/dvd \
+ -R -J -A "Slackware Install" \
+ -hide-rr-moved \
+ -v -d -N \
+ -no-emul-boot -boot-load-size 4 -boot-info-table \
+ -sort isolinux/iso.sort \
+ -b isolinux/isolinux.bin \
+ -c isolinux/isolinux.boot \
+ -dvd-compat \
+ -V "SlackDVD" .
+
+
+HOW TO MAKE A SET OF BOOTABLE / INSTALLABLE CDROMS
+
+This is a little bit more tricky. Step one will be to split the tree into
+portions that will fit on the media that you plan to burn to. The first
+disc must contain these directories:
+
+/isolinux/
+/kernels/
+/slackware/
+
+You'll need to make other /slackware/ directories on discs 2, 3, and maybe
+more, moving some of the disc series from disc 1 to other discs to make
+things fit. It is also possible to split a series to make more efficient
+use of the CD media. See the README_SPLIT.TXT example and instructional
+file in this directory for details about how to set that up.
+
+The rest of the splitting up of discs is left as an exercise for the reader.
+
+To make the first (bootable) ISO, a command like this is used within the
+directory where the disc tree is. Let's say the directory is 'd1' and you
+wish to output the ISO image in /tmp:
+
+cd d1
+mkisofs -o /tmp/slackware-install-1.iso \
+ -R -J -A "Slackware Install 1" \
+ -hide-rr-moved \
+ -v -d -N \
+ -no-emul-boot -boot-load-size 4 -boot-info-table \
+ -sort isolinux/iso.sort \
+ -b isolinux/isolinux.bin \
+ -c isolinux/isolinux.boot \
+ -V "SlackCD1" .
+
+Making a non-bootable disc is similar. Just omit a few options:
+
+cd d2
+mkisofs -o /tmp/slackware-install-2.iso \
+ -R -J -A "Slackware Install 2" \
+ -hide-rr-moved \
+ -v -d -N \
+ -V "SlackCD2" .
+
+To burn an ISO image to CD-R(W), the cdrecord command is used. For complete
+instructions, see the man page ('man cdrecord'). On my own machine where
+the burner is /dev/cdrw, disc one would be burned with the following command:
+
+cat /tmp/slackware-install-1.iso | cdrecord -v dev=/dev/cdrw speed=10 fs=8m -tao -eject -data -
+
+As before, it's possible to burn from the disc trees without the intermediate
+step of creating iso images by omitting the -o option to mkisofs and piping
+the output directly to cdrecord:
+
+cd d1
+mkisofs \
+ -R -J -A "Slackware Install 1" \
+ -hide-rr-moved \
+ -v -d -N \
+ -no-emul-boot -boot-load-size 4 -boot-info-table \
+ -sort isolinux/iso.sort \
+ -b isolinux/isolinux.bin \
+ -c isolinux/isolinux.boot \
+ -V "SlackCD1" . | cdrecord -v dev=/dev/cdrw speed=10 fs=8m -tao -eject -data -
+
+-----
+
+NOTES:
+ The isolinux/isolinux.boot file will be created on the disc; it's not
+ supposed to be in the source tree. I mention this only because so many
+ people report the "missing" isolinux/isolinux.boot file as a bug.
+
+ The "-boot-load-size 4" is actually not large enough to hold the isolinux
+ boot loader, but many BIOS implementations are broken and will *only*
+ accept "4". Evidently many newer, more correct BIOS implementations
+ expect this and will continue to load the boot loader file until the
+ EOF is reached. Anyway, previous uses of larger values were correct, but
+ led to the Slackware ISO not booting on some machines which contained
+ broken BIOS implementations. It is my hope that by using the incorrect
+ value of 4 sectors that the ISO will boot on most (if not all) machines
+ that are supposed to be able to boot from an ISO image.
+
+ I don't know how to create a bootable Slackware ISO on operating systems
+ other than Linux, but it should be easy to burn the Linux-created ISO with
+ most CD burning software on any operating system.
+
+Enjoy!
+
+ -P.
+
diff --git a/isolinux/README_SPLIT.TXT b/isolinux/README_SPLIT.TXT
new file mode 100644
index 000000000..3216957d6
--- /dev/null
+++ b/isolinux/README_SPLIT.TXT
@@ -0,0 +1,21 @@
+
+Hello,
+
+Thanks for noticing this README-encrypted file. :-)
+
+When found on a disc-media based Slackware distribution, this file indicates
+an incomplete software series that continues on the next disc.
+
+The installer will ask for the next disc and look for the rest of the
+packages there. If you are installing packages from the command line, look
+at the next disc to make certain that you install all the packages you need.
+
+For example, to split /slackware/kde across two discs, both discs will need
+to have /slackware/kde directories. The first one should contain a copy of
+this file. The second one should have the install.end file, the additional
+packages not in the first directory, and an extra copy of the tagfile file.
+
+Have fun!
+
+ -- The Management
+
diff --git a/isolinux/f2.txt b/isolinux/f2.txt
new file mode 100644
index 000000000..1b79d8eef
--- /dev/null
+++ b/isolinux/f2.txt
@@ -0,0 +1,16 @@
+
+ -+ Kernel Selection Help +-
+
+You'll need one kernel to get Linux started on your system so that you can
+install it. The default kernel is huge.s, which requires at least a
+Pentium Pro processor. There is also a "speakup.s" kernel, which supports
+various speech synthesizers.
+
+***************************************************************************
+* Tip: If you have no idea which kernel to use, go with huge.s! *
+***************************************************************************
+
+To boot the chosen kernel put the name of the kernel and press enter.
+
+boot: huge.s "For example, boot the 'huge.s' kernel!"
+
diff --git a/isolinux/iso.sort b/isolinux/iso.sort
new file mode 100644
index 000000000..ade31e705
--- /dev/null
+++ b/isolinux/iso.sort
@@ -0,0 +1,3 @@
+isolinux 100
+isolinux/isolinux.bin 200
+kernels 50
diff --git a/isolinux/isolinux.boot b/isolinux/isolinux.boot
new file mode 100644
index 000000000..97f9401ec
--- /dev/null
+++ b/isolinux/isolinux.boot
Binary files differ
diff --git a/isolinux/isolinux.cfg b/isolinux/isolinux.cfg
new file mode 100644
index 000000000..ccca60d79
--- /dev/null
+++ b/isolinux/isolinux.cfg
@@ -0,0 +1,12 @@
+default huge.s
+prompt 1
+timeout 1200
+display message.txt
+F1 message.txt
+F2 f2.txt
+label huge.s
+ kernel /kernels/huge.s/bzImage
+ append initrd=initrd.img load_ramdisk=1 prompt_ramdisk=0 rw SLACK_KERNEL=huge.s
+label speakup.s
+ kernel /kernels/speakup.s/bzImage
+ append initrd=initrd.img load_ramdisk=1 prompt_ramdisk=0 rw SLACK_KERNEL=speakup.s
diff --git a/isolinux/message.txt b/isolinux/message.txt
new file mode 100644
index 000000000..a28cd3a23
--- /dev/null
+++ b/isolinux/message.txt
@@ -0,0 +1,16 @@
+
+Welcome to 09Slackware6407 version 13.0 (Linux kernel 2.6.29.6)!
+
+If you need to pass extra parameters to the kernel, enter them at the prompt
+below after the name of the kernel to boot (huge.s etc).
+
+In a pinch, you can boot your system from here with a command like:
+
+boot: huge.s root=/dev/hda1 rdinit= ro
+
+In the example above, /dev/hda1 is the / Linux partition.
+
+This prompt is just for entering extra parameters. If you don't need to enter
+any parameters, hit ENTER to boot the default kernel "huge.s" or press [F2]
+for a listing of more kernel choices.
+
diff --git a/isolinux/sbootmgr/RAWRITE12.DOC b/isolinux/sbootmgr/RAWRITE12.DOC
new file mode 100644
index 000000000..f4871d1f8
--- /dev/null
+++ b/isolinux/sbootmgr/RAWRITE12.DOC
@@ -0,0 +1,86 @@
+RaWrite 1.2
+-----------
+
+Purpose
+-------
+
+Write a disk image file to a 360K floppy disk.
+
+
+Equipment/Software Requirements
+-------------------------------
+
+PC/XT/AT with a floppy disk drive capable of reading and writing a 360K
+diskette.
+
+This program uses generic low-level BIOS diskette read/write functions. It
+should be portable to nearly every PC in existance. PS/2's should be able
+to run RawWrite but this has not been tested.
+
+
+CAVEAT
+------
+
+This program will write ANY disk file to a floppy, overwriting any previous
+information that may have been present. If you wish to re-use a diskette
+under MS-DOS thats been written to by RawWrite then the disk will need to be
+reformatted; all MS-DOS specific information will have been erased.
+
+
+How to Compile
+--------------
+
+TCC rawrite.c
+
+The source code is specific to Borland International's Turbo C 2.01 and has
+been tested in all memory models.
+
+
+Usage
+-----
+
+C> RAWRITE
+
+And follow the prompts. All arguments are case-insensitive.
+
+A sample run is shown below. The disk file being written, in this example,
+is named DEMODISK and the destination - where the image is being written -
+is the B: drive.
+
+This program may be aborted at any time by typing ^C.
+
+
+Sample Run
+----------
+
+C> RAWRITE
+RaWrite 1.2 - Write disk file to raw floppy diskette
+
+Enter source file name: DEMODISK
+Enter destination drive: B
+Please insert a formatted 360K diskette into drive B: and press -ENTER- :
+Writing image to drive B:
+
+
+Errors
+------
+
+RaWrite attempts to determine if the diskette is a 360K, 720K, 1.2M, or
+1.44M diskette by reading specific sectors. If the inserted diskette is not
+one of the mentioned types, then RaWrite will abort with a short error
+message.
+
+Errors such as write protect, door open, bad disk, bad sector, etc. cause a
+program abort with a short error message.
+
+
+History
+-------
+
+ 1.0 - Initial release
+ 1.1 - Beta test (fixing bugs) 4/5/91
+ Some BIOS's don't like full-track writes.
+ 1.101 - Last beta release. 4/8/91
+ Fixed BIOS full-track write by only only
+ writing 3 sectors at a time.
+ 1.2 - Final code and documentation clean-ups. 4/9/91
diff --git a/isolinux/sbootmgr/RAWRITENT.DOC b/isolinux/sbootmgr/RAWRITENT.DOC
new file mode 100644
index 000000000..6b8dcb380
--- /dev/null
+++ b/isolinux/sbootmgr/RAWRITENT.DOC
@@ -0,0 +1,176 @@
+{ This Program is released unter the terms of the GNU Public License (GPL).
+ In short words this means anybody can do anything with it except incorporating it
+ in whole or part into a new application that is sold and/or marketed commercially,
+ without disclosing the sources to the public.
+ For further details, refer to www.gnu.org.
+
+ This program has been written by Benedikt Hochstrasser (bhoc@pentagroup.ch or
+ tictactux@swissonline.ch. Its purpose is to transfer raw images to diskette, just
+ like the rawrite program supplied with Slackware Linux. The difference is: this is
+ a native Windows NT application.
+ Syntax: RaWriteNT <source image file> <target drive>
+
+ Use at your own risk. Although that piece of software has been thouroughly tested I
+ am not responsible for any damage resulting in the use of this software. This software
+ will overwrite stuff stored on a direct-access storage device such as a diskette,
+ hard disk, zip drive, LS-120 drive or similar medium. You have been warned.
+
+ Zurich, Late August 2000. (c) 2000 bhoc@pentagroup.ch
+}
+
+program RaWriteNT;
+
+{$APPTYPE CONSOLE}
+{$D-,L-,Y-,C-}
+
+uses windows;
+
+{$R *.RES}
+
+const IOCTL_DISK_GET_DRIVE_GEOMETRY: Cardinal = $70000;
+
+type TDiskGeometry = record
+ Cylinders : Int64;
+ Media_Type : LongInt;
+ TracksPerCylinder : Cardinal;
+ SectorsPerTrack : Cardinal;
+ BytesPerSector : Cardinal;
+ end;
+
+var InFileName, OutFileName: String;
+ Drive: Char;
+ HIn, HOut, BufBytes, FileSize, MediaSize, BlkSize, BlkNum, i: Cardinal;
+ Buf: Array[0..65535] of Byte;
+ DriveGeometry: TDiskGeometry;
+
+function ExtractFileName(FullName: String): String;
+ { cf SysUtils.ExtractFileName - mimicked here for size purposes }
+ var i, n: integer;
+ begin
+ n := Length(FullName);
+ Result := FullName;
+ for i := n downto 1 do if FullName[i] = '\' then break;
+ if i > 1 then Result := Copy(FullName, i+1, n-i);
+ end;
+
+function IsWinNT: Boolean;
+ { that should be obvious }
+ var osinfo: TOSVersionInfo;
+ begin
+ Result := False;
+ osinfo.dwOSVersionInfoSize := SizeOf(osinfo);
+ if GetVersionEx(osinfo) then
+ Result := (osinfo.dwPlatformId = VER_PLATFORM_WIN32_NT);
+ end;
+
+procedure ReReadDrive;
+ { just invoke a dummy 'get free disk space' to re-initialize the drive after
+ the write }
+ var BytesPerSect, FreeCl, TotCl, SecPerCl: Cardinal;
+ begin
+ GetDiskFreeSpace(PChar(Drive + ':\'), SecPerCl, BytesPerSect, FreeCl, TotCl);
+ end;
+
+begin { finally. dah main program. }
+
+ Writeln;
+
+ { do the copyright messages }
+ Writeln('RaWriteNT 1.0 by Ben Hochstrasser (bhoc@pentagroup.ch)');
+
+ { discourage Win9x users }
+ If Not IsWinNT then begin
+ Writeln(ParamStr(0), ' has been tested under Windows NT only. Sorry...');
+ halt(255);
+ end;
+
+ { get parameters }
+ InFileName := '';
+ OutFileName := '';
+ if ParamCount > 0 then InFileName := ParamStr(1);
+ if ParamCount > 1 then OutFileName := ParamStr(2);
+ if InFileName = '' then begin
+ Write('Source Image File name: ');
+ Readln(InFileName);
+ if InFileName = '' then halt(255);
+ end;
+ if OutFileName = '' then begin
+ Write('Target Drive [A]: ');
+ Readln(OutFileName);
+ end;
+
+ { check target }
+ if OutFileName = '' then
+ Drive := 'A'
+ else
+ Drive := UpCase(Char(OutFileName[1]));
+ if GetDriveType(PChar(Drive + ':\')) in [DRIVE_FIXED, DRIVE_REMOTE, DRIVE_CDROM] then begin
+ Writeln('Drive ' + Drive + ': does not appear to be a removable (and writable) drive.');
+ Writeln('Hard Disks, Network Drives and CD-ROM Drives cannot be Targets. Sorry.');
+ Halt(255);
+ end;
+ { prepend the NT incantation stuff }
+ OutFileName := '\\.\' + Drive + ':';
+
+ { try to open devices }
+ HIn := CreateFile(PChar(InFileName), GENERIC_READ, 0, NIL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL or FILE_FLAG_SEQUENTIAL_SCAN, 0);
+ if HIn = 0 then begin
+ Writeln('Fatal Error: Cannot open ' + InFileName + ' for read.');
+ Halt(1);
+ end;
+ HOut := CreateFile(PChar(OutFileName), GENERIC_WRITE, 0, NIL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
+ if HOut = 0 then begin
+ Writeln('Fatal Error: Cannot open ' + OutFileName + ' for write.');
+ CloseHandle(HIn);
+ Halt(2);
+ end;
+
+ { overwrite 1st sector with 0 };
+ FillChar(Buf, 512, 0);
+ WriteFile(HOut, Buf, 512, BufBytes, NIL);
+ { get target geometry }
+ DeviceIoControl(HOut, IOCTL_DISK_GET_DRIVE_GEOMETRY, nil, 0, @DriveGeometry, SizeOf(DriveGeometry), BufBytes, NIL);
+ { determine sizes }
+ MediaSize := DriveGeometry.BytesPerSector * DriveGeometry.SectorsPerTrack * DriveGeometry.TracksPerCylinder * DriveGeometry.Cylinders;
+ FileSize := GetFileSize(HIn, Nil);
+ if FileSize > MediaSize then begin
+ Writeln('Oops - That file is too big for this medium (', FileSize, ' vs. ', MediaSize, ' Bytes).');
+ Halt(3);
+ end;
+ { block size is 1 track }
+ BlkSize := DriveGeometry.SectorsPerTrack * DriveGeometry.BytesPerSector;
+ { round up # of blocks if necessary }
+ BlkNum := (FileSize + BlkSize - 1) DIV BlkSize;
+ Writeln('Transferring ', FileSize, ' Bytes (',
+ (FileSize + DriveGeometry.BytesPerSector - 1) div DriveGeometry.BytesPerSector,
+ ' Sectors) from Image ', ExtractFileName(InFileName), ' to Drive ', Drive, ':');
+ { move file pointers to beginning }
+ SetFilePointer(hIn, 0, NIL, FILE_BEGIN);
+ SetFilePointer(hOut, 0, NIL, FILE_BEGIN);
+ { loop through all blocks }
+ for i := 1 to BlkNum do begin
+ if not ReadFile(HIn, Buf, BlkSize, BufBytes, NIL) then begin
+ writeln('Error ', GetLastError, ' on File Read');
+ break;
+ end;
+ if not WriteFile(HOut, Buf, BlkSize, BufBytes, NIL) then begin
+ writeln('Error ', GetLastError, ' on File Write');
+ break;
+ end;
+ write((100 * i) div BlkNum, '% completed.', #13);
+ end;
+ writeln;
+ { close files }
+ CloseHandle(HIn);
+ CloseHandle(HOut);
+
+ { re-read target medium information }
+ ReReadDrive;
+
+ If ParamCount = 0 then begin
+ Writeln;
+ Writeln('(Press any Key) ');
+ Readln;
+ end;
+end.
+
diff --git a/isolinux/sbootmgr/README.TXT b/isolinux/sbootmgr/README.TXT
new file mode 100644
index 000000000..204d5d82b
--- /dev/null
+++ b/isolinux/sbootmgr/README.TXT
@@ -0,0 +1,29 @@
+sbootmgr.dsk This nifty little tool allows selecting various devices to boot
+ from a menu, and even allows booting a CD-ROM in machines where
+ the BIOS doesn't support it (or it's supposed to support it, but
+ it just doesn't work). If you have trouble booting the
+ Slackware CD-ROM, you might try writing this image to a floppy,
+ booting it, and then selecting your CD-ROM drive as the boot
+ device.
+
+ The SBM installer is available as a Slackware package (called
+ "btmgr") in the extra/ packages collection.
+
+----------------------------
+Generic floppy image creation info:
+
+To create a floppy disk from one of these images, use the RAWRITE command on
+DOS or Windows. For example, to make the first rootdisk image (install.1),
+you'd put a formatted 1.44MB floppy in your floppy drive, and then run this
+command:
+
+C:\> RAWRITE INSTALL.1 A:
+
+There are several versions of RAWRITE provided to handle most versions of DOS
+and Windows. If one version doesn't seem to work, try another.
+
+To make the floppy images under Linux, use the "cat" command to send them to
+the floppy device. This command will make the first install disk:
+
+cat install.1 > /dev/fd0
+
diff --git a/isolinux/setpkg b/isolinux/setpkg
new file mode 100644
index 000000000..134e82f3b
--- /dev/null
+++ b/isolinux/setpkg
@@ -0,0 +1,48 @@
+#!/bin/sh
+# This script is used within the Slackware installer to present
+# a package series selection menu. If not present, a default list
+# built into the installer is used.
+
+# Protected tmp directory:
+TMP=/var/log/setup/tmp
+if [ ! -d $TMP ]; then
+ mkdir -p $TMP
+fi
+
+rm -f $TMP/SeTSERIES
+dialog --title "PACKAGE SERIES SELECTION" --item-help --checklist \
+"Now it's time to select which general categories of software to install \
+on your system. Use the spacebar to select or unselect the software you \
+wish to install. You can use the up and down arrows to see all the \
+possible choices. Recommended choices have been preselected. Press the \
+ENTER key when you are finished." \
+20 75 9 \
+"A" "Base Linux system" on "The A (base) series contains the kernel and main system utilities." \
+"AP" "Various Applications that do not need X" on "The AP series is a collection of useful applications." \
+"D" "Program Development (C, C++, Lisp, Perl, etc.)" on "The D series contains compilers, debuggers, and other programming tools." \
+"E" "GNU Emacs" on "The E series contains the GNU Emacs advanced real-time display editor." \
+"F" "FAQ lists, HOWTO documentation" on "The F series contains essential documentation for Linux system administrators." \
+"K" "Linux kernel source" on "The K series contains the source code for the Linux kernel." \
+"KDE" "Qt and the K Desktop Environment for X" on "The KDE series contains the K Desktop Environment and related libraries." \
+"KDEI" "International language support for KDE" off "The KDEI series provides support for languages other than US English in KDE." \
+"L" "System Libraries (needed by KDE, GNOME, X, and more)" on "The L series contains important libraries needed by the rest of the system." \
+"N" "Networking (TCP/IP, UUCP, Mail, News)" on "The N series contains network related clients and servers." \
+"T" "TeX typesetting software" on "TeX is a typesetting system often used for mathematics and technical papers." \
+"TCL" "Tcl/Tk script languages" on "The TCL series contains the Tcl/Tk/TclX languages and programs that use them." \
+"X" "X Window System" on "This series contains X, the window system (or GUI) used by Linux." \
+"XAP" "X Applications" on "The XAP series is a collection of applications for X." \
+"Y" "Games" on "The Y series contains a collection of classic text-based games." \
+2> $TMP/SeTSERIES
+if [ ! $? = 0 ]; then
+ rm -f $TMP/SeTSERIES
+ exit
+fi
+# Save this "just in case":
+#"GNOME" "The GNOME desktop for X" on "The GNOME series contains the GNOME desktop environment and related libraries."
+#
+# Rewrite the list into a single # delimited line:
+INSTSETS="`cat $TMP/SeTSERIES | tr -d " "`"
+INSTSETS="`echo $INSTSETS | tr "\042" "#" `"
+INSTSETS="`echo $INSTSETS | tr "," "#" `"
+# Store the selection list:
+echo "$INSTSETS" > $TMP/SeTSERIES