Subject: Trying to answer ... Date: Wed, 6 Nov 1991 13:58:52 +0200 From: Linus Benedict Torvalds To: Linux-activists@joker.cs.hut.fi Well, it seems people are starting to get some things working, and my mailbox has certainly been busy. > Does linux work on a SX? Yes. I've personally tried it, and there were no problems. It seems linux works on all members of the [3|4]86-family. Knock wood. > How do the mtools programs work? Urg. I fu**ed up. As has been pointed out, it is much easier to use tar on a disk-image. Stupid of me not to think of that, even though that's what tar is for. Even so, I should at least have done some kind of readme for the mtools files. If you want to read files from the DOS-partition, the mtools programs should work. They need some setting up: you need to tell them what devices A,B and C are. This is done by making the appropriate links to /dev/dosX (X=A,B,C). A and B are assumed to be floppies or small harddisk partitions, ie a 12-bit FAT. C is assumed to have a 16-bit fat. To read a 1.44M dos-floppy in A: mknod /dev/dosA b 2 28 # tell linux that A is 1.44Mb floppy mdir A: etc. To read your DOS-partition (16-bit FAT): mknod /dev/dosC b 3 1 # 1 partition on 1 drive: don't use 0 mdir C: # as that's the whole disk, not one prt 12-bit harddisk partition: mknod /dev/dosB b 3 1 mdir B: Note that if you have a small partition, you probably have a 12-bit fat on your harddisk as well, and you should use A or B for it, not C. If you don't know what type of FAT you have, try with both B or C. Note that A/B/C has no relation to the MS-DOS devices, even though that's the normal way of setting it up. > Somebody had trouble, didn't even get a "partition table ok" with his > IDE drive. There /should/ be no trouble with IDE drives, so hopefully that isn't the problem. One possibility is that everything works, but the video-card isn't a colour-VGA. If you are using a mono-mode, the screen map is elsewhere (I think, I'm not really used to the IBM video modes), and linux happily writes to the wrong location. Thus the only thing you see is "Loading system ...", which is written with BIOS-routines. If this is indeed the problem, you should be able to test it by booting up, putting in the root diskette, and pressing ENTER. Hopefully the drive will run for a while, and then stop. Try doing something blindly (write ls /mtools), and see if the floppy reacts. If the only trouble is the video card, this will be corrected in the next version. If it isn't the video, things are worse. Could the person please mail me with more info (BIOS, type of computer etc)? > nic.funet.fi is unavailable. What can I do? As you probably have noticed, there is now another site available that carries it. See my .plan if you missed the message. nic will give you the files eventually, but there has indeed been something wrong with it. > problems with gcc-1.37.1. Gives divide error (with the gnulib > routine). Could the 16-bit object files be posted? Arghhh. I haven't tested the gnulib routines (as gcc-1.40 never wants the divide/mutliply routines), so they might be buggy. Silly me. I'll certainly post the 16-bit object files (they are only a couple of hundred bytes anyway), and anybody should be able to get linux recompiled within linux (after some makefile-editing, so that make doesn't try to recompile the bootblock etc). > ESDI drives, shoelace, DLD? These I know nothing about. ESDI drives should work ok, but ... Shoelace? Anybody? I don't know how it works, though I use it for minix. About DLD's: if somebody comes up with a clever way of implementing it all cleanly, and can explain it to me, I could certainly look into it. Even better would be if somebody else wrote it from scratch :-). Linus (torvalds@kruuna.helsinki.fi) --[0003]-- [0004] tytso@ATHENA.MIT.EDU Linux_Activists 11/07/91 14:22 (83 lines) Subject: 16-bit binaries Date: Wed, 6 Nov 1991 17:58:43 +0200 From: Linus Benedict Torvalds To: Linux-activists@joker.cs.hut.fi Ok, here's the 16-bit binaries of the bootsector and setup. They are 544 and 340 bytes respectively, but taring made them somewhat bigger (8192). I decided to send them as a tar archive, as that increases the ways you can import them to linux. In order to use them, you have to edit the Linux makefile a bit: remove (or comment) the lines that have the 16 bit dependencies on them (I'd also suggest you change 'clean' so that it won't remove these binaries), and install these binaries in the boot-directory. The bootblock is compiled to load 196kB of the system (currently only 110kB is used), so there is some room to grow before a new bootblock is needed. This of course means that the load-time is slightly longer than necessary, but it's still quite fast. Also, as somebody commented, 'cp Image /dev/PS0' won't work with older versions of GNU cp. Frankly I don't know if the version of cp that linux uses is corrected, but a 'cat Image > /dev/PS0' or 'dd bs=8192 if=Image of=/dev/PS0' should work (change /dev/PS0 to match your bootfloppy, of course). Additionally, I'd like to know if the floppy-driver works for 2 (or more) drives? Nobody has commented on that yet. Do a sync before you try it though (just in case...). Linus (torvalds@kruuna.helsinki.fi) ------- uuencoded compressed tar-file starts here ---------------------- begin 644 bin16.tar.Z M'YV08MZ\H3.GS!@Z !(J7,BPH<.'$"-*G$@1 (B+-VK4 &%1Q@T:,6)P!.%Q M!HV-%B^J!!$#!@T8%VNTM %#AHR6-%32K&FQHL^?0(,*'4JTJ-&C2),J70C('F!#:*X2PZ&8 0(>,8DH',@!K 4V 2#3@+HU"!?, / 1]D.!F!6AP2X7/7> M)@#40< _!G0"P"@4^C=*?/7=M\P.*?] ,4444BQB@8:+.!!? M$(A4(R.%B%CC6"#BD$6+8!/(48 666R!Q3")'388DDJFL\P_4N@BSP"P .". M%L,DU( "3+P1!AEIN'$&"'/D,0<=9;0!@@MP?OEE4W36:>>="1DP0!6JX.GG MGX &*NB@A!9JZ*&"%D1''7 @ZBAV&&DTDD<@B=31#2:AM-)*-< $P@RN52# M#"_-<(-*-KJJ[#&*FNL3T4UE457^92K0IIQU=EGH25B04*T(-), M!:-4E1A7Q=A 0&9?A?4+( #D @$ \Y"R+#;-8@#M9K] 4NVUV7I5@2R!#&8D M(/P,0 <$O0(3[KB/8:N*/HGQ$]:)ND%"AP-A@@?$WYH"!3A081V .".L D+(YH*2<,BP@F!." MRQBC8$XH-,-"@,PY"W!SS@'PK#( /P\-RS]"KQQ*A T#,]UD V=,CEDH") M'?9TZ= _IB6D"3!W=0V )& [A$ ^ B2P4)%')KEDDPD]Z;:45%J)I99<>@FF MF&2:B:::;+H)IPMR*C#KX8@GKOCBC#?N^..01R[YY)17;OGE=H919AD 4 " M 0DM0 L \A#!@!M(0!'&&R\P488:"!D1D&AUT8 $Z:E7N89K,]1QQL C '' MZ0 LP T !!"3.V1KA"$'[&N\X89"AA?/#EE\C-$Y\L^K$08 :2"4$ ,*F6/& M]@6X44<;;:0! !G? \" YP& ,P+JD-$1_1K1OPZ #&, GOQ00#H5L"IUKX-# MF5[7!@!(SP[CXP%97&&@U-&!#FEH@_3*,#TXP(%S\F,"\B"@@^T9@ UIJ /_ M@"<^!H A(2AX ?X0H(;VK=!_' ! \8G/GTH889S<%X8W(!!-B0D 1Z3'R=( M1XTAS/!U=I!>"N>0$ (E\[SN#'0OB0=;%CP&H\!)'!,"+[Z5.#H3TY/@2TP N M$D 2VTF=&M!0!CFTH0YN "$!C."E0!*-!28,(!M0.+TC>(D*9 &"#;9W #H0 MDPP<5$@#T$ 64D!AAG; HP?KX#\T:-!+?$B(($KH2#=\< X;3,@Q0N$E1HSP M!.A[71WD +QCB,)+2Q2 )]; S#F\[I'1DV:6!D (*!CR7NC6]00[0'*8#ZZ ]'6(#>8C( A AR08XI%.'U-3A]0!@"1_8,0RL MH\-)"6!0 %@Q(?KH C/;0(='JK**UPH %:Q@0C74 0VN^QXR;4H"TMD">*EK M ^O*$#OI >!: Z@B#LC"#*A"Y@U2)68T=5@V!R !>::8GN<,@(9')A4 S*AB M$E7!!6:&H0[9S.7TJFA$ AA@"3,8X 50PG >CP &:J 0X)C1TE M;2HN +BA"8+,PQ?EH$>;BM"FI$@(-XQHP3G@T0X!;$])8OW @#G:\J!OH^08JVA01W#VL'SXPPS;D$8.Y;"@('T! M4N+AH,UCE ))&[6F27 _+BO[M(0O3"6B9G<%>'M?H ^-. 1A0G93M->* !H M+&"&:E"#:G- ;+<;10 /' 5SQ7 >=D$WO.X2RT"+!%];7A_@6DT0=:U?C"GP!/B N I M!U:,ZBV1JE< &-&\#P"'7[2AA]\ZCW^=?< +FP8/TB'!H-=]0YDVN->K*H01 MA7#L&R3[S81 @'ZX.,1O-8C'(>JR#GYN*BD)8<*V1K*M (#@5;Z_[L.KGSY+ATJE;0QW2T.%HID$,"H' "^LGB(.V-0P]]1YWCW=5\5E"7*EK MJQR,VF7D[<'/Z 6 /MR9ZS(4FG_?X_15E^CB1P#Q#=!$)2[]?-^K9HD L(B/ M!7^7U[%"@+57!1L!()#GM:Z.GOZ3X%6I,4<1;EL.&-2<6@$@80B@XX^M/J6Q MPVAH -"RHQ!09(6=O58W$)B;WSL? ") /@(@@MB04<.>PQ#6[]4R#PF) $=P M3-&(UP&F;)#I7@E@B(QS,0#J\,03J8K!YADQJ!D_JU^],,,WK"&(KXN=G^VR M\+H" !F-A$PV:[F^1YHPXXTR([529X21_4,]'0#4HVX<$Q*("$!<(6@93D'27)VKP/(,^;VSO>^ G^_WO@ ^\X =/^,(;_O"(3[SB%\_XQCO^\9"/O.0G3_G*6_[RF%<< end --[0004]-- [0005] tytso@ATHENA.MIT.EDU Linux_Activists 11/07/91 14:22 (127 lines) Subject: Devices Date: Wed, 6 Nov 1991 19:15:45 +0200 From: Linus Benedict Torvalds To: Linux-activists@joker.cs.hut.fi Before the actual article: a quick question. Are any of you using DOS version 5.0 ? If I've understood correctly, 5.0 changes the disk-layout rather heavily. I doubt mtools can handle the new DOS partitions, and possibly even the partition table has changed. Again, I'd be interested to know if everything works fine with DOS 5.0. Mika Matti Jalava: "device numbers" (Nov 6, 18:08): > Hi! > > Would it be possible to post some kind of a table of valid device > numbers? [ for people not having minix ] Ok. Here is a short table: Memory devices: Major = 1 (characted devices) minor 0 /dev/ram - not implemented (never will be, I think: minix special) 1 /dev/mem - not implemented (easy, seldom used) 2 /dev/kmem - not implemented (easy, but I haven't done it) 3 /dev/null 4 /dev/port (implemented, but untested - don't play with it) example: "mknod /dev/null c 1 3" Floppy disks: Major = 2 (block devices) minor = drive + 4*type, drive = 0,1,2,3 for A,B,C or D-diskette type 1: 360kB floppy in 360kB drive (5.25") 2: 1.2M floppy in 1.2M drive (5.25") 3: 360kB floppy in 720kB/1.44Mb drive (3.5") 4: 720kB floppy in 720kB/1.44Mb drive (3.5") 5: 360kB floppy in 1.2M drive (5.25") 6: 720kB floppy in 1.2M drive (5.25") 7: 1.44M floppy in 1.44M drive (3.5") Thus minor nr for a 1.44Mb floppy in B is: 1 + 4*7 = 29, and to read an old 360kB floppy in a 1.2M A-drive you need to use minor= 0 + 4*5 = 20. Example: "mknod /dev/PS0 b 2 28" (b for block: 2 for floppy, 28 for 1.44 in A) Hard disks: Major = 3 (block devices) minor 0 /dev/hd0 - The whole hd0, including partition table sectors etc. 1 /dev/hd1 - first partition on hd0 ... 4 /dev/hd4 - fourth partition on hd0 5 /dev/hd5 - The whole hd1, again including partition table info 6 /dev/hd6 - first partition on hd1 ... 9 /dev/hd9 - fourth partition on hd1 NOTE! Be /very/ careful with /dev/hd0 and /dev/hd5 - you seldom need them, and if you write to them you can destroy the partition tables: something you probably don't want. The only things that use /dev/hd0 are things like "fdisk" etc. NOTE 2!! The names for hd's are the same as under minix, but I think minix orders the partitions in some way (so that the partition numbers will be in the same order as the partitions are physically on the disk). Linux doesn't order anything: it has the partitions in the same order as in the partition table (ie /dev/hd1 might be physically after /dev/hd2). NOTE 3!! Somebody wrote he trashed his DOS-partition with mtools. Are you sure you didn't do a "mkfs /dev/hdX" with the demo-minix, where the X was a DOS-partition and not an empty one? One way to be sure to trash a DOS-partition is to overwrite it with a minix filesystem. Not that I'm sure that mtools works (/I/ didn't write it :-), just wondering... Tty's: Major = 4 (character devices) minor 0 /dev/tty0 - console 1 /dev/tty1 - serial 1 2 /dev/tty2 - serial 2 Example: "mknod /dev/tty2 c 4 2" Personal tty: Major = 5 (character device) minor: 0 /dev/tty - "linked" to the tty that your process has got: normally /dev/tty0 in linux (until someone makes a init/login). Example: "mknod /dev/tty c 5 0" > I think I'll have to try a couple of old MFM disks, as my ESDI does > not seem to like Linux. The test that someone suggested, > cat /dev/null probably did not do what it should have done, > it just hung the machine. Don't be so sure: using direct reads/writes on a device is rather slow, and on a bigger partition (>10M) this can take some time even for a harddisk. I've never tried to optimize direct devices for performance. If you can get out from the "cat" with ^C, it probably works. If ^C doesn't kill it, ESDI drives probably won't work. Another way to test the drive would be to write "cat /dev/hd1". This prints anything it reads onto the screen: if nothing appears, linux is unable to read the drive. Use ^C to break when you have got enough. Again, if ^C won't work, the drive is unsupported. (note: pressing ^C repeadetly may kill the shell, as it will catch only the first one). Note to everybody: currently I have these debug-statements in the kernel, so that when you try to read past the end of a partition or diskette you will get "xxx I/O error". This is normal (but reading beyond the end of the disk may not be :-). > BTW, Is it possible to use a secondary HD controller? If not, will it > be some day? Not currently, and as I haven't got a second controller... It should be relatively easy to add a driver for it: copy the code from hd.c to hd2.c, change the MAJOR_NR to 6 (or something), and change all the IO port addresses. That /might/ do it (VERY simplified explanation). I won't be able to do it - no way to debug the thing. Linus