============================================================================= (DosLinux) (Version 37) (6-15-97) This is a version of 'Linux' that can be droped into any dos system, e.g. opendos, msdos, pcdos, novell, etc. and win95 in dos mode. ============================================================================= About 11 mbytes compressed... ============================================================================= The complete system... doslnx37.exe + doslnx37.r00 - doslnx37.r06 <-The complete linux system...) It runs on kernel 2.0.30...ELF... The kernel has math-coprocessor support for cpu's 486sx and below, that don't have a built in coprocessor. You need at least a 386 CPU to run linux. The kernel supports CPU'S 386 and up. It's %100 ELF... The speaker bell-beep has been disabled in the kernel. It was compiled with support for IDE hard drives and SCSI hard drives, it has no support for ETHERNET cards or ISDN modems. You may be able to use a isdn modem, if it's like a regular 28.8 modem etc. I mean, if it accepts AT commands like a regular modem. Pppd supports these speeds also 230400 and 460800... I have no experience with isdn so i don't know.... See the end of this readme for a listing of SCSI hosts = controllers that DosLinux supports. DosLinux does'nt have X windows or any programs needed for compiling, i.e. gcc compiler, binutils, the complete libc, etc... There are compiled elf versions of all the above, so they can be easily droped into the system... If you want to install the X Window system, after you install DosLinux read the /usr/X11R6/Install.X guide, it explains where to get X and how to install it on DosLinux. If you want to install the GCC compiler and the other programs that are required to compile source code, read /docs/GUIDES/ gcc-doslinux.gz. ~# docs <-Press enter on 'gcc-doslinux.gz' to read file, q to exit...) DosLinux is primarily intended as a way to have outgoing SLIP/PPP networking under a dos system, by droping into dos a relatively small linux operating system named doslinux, if you want a more complete installation of linux, i suggest you get one of the many linux distributions on cdrom i.e. slackware, redhat, debian, etc... All the above linux distributions are good, but the only one that presently "6-15-97" supports the installation of linux on a dos partition is slackware. You can get a free version of dos called 'OpenDOS' from... http://www.caldera.com/dos You should have at least 8 mb. of Ram = Memory to run this system, you'll also need to create a swap file of at least 4 mb. better yet 8 mb, this is easy to create...see below... DosLinux will probably run on as little as 4 mb. of Ram + 8 mb. swap file, but if you install the X window system, you'll need at least 8 mb. of ram + 8 mb. swap file to run X. If you have 12 mbytes. of memory or more, you probably can get by without creating a swap file, but it would'nt hurt to create a 4 mb. swap file. This is the hardware DosLinux supports... 1. ISA, EISA, PCI, motherboards... 2. IDE hard drives and IDE/ATAPI cdrom drives... 3. SCSI hard drives and cdrom drives...Complete support list below... 4. Non Atapi/Scsi cdrom drives...See list below... 5. Standard floppy drives, e.g. a: b: etc... 6. Parallel printers... 7. Serial mice... + Non serial mice...See list below... 8. Sound Cards...See list below... 9. (A)dvanced (P)ower (M)anagement support for laptops... 10. QIC-117, 40/80/3010/3020 Tape Drives... ~# modprobe ftape <-To load QIC-117 etc. tape driver...v.2.11a.) # rmmod ftape <-To unload tape driver.) There's also support for Hayes ESP cards if you have one... ~# modprobe esp Read the /docs/ESP.readme file. The modem is set to /dev/cua1 = com2, the mouse is set to /dev/ttyS0 = com1, these can be changed... cua0 = com1 cua1 = com2 cua2 = com3 cua3 = com4 ttyS0 = com1 ttyS1 = com2 ttyS2 = com3 ttyS3 = com4 ~# comset <-Run this script to setup your modem and or mouse.) Comset will setup serial and other kinds of mice. If you want to reset the modem, you can use this program to send commands to the modem. ~# modem -c ath /dev/modem <-Hangup modem.) # modem -c atz /dev/modem <-Reset modem.) # atz <-Script that does the above.) OK OK # mod 'at&fw2' <-Shortcut script: Use '' if '&' is part of string.) OK # man modem ~# test-mouse <-To see if your getting any output from the mouse, press the left & right mouse buttons to quit. ~# gpm "v.1.12" <-Gpm is a mouse driver, it allows you to cut and paste # man gpm with a mouse in a console or editor. ~# gpm -t help <-To see mousetype options.) # gpm -t ms <-For example, to set mousetype to microsoft.) # gpm -k <-To kill gpm.) ~# pico "v.2.9" # e Ctrl-K = Cut. Ctrl-U = Paste. ~# mcedit You can also cut & paste in 'mcedit' using these keys... [Shift]-[Down]-arrow-key to highlight text. [Shift]-[Delete] to cut highlighted text. [Shift]-[Insert] to paste. Filesystem support... 1. ext2 <-Standard linux filesystem. 2. nfs <-Network filesystem, you can use this with slip/ppp. 3. vfat + FAT32 <-Win95 filesystem. 4. smbfs <-Windows Network FS, you can use this with slip/ppp. 5. msdos 6. umsdos <-This is what allows linux to run on top of Dos. 7. uvfat <-This is what allows linux to run on top of Win95. 8. iso9660 + joliet extensions. <-Standard cdrom filesystem. To put a dos filesystem on a floppy... ~# mkdosfs -v -F32 /dev/fd0 <-Make a FAT32 filesystem.) # man mkdosfs Do this to mount your cdrom drive. ~# mount /cdrom # cd /cdrom /cdrom# ls # cd /root <-Change directory.) # umount /cdrom <-Now unmount and change cd's if you wish.) # eject <-Eject cd...) The /dev/hdc is linked with /dev/cdrom, if your ide-atapi cdrom is detected on another device at bootup time e.g. hdb, hdd, etc. you can run 'cdset' to change the link. If you have a scsi cdrom or a non atapi/scsi cdrom, just run 'cdset' and chose the type of cdrom you have and where it's mounted if asked. ~# cdset Do this to mount a floppy... ~# mount -t msdos /dev/fd0 /mnt # mount /floppy <-This also does the above.) # cd /floppy /floppy# ls # cp file.? /root <-Copy file.? from floppy to.> /root # cp /root/file.? /dev/fd0 <-Copy /root/file.? to floppy. # cd /root ~# umount /dev/fd0 <-Unmoumt from a different directory.) Do this to format a floppy... ~# MAKEFLOPPIES <-You need to run this script just once.) # superformat /dev/fd0 <-To format a 1.44M floppy.) # superformat /dev/fd1 <-To format a 1.2M floppy.) The first time you use superformat to format a floppy, it will tell you to "add something to the /etc/driveprm file". drive0: deviation=-3440 <-For example if it said this, you would put this in the /etc/driveprm file, whatever it says, put it in the file. Superformat is from fdutils.v.5.2. ~# dmesg | less <-To see bootup messages of the system, (Press Q to quit.) and the hardware that was detected.) /var/log/bootup <-Bootup messages are also in this file.) ~# ls -a <-To see the contents of a directory, including the hidden files.) # lsp <-To view large dir. one screenfull at a time, press Q to quit.) # lsp -l ============================================================================== DosLinux has full SLIP/PPP networking support...Ppp.v.2.3.0... ============================================================================== This is some of the software DosLinux contains... # slrn -C -n <-Fast newsreader, perfect for a slip/ppp connection, v.0.9.4.0 + offline capability with 'slrnpull'. # lynx <-Lynx WWW Browser, with slang-color...v.2.7.1 "6-13-97" # mc <-Midnight Commander file manager, also does excellent ftp...a classic...v.3.5.47 # minicom <-Modem terminal program, with X, Y, Zmodem...v.1.75 Minicom also supports the protocols 'hydracom', 'smodem', & 'sixpack' if you want to install them. # termite <-Modem terminal program, with X, Y, Zmodem...v.0.1.9b6 # modemu <-Telnet program, gives minicom telnet capability...v.0.0.1 # lftp <-Lftp...v.0.11.1 # ncftp <-Ncftp...v.2.4.2 # sftp <-Sftp...v.0.80 # irc <-IrcII...Internet Relay Chat...v.BitchX-71p2 # tin -rnq <-Newsreader with fast startup, won't read active or # rtin "same" newsgroups file + color...v.1.3-unoff-970613 # mutt <-Mail client-reader...v.0.76+patches with 'color'. # fetchmail <-Pop2 & 3, APOP, IMAP, KPOP, RPOP, ETRN, mail client.v.3.9.8 # getpop3 <-Pop3 mail client...v.1.08 # sendmail <-Mail delivery program...v.8.8.6 # procmail <-Mail processing program...v.3.11pre7 # metamail <-Frontend to mmencode, etc., used to display = decode- encode base64 & other mime mail formats...v.2.7 # tf <-TinyFugue mud client...v.35b4 # wget <-WWW URL & FTP retrieval program...v.1.4.5 # mm <-MultiMail 'BWAVE' 'QWK' mail packet reader...v.0.6a # uqwk <-Qwk, Soup, etc. mail packer...v.1.8 # ztelnet, ytalk, mget, snarf, rftp, tftp, rlogin, finger, nslookup, ping, # ftp, fping, pftp, host, vrfy, whois, lurkftp.v.0.96, etc. # bash <-Shell...v.1.14.7 # zgv <-Image viewer...jpeg, .gif, .bmp, .png, etc...v.2.8 # acdc <-Audio cd player...v.1.1 # fax <-Efax fax program...v.0.8a # If you have a 'voice modem' & a 'soundcard' read: /docs/voice.README There's a more recent version of the bash shell v.2.0 or 2.01, but i don't recommend it, because some programs and or scripts will not work with it, this problem is known. If you want to try out another version of bash, make a copy of the present one first. ~# cp /bin/bash /bin/bash.old # cp bash.new /bin/bash You can use 'zmodem' over 'telnet' in minicom, for example... modemu -e "at%b0=3%b1=3" -c "minicom -c on -o -m -t ansi -p tty%s" ~# bbsnet <-Script to do the above.) atdt"bbs.foo.com <-The BBS you want to connect to.) atdt"205.190.185.15 Connected... Download SOMETHING.QWK Chose packing method: pkzip Chose Protocol: zmodem Zmodem ready to send **B00 <-Starts automatically, zmodem can resume an interrupted download i.e. pick up where it left off. [Alt] S <-To upload using X, Y, Zmodem.) Logoff BBS... NO CARRIER... Press Alt-Q to quit minicom...Leave Without Reset? = Yes ~# man modemu minicom rz sz Put any BBS .QWK mail in the /root/mmail/bwdown/SOMETHING.QWK directory. ~# mm # man mm If you connect to a BBS through 'telnet' while in or outside of 'lynx', you can use 'zmodem'. Connected to BBS... BBS zmodem ready to send... Press Ctrl ] ztelnet> set binary <-May not be needed, maybe default.) ztelnet> rz -v ztelnet> close <-You can 'close' here or press [Enter] & return to BBS. Back to lynx... If you set the font to default8x16 it will probably improve the color over telnet, this font may not work as well with other programs, the font will stay loaded until you reboot. ~# setfont # telnet ztelnet> open bbs.foo.com <- Ctrl-Backspace = Backspace If the programs 'ytalk' and or 'finger' don't work, it's probably because your service provider does'nt support them at their end. To set the time of your computers cmos clock over slip/ppp, do this... ~# nist -t -d -h foo.boo.com;hwclock --systohc # nettime foo.boo.com <-Script that does the above.) Put a local server or time server in your area for foo.boo.com. If you want to read news offline, use 'slrnpull'. (1). ~# slrnpull <-To retrieve the newsgroups in the /var/spool/slrnpull/ slrnpull.conf file. touch /root/.pnewsrc slrn --spool -i /root/.slrnpullrc -f /root/.pnewsrc (2). ~# spool <-Script to do the above, read newsgroups offline.) a = add s = subscribe ? = help q = quit (3). ~# slrnpull --expire <-To expire outdated news.) Read /docs/slrn/slrnpull... ~# man slrn ~# zgv (/root/logo.gif) <-Gif to test zgv.) There's a program called IRQTUNE.v.0.5 that gives the highest priority to serial ports, it may or may not improve SLIP/PPP performance, read /docs/IRQTUNE.txt.gz. You can load this program before or after you make a SLIP/PPP connection. ~# irqtune <-It stays loaded until you reboot.) irqtune: setting system IRQ prioity to 3/14 <-Irqtune message.) There's also a module called /sbin/ppp_deflate.o you can load before you make a ppp connection, it may improve ppp performance. # /sbin/modprobe ppp_deflate.o Remove the # from the above line in /etc/rc.d/rc.local, to load the ppp_deflate module at bootup time. ~# modprobe ppp_deflate <-Or load it this way anytime.) # man pppd Put this in the /etc/ppp/options file... deflate 15,15 If you want to use another keyboard keymap other then the default one in the kernel = /boot/zimage, you can load another one from the /usr/lib/kbd/keytables directory. ~# loadkeys fr <-Load french keymap etc.) gr = greek it = italian se-lat1 = swedish de = german etc... You can put the line below in the /etc/rc.local file, to have your chosen keymap loaded at boot time. loadkeys fr DosLinux includes /lib/libsvga.so.1.2.10, this is used to support various programs that require a graphics capable console e.g. screensavers, video games, jpeg-gif-mpeg viewers, etc., there are precompiled-elf versions of these programs that can be droped into the system. Libsvga.so.1.2.10 supports quite a few different graphic cards...see list at end of this readme... /lib/libtermcap.so.2.0.8 <-DosLinux Libraries.) libncurses.so.4.1 "970531" libc.so.5.4.33 libm.so.5.0.9 libvgagl.so.1.2.10 ld-linux.so.1.9.2 Modules.v.2.1.34 <-Some other programs on DosLinux.) Make.v.3.7.5 patch.v.2.3 diffutils.v.2.7b sysvinit.v.2.71 mtools.v.3.7 man.v.1.4i groff.v.1.10 procps.v.1.12.1 Most linux software at this time is linked with libc.so.5 and friends, but more and more it will be linked with the new libc.so.6 and friends, if you want to run such a program, you'll have to install libc.so.6 + libm.so.6 + ld-linux.so.2 + libdl.so.2. The above is just to inform you in case you download a program that's linked to the new libc.so.6, then try to run it, and wonder why the system says it does'nt exist "No such file or directory". The development of libc.so.6 is in it's early stages, so it should be awhile yet before the flood of libc.so.6 linked software begins. All the software on doslinux is linked to libc.so.5 and friends, so if you ever do install libc.so.6, keep libc.so.5 + everything in /lib also, because the system won't run without libc.so.5 and friends. ============================================================================ You should try and use 'ftp' to download doslinux, if you loose the connection you can resume the download and pick up where you left off... Most browser programs won't recognize the extension .r00 etc., they will think it's a text file and download it accordingly, this may corrupt doslinux and you won't be able to extract it without errors. You have to inform the program your using to download doslinux, that it's in binary format. ftp> bin <-Set to binary mode.) ftp> get doslnx37.exe Lost connection... ftp> bin ftp> reget doslnx37.exe ncftp> get -C doslnx37.exe <-Same as reget for 'ncftp' recent version...) ============================================================================ How To Install DosLinux... ============================================================================ Unpack doslnx37.exe + r00 - r06 from C:\, D:\, etc. don't create another directory for doslnx37.exe + r00 - r06 and unpack them from there. C:\ doslnx37.exe <-This will extract doslnx37.exe + r00 - r06 doslnx37.r00 to get.> C:\linux & C:\doslinux doslnx37.r01 doslnx37.r02 doslnx37.r03 doslnx37.r04 doslnx37.r05 doslnx37.r06 C:\ cd doslinux <-bootfail.bat, doslinux.txt, lindos.bat, linw95.bat, ls.exe, ls.txt, loadlin.txt. Put these .bat files and .exe program in the c:\dos directory, so you can call them from anywhere. C:\doslinux> move ls.exe,lin???.bat,bootfail.bat c:\dos C:\doslinux> cd c:\ C:\ lindos.bat <-Boot linux on Dos system...see below first... C:\ linw95.bat <-Boot linux on Win95 system...see below first... Lindos.bat looks like this... @echo off rem smartdrv /c c:\linux\boot\loadlin c:\linux\boot\zimage.dos root=/dev/hda1 rw Linw95.bat looks like this... @echo off c:\linux\boot\loadlin c:\linux\boot\zimage.w95 root=/dev/hda1 rw If you have a SCSI Hard Drive you would change 'root=/dev/hda1 rw' to 'root=/dev/sda1 rw' 'root=/dev/sda2 rw' etc. If the drive you're installing doslinux on is not C:, you would change this also in the lin???.bat file. For example, if you were installing doslinux on the D: drive. @echo off d:\linux\boot\loadlin d:\linux\boot\zimage.??? root=/dev/???? rw Don't run fdisk unless you know what your doing, because you could make changes unintentionally and then exit fdisk and have them unintentionally written to disk and made permanent. C:\ fdisk <-Display partition info. then [Esc]...) ~# cfdisk -P s <-Fdisk in linux...safe just to see partition info...) If /dev/hda1 is not where your dos partition is mounted, change 'root=/dev/???? rw' in linux.bat. root=/dev/hda <-First IDE drive.) (/dev/hda = Drive C:) root=/dev/hda1 rw <-First partition of First IDE drive.) root=/dev/hda2 rw <-Second partition etc...) root=/dev/hdb <-Second IDE drive.) (/dev/hdb = Drive D:) root=/dev/hdb1 rw <-First partition of Second IDE drive.) root=/dev/hdb2 rw <-Second partition etc...) root=/dev/sda <-First SCSI drive.) root=/dev/sda1 rw <-First partition of First SCSI drive.) root=/dev/sda2 rw <-Second partition etc...) root=/dev/sdb <-Second SCSI drive.) root=/dev/sdb1 rw <-First partition of Second SCSI drive.) root=/dev/sdb2 rw <-Second partition etc...) I have no experience with booting doslinux from within a Win95 system, but there is support for this. Can i install & boot doslinux on a Win95 system that has the new FAT32 filesystem? I don't know, probably not. Can i install & boot doslinux on a Win95 system with the old 'vfat fat16' filesystem? I think so, the kernel = zimage.w95 has been patched to support this. Can i install doslinux on a dos system i.e. msdos, pcdos, opendos, etc.? YES for sure. But not OS/2 dos. If you have a Win95 system, use linw95.bat to boot linux. After you've booted doslinux, you can remove the extra kernel, if you have a Win95 system, remove /boot/zimage.dos, if you have a Dos system, remove /boot/zimage.w95. ~# rm /boot/zimage.dos <-Delete = I have a Win95 system.) # rm /boot/zimage.w95 <-Delete = I have a Dos system.) You can also remove the extra /boot/System.map.??? file. ~# rm /boot/System.map.dos <-Delete = I have a Win95 system.) # rm /boot/System.map.w95 <-Delete = I have a Dos system.) # mv System.map.??? System.map <-Move the remaining one to.> System.map Now you have one kernel zimage.??? amd one System.map in the /boot directory. Read the loadlin.txt, it tells you things you should do to allow loadlin to work with win95 in dos mode, e.g. don't boot linux in a window, exit any windows and get a dos prompt. If you try and boot linux and it freezes with kernel panic, or it's unable to mount (VFS), just shutdown or reboot the computer, don't look at the screen and wonder what's happening, reboot and be sure you have the right partition "root=/dev/???? rw" listed in linux.bat. The program ls.exe is like the 'dir' command from dos or the unix 'ls' command, you can use it to view the contents of the c:\linux directories as well as the dos directories. C:\ cd linux/root linux/root> ls -a <-For example.) ls -a -r <-List in reverse.) I don't think you can use 'ls' like 'dir /p' to list contents of long directories one screenfull at a time, not in c:\linux> anyway, maybe in dos you can c:\dos> ls /p might work. Read ls.txt for all the ls options. Make sure the program you're using to download DosLinux is set to 'binary mode', and be sure 'doslnx37.exe + r00 - r06' match the size that is stated in the DosLinux.lsm file. DosLinux login: root <-To login... DosLinux:~# mc # halt <-To shutdown the system... # reboot <-To shutdown & reboot... The complete system requires about 25 mbytes uncompressed, compressed it's about 11 mbytes. Read the stuff in /docs, the PPP texts might be helpfull, there's also man pages for most of the programs & commands installed... If you're new to linux = unix, you should read the 'DOStoLinux-HOWTO.gz' in the /docs directory. ~# docs Try the script 'pppsetup' to connect to your service provider and establish a PPP connection. ~# pppsetup <-Answer the questions, and then.-> ~# ppp-go ~# ppp-off <-To quit ppp.) ~# atz <-You can hangup & reset the modem first.) OK OK # ppp-go The 'pppsetup' script above should be enought to get you ppp connected to your service provider. If your service provider is using 'chap' or 'pap', when you run 'pppsetup' you have to give a login: and password: when asked in the PAP or CHAP? section of the script. The pppsetup script will put the 'pap' or 'chap' information that you give, in the /etc/ppp/pap-secrets and chap-secrets file. # client = username = login server secret = password jerry * Pk3Zh7cL If you have to authenticate yourself using 'chap' or 'pap', the name option will also be added to the /etc/ppp/options file. name jerry <-Name option, your username: = login: jerry name jerry_donut <-If you have a two part name, you might have to do it this way. remotename foo.boo.com <-This additional option is only required for microsoft's chap-80 authentification. remotename = your.service.providers.name There's also support for the microsoft version of chap called chap-80, read /docs/PPP.MSCHAP80 for info. on this. If you get this message "last message repeated # times." when you run ppp-go and try to connect to your service provider, it could mean that they're trying to negotiate a pap or chap connection with you, but you're not set up for it, you might still connect regardless, but off course it would be better to set up pap or chap at your end, if this is what they're looking for. If your not sure whether or not your service provider is using pap or chap, ask your service provider. Read the ppp docs in the /docs directory... ~# connect <-To see if your connected.) * YES! you are connected... * chat: CONNECT 28800 * NO! you are not connected... * ~# If you're having trouble keeping the connection up after you make a slip/ppp connection, you can ping your service provider at 5 second intervals while you're online... ~# Press left-[Alt] & [Up]-arrow-key to open another console, then start pingup. ~# pingup <-Script to get your ISP IP address and ping it.) Press [Alt]-[F1] to go back... ~# lynx ftp etc... You still have 10 consoles... If you want to make a SLIP or CSLIP connection, you can use the program 'dip.v.3.3.7p' for this, read /docs/GUIDES/dip-guide.gz and the files in /etc/ppp/dip.samples. ~# dipset <-Run this and answer the questions to create a dip script.) # dip-go # dip -k <-To kiil dip and the slip/ppp connection.) # man dip Use the script 'fetchsetup' to setup 'fetchmail', the pop2, pop3, etc. mail client, just answer the questions username, password, etc. ~# fetchsetup # fetchmail <-After your slip/ppp connected, retrieve your mail.) # mutt <-You can use mutt to read, send, & respond to mail, mutt can also connect to a pop3 mail box and do what fetchmail does above, but you'll have to read # docs -> /docs/mutt.manual.gz to get guidance on how to configure the /root/.muttrc file for this. If you get this message from fetchmail "Another foreground fetchmail is running at ?" do this to kill it. ~# die -f fetchmail (Or.> ~# killall fetchmail # fetchmail If you want fetchmail to run in the background = daemon mode, put this in your /root/.fetchmailrc file. set daemon 300 <-For example, check for mail every 5 minutes etc.) ~# fetchmail -d 300 <-Or from the command line.) ~# fetchmail -q <-To kill the fetchmail daemon.) If fetchmail or any program just hangs after you start it, do this. ~# fetchmail Hanging... Press Ctrl-C ~# fetchmail To setup 'getpop3' the pop3 mail client, put this info in the /root/.getpop3rc file. # Login name on DosLinux = root | Your service providers mail # domain name = foo.boo.com | Login name on service provider = jerry | # Password for jerry = Xio5p9Bv | Mailer = sendmail user root foo.boo.com jerry Xio5p9Bv mailer /usr/bin/sendmail ~# pop3setup <-Script to do the above.) # getpop3 # man getpop3 The mail that 'fetchmail' and 'getpop3' retrieves, will be processed = sorted by 'procmail', based on guidelines it finds in the /root/.procmailrc file. Sendmail is configured in the /etc/sendmail.cf file, to pass incoming mail to '/usr/local/bin/procmail' for local delivery. To learn about the program procmail, read the docs in the /docs/procmail directory. ~# man procmail ~# man slrn <-Manual pages for DosLinux programs rm and commands. ls lynx fetchmail tin ircII etc... The bash shell has command recall, so you don't have to type in a command again, just press the [Up] or [Down]-arrow-key to recall a command. If you have any 'zombie' processes, do this to remove them... ~# ps x koo ~# pstree -p foo(346)-+-boo(350)---koo(357) ~# kill -9 350 You don't have to go all the way back unless you want to, just kill the parent of the zombie process, not the parent of the parent... If the terminal gets messed up for whatever reason, do this to restore it. ~# reset Even if you can't see what you're typing in, you can still type in reset and press enter. You can also change consoles by pressing left-[Alt] and [Up]-arrow-key, then Alt-F1 etc. to go back. There are 12 consoles on doslinux, so you can download something in one and do something else in another etc. etc. etc... ~# less file.txt <-To read a text file, press Q to exit.) # less file.gz <-To read a compressed text file.) # lynx file.html <-To read a file with a .html extensiom...) # mc <-You can also press [Enter] or [F3] in mc on the above files to read them.) (To get help.> [F1] (Extract Menu...zip.deb.rpm.tar.gz.exe.hqx.lha.rar.uue.arj.Z.> [F2] You can also read a file from within mc. ~# mc (To read a file.> [F3] The builtin editor "mcedit" will -> (To edit a file.> [F4] be called for most things. (To copy a file.> [F5] (To move or rename a file.> [F6] (To quit mc.> [F10] You can install precompiled 'slackware ?.tgz' '?.deb' '?.i386.rpm' packages on doslinux... Press [F2] in mc and chose from the menu the type of package you want to install... package?.i386.rpm <-For example, the highlighted package in mc you want to install is this.) 1. Install current Slackware '?.tgz' <-For slackware package.) 2. Install current '?.deb' <-For debian package.) 3. Install current '?.i386.rpm' <-For redhat you would chose this type option from the menu and press enter.) Convert <-See below for info on this option.) You can see the contents of these archives in mc, by pressing [Enter] or [F3] on them. ?.rpm ?.deb ?.tar.bz ?.tar.gz ?.zip ?.tgz ?.tar.Z ?.tar.tz ?.tz ?.gz ?.Z ?.arj ?.lha/lzh ?.rar ?.exe DosLinux is based on the slackware linux distribution, so if you use one of those 3 extract & install methods above, try to use slackware with slackware packages. You should be able to install debian & redhat packages also, because there's realy no significant difference between the distributions. It's just that debian & redhat tend to be little more library dependent than slackware, this just means that in addition to installing a particular package, you may also have to install libraries that the package requires to run... Because of the above you have to procede with a little more caution with debian & redhat packages. If you install a important package that replaces a important program on doslinux e.g. /bin/bash, you should be sure that the replacement /bin/bash does'nt require a library to run that you don't have installed. In other words, "beware of putting the cart before the horse", find out first what the package is linked with before you install it, you can unpack any package first to inspect it before installing it. ~# ldd bash lib.so.mething.? If it's linked to a lib.something.? you don't have on the system, then install this lib.something.? first, because the program won't run without it. ~# mc foo.boo.deb Press [Enter] to view the contents of a debian.deb package. Press [F3] to get info on a debian.deb package. You can convert a redhat.i386.rpm or debian.deb package to a slackware ?.tgz package... Chose Convert from the menu in mc [F2] then press enter, and the current = highlighted ?.i386.rpm or ?.deb package will be converted... foo.boo.i386.rpm <-For example, you have this.) foo.boo.i386.tgz <-Now you also have this.) You can then install it as a slackware ?.tgz package... You can remove slackware or converted packages that you installed... For example, if you installed a package called foo.boo.tgz... ~# mc In the directory /var/log/packages press [F2] and chose Remove, then the current = highlighted package will be removed, in this example foo.boo. All slackware and converted packages that you install, will be listed in the /var/log/packages directory. The above stuff is based on commands in the /usr/lib/mc/mc.menu & mc.ext files... There are extra copies of the above files in /usr/lib/mc/*.bak. ============================================================================= To create a 8 mb. swap file... ~# dd if=/dev/zero of=/swap bs=1024 count=8192 (Or.> count=4192 for 4 mb. # sync # mkswap -c /swap 8192 # sync # swapon /swap Then put this line in the /etc/fstab file. /swap swap swap defaults 0 0 ~# swapfile <-Run this script to do all of the above.) ~# swapoff /swap <-If you want to remove the /swap file.) # rm /swap /swap swap swap defaults 0 0 <-Remove this from the /etc/fstab file.) ~# rmswap <-Or run this script to remove the swap file.) ============================================================================= ~# free <-To see memory usage...) (Or.> ~# top <-Press q to quit.) # df <-To see disk space...) Don't make any changes to C:\linux from within dos, each directory in C:\linux has a --linux-.--- file, don't remove these from within dos, they are not visable when you're in linux, it's best not to even look in C:\linux from within dos. Don't make changes to /DOS from within linux either. If there's a file or directory in linux that you want to delete, but the system refuses to delete it for whatever reason, e.g. "directory not empty" you can delete it from dos. Try this first, be sure, this will delete the whole directory.) ~# rm -Rf directory C:\ cd linux\root linux\root> ls -A -p -M <- -A or -a = Show hidden files. -p = Indicate directories with \. -M = Show before and after ls.) foofoo {1C\ _booboo {_A <-That's how linux looks from dos, linux\root> deltree foofoo.2.0 if you use dir /p instead of ls.) linux\root> del booboo.tgz linux\root> cd c:\ <-Don't hang around.) If you want to move a file or directory from linux to /DOS do this. file directory ~/root# cp directory /DOS # cp file /DOS Don't use the mv = move command to move a file or directory to /DOS, use the cp = copy command if you must. You can just delete that file and or directory from linux now. ~/root# rm -Rf directory # rm file If you want to move something from dos to linux do this. C:\ copy something linux\root C:\ del something <-You can delete it now if you wish.) Now in linux you have to do this to make that something visable. ~# umssync . Until you do 'umssync .' in the directory something is in, you won't be able to see that something. Never use the move command to put something in linux, always use the copy command if you must. If you look at /DOS from linux and there's nothing there, you'll have to remove any --LINUX- --- file you find in the C:\ directory. C:\ del --linux-.--- (Not the ones in.-> C:\linux\ --LINUX-.--- You can read a file that's in /DOS from linux, but don't edit it. The above instructions are just in case you must do these things, it is generally best to keep to linux when your in linux and to dos when your in dos, otherwise you take the risk of not being able to get back into dos and or linux. If you want to add a program to linux, download it from within linux, unpack it from within linux, install it from within linux. This is a ELF system, it will only run elf compiled programs, so be sure the program you want to download is compiled elf, read the .lsm file that should be with the program or a readme. The program should have a .bin & or .elf somewhere in it's name, for example: program.bin.elf.tar.gz Just because it has a .bin in it's name does'nt mean it's compiled (elf), it could be compiled (aout), look at the date, if it's before August 1995 there is a good chance it's compiled (aout), you won't be able to run it. ~# tar xzvpf program.tar.gz <-To unpack a 'tar.gz' 'tgz' 'tar.Z' file. # unzip program.zip <-If it's a .zip file. # unzip program.exe <-If it's a .exe file. # gzip -d program.gz <-If it's a .gz file. # tar xvpf program.tar <-If it's a .tar file. ~# file program <-To see if a program is compiled elf, use the (file) command, it should say (ELF) somewhere in the little description. ~# file /usr/bin/ncftp <-To test the file command.) # ldd /usr/bin/ncftp <-To see what libraries a program is linked with.) Ncftp is linked with libc & libncurses, this means ncftp won't run without these libraries. If you download a program and try to run it, and it says "can't find lib.something?", this means you don't have a library required to run this program, you can forget about it or get that library and put it in /lib/lib.something?. Just be sure the library is compiled elf and after you put it in /lib, run.> ~# ldconfig -v <-To link it up.) Most unix programs you download will include a man page... ~# mc You can read man pages in 'mc' by pressing [Enter] on them... foo.1 - 9 <-These are the man page extensions that 'mc' recognizes.) foo.1.gz - 9.gz foo.1.Z - 9.Z foo.man foo.man.gz foo.man.Z foo.me <-These are not man page format, but can be read also.) foo.ms ~# readman foo.? <-If you know it's a man page, but it does'nt have one of the above extensions.) Man pages usally have a ?.1 - ?.9 or ?.man extension, for example: foo.1 You can put any man pages in the /usr/man/man1 - man9 directories. If it has a .1 ext. it would go in man1 etc. Most linux software can be found at ftp://sunsite.unc.edu/pub/Linux, or one of it's mirrors, ftp://cc.gatech.edu/pub/linux etc... There are also .hqx, .arj, .uue, .lha/lzh, .rpm, .deb, unpackers. # uudeview program.hqx # uudeview base64file <-Decode base64 file.) # unarj x program.arj # uudecode file.uue <-uudecode = uudeview...v.0.5pl13 # lha x program.lzh/lha # unshar shell-archive.shar (Or.> # sh shell-archive.shar # gzip -dc ?.shar.gz | unshar (Or.> ?.shar.Z # tar xevpf program.tar.bz <-I never saw one of these, but who knows? # tar xjvpf program.tar.tz To unpack .rpm and .deb files... # unrpm program.i386.rpm <-i386 = Compiled not Source.) # unrpm program.src.rpm <-src = Source not Compiled.) # xrpm program.?.rpm <-Another rpm unpacker.) # undeb program.deb <-deb = Compiled not Source.) # man rpm2cpio dpkg-deb There's also a bootfail.bat to boot linux if it refuses to boot from linux.bat, if you removed a important file or program, or made some changes to a important file, bootfail.bat will allow you to get back into linux to fix the problem. This readme is included in doslnx37.exe & on linux in /docs/DosLinux.README.gz. You can remove doslnx37.exe + r00 - r06, after it's installed if you wish... Running a (defragmentation) program on your dos system, should not have a negative affect on C:\linux. Disclaimer... It works on my system "OpenDOS.v.7.01, IDE 540MB HARD DRIVE, CPU-486-DX2-66, 8MB RAM + 4MB SWAP FILE" but this does'nt mean anything, I have just one computer out of millions, if all else fails do this... C:\ deltree linux "Terminate with extreme prejudice." C:\ xdel /dnors linux <-OpenDOS...) ...6-15-97... ============================================================================== This is all the stuff DosLinux supports, either in the kernel or through modules. ~# modprobe module.o <-To load a module.) # lsmod <-To see what modules are loaded.) # rmmod module <-To unload a module.) All the modules are in the /lib/modules/2.0.30/? directory. ============================================================================== IDE support... ============================================================================== Normal floppy disk support CONFIG_BLK_DEV_FD If you want to use your floppy disk drive(s) under Linux, say Y. Information about this driver, especially important for IBM Thinkpad users, is contained in drivers/block/README.fd. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt. Enhanced IDE/MFM/RLL disk/cdrom/tape support CONFIG_BLK_DEV_IDE This will use the full-featured IDE driver to control up to four IDE interfaces, for a combination of up to eight IDE disk/cdrom/tape drives. Useful information about large (>540MB) IDE disks, soundcard IDE ports, and other topics, is all contained in Documentation/ide.txt. If you have one or more IDE drives, say Y here. If your system has no IDE drives, or if memory requirements are really tight, you could say N here, and select the Old harddisk driver instead to save about 13kB of memory in the kernel. To fine-tune IDE drive/interface parameters for improved performance, look for the hdparm package at sunsite.unc.edu:/pub/Linux/kernel/patches/diskdrives/ Include IDE/ATAPI CDROM support CONFIG_BLK_DEV_IDECD If you have a CDROM drive using the ATAPI protocol, say Y. ATAPI is a new protocol used by IDE CDROM and TAPE drives, similar to the SCSI protocol. Most new CDROM drives use ATAPI, including the NEC-260, Mitsumi FX400, Sony 55E, and just about all non-SCSI double(2X), quad(4X), and six(6X) speed drives. At boot time, the TAPE drive will be identified along with other IDE devices, as "hdb" or "hdc", or something similar. If this is your only CDROM drive, you can say N to all other CDROM options, but be sure to say Y to the ISO9660 filesystem. Read the CDROM-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO and the file Documentation/cdrom/ide-cd. Note that older versions of lilo (the linux boot loader) cannot properly deal with IDE/ATAPI CDROMs, so install lilo-16 or higher, available from sunsite.unc.edu:/pub/Linux/system/Linux-boot/lilo. Include IDE/ATAPI TAPE support CONFIG_BLK_DEV_IDETAPE If you have an IDE tape drive using the ATAPI protocol, say Y. ATAPI is a new protocol used by IDE TAPE and ATAPI drives, similar to the SCSI protocol. At boot time, the TAPE drive will be identified along with other IDE devices, as "hdb" or "hdc", or something similar. Be sure to consult the drivers/block/ide-tape.c and Documentation/ide.txt files for usage information. ============================================================================== SCSI support... ============================================================================== SCSI support? CONFIG_SCSI If you want to use a SCSI harddisk, SCSI tapedrive, SCSI CDROM or any other SCSI device under Linux, say Y and make sure that you know the name of your SCSI host adaptor (the card inside your computer that "speaks" the SCSI protocol), because you will be asked for it. You also need to say Y here if you want support for the parallel port version of the 100MB IOMEGA ZIP drive. Please read the SCSI-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt and Documentation/scsi.txt. SCSI disk support CONFIG_BLK_DEV_SD If you want to use a SCSI harddisk or the SCSI or parallel port version of the IOMEGA ZIP drive under Linux, say Y and read the SCSI-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. This is NOT for SCSI CDROMs. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt and Documentation/scsi.txt. SCSI tape support CONFIG_CHR_DEV_ST If you want to use a SCSI tapedrive under Linux, say Y and read the SCSI-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO and drivers/scsi/README.st in the kernel source. This is NOT for SCSI CDROMs. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt and Documentation/scsi.txt . SCSI CDROM support CONFIG_BLK_DEV_SR If you want to use a SCSI CDROM under Linux, say Y and read the SCSI-HOWTO and the CDROM-HOWTO from sunsite.unc.edu:/pub/Linux/docs/HOWTO. Also make sure to enable the ISO9660 filesystem later. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt and Documentation/scsi.txt . SCSI generic support CONFIG_CHR_DEV_SG If you want to use SCSI scanners, synthesizers or CD-writers or just about anything having "SCSI" in its name other than harddisks, CDROMs or tapes, say Y here. Those won't be supported by the kernel directly, so you need some additional software which knows how to talk to these devices using the SCSI protocol. For CD-writers, you would need the program cdwrite, available via ftp (user: anonymous) from sunsite.unc.edu:/pub/Linux/utils/disk-management; for other devices, it's possible that you'll have to write the driver software yourself, so have a look at the SCSI-HOWTO and at the SCSI-Programming-HOWTO, both available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt and Documentation/scsi.txt. ============================================================================ These are the SCSI Hosts = Controllers DosLinux supports... ============================================================================ AdvanSys SCSI support CONFIG_SCSI_ADVANSYS This is a driver for all SCSI host adaptors manufactured by AdvanSys. It is documented in the kernel source in drivers/scsi/advansys.c. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt. Adaptec AHA152X/2825 support CONFIG_SCSI_AHA152X This is support for the AHA-1510, AHA-1520, AHA-1522, and AHA-2825 SCSI host adaptors. It is explained in section 3.3 of the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. You might also want to read the comments at the top of drivers/scsi/aha152x.c. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt. Adaptec AHA1542 support CONFIG_SCSI_AHA1542 This is support for a SCSI host adaptor. It is explained in section 3.4 of the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note that Trantor was recently purchased by Adaptec, and some former Trantor products are being sold under the Adaptec name. If it doesn't work out of the box, you may have to change some settings in drivers/scsi/aha1542.h. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. Adaptec AHA1740 support CONFIG_SCSI_AHA1740 This is support for a SCSI host adaptor. It is explained in section 3.5 of the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. If it doesn't work out of the box, you may have to change some settings in drivers/scsi/aha1740.h. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt. Adaptec AHA274X/284X/294X support CONFIG_SCSI_AIC7XXX Information about this SCSI host adaptor is contained in drivers/scsi/README.aic7xxx and in the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. If it doesn't work out of the box, you may have to change some settings in drivers/scsi/aic7xxx.h. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. BusLogic SCSI support CONFIG_SCSI_BUSLOGIC This is support for BusLogic MultiMaster SCSI Host Adaptors. Consult the SCSI-HOWTO, available via anonymous ftp from sunsite.unc.edu:/pub/Linux/docs/HOWTO and the file drivers/scsi/README.BusLogic for more information. BusLogic FlashPoint SCSI Host Adapters are not supported by this driver, but BusLogic has initiated an upgrade program which allows you to get a better adaptor for few $$. Read about it in drivers/scsi/README.FlashPoint. If this driver does not work correctly without modification, please contact the author. You can build this driver also as a module ( = code which can be inserted in and removed from the running kernel whenever you want), but only a single instance may be loaded. If you want to compile it as a module, say M here and read Documentation/modules.txt. DTC3180/3280 SCSI support CONFIG_SCSI_DTC3280 This is support for DTC 3180/3280 SCSI Host Adaptors. Please read the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO and the file drivers/scsi/README.dtc3x80. This driver is also available as a module (= code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt. UltraStor 14F/34F support CONFIG_SCSI_U14_34F This is support for the UltraStor 14F, 24F and 34F SCSI-2 host adaptor family. The source at drivers/scsi/u14-34f.c contains some information about this hardware. If the driver doesn't work out of the box, you may have to change some settings in drivers/scsi/u14-34f.h. Read the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note that there is also another driver for the same hardware: "UltraStor SCSI support", below. You should only enable one of them. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt. 7000FASST SCSI support CONFIG_SCSI_7000FASST This driver supports the Western Digital 7000 SCSI host adapter. Some information is in the source: drivers/scsi/wd7000.c. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt. NCR53c406a SCSI support CONFIG_SCSI_NCR53C406A This is support for the NCR53c406a SCSI host adapter. For user configurable parameters, check out drivers/scsi/NCR53c406.c in the kernel source. Also read the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this driver as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. Future Domain 16xx SCSI support CONFIG_SCSI_FUTURE_DOMAIN This is support for Future Domain's 16-bit SCSI host adaptors (TMC-1660/1680, TMC-1650/1670, TMC-3260, TMC-1610M/MER/MEX) and other adaptors based on the Future Domain chipsets (Quantum ISA-200S, ISA-250MG; Adaptec AHA-2920; and at least one IBM board). It is explained in section 3.7 of the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt. NCR53c7,8xx SCSI support CONFIG_SCSI_NCR53C7xx This is the 53c7 and 8xx NCR family of SCSI controllers, not to be confused with the NCR 5380 controllers. It is explained in section 3.8 of the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. If it doesn't work out of the box, you may have to change some settings in drivers/scsi/53c7,8xx.h. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt. NCR53C8XX SCSI support CONFIG_SCSI_NCR53C8XX This is the BSD ncr driver adapted to linux for the NCR53C8XX family of PCI-SCSI controllers. This driver supports parity checking, tagged command queuing, fast scsi II transfer up to 10 MB/s with narrow scsi devices and 20 MB/s with wide scsi devices. This driver has been tested OK with linux/i386 and is currently untested under linux/Alpha. If you intend to use this driver under linux/Alpha, just try it first with read-only or mounted read-only devices. Memory mapped io is currently not supported under linux/Alpha. Please read drivers/scsi/README.ncr53c8xx for more information. Always IN2000 SCSI support CONFIG_SCSI_IN2000 This is support for an ISA bus SCSI host adaptor. You'll find more information in drivers/scsi/in2000.readme. If it doesn't work out of the box, you may have to change the jumpers for IRQ or address selection. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. PAS16 SCSI support CONFIG_SCSI_PAS16 This is support for a SCSI host adaptor. It is explained in section 3.10 of the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. If it doesn't work out of the box, you may have to change some settings in drivers/scsi/pas16.h. Qlogic FAS SCSI support CONFIG_SCSI_QLOGIC_FAS This driver works only with the ISA, VLB, and PCMCIA versions of the Qlogic FastSCSI! cards as well as any other card based on the FASXX chip (including the Control Concepts SCSI/IDE/SIO/PIO/FDC cards); it does NOT support the PCI version. The PCI versions are supported by the Qlogic ISP driver though. Information about this driver is contained in drivers/scsi/README.qlogicfas. You should also read the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt. Qlogic ISP SCSI support (EXPERIMENTAL) CONFIG_SCSI_QLOGIC_ISP This driver works for all QLogic PCI SCSI host adaptors (IQ-PCI, IQ-PCI-10, IQ_PCI-D) except for the PCI-basic card. (This latter card is supported by the "AM53/79C974 PCI SCSI" driver). If you say Y here, make sure to say Y to "PCI BIOS support" as well. More information is contained in the file drivers/scsi/README.qlogicisp. You should also read the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt. Seagate ST-02 and Future Domain TMC-8xx SCSI support CONFIG_SCSI_SEAGATE These are 8-bit SCSI controllers; the ST-01 is also supported by this driver. It is explained in section 3.9 of the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. If it doesn't work out of the box, you may have to change some settings in drivers/scsi/seagate.h. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt. Trantor T128/T128F/T228 SCSI support CONFIG_SCSI_T128 This is support for a SCSI host adaptor. It is explained in section 3.11 of the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. If it doesn't work out of the box, you may have to change some settings in drivers/scsi/t128.h. Note that Trantor was recently purchased by Adaptec, and some former Trantor products are being sold under the Adaptec name. UltraStor SCSI support CONFIG_SCSI_ULTRASTOR This is support for the UltraStor 14F, 24F and 34F SCSI-2 host adaptor family. This driver is explained in section 3.12 of the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. If it doesn't work out of the box, you may have to change some settings in drivers/scsi/ultrastor.h. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. Note that there is also another driver for the same hardware: "UltraStor 14F/34F support", above. You should only enable one of them. AM53/79C974 PCI SCSI support CONFIG_SCSI_AM53C974 This is support for the AM53/79C974 SCSI host adapters. Please read drivers/scsi/README.AM53C974 for details. Also, the SCSI-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO, is for you. IOMEGA Parallel Port ZIP drive SCSI support CONFIG_SCSI_PPA ~# modprobe ppa.o <-To load this module.) # mount -t msdos /dev/zip /mnt # cd /mnt This driver supports the parallel port version of IOMEGA's ZIP drive (a 100Mb removable media device). For more information about this driver and how to use it you should read the file drivers/scsi/README.ppa. You should also read the SCSI-HOWTO, which is available via anonymous ftp from sunsite.unc.edu in the directory /pub/Linux/docs/HOWTO. This driver is also available as a module which can be inserted in and removed from the running kernel whenever you want. If you want to use any two of a parallel port ZIP drive, a parallel printer or PLIP on the same parallel port, you should compile the drivers as modules and only insert them as needed. To compile this driver as a module, say M here and read Documentation/modules.txt. Note that you can say N here if you have the SCSI version of the ZIP drive: it will be supported automatically if you enabled the generic "SCSI disk support", above. ============================================================================= This is the network stuff e.g. SLIP/PPP etc. included in the kernel or as modules... ============================================================================= Dummy net driver support CONFIG_DUMMY ~# modprobe dummy.o <-To load this module.) This is essentially a bit-bucket device (i.e. traffic you send to this device is consigned into oblivion) with a configurable IP address. It is most commonly used in order to make your currently inactive SLIP address seem like a real address for local programs. If you use SLIP or PPP, you might want to enable it. Read about it in the Network Administrator's Guide, available via ftp (user: anonymous) from sunsite.unc.edu:/pub/Linux/docs/LDP. Since this thing comes often handy, the default is Y. It won't enlarge your kernel either. What a deal. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. If you want to use more than one dummy device at a time, you need to compile it as a module. Instead of 'dummy', it will then be called 'dummy0', 'dummy1' etc. SLIP (serial line) support CONFIG_SLIP Say Y if you intend to use SLIP or CSLIP (compressed SLIP) to connect to your Internet service provider or to connect to some other local Unix box or if you want to configure your Linux box as a Slip/CSlip server for other people to dial in. SLIP (Serial Line Internet Protocol) is the protocol used to send Internet traffic over telephone lines or serial cables (also known as nullmodems). Normally, your access provider has to support SLIP in order for you to be able to use it, but there is now a SLIP emulator called SLiRP around (available via ftp (user: anonymous) from sunsite.unc.edu:/pub/Linux/system/Network/serial/) which allows you to use SLIP over a regular dial up shell connection. If you plan to use SLiRP, make sure to say Y to CSLIP, below. The NET-2-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO, explains how to configure SLIP. Note that you don't need this option if you just want to run term (term is a program which gives you almost full Internet connectivity if you have a regular dial up shell account on some Internet connected Unix computer. Read the Term-HOWTO). SLIP support will enlarge your kernel by about 4kB. If unsure, say N. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. CSLIP compressed headers CONFIG_SLIP_COMPRESSED This protocol is faster than SLIP because it uses compression on the TCP/IP headers (not on the data itself), but it has to be supported on both ends. Ask your access provider if you are not sure and say Y, just in case. You will still be able to use plain SLIP. If you plan to use SLiRP, the SLIP emulator (available via ftp (user: anonymous) from sunsite.unc.edu:/pub/Linux/system/Network/serial/) which allows you to use SLIP over a regular dial up shell connection, you definitely want to say Y here. The NET-2-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO, explains how to configure CSLIP. This won't enlarge your kernel. Keepalive and linefill CONFIG_SLIP_SMART Adds additional capabilities to the SLIP driver to support the RELCOM line fill and keepalive monitoring. Ideal on poor quality analogue lines. Six bit SLIP encapsulation CONFIG_SLIP_MODE_SLIP6 If you need this and your service provider supports it, you can call it from 'dip' after you make a slip connection... Make sure your service providers IP address is in the /etc/resolv.conf file. Your service provider gives you this when you sign up, or you can ask for it. domain foo.boo.com nameserver 206.114.85.98 <-Example /etc/resolv.conf file with IP address.) ~# dip -tv # port /dev/cua? # speed 19200 <-If you want to change the default speed: 115200) # reset Options: 9600 38400 57600 # term at&fw2 atdt5557070 Connected slip started... Press Ctrl ] dip> default dip> mode slip6 (Or> mode cslip6, mode slip, mode cslip, mode ppp dip> dip -k <-When you want to kill dip and the connection.) ~# man dip Just occasionally you may need to run IP over hostile serial networks that don't pass all control characters or are only seven bit. Saying Y here adds an extra mode you can use with SLIP: "slip6". In this mode, SLIP will only send normal ascii symbols over the serial device. Naturally, this has to be supported at the other end of the link as well. It's good enough, for example, to run IP over the async ports of a Camtec JNT Pad. If unsure, say N. PPP (point-to-point) support CONFIG_PPP PPP (Point to Point Protocol) is a newer and better SLIP. It serves the same purpose: sending Internet traffic over telephone (and other serial) lines. Ask your access provider if they support it, because otherwise you can't use it (not quite true any more: the free program SLiRP can emulate a PPP line if you just have a regular dial up shell account on some UNIX computer; get it via ftp (user: anonymous) from sunsite.unc.edu:/pub/Linux/system/Network/serial/). To use PPP, you need an additional program called pppd as described in Documentation/networking/ppp.txt and in the PPP-HOWTO, available from sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note that you don't need this option if you just want to run term (term is a program which gives you almost full Internet connectivity if you have a regular dial up shell account on some Internet connected UNIX computer. Read the Term-HOWTO). The PPP option enlarges your kernel by about 16kB. This driver is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you said Y to "Version information on all symbols" above, then you cannot compile the PPP driver into the kernel; you can only compile it as a module. If you want to compile it as a module, say M here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. Note that, no matter what you do, the BSD compression code (used to compress the IP packets sent over the serial line; has to be supported at the other end as well) can only be compiled as a module; it is called bsd_comp.o and will show up in the directory modules once you have said "make modules". If unsure, say N. PLIP (parallel port) support CONFIG_PLIP ~# modprobe plip.o <-To load this module.) PLIP (Parallel Line Internet Protocol) is used to create a mini network consisting of two (or, rarely, more) local machines. The parallel ports (the connectors at the computers with 25 holes) are connected using "null printer" or "Turbo Laplink" cables which can transmit 4 bits at a time or using special PLIP cables, to be used on bidirectional parallel ports only, which can transmit 8 bits at a time (you can find the wiring of these cables in drivers/net/README?.plip). The cables can be up to 15m long. This works also if one of the machines runs DOS/Windows and has some PLIP software installed, e.g. the Crynwr PLIP packet driver (http://sunsite.cnam.fr/packages/Telnet/PC/msdos/misc/pktdrvr.txt) and winsock or NCSA's telnet. If you want to use this, say Y and read the PLIP mini-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini as well as the NET-2-HOWTO in sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note that the PLIP protocol was changed and this PLIP driver won't work together with the PLIP support in Linux versions 1.0.x. This option enlarges your kernel by about 8kB. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you want to use both a parallel printer and PLIP, there are two cases: 1) If the printer and the PLIP cable are to use the same parallel port (presumably because you have just one), it is best to compile both drivers as modules and load and unload them as needed. 2) To use different parallel ports for the printer and the PLIP cable, you can say Y to the printer driver, specify the base address of the parallel port(s) to use for the printer(s) with the "lp" kernel command line option. (See the documentation of your boot loader (lilo or loadlin) about how to pass options to the kernel at boot time. The lilo procedure is also explained in the SCSI-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO.) The standard base addresses as well as the syntax of the "lp" command line option can be found in drivers/char/lp.c. You can then say Y to this PLIP driver or, preferably, M in which case Documentation/networking/net-modules.txt tells you how to specify the port and IRQ to be used by PLIP at module load time. It's safe to say N here. =========================================================================== These are Non-SCSI/IDE/ATAPI cdrom drives that DosLinux also supports... =========================================================================== Support non-SCSI/IDE/ATAPI drives CONFIG_CD_NO_IDESCSI If you have a CDROM drive that is neither SCSI nor IDE/ATAPI, say Y here, otherwise N. Read the CDROM-HOWTO, available via ftp (user: anonymous) from sunsite.unc.edu:/pub/Linux/docs/HOWTO. Note that the answer to this question doesn't directly affect the kernel: saying N will just cause this configure script to skip all the questions about these CDROM drives. If you are unsure what you have, say Y and find out whether you have one of the following drives. For each of these drivers, a file Documentation/cdrom/ exists. Especially in cases where you do not know exactly which kind of drive you have you should read there. Most of these drivers use a file include/linux/.h where you can define your interface parameters and switch some internal goodies. All these CDROM drivers are also usable as a module (= code which can be inserted in and removed from the running kernel whenever you want). If you want to compile them as module, say M instead of Y and read Documentation/modules.txt. If you want to use any of these CDROM drivers, you also have to say Y to "ISO9660 cdrom filesystem support" below (this answer will get "defaulted" for you if you enable any of the Linux CDROM drivers). Sony CDU31A/CDU33A CDROM support CONFIG_CDU31A ~# modprobe cdu31a.o <-To load.) These CDROM drives have a spring-pop-out caddyless drawer, and a rectangular green LED centered beneath it. NOTE: these CDROM drives will not be auto detected by the kernel at boot time; you have to provide the interface address as an option to the kernel at boot time as described in Documentation/cdrom/cdu31a or fill in your parameters into linux/drivers/cdrom/cdu31a.c. See the documentation of your boot loader (lilo or loadlin) about how to pass options to the kernel. The lilo procedure is also explained in the SCSI-HOWTO. Standard Mitsumi [no XA/Multisession] CDROM support CONFIG_MCD ~# modprobe mcd.o <-To load this module.) This is the older of the two drivers for the older Mitsumi models LU-005, FX-001 and FX-001D. This is not the right driver for the FX-001DE and the triple or quad speed models (all these are IDE/ATAPI models). With the old LU-005 model, the whole drive chassis slides out for cd insertion. The FX-xxx models use a motorized tray type mechanism. Note that this driver does not support XA or MultiSession CDs (PhotoCDs). There is a new driver (next question) which can do this. If you want that one, say N here. If the driver doesn't work out of the box, you might want to have a look at linux/include/linux/mcd.h. Mitsumi [XA/MultiSession] support CONFIG_MCDX ~# modprobe mcdx.o <-To load.) Use this driver if you want to be able to read XA or MultiSession CDs (PhotoCDs) as well as ordinary CDs with your Mitsumi LU-005, FX-001 or FX-001D CDROM drive. In addition, this driver uses much less kernel memory than the old one, if that is a concern. This driver is able to support more than one drive, but each drive needs a separate interface card. Check out Documentation/cdrom/mcdx. Matsushita/Panasonic/Creative, Longshine, TEAC CDROM support CONFIG_SBPCD ~# modprobe sbpcd.o <-To load.) This driver supports most of the drives which use the Panasonic or SoundBlaster interface. The Matsushita CR-521, CR-522, CR-523, CR-562, CR-563 drives (sometimes labeled "Creative"), the CreativeLabs CD200, the Longshine LCS-7260, the "IBM External ISA CDROM" (in fact a CR-56x model), the TEAC CD-55A fall under this category. Some other "electrically compatible" drives (Vertos, Genoa, some Funai models) are currently not supported; for the Sanyo H94A drive currently a separate driver (asked later) is responsible. Most drives have a uniquely shaped faceplate, with a caddyless motorized drawer, but without external brand markings. The older CR-52x drives have a caddy and manual loading/eject, but still no external markings. The driver is able to do an extended auto-probing for interface addresses and drive types; this can help to find facts in cases you are not sure, but can consume some time during the boot process if none of the supported drives gets found. Once your drive got found, you should enter the reported parameters into linux/include/linux/sbpcd.h and set "DISTRIBUTION 0" there. This driver can support up to four CDROM interface cards, and each card can support up to four CDROM drives; if you say Y here, you will be asked how many controllers you have. If compiled as a module, only one interface card (but with up to four drives) is usable. Aztech/Orchid/Okano/Wearnes/TXC/CyDROM CDROM support CONFIG_AZTCD ~# aztcd.o <-To load.) This is your driver if you have an Aztech CDA268-01A, Orchid CD-3110, Okano or Wearnes CDD110, Conrad TXC, or CyCDROM CR520 or CR540 CDROM drive. This driver - just like all these CDROM drivers - is NOT for CDROM drives with IDE/ATAPI interface, such as Aztech CDA269-031SE. Sony CDU535 CDROM support CONFIG_CDU535 ~# modprobe sonycd535.o <-To load.) This is the driver for the older Sony CDU-535 and CDU-531 CDROM drives. Goldstar R420 CDROM support CONFIG_GSCD ~# modprobe gscd.o <-To load.) If this is your CDROM drive, say Y here. As described in linux/Documentation/cdrom/gscd, you might have to change a setting in the file include/linux/gscd.h before compiling the kernel. Philips/LMS CM206 CDROM support CONFIG_CM206 ~# modprobe cm206.o <-To load.) If you have a Philips/LMS CDROM drive cm206 in combination with a cm260 host adapter card, say Y here. Optics Storage DO LPHIN 8000AT CDROM support CONFIG_OPTCD ~# modprobe optcd.o <-To load.) This is the driver for the 'DOLPHIN' drive with a 34-pin Sony compatible interface. It also works with the Lasermate CR328A. If you have one of those, say Y. This driver does not work for the Optics Storage 8001 drive; use the IDE-ATAPI CDROM driver for that one. Sanyo CDR-H94A CDROM support CONFIG_SJCD ~# modprobe sjcd.o <-To load.) If this is your CDROM drive, say Y here. Command line option (or 'append=' option in /etc/lilo.conf) is: sjcd= Here 'port' is the base i/o address used by the drive. It defaults to port=0x340. Soft configurable cdrom interface card support CONFIG_CDI_INIT If you want to include boot-time initialization of any cdrom interface card that is software configurable, say Y here. Currently only the ISP16/MAD16/Mozart cards are supported. ISP16/MAD16/Mozart soft configurable cdrom interface support CONFIG_ISP16_CDI ~# modprobe isp16.o <-To load this module.) If you want any of these cdrom interface cards based on the OPTi 82C928 or 82C929 chips get detected and possibly configured at boot time, please say Y. Boot time command line options (or 'append=' options in /etc/lilo.conf) are: isp16=,,, Here 'port','irq' and 'dma' are the base i/o address, irq number and dma line assumed to be used by the attached cdrom drive. 'drive_type' is the type of cdrom drive or its emulation mode. Valid values for drive_type include: Sanyo, Panasonic (same as Sanyo), Sony and Mitsumi. Default values are: port=0x340, irq=0, dma=0, drive_type=Sanyo. The command line isp16=noisp16 will skip detection and configuration after all. N.B. options are case sensitive. Read Documentation/cdrom/isp16 for details. ============================================================================ These are the filesystems and binary formats that DosLinux supports... ============================================================================ Kernel support for A.OUT binaries... ~# modprobe binfmt_aout <-To load aout module.) If you want to run aout binaries, you'll need /lib/libc.so.4.7.6, you can get this from... ftp.tsx-11.mit.edu /pub/linux/packages/GCC libc-4.7.6.bin.tar.gz # tar xzvfC libc-4.7.6.bin.tar.gz / <-Unpack it.) # ln -sf /lib/libc.so.4.7.6 /lib/libc.so.4 <-Create links.) # ln -sf /usr/i486-linuxaout/lib/libm.so.4.6.27 /lib/libm.so.4 CONFIG_BINFMT_AOUT A.out (Assembler.OUTput) is a set of formats for libraries and executables used in the earliest versions of UNIX. Linux used the a.out formats QMAGIC and ZMAGIC until they were replaced with the ELF format. As more and more programs are converted to ELF, the use for a.out will gradually diminish. If you disable this option it will reduce your kernel by one page. This is not much and by itself does not warrant removing support. However its removal is a good idea if you wish to ensure that absolutely none of your programs will use this older executable format. If you don't know what to answer at this point then answer Y. If someone told you "You need a kernel with QMAGIC support" then you'll have to say Y here. You may answer M to compile a.out support as a module and later load the module when you want to use a program or library in a.out format. Saying M or N here is dangerous though, because some crucial programs on your system might still be in A.OUT format. Kernel support for JAVA binaries CONFIG_BINFMT_JAVA ~# modprobe binfmt_java <-To load this module.) JAVA is an object oriented programming language developed by SUN; JAVA programs are compiled into "JAVA bytecode" which can then be interpreted by run time systems on many different operating systems. These JAVA binaries are becoming a universal executable format. This option allows you to run a Java binary just like any other Linux program: by typing in its name. As more and more Java programs become available, the use for this will gradually increase. You can even execute HTML files containing JAVA applets (= JAVA binaries) if those files start with the string "". If you want to use this, read Documentation/java.txt and the Java on Linux HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO. You will then need to install the run time system contained in the Java Developers Kit (JDK) as described in the HOWTO. If you disable this option it will reduce your kernel by about 4kB. This is not much and by itself does not warrant removing support. However its removal is a good idea if you do not have the JDK installed. If you don't know what to answer at this point then answer Y. You may answer M for module support and later load the module when you install the JDK or find an interesting Java program that you can't live without. Second extended fs support CONFIG_EXT2_FS ~# mount -t ext2 /dev/hda? /mnt <-To mount filesystem.) This is the de facto standard Linux filesystem (= method to organize files on a storage device) for harddisks. You want to say Y, unless you intend to use Linux exclusively from inside a DOS partition using the umsdos filesystem. The advantage of the latter is that you can get away without repartitioning your hard drive (which often implies backing everything up and restoring afterwards); the disadvantage is that Linux becomes susceptible to DOS viruses and that umsdos is somewhat slower than ext2fs. Even if you want to run Linux in this fashion, it might be a good idea to have ext2fs around: it enables you to read more floppy disks and facilitates the transition to a *real* Linux partition later. Another (rare) case which doesn't require ext2fs is a diskless Linux box which mounts all files over the network using NFS (in this case it's sufficient to enable NFS filesystem support below; if you are planning to do this, have a look at the netboot package in /pub/Linux/system/Linux-boot/, available via ftp (user: anonymous) from sunsite.unc.edu, extract with "tar xzvf filename"). There is a short ext2fs-FAQ, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/faqs. This option will enlarge your kernel by about 41 kB. Default is Y. fat fs support CONFIG_FAT_FS If you want to use one of the FAT-based filesystems (the MS-DOS, VFAT (Windows'95) and UMSDOS filesystems), then you must include FAT support. This is not a filesystem in itself, but it provides the foundation for the other filesystems. This option will enlarge your kernel about 24 kB. If unsure, say Y. If you want to compile this as a module however ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. Note that if you compile the FAT support as a module, you cannot compile any of the FAT-based file- systems into the kernel - they will have to be modules as well. The filesystem of your root partition cannot be a module. msdos fs support CONFIG_MSDOS_FS ~# mount -t msdos /dev/hda? /mnt <-To mount filesystem.) This allows you to mount MSDOS partitions of your harddrive (unless they are compressed; to access compressed MSDOS partitions under Linux, you can either use the DOS emulator DOSEMU, described in the DOSEMU-HOWTO, available via ftp (user: anonymous) at sunsite.unc.edu:/pub/Linux/docs/HOWTO, or try dmsdosfs in sunsite.unc.edu:/pub/Linux/system/Filesystems/dosfs. If you intend to use dosemu with a non-compressed MSDOS partition, say Y here) and MSDOS floppies. This means that file access becomes transparent, i.e. the MSDOS files look and behave just like all other Unix files. Another way to read and write MSDOS floppies from within Linux (but not transparently) is with the mtools ("man mtools") program suite, which doesn't require the msdos filesystem support. If you want to use umsdos, the Unix-like filesystem on top of DOS, which allows you to run Linux from within a DOS partition without repartitioning, you'll have to say Y or M here. If your have Windows'95 or Windows NT installed on your MSDOS partitions, you should use the VFAT filesystem instead, or you will not be able to see the long filenames generated by Windows'95 / Windows NT. This option will enlarge your kernel by about 7 kB. If unsure, say Y. This will only work if you said Y to "fat fs support" as well. If you want to compile this as a module however ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. Note that the filesystem of your root partition cannot be a module. vfat fs support CONFIG_VFAT_FS ~# mount -t vfat /dev/hda? /mnt <-To mount filesystem.) This allows you to mount MSDOS partitions of your harddrive. It will let you use filenames in a way compatible with the long filenames used by Windows'95 and Windows NT fat-based (not NTFS) partitions. It does not support Windows'95 compressed filesystems. You cannot use the VFAT filesystem for your root partition; use UMSDOS instead. This option enlarges your kernel by about 10 kB and it only works if you enabled the "fat fs support" above. Please read the file Documentation/filesystems/vfat.txt for details. If unsure, say N. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. nls: Native language codepages and Unicode support CONFIG_NLS This is required by the FAT based filesystems and by the ISO9660 filesystem with Joliet support. Joliet is a Microsoft extension for CDROMs that supports Unicode. This allows translation between different character sets. When dealing with the FAT based filesystems, there are two character sets that are important. The first is the codepage. Codepages are character sets that are used by DOS to allow filenames to have native language characters when character sets were limited to 256 characters. The codepage is the character set that is used to store native language characters on disk. The two most common codepages are 437 in the United States and 850 in much of Europe. The second important character set is the input/output character set. This is the character set that is displayed on the screen. In the United States, this will almost always be the ISO 8859-1 character set. This is the default. Linux will only do a translation of the FAT filenames, not the contents of the files. nls iso8859-1 CONFIG_NLS_ISO8859_1 ISO8859-1 is the Latin 1 character set, and it covers most West European languages such as Albanian, Catalan, Danish, Dutch, English, Faeroese, Finnish, French, German, Galician, Irish, Icelandic, Italian, Norwegian, Portuguese, Spanish, and Swedish. nls codepage 437 CONFIG_NLS_CODEPAGE_437 This is the DOS codepage that is used in the United States and parts of Canada. nls codepage 850 CONFIG_NLS_CODEPAGE_850 This is the DOS codepage that is used in much of Europe--United Kingdom, Germany, Spain, Italy, and [add more countries here]. It has some characters useful to many European languages that are not part of codepage 437. umsdos: Unix like fs on top of std MSDOS fs CONFIG_UMSDOS_FS Say Y here if you want to run Linux from within an existing DOS partition of your harddrive. The advantage of this is that you can get away without repartitioning your hard drive (which often implies backing everything up and restoring afterwards) and hence you're able to quickly try out Linux or show it to your friends; the disadvantage is that Linux becomes susceptible to DOS viruses and that UMSDOS is somewhat slower than ext2fs. Another use of umsdos is to write files with long unix filenames to MSDOS floppies; it also allows unix style softlinks and owner/permissions of files on MSDOS floppies. You will need a program called umssync in order to make use of umsdos. Read Documentation/filesystems/umsdos.txt. This option enlarges your kernel by about 25 kB and it only works if you enabled both "fat fs support" and "msdos fs support" above. If unsure, say N. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. Note that the filesystem of your root partition cannot be a module. SMB filesystem support (to mount WfW shares etc..) CONFIG_SMB_FS ~# modprobe smbfs.o <-To load this module.) # man smbmount # man smbumount SMB (Server Message Buffer) is the protocol Windows for Workgroups (WfW), Windows NT and Lan Manager use to talk to each other over an ethernet. Enabling this allows you to mount their filesystems and access them just like any other unix directory. For details, read Documentation/filesystems/smbfs.txt. Note: if you just want your box to act as an SMB *server* and make files and printing services available to Windows clients (which need to have a TCP/IP stack), you don't need to enable this filesystem support; you can use the program samba (available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/system/Network/samba) for that. General information about how to connect Linux, Windows machines and Macs is on the WWW at http://eats.com/linux_mac_win.html (to browse the WWW, you need to have access to a machine on the Internet that has one of the programs lynx, netscape or Mosaic). If you want to compile the SMB support as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. Most people say N, however. SMB Win95 bug work-around CONFIG_SMB_WIN95 If you want to connect to a share exported by Windows 95, you should say Y here. The Windows 95 server contains a bug that makes listing directories unreliable. This option slows down the listing of directories. This makes the Windows 95 server a bit more stable. /proc filesystem support CONFIG_PROC_FS This is a virtual filesystem providing information about the status of the system. "Virtual" means that it doesn't take up any space on your harddisk: the files are created on the fly when you access them. Also, you cannot read the files with less: you need to use more or cat. The filesystem is explained in the Kernel Hacker's Guide, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/LDP and also on the proc(8) manpage ("man 8 proc"). This option will enlarge your kernel by about 18 kB. It's totally cool; for example, "cat /proc/interrupts" gives information about what the different IRQs are used for at the moment (there is a small number of Interrupt ReQuest lines in your computer that are used by the periphery to gain the CPU's attention - often a source of trouble if two devices are mistakenly configured to use the same IRQ). Several programs depend on this, so everyone should say Y here. NFS filesystem support... CONFIG_NFS_FS ~# modprobe nfs.o <-To load this module.) # portmap # mount /nfs # cd /nfs /mnt # ls # cd /root /root# umount /nfs The above presumes you have the nfs server you want to mount in the /etc/fstab file. nfs.server.com:/pub/sleepy /nfs nfs defaults 0 0 <-For example.) If you are connected to some other (usually local) Unix computer (using SLIP, PLIP, PPP or ethernet) and want to mount files residing on that computer (the NFS server) using the Network File Sharing protocol, say Y. "Mounting files" means that the client can access the files with usual UNIX commands as if they were sitting on the client's harddisk. For this to work, the server must run the programs nfsd and mountd (but does not need to have NFS filesystem support enabled). NFS is explained in the Network Administrator's Guide, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/LDP, and on its man page: "man nfs". There is also a NFS-FAQ in sunsite.unc.edu:/pub/Linux/docs/faqs which presumes that you know the basics of NFS already. If you say Y here, you should have said Y to TCP/IP networking also. This option would enlarge your kernel by about 27 kB. This filesystem is also available as a module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt. If you configure a diskless machine which will mount its root filesystem over nfs, you cannot compile this driver as a module. If you don't know what all this is about, say N. ISO9660 cdrom filesystem support CONFIG_ISO9660_FS ~# mount -r -t iso9660 /dev/cdrom /cdrom <-To mount.) This is the standard filesystem used on CDROMs. It was previously known as "High Sierra Filesystem" and is called "hsfs" on other Unix systems. The so-called Rock-Ridge extensions which allow for long Unix filenames are also supported by this driver. If you have a CDROM drive and want to do more with it than just listen to audio CDs and watch its LEDs, say Y (and read the CDROM-HOWTO, available via ftp (user: anonymous) from sunsite.unc.edu:/pub/Linux/docs/HOWTO), thereby enlarging your kernel by about 27 kB; otherwise say N. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. Parallel printer support CONFIG_PRINTER ~# modprobe lp <-To load this module.) # lpd <-Start printer daemon.) If you want the printer module "lp.o" & daemon "lpd" loaded at boot time, remove the # from those lines in the /etc/rc.d/rc.M file. If you intend to attach a printer to the parallel port of your Linux box (as opposed to using a serial printer; if the connector at the printer has 9 or 25 holes ["female"], then it's serial), say Y. Also read the Printing-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. If you want to use both a parallel printer and PLIP, there are two cases: 1) If the printer and the PLIP cable are to use the same parallel port (presumably because you have just one), it is best to compile both drivers as modules and load and unload them as needed. 2) To use different parallel ports for the printer and the PLIP cable, you can say Y to this printer driver, specify the base address of the parallel port(s) to use for the printer(s) with the "lp" kernel command line option. (See the documentation of your boot loader (lilo or loadlin) about how to pass options to the kernel at boot time. The lilo procedure is also explained in the SCSI-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO.) The standard base addresses as well as the syntax of the "lp" command line option can be found in drivers/char/lp.c. You can then say Y to the PLIP driver or, preferably, M in which case Documentation/networking/net-modules.txt tells you how to specify the port and IRQ to be used by PLIP at module load time. ============================================================================ Non Serial Mouse Support... Ftape.v.2.11a Driver... APM... ============================================================================ Mouse Support (not serial mice) CONFIG_MOUSE This is for machines with a bus mouse or a PS/2 mouse as opposed to a serial mouse. Most people have a regular serial MouseSystem or Microsoft mouse (made by Logitech) that plugs into a COM port (rectangular with 9 or 25 pins). These people say N here. If you have something else, read the Busmouse-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO and say Y here. If you have a laptop, you either have to check the documentation or experiment a bit to find out whether the trackball is a serial mouse or not; it's best to say Y here for you. Note that the answer to this question won't directly affect the kernel: saying N will just cause this configure script to skip all the questions about non-serial mice. If unsure, say Y. Logitech busmouse support CONFIG_BUSMOUSE ~# modprobe busmouse.o <-To load this module.) Logitech mouse connected to a proprietary interface card. It's generally a round connector with 9 pins. Note that the newer mice made by Logitech don't use the Logitech protocol anymore; for those, you don't need this option. You want to read the Busmouse-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. If you are unsure, say N and read the HOWTO nevertheless: it will tell you what you have. PS/2 mouse (aka "auxiliary device") support CONFIG_PSMOUSE ~# modprobe psaux.o <-To load this module.) The PS/2 mouse connects to a special mouse port that looks much like the keyboard port (small circular connector with 6 pins). This way, the mouse does not use any serial ports. This port can also be used for other input devices like light pens, tablets, keypads. Compaq, AST and IBM all use this as their mouse port on currently shipping machines. The trackballs of some laptops are PS/2 mice also. In particular, the C&T 82C710 mouse on TI Travelmates is a PS/2 mouse. Although PS/2 mice are not technically bus mice, they are explained in detail in the Busmouse-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. If you are unsure, say N and read the HOWTO nevertheless: it will tell you what you have. Microsoft busmouse support CONFIG_MS_BUSMOUSE ~# modprobe msbusmouse.o <-To load this module.) These animals (also called Inport mice) are connected to an expansion board using a round connector with 9 pins. If this is what you have, say Y and read the Busmouse-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. If you are unsure, say N and read the HOWTO nevertheless: it will tell you what you have. Also be aware that several vendors talk about 'Microsoft busmouse' and actually mean PS/2 busmouse - so count the pins on the connector. ATIXL busmouse support CONFIG_ATIXL_BUSMOUSE ~# modprobe atixmouse.o <-To load this module.) This is a rare type of busmouse that is connected to the back of an ATI video card. Note that most ATI mice are actually Microsoft busmice. Read the Busmouse-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. If you are unsure, say N and read the HOWTO nevertheless: it will tell you what you have. Ftape (QIC-80/Travan) support CONFIG_FTAPE If you have a tape drive that is connected to your floppy controller, say Y here. Some tape drives (like the Iomega Ditto 3200) come with a high speed controller of its own. These drives (and their companion controller) is also supported. If you have a special controller (such as the CMS FC-10, FC-20, Iomega Mach-II, or Ditto Dash), you must configure it by editing the file drivers/char/ftape/Makefile. If you want to use such a tape drive on a PCI-bus based system, please read the file drivers/char/ftape/README.PCI. This driver is also available as a runtime loadable module ( = code which can be inserted in and removed from the running kernel whenever you want). If you want to compile it as a module, say M here and read Documentation/modules.txt. Advanced Power Management CONFIG_APM APM is a BIOS specification for saving power using several different techniques. This is mostly useful for battery powered laptops with APM compliant BIOSes. Specifically, the time will be reset after a USER RESUME operation, the /proc/apm device will provide battery status information, and user-space programs will receive notification of APM "events" (e.g., battery status change). This driver does not spin down disk drives (see hdparm(8) for that); and it doesn't turn off VESA-compliant "green" monitors. This driver does not support the TI 4000M TravelMate and the ACER 486/DX4/75 because they don't have compliant BIOSes. Many "green" desktop machines also don't have compliant BIOSes, and this driver will cause those machines to panic during the boot phase (typically, these machines are using a data segment of 0040, which is reserved for the Linux kernel). If you get random kernel OOPSes that don't seem to be related to anything and you have a motherboard with APM support, try disabling/enabling this option. Generally, if you don't have a battery in your machine, there isn't much point in using this driver. ============================================================================ Soundcard Support...These are the soundcards DosLinux supports... ============================================================================ ~# modprobe sblaster.o <-For example if you have a sb sound card.) Load the module that matches your soundcard, then play this sound file to test the driver. ~# play -v 30 linux.au <-Use 'play' for au, snd, wav, voc, etc. files.) # rmmod sblaster <-To unload driver module.) Play is part of 'sox' which also includes 'rec', this allows you to make a (rec)ording using your soundcard and a mike. ~# rec -v 30 test.au <-Set record = mic volume, 0 - 100.) # play -v 30 test.au # man sox <-Man page.) There are two sound mixer programs 'mixer' & 'aumix'. ~# mixer pcm 30 <-To set the speaker volume, this can be 0 - 100. ~# aumix -w 30 If you want to play a midi file use playmidi. ~# playmidi file.midi # playmidi file.midi | mixer pcm 30 To play .mod, .s3m, etc. sound files, get 'mikmod-2.14?-unix.tar.gz'. ftp://sunsite.unc.edu/pub/Linux/apps/sound/players ~# aumix -w 30 # mikmod -i file.mod <-Press 'q' to quit.) # mikmod -i file.s3m When you press 'Enter' on a image or sound file in the browser 'lynx', it will be downloaded then viewed or played. If you just want to download the image or audio file, press the 'd' key. Sound card support CONFIG_SOUND If you have a Sound Card in your Computer, i.e. if it can say more than an occasional beep, say Y. Be sure to have all the information about your sound card and its configuration down (I/O port, interrupt and DMA channel), because you will be asked for it. You want to read the Sound-HOWTO, available via ftp (user: anonymous) from sunsite.unc.edu:/pub/Linux/docs/HOWTO. There is also some information in various README files in drivers/sound. If you want to compile this as a module ( = code which can be inserted in and removed from the running kernel whenever you want), say M here and read Documentation/modules.txt. I'm told that even without a sound card, you can make your computer say more than an occasional beep, by programming the PC speaker. Kernel patches and programs to do that are at sunsite.unc.edu:/pub/Linux/kernel/patches/console/pcsndrv-X.X.tar.gz, to be extracted with "tar xzvf filename". ProAudioSpectrum 16 support CONFIG_PAS ~# modprobe pa.spectrum.o <-To load this module.) Answer Y only if you have a Pro Audio Spectrum 16, ProAudio Studio 16 or Logitech SoundMan 16. Don't answer 'y' if you have some other card made by Media Vision or Logitech since they are not PAS16 compatible. SoundBlaster (SB, SBPro, SB16, clones) support CONFIG_SB ~# modprobe sblaster.o <-To load this module.) Answer "y" if you have an original SoundBlaster card made by Creative Labs or a 100% hardware compatible clone (like the Thunderboard or SM Games). If your card was in the list of supported cards look at the card specific instructions in the drivers/sound/Readme.cards file before answering this question. For an unknown card you may answer Y if the card claims to be SoundBlaster compatible. Gravis Ultrasound support CONFIG_GUS Enable this option for any type of Gravis Ultrasound card, including the GUS or GUS MAX. PSS (ECHO-ADI2111) support CONFIG_PSS ~# modprobe pss.sound.o <-To load this module.) Answer Y only if you have Orchid SW32, Cardinal DSP16 or some other card based on the PSS chipset (AD1848 codec + ADSP-2115 DSP chip + Echo ESC614 ASIC CHIP). 16 bit sampling option of GUS (_NOT_ GUS MAX) CONFIG_GUS16 ~# modprobe gus16.o <-To load this module.) Answer Y if you have installed the 16 bit sampling daughtercard on your GUS. Answer N if you have a GUS MAX, since enabling this option disables GUS MAX support. GUS MAX support CONFIG_GUSMAX ~# modprobe gusmax.o <-To load this module.) Answer Y only if you have a Gravis Ultrasound MAX. Microsoft Sound System support CONFIG_MSS ~# modprobe msoft.sound.o <-To load this module.) Again think carefully before answering Y to this question. It's safe to answer Y if you have the original Windows Sound System card made by Microsoft or Aztech SG 16 Pro (or NX16 Pro). Also you may answer Y in case your card is NOT among these: ATI Stereo F/X, AdLib, Audio Excell DSP16, Cardinal DSP16, Ensoniq SoundScape (and compatibles made by Reveal and Spea), Gravis Ultrasound, Gravis Ultrasound ACE, Gravis Ultrasound Max, Gravis Ultrasound with 16 bit option, Logitech Sound Man 16, Logitech SoundMan Games, Logitech SoundMan Wave, MAD16 Pro (OPTi 82C929), Media Vision Jazz16, MediaTriX AudioTriX Pro, Microsoft Windows Sound System (MSS/WSS), Mozart (OAK OTI-601), Orchid SW32, Personal Sound System (PSS), Pro Audio Spectrum 16, Pro Audio Studio 16, Pro Sonic 16, Roland MPU-401 MIDI interface, Sound Blaster 1.0, Sound Blaster 16, Sound Blaster 16ASP, Sound Blaster 2.0, Sound Blaster AWE32, Sound Blaster Pro, TI TM4000M notebook, ThunderBoard, Turtle Beach Tropez, Yamaha FM synthesizers (OPL2, OPL3 and OPL4), 6850 UART MIDI Interface. For cards having native support in VoxWare, consult the card specific instructions in drivers/sound/Readme.cards. Some drivers have their own MSS support and enabling this option will cause a conflict. Ensoniq Soundscape support CONFIG_SSCAPE ~# modprobe ensoniq.o <-To load this module.) Answer Y if you have a soundcard based on the Ensoniq SoundScape chipset. Such cards are being manufactured at least by Ensoniq, Spea and Reveal (Reveal makes also other cards). MediaTriX AudioTriX Pro support CONFIG_TRIX ~# modprobe audiotrix.o <-To load this module.) Answer Y if you have the AudioTriX Pro sound card manufactured by MediaTrix. Support for MAD16 and/or Mozart based cards CONFIG_MAD16 ~# modprobe mad16.o <-To load this module.) Answer Y if your card has a Mozart (OAK OTI-601) or MAD16 (OPTi 82C928 or 82C929) audio interface chip. These chips are currently quite common so it's possible that many no-name cards have one of them. In addition the MAD16 chip is used in some cards made by known manufacturers such as Turtle Beach (Tropez), Reveal (some models) and Diamond (latest ones). Support for Crystal CS4232 based (PnP) cards CONFIG_CS4232 ~# modprobe pnp.sound.o <-To load this module.) Enable this if you have a card based on the Crystal CS4232 chip set. /dev/dsp and /dev/audio support CONFIG_AUDIO Answering N disables /dev/dsp and /dev/audio, the A/D and D/A converter devices. Answer N only if you know you will not need the option. They are usually required. Answer Y. ...6-15-97... ============================================================================== These are the Graphic Cards that Svgalib...v.1.2.10 supports... ============================================================================== Supported chipsets... VGA and compatibles 320x200x256, and the series of 16-color and non-standard planar 256 color modes supported by VGAlib, as well as 720x348x2. Cirrus Logic GD542x/3x All the modes, including 256 color, 32K/64K color, 16M color (3 bytes per pixel) and 32-bit pixel 16M color modes (5434). Some bitblt functions are supported. The driver doesn't work with mode dumps, but uses a SVGA abstraction with mode timings like the X drivers. Tseng ET4000/ET4000W32(i/p) Derived from VGAlib; not the same register values. ET4000 register values are not compatible; see et4000/README. Make sure the colors are right in hicolor mode; the vgatest program should draw the same color bars for 256 and hicolor modes (the DAC type is defined in et4000.regs or the dynamic registers file). ET4000/W32 based cards usually have an AT&T or Sierra 15025/6 DAC. With recent W32p based cards, you might have some luck with the AT&T DAC type. If the high resolution modes don't work, you can try dumping the registers in DOS using the program in the et4000 directory and putting them in a file (/etc/vga/libvga.et4000 is parsed at runtime if DYNAMIC is defined in config.h). 640x480x256, 800x600x256, 1024x768x256, 640x480x32K, 800x600x32K, 640x480x16M, etc. Reports of ET4000/W32i/p functionality are welcome. There may be a problem with the way the hicolor DAC register is handled; dumped registers may use one of two timing methods, with the value written to the register for a particular DAC for a hicolor mode (in vgahico.c) being correct for just one of the these methods. As a consequence some dumped resolutions may work while others don't. Trident TVGA 8900C/9000 (and possibly also 8800CS/8900A/B) Derived from tvgalib by Toomas Losin. 640x480x256, 800x600x256, 1024x768x256 (I and NI) Might be useful to add 16-color modes (for those equipped with a 512K TVGA9000). Oak Technologies OTI-037/67/77/87 Driver by Christopher Wiles; includes 32K color modes for OTI-087. See README.oak. ATI Mach32 The driver by Michael Weller supports all BIOS-defined modes and more... It hits the best out of your card. Some modes may not have nice default timings but it uses the ATI's EEPROM for custom config or allows to specify modes in libvga.config. Some problems may occur with quite some Third party cards (usually on board) Mach32 based controllers as they do not completely conform to the Mach32 data sheets. Check out README.mach32 (and README.config). Do send feedback. ATI Mach64 THIS IS A NON-FUNCTIONAL DRIVER. USE AT OWN RISK. Support for 640x480x256@60hz is being worked on. At the moment it is only supposed to work with a the ATI WINTURBO 2MB VRAM VLB RAMDAC ATI68860. Please see README.mach64 for info. ATI SVGA (VGA Wonder and friends) This is no real driver. I do not support any new modes. However it saves additional card setup and thus allows use of the plain VGA modes even when you are using non standard text modes. It is possible to enforce use of this driver even on Mach32 but not very useful. S3 The driver is not complete, but should work on a number of cards/RAMDACs, and 640x480x256 should work on most card. The best support is for a 801/805 with AT&T20C490-compatible RAMDAC, and S3-864 + SDAC. All 256/32K/64K/16M works for them (within the bounds of video memory & ramdac restrictions). None of the accelaration function is supported yet. The chip level code should work with the 964/868/968, but most likely the card they come on would use an unsupported ramdac/clock chip. Support for these chips is slowly being added. Clocks and Ramdac lines in config file supported. The maximum pixel clock (in MHz) of the ramdac can be set using a Dacspeed line in config file. A reasonable default is assumed if the Dacspeed line is omitted. Clocks should be the same as in XFree86. Supported ramdac IDs: Sierra32K, SC15025, SDAC, GenDAC, ATT20C490, ATT20C498, IBMRGB52x Example: Clocks 25.175 28.3 40 70 50 75 36 44.9 0 118 77 31.5 110 65 72 93.5 Ramdac att20c490 DacSpeed 85 Also supported, at least in combination with the SC15025/26A ramdac, is the ICD 2061A clock chip. Since it cannot be autodetected you need to define it in the config file using a Clockchip line. As there is no way to read the current settings out of the 2061, you have the option to specify the frequency used when switching back to text mode as second argument in the Clockchip line. This is especially required if your text mode is an 132 column mode, since these modes use a clock from the clock chip, while 80 column modes use a fixed clock of 25 MHz. The text mode frequency defaults to 40 MHz, if omitted. Example: ClockChip icd2061a 40.0 ARK Logic ARK1000PV/2000PV Full support, limited RAMDAC support. Only ARK1000PV tested. Supports Clocks and Ramdac lines in config file. ALI2301 Supports 640x480x256, 800x600x256, 1024x768x256 SVGA modes C&T CHIPS & TECHNOLOGIES ? <-Svgalib-1.2.10 is patched to support this.) 655xx series chips, for laptops... End...6-15-97... =============================================================================