Linux-Development-Sys Digest #311, Volume #6 Wed, 20 Jan 99 16:14:14 EST
Contents:
Newbie question - interrupt handler trouble ("Alex Bolenok")
GNUPro for Linux - Recommendations (Michael Doherty)
Re: K6-400 "kernel paging request" errors (Stephen Jenuth)
Re: ATAPI Floppy Support In 2.2.0pre8 (Stuart Miles)
Can I run a DOS Device Driver in an emulator ("Norm Dresner")
Re: disheartened gnome developer (Mikko Rauhala)
ATAPI Floppy Support In 2.2.0pre8 (Ryan Cumming)
Re: 2038 and Linux (Christopher B. Browne)
Re: K6-400 "kernel paging request" errors (Marco Anglesio)
Re: sleep() or nanosleep() in module (Paul Hovnanian)
Re: How can I build a Linux system from scratch - NO distribution? (Rick Walker)
Re: Will 2.2.x support removable medias better? ([EMAIL PROTECTED])
----------------------------------------------------------------------------
From: "Alex Bolenok" <[EMAIL PROTECTED]>
Subject: Newbie question - interrupt handler trouble
Date: Wed, 20 Jan 1999 14:37:45 +0300
I am developing a video grabber module for Linux. My interrupt handler looks
like this:
#define i2c_read(SLAVE, REG) de17->i2c_write_reg = SLAVE && (DATA << 8)
...
static volatile int flag;
typedef static struct io_regs
{ ...
volatile u_long irq_status;
...
volatile u_long i2c_write_reg;
volatile u_long i2c_read_reg;
...
} de17_regs;
de17_regs de17;
...
de17 = vremap(/* params here */);
...
static void de17_handler(/* params here */)
{ de17->irq_status = IRQ_PROCESSED;
i2c_read(/* params here */);
flag = de17->i2c_read_reg;
}
When I read this flag one time, it's OK but when i try to do it in a cycle
like this
for (i = 0; i < TIMEOUT && ((flag & FIELD_READ) != FIELD_READ); i++)
{}
(no matter how long is it, even if TIMEOUT is 1), I get a segmentation
fault. What am I doing
wrong?
Thank you,
Alex Bolenok
------------------------------
From: Michael Doherty <[EMAIL PROTECTED]>
Subject: GNUPro for Linux - Recommendations
Date: Wed, 20 Jan 1999 00:01:44 -0500
Any recommendations for GNUPro for Linux? At $79, it seemed like a
good deal, but wonder if anyone's used it.
------------------------------
From: Stephen Jenuth <[EMAIL PROTECTED]>
Subject: Re: K6-400 "kernel paging request" errors
Crossposted-To: linux.dev.kernel,comp.os.linux.hardware,comp.os.linux.misc
Date: Wed, 20 Jan 1999 15:10:47 GMT
In comp.os.linux.hardware David R. Bergstein <[EMAIL PROTECTED]> wrote:
I have run into these problems on a k6 266, and a k6 300. In both cases
I got rid of the systems because they seemed to be too much work to fix.
When they crashed they tended to leave the mounted file systems in a bit
of disarray.
On the k6 266, disabling the internal cache did the trick. Nothing else
seemed to work. (Disabling the internal cache was done in the include/asm/bugs.h).
In this case, I had a intel pentium 233mmx installed and things have worked
famously thereafter (it cost me $ 35 CDN or so extra). Curiously the system
worked well with windoze.
On the k6 300, I just returned the system to the vendor. I suppose I should
have tried various different timings for the ram, but I lost patience. This
system had some problems with windoze.
It may be something related to cooling. Things seemed to work OK for a time
and then all hell broke loose.
On the other hand, I have a k6-2/300 which works flawlessly with linux.
: If it helps at all, I am also seeing similar paging request errors under
: linux 2.0.36 with an AMD K6-200 and 128MB RAM. I will need to change
: my syslog.conf to obtain a dump next time it happens (will post).
: [EMAIL PROTECTED] wrote:
:>
:> Suffering from an unstable system.
:> K6-400 (stepping 12), Motherboard FIC PA-2013 (VIA MP3),
:> 256 MB Ram (PC-100), (the board allows to downclock the RAM to 66 Mhz, what I
:> did),
:> AGP Matrox G200, 2 SCSI-Controller, EATA-DPT (only Disks)
:> and ncr53c825 (DDS-3, CDROM ).
:> RedHat 5.2 Kernel 2.0.36 and I tried as well all 2.2.0-preXX. the last
:> 2.2.0-pre7ac2.
:> The system keeps chrashing.
:>
:> I am trying to fix the system now since christmas. Getting frustrated....
:>
:> Any ideas, suggestions??
:>
:> Thanks in advance
:>
:> Mario Dix
:>
:> This is from 2.0.36:
:>
:> Unable to handle kernel paging request at virtual address e8f7ce98
:> current->tss.cr3 = 083ac000, %cr3 = 083ac000
:> *pde = 00000000
:> Oops: 0000
:> CPU: 0
:> EIP: 0010:[<00125af0>]
:> EFLAGS: 00010202
:> eax: 28f7ce98 ebx: 08c30814 ecx: 00000400 edx: 00000025
:> esi: 00000814 edi: 00067831 ebp: 00000400 esp: 0313de68
:> ds: 0018 es: 0018 fs: 002b gs: 002b ss: 0018
:> Process tar (pid: 3707, process nr: 53, stackpage=0313d000)
:> Stack: 08c3f398 00067831 00000814 00000002 00000000 00000025 0012702d 00000814
:> 00067831 00000400 0313df18 00002484 00000000 0dfddf00 00067831 00000814
:> 00000100 08c3f498 036c0814 00000000 08c3f498 08c3f418 036cf918 0313df14
:> Call Trace: [<0012702d>] [<001274af>] [<0011d25c>] [<0011d341>] [<0011d6b4>]
:> [<00123c70>] [<0010a941
:> >]
:> Code: 39 38 75 24 66 39 58 04 75 1e 39 68 20 74 22 56 e8 17 f9 ff
:> Unable to handle kernel paging request at virtual address e8f7ce98
:> current->tss.cr3 = 041b8000, %cr3 = 041b8000
:> *pde = 00000000
:> Oops: 0000
:> CPU: 0
:> EIP: 0010:[<00125af0>]
:> EFLAGS: 00010202
:> eax: 28f7ce98 ebx: 00080814 ecx: 00000814 edx: 00000025
:> esi: 00000814 edi: 00086831 ebp: 00000400 esp: 0313dddc
:> ds: 0018 es: 0018 fs: 002b gs: 002b ss: 0018
:> Process tar (pid: 3708, process nr: 53, stackpage=0313d000)
:> Stack: 00086831 03130814 00000400 00086831 08975818 00000025 00126352 00000814
:> 00086831 00000400 00086831 0313def4 001d25a0 00086831 00000001 00154cec
:> 00000814 00086831 00000400 00000000 00086831 00000001 0df16b00 00000400
:> Call Trace: [<00126352>] [<00154cec>] [<0015534c>] [<001555d5>] [<00153905>]
:> [<00156845>] [<0012c414
:> >]
:> [<0011d7f2>] [<00123deb>] [<0010a941>]
:> Code: 39 38 75 24 66 39 58 04 75 1e 39 68 20 74 22 56 e8 17 f9 ff
:> general protection: 0000
:> CPU: 0
:> EIP: 0010:[<00125af0>]
:> EFLAGS: 00013286
:> eax: 88f0e018 ebx: 0dbf0811 ecx: 00000400 edx: 0000008c
:> esi: 00000811 edi: 002f889d ebp: 00000400 esp: 0ee6be8c
:> ds: 0018 es: 0018 fs: 002b gs: 002b ss: 0018
:> Process X (pid: 384, process nr: 4, stackpage=0ee6b000)
:> Stack: 0dbff898 002f889d 00000811 00000001 00000000 0000008c 0012702d 00000811
:> 002f889d 00000400 0ee6bf3c 00000004 00000000 0dfdc800 002f889d 00000811
:> 00000100 0dbff918 00000811 00000000 0dbff918 0015638b 0df10400 0ee6bf38
:> Call Trace: [<0012702d>] [<0015638b>] [<001274af>] [<0011d83e>] [<0011d91d>]
:> [<00123c70>] [<0010a941
:> >]
:> Code: 39 38 75 24 66 39 58 04 75 1e 39 68 20 74 22 56 e8 17 f9 ff
:> general protection: 0000
:> CPU: 0
:> EIP: 0010:[<00125af0>]
:> EFLAGS: 00010286
:> eax: 88f0e018 ebx: 06850811 ecx: 00000400 edx: 0000008c
:> esi: 00000811 edi: 0000689d ebp: 00000400 esp: 04c02e60
:> ds: 0018 es: 0018 fs: 002b gs: 002b ss: 0018
:> Process m4 (pid: 3762, process nr: 47, stackpage=04c02000)
:> Stack: 06851b18 0000689d 00000811 00000001 00000000 0000008c 0012702d 00000811
:> 0000689d 00000400 04c02f10 00000044 00000000 0e321c00 0000689d 00000811
:> 00000100 06851898 06850811 00000000 06851898 00154ee1 06851518 04c02f0c
:> Call Trace: [<0012702d>] [<00154ee1>] [<001274af>] [<0011db3f>] [<0011dc39>]
:> [<0011b1f7>] [<0011b0f4
:> >]
:> [<00111b48>] [<00111a2c>] [<0011414e>] [<0010aaa4>]
:> Code: 39 38 75 24 66 39 58 04 75 1e 39 68 20 74 22 56 e8 17 f9 ff
Best regards,
Stephen Jenuth
([EMAIL PROTECTED])
Quidquid latine dictum sit, altum viditur.
------------------------------
From: Stuart Miles <[EMAIL PROTECTED]>
Subject: Re: ATAPI Floppy Support In 2.2.0pre8
Date: Wed, 20 Jan 1999 16:35:31 +0000
Frank Hale wrote:
>
> Ryan Cumming wrote:
> >
> > it worked fine in 2.2.0pre7. I've noticed that alot of the IDE code has been
> > ripped apart in pre8. Someone please try to fix tis before 2.2.0 final.
>
Do you know whether the Seagate multmode problem has been fixed in pre8, I know
it wasn't in pre7. If it isn't who should I tell?
--
Stuart Miles Email: [EMAIL PROTECTED]
Alenia Marconi Systems Phone: +44 1276 63311
Views expressed are mine and not those of Alenia Marconi Systems
------------------------------
Crossposted-To: comp.os.linux.development,comp.os.linux.hardware,comp.os.linux.misc
From: "Norm Dresner" <[EMAIL PROTECTED]>
Subject: Can I run a DOS Device Driver in an emulator
Date: Wed, 20 Jan 1999 13:44:34 GMT
I have a special video card that needs to be initialized by a DOS device
driver. There's nothing else available (unless you count windoze). (For
the curious, it's a Targa+ overlay card.)
Once the initialization is done, I could throw DOS away and run CP/M-86
(only joking).
I might be able to boot DOS, initialize the board, and then boot Linux, but
that stinks, especially if I have to modify the settings.
Is there any way that I can call (perhaps hack up a DOS-style
load-device-driver-from-the-command-line program) the driver from a DOS
emulator in Linux to do the job.
All suggestions, hints, and even sympathy, gratefully accepted.
Norm D.
------------------------------
From: [EMAIL PROTECTED] (Mikko Rauhala)
Crossposted-To: comp.os.linux.advocacy,comp.os.linux.development.apps,comp.os.linux.x
Subject: Re: disheartened gnome developer
Date: 14 Jan 1999 17:42:57 GMT
Reply-To: [EMAIL PROTECTED]
On 14 Jan 1999 10:25:52 GMT, Duncan Rose <[EMAIL PROTECTED]> wrote:
>However, I'm not sure that you are quite correct in your second paragraph.
>If I created a neat app and had a contract (which is what a software
>license is, in effect) with MS (just for an example!) that they got
>access to the source but nobody else did, then I couldn't take their
>money and then distribute a GPLed version. They would sue, and I guess
>they would win. In the case of this example, I would be bound by the
>agreement -- it would be a contract between MS and myself, not between
>myself and myself, if you understand me.
Most probably, _if_ as you say the contract would be exclusive.
(Of course, I'm no lawyer, so I don't know if the exclusiveness works that
way either.)
>In the case of RH and in the context of this thread, I'm wondering if RH,
>by distributing packages under GPL, has a contract with the rest of the
>Linux (or any other) community... in which case, there might be a case to
>answer if they changed their licensing policy.
No, it doesn't. It licenses its software to the community under the GPL,
which cannot be considered an exclusive contract of any sort. We get the
stuff under the GPL, but they can license it under other licensec as well.
Some commercial companies do this even now (like Transvirtual, for their
JVM, Kaffe).
>So, a more general query: if I write (and hold the copyright on) a piece of
>software and distribute it under GPL, am _I_ bound by the GPL, or does it
>just apply to everybody else? This is, I guess, particularly important when
>thinking about derivative works as described in the GPL.
You, as the copyright holder, are afaik in a way bound by the license
(having to supply source to a release already made by you under the GPL,
for example), but can reissue the same code under other licences as well.
--
Mikko Rauhala - [EMAIL PROTECTED] - http://www.iki.fi/mjr/
------------------------------
From: Ryan Cumming <[EMAIL PROTECTED]>
Subject: ATAPI Floppy Support In 2.2.0pre8
Date: Tue, 19 Jan 1999 21:49:49 -0800
ATAPI floppy support is broken in 2.2.0 pre8
Here is the IDE related boot messages on my box:
VP_IDE: IDE controller on PCI bus 00 dev 39
VP_IDE: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0xe000-0xe007, BIOS settings: hda:DMA, hdb:DMA
ide0: VIA Bus-Master (U)DMA Timing Config Success
ide1: BM-DMA at 0xe008-0xe00f, BIOS settings: hdc:DMA, hdd:DMA
ide1: VIA Bus-Master (U)DMA Timing Config Success
hda: WDC AC22500L, ATA DISK drive
hdb: MATSHITA CR-585, ATAPI CDROM drive
hdc: IOMEGA ZIP 100 ATAPI, ATAPI CDROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: WDC AC22500L, 2441MB w/256kB Cache, CHS=620/128/63, DMA
Partition check:
hda: hda1 hda2 hda3
VFS: Mounted root (ext2 filesystem) readonly.
hdb: ATAPI 24X CDROM drive, 128kB Cache
Uniform CDROM driver Revision: 2.52
hdc: packet command error: status=0x51 { DriveReady SeekComplete Error }
hdc: packet command error: error=0x50
ATAPI device hdc:
Error: Illegal request -- (Sense key=0x05)
Invalid field in command packet -- (asc=0x24, ascq=0x00)
The failed "Mode Sense" packet command was:
"5a 00 2a 00 00 00 00 00 18 00 00 00 "
cdrom: open failed.
VFS: Disk change detected on device ide0(3,64)
The 2.2.0pre8 kernel incorrectly identifies my Zip Drive as a CD-ROM, but
it worked fine in 2.2.0pre7. I've noticed that alot of the IDE code has been
ripped apart in pre8. Someone please try to fix tis before 2.2.0 final.
------------------------------
From: [EMAIL PROTECTED] (Christopher B. Browne)
Crossposted-To: comp.os.linux.misc,comp.os.linux.advocacy,comp.software.year-2000
Subject: Re: 2038 and Linux
Reply-To: [EMAIL PROTECTED]
Date: Wed, 20 Jan 1999 06:02:29 GMT
On 20 Jan 1999 04:27:13 GMT, Bloody Viking <[EMAIL PROTECTED]> posted:
>In comp.os.linux.advocacy John Savard <[EMAIL PROTECTED]> wrote:
>
>: Of course, in the very short term, building better IA-32 chips is
>: indeed the only useful thing to do.
>
>Which means that the Y2K+38 expiry still exists. To work around it, I have
>thought of a few ideas, none of which are "elegant".
>
>Method 1: Backdating. Every 56 years, you backdate 56 years, so the date
>is 56 years * X off. You keep a file around to record the number of
>backdatings To extract a date, the apps check the date then check
>/etc/backdate. A refinement of course is a once in 56 years cron job to
>auto-backdate. Beware of the Y2.1K problem. :) (Not a leap year.) If I
>need to, this is most likely my method of choice for my computers.
Nope. This doesn't cope well with the fact that one of the most major
places where date stamps of the form time_t are used is for time stamps in
filesystems.
Bonus points for the consideration that if /etc/backdate gets nuked, this
affects dates on other partitions that weren't touched.
This is *not* a good answer.
>Method 2: Unsugning time_t. Time_t is a signed integer. You could make it
>unsigned at least in theory. Anyone try this? An alternative is to make it
>a double, a floating point double, etc. Slows the system, but nicer than
>backdating. An unsigned integer only delays the inevitable of having to
>backdate by some long time.
This means that you can't represent dates before 1970. My birthday
disappears. Oops.
>Method 3: A perpetual calendar routine. The years repeat themselves every
>400 years in the Gregorian pattern. You could use Y2K as a reference date
>and design a routine that backdates as above, but backdates funny at
>Y2.1K, Y2.2K, and Y2.3K then at Y2.4K reverts to Y2K. Of course, you need
>that goofy /etc/backdate file to remember the config for apps to use.
>Again, you can use a goofy cron job.
Definitely sounds goofy.
>Method 4: Use a DEC Alpha or other 64 bit CPU. :) For those of you who
>have the money, this is the best solution. Those of us on low budgets,
>it's time to impliment the backdating crap.
Method 5: The *right* answer is to do the remediation via standardization
(in C9X) of the representation of 64 bit values. These days, the
"nonstandard but common" approach is for "long long" to be 64 bits.
Apparently behaviour is to be standardized in C9X.
Given standardized behaviour of the data type, we can then have GLIBC use a
64 bit value as its time_t, and hopefully fairly rapidly thereafter get that
functionality to integrate into libraries and filesystems.
Note that this might also provide a natural route to solution of the "large
files problem."
Unlike the other solutions, this *isn't* a "hack." If we can cope with the
ambiguity until C gets fixed to specifically know 64 bits, then there's no
need to have hacks that will cause the code to look unclean.
As a wild prediction, I'll suggest the thought that Linux 2.4 is liable to
be the point at which 2038 "compliance" should be sought.
--
Those who do not understand Unix are condemned to reinvent it, poorly.
-- Henry Spencer <http://www.hex.net/~cbbrowne/linuxy2k.html>
[EMAIL PROTECTED] - "What have you contributed to Linux today?..."
------------------------------
From: Marco Anglesio <[EMAIL PROTECTED]>
Subject: Re: K6-400 "kernel paging request" errors
Crossposted-To: linux.dev.kernel,comp.os.linux.hardware,comp.os.linux.misc
Date: Wed, 20 Jan 1999 18:53:13 GMT
NNTP-Posting-Date: Wed, 20 Jan 1999 10:53:13 PDT
In comp.os.linux.development.system Stephen Jenuth <[EMAIL PROTECTED]>
wrote:
> It may be something related to cooling. Things seemed to work OK for a time
> and then all hell broke loose.
I run win98 on a K6-200 currently, and I find that it's notoriously flaky
when dust and such accumulate on the heat sink, forming an insulating
layer. This results in intermittent, increasingly frequent crashes,
especially when using a Java application on either Netscape or IE4.
A Matrox M3D 3d card (in tandem with an S3 virge with 4Mb) also suffered
from overheating errors in this box. I remedied this error by removing all
card slot tabs for unused slots and separating the M3D and S3 by two
slots. This may exacerbate dust accumulation, I'm afraid.
Cleaning it off with a Q-Tip makes it run much better. I still wouldn't
call it stable, but that's possibly much more win98's fault than mine.
When running linux on that box I used to get errors of the aforementioned
type after so long, or halts while in X. Needless to say, I don't run
Linux on it any more (a P90 overclocked to 100, w/48Mb RAM and a bunch of
old hard drives - the product of cannibalism, in other words - runs quite
well and reliably) because of this reliability issue.
marco
--
Marco Anglesio Like Captain Idiot
mpa at the-wire dot com in Astounding Science comics
http://www.the-wire.com/~mpa (The Manchurian Candidate)
------------------------------
From: Paul Hovnanian <[EMAIL PROTECTED]>
Subject: Re: sleep() or nanosleep() in module
Date: Wed, 20 Jan 1999 12:20:26 -0800
Zahnd Beat wrote:
>
> Hello
>
> I've tried to use sleep() and nanosleep() in a kernelmodule. The module
> compiles wihout any problems, but when I try to load it (with modprobe
> or insmod) he complains that he could not reference the funktion (sleep
> or nanosleep).
I'm no module expert, but here's my advice anyway. ;-)
sleep(), etc. call the kernel to put a user process to sleep for
a period of time. From the point of view of that process, it
blocks at that point. This is not appropriate behaviour for a
kernel module. It should do its thing and then return.
In order to implement some sort of waiting period, there are kernel
level functions for pushing task pointers onto timer queues and then
returning control to the kernel scheduler. The exact names of these
escape me, but there is a good book from O'Reilly, "Linux
Device Drivers" that explains this.
> This module is a Realtime-Task for the Realtime-Extension from
> http://rtlinux.cs.nmt.edu/~rtlinux/homepage.shtml
>
> Whats the appropriate function to suspend the module for ~0.5 secs.
If you are doing true "real-time", you may need some special
kernel support, as the standard linux (and most other general purpose
multi tasking O/S's) aren't up to the task (no pun intended).
However, 0.5 sec (depending on the precision required) should be
no problem for linux.
> --
> Engineering School Biel
> Switzerland
>
> http://www.isbiel.ch/~zahnb/
--
Paul Hovnanian mailto:[EMAIL PROTECTED]
==================================================================
mailto:[EMAIL PROTECTED]?Subject=Open-source%20Microsoft%20now%21
------------------------------
From: [EMAIL PROTECTED] (Rick Walker)
Subject: Re: How can I build a Linux system from scratch - NO distribution?
Date: 20 Jan 1999 20:17:29 GMT
Thomas T. Veldhouse ([EMAIL PROTECTED]) wrote:
: I would like to build a Linux system from scratch, without using a premade
: distribution as a starting point. I don't know exactly where to begin.
Get a copy of Tom's root/boot distribution. It is a complete Linux
system on a single (ultra-high density) floppy. All the issues that you
need to build a minimalist system are addressed there. The
distribution, tomsrtbt-1.7.102.tar.gz, has scripts to build Tom's
minimalist system from a running Linux installation. I believe that
you can also recursively build the system under Tom's alone.
That should get you started.
--
Rick Walker
------------------------------
From: [EMAIL PROTECTED]
Subject: Re: Will 2.2.x support removable medias better?
Date: Wed, 20 Jan 1999 06:49:25 +0100
Tony Hoyle <[EMAIL PROTECTED]> wrote:
TH> Then a 'cd' to /misc/cdrom automatically mounts the drive and unmounts
TH> it a minute after you stop using it.
See? That�s what I was asking for. There�s still this nasty timeout I just
can�t understand with a read only media, where no sync is needed anyway.
--
Olav "Mac" W�lfelschneider [EMAIL PROTECTED]
PGP fingerprint = 06 5F 66 B3 2A AD 7D 2D B7 19 67 3C 95 A7 9D AF
Things which try to look like things often look more like things than things.
------------------------------
** FOR YOUR REFERENCE **
The service address, to which questions about the list itself and requests
to be added to or deleted from it should be directed, is:
Internet: [EMAIL PROTECTED]
You can send mail to the entire list (and comp.os.linux.development.system) via:
Internet: [EMAIL PROTECTED]
Linux may be obtained via one of these FTP sites:
ftp.funet.fi pub/Linux
tsx-11.mit.edu pub/linux
sunsite.unc.edu pub/Linux
End of Linux-Development-System Digest
******************************