310 lines
13 KiB
Plaintext
310 lines
13 KiB
Plaintext
Subject: Trying to answer ...
|
||
Date: Wed, 6 Nov 1991 13:58:52 +0200
|
||
From: Linus Benedict Torvalds <torvalds@cc.helsinki.fi>
|
||
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<enter>), 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 <torvalds@cc.helsinki.fi>
|
||
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),J7<IT
|
||
M8H !$ AP5"C@9P"&N( =<(0-%P!(CH#E A @A;T4_^:54H<A(21&R+B&=02-
|
||
M%X!_NA+FJKH+@ !<! 0TFS!'05X 7@$,7F=.%F( " ;7 N BD0,@ ;R"!49K
|
||
M (Q_S2#D:KOK (!>0C('F!#:*X2PZ&8 0(>,<BA^ 7HDK(/!Q2(/F'$A$#!H
|
||
MWP,Z"W!Q(+Y/ IT!Z?K]<S$*M[J$(" 58,@(6*I_#^KXB[&MNVX@<@(,<Q$*
|
||
M\PH#F0 D"A8L7(( V>8DH',@!K 4V 2#3@+HU"!?, / 1]D.!F!6AP2X7/7>
|
||
M)@#40< _!G0"P"@4^C=*?/7=M\P<LG2WW6O D)>.*?] ,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#"_-<(-*-<P0@PP]/>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-<H6766("HE0XZ_^"2'5</!.!!
|
||
M! $T;,$% :#S!0"P1&,.&>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$ <HA &L()T :&#"-]@A#'-HWD(88)< ., )VR/ &5YW
|
||
M.C2L 80,@ 99Y'"#&;(I#:_;'/ZJQP!R^ 4!1)@A&A*X.O_)CUKRPP?R=*&]
|
||
MU(5A#6D(HO/<)S]*>(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 (*<QP#6QHTYKHF1 "H%&'
|
||
MQ$">!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,<X@738%+W>8X 50PG >CP &:J 0X)C1TE
|
||
M;2HN +BA"8+,PQ?EH$>;BM"FI$@(-XQHP3G@T0X<W*L#8%!%KP1 !"1+W1U@
|
||
MQX:%"I %[-I7 = #2W,$ [1(V+SII<&/8#0 <<3*N?6&L8\7/![E'3 ]0)
|
||
MC[-Z[@"US>!;$])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"#:<OPQ>G- ;+<;10 /' 5SQ7 >=D$WO.X2RT"+!%];<A#'E8LOJ99
|
||
MD@!@Z$!@X; H+QZX:6UI6BB%&H'V<G)U\47>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;<J %DTHKW.
|
||
M>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([529X<V&+Q-93 B',:0T@@P.@"00.8IR]33
|
||
MU7VO466+ ":0YX>21_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 <torvalds@cc.helsinki.fi>
|
||
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/hd1>/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
|