From: Alain Borel (Alain.Borel@icma.unil.ch)
Date: Thu 16 Jul 1998 - 09:20:46 IDT
On 14-Jul-98 Iftikhar Rathore wrote: > > No1: Can some one mail me libvga.a and libvgagl.a please > > OK here is the deal, I have succesfuly compile the 1.3.0, but I am having > problems with vasa and lrmi (I have kernel 2.0.34). I get the message > (On the matrox) > ./vgatest > cant get mode info (vm86 failure) > Chose one of the following video modes > 1 > 2 > ... > 9 > 32 > > all these modes do work (but they are low resolution or low color). > > I compiled the vbetest in lrm-0.1 package and got this result > ./vbetest > Can't get VESA info (vm86 failure) > > it looks like vm86() in liblrmi.so is returning 1 and errno is not getting > set. somehow it does not look good, vm86 is only supposed to return 0 or > -1 > My entry.S does have both vm86old and vm86 (113 nd 166) and dosemu > (which was compiled yesterday on the same machine) is able to do the vm86 > switch fine. The have hancoded the number 133 in their code (why??) > > emu.c:297 (dosemu-0.97.10) > static inline void > vm86plus_init(void) > {#ifdef REQUIRES_VM86PLUS > static inline int vm86_old(struct vm86_struct* v86) > { > int __res; > __asm__ __volatile__("int $0x80\n" > :"=a" (__res):"a" ((int)113), "b" ((int)v86)); > return __res; > } > if (!vm86_plus(VM86_PLUS_INSTALL_CHECK,0)) return; > if (!vm86_old((void *)0xffffff01)) { > fprintf(stderr, "your kernel contains an older (interim) vm86plus > version\ > n\r" > "please upgrade to an newer one\n\r"); > } > else fprintf(stderr, "vm86plus service not available in your > kernel\n\r"); > fflush(stdout); > fflush(stderr); > > > I am hopful once I get to switch to vm86 the driver should work fine, plus > it seemed to be working correctly on my work machine which is if I > remember correctly is 2.0.33 I have the same problem here (Matrox Millenium II, kernel 2.1.99, pgcc 1.0.3a; maybe the compiler mmatters: for example it breaks wine); did you get any info? Here is some more food for thought. I straced vbetest; it seems that it makes some 15 (suspicious number? 2^4 -1) syscalls to vm86 (shouldn't it be vm86old? does vm86old end calling vm86? I'm not a kernel guru) that fail returning -1. errno IS actually set by thos calls, giving ENOSYS (call not implemented). I then started stepping through the code using gdb, but here again I do not know it as well as I should and was unable to display the content of the vm member of the context structure un lrmi.c (which seems rather important in the process, doesn't it?). ---------------------------------- E-Mail: Alain Borel <Alain.Borel@icma.unil.ch> Date: 16-Jul-98 Time: 08:09:38
This archive was generated by hypermail 2.1.4 : Wed 21 Jan 2004 - 22:10:22 IST