Skip to contentSkip to conversation

ptrace fix, x11 fb update, minor stuff.

PATCH In review Steve Schmidtke 3 participants 8 messages Oct 24, 2004 – Oct 25, 2004

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ptrace fix, x11 fb update, minor stuff.

Quoted 3 lines · Gerd Knorr

the X-Server wants IOPL access for some obscure
reason, it shouldn't need that when running on top of a framebuffer device. Anyone has an idea on that?

I looked into this a while ago. What I found was that you have to add UML to the exclude ifdef in CheckGenericGA() from xfree86/common/xf86Bus.c, and also around all the iopl() and ioperm() exclude ifdefs in xfree86/os_support/linux/linux_video.c.

I think it doesn't hurt to add Option "PciOsConfig" to the ServerFlags section in the conf file.

I also remember making the attached guest kernel patch at one point (apologies for hand editing it).

It would be nice if someone would code up an Option "NoHwIO" or something to X that takes care of this, instead of the ifdef hell. :)

Hope that helps,

Steve Schmidtke

drivers/char/vt.c +0 -0
diff *~ -Naur linux.orig/drivers/char/vt.c linux.new/drivers/char/vt.c
@@ -146,7 +146,13 @@
 

int _kbd_rate(struct kbd_repeat *rep)
{
+#if defined(__arch_um__)
+ /* if X finds that this succeeds, it won't try to bang on
+ * the (non-existent) hardware directly */
+ return 0;
+#else

	return -EINVAL;

+#endif
}

void (*kd_mksound)(unsigned int hz, unsigned int ticks) = _kd_mksound;

#1 lore raw
Quoted 4 lines

I looked into this a while ago. What I found was that you have to add UML to the exclude ifdef in CheckGenericGA() from xfree86/common/xf86Bus.c, and also around all the iopl() and ioperm() exclude ifdefs in xfree86/os_support/linux/linux_video.c.

Well, a compile time option isn't that nice as you usually can run the very same binaries inside and outside the UML machine ...

Quoted 2 lines

I think it doesn't hurt to add Option "PciOsConfig" to the ServerFlags section in the conf file.

Yep, I think that's another issue that on i386 the X-Server might try to do PCI scans by directly banging on the hardware (for compatibility with kernels without /proc/bus/pci, which is pre-2.4 (or even pre-2.2?)).

Quoted 2 lines

+++ linux.new/drivers/char/vt.c Sun Aug 1 13:44:36 2003
int _kbd_rate(struct kbd_repeat *rep)

Hmm, in 2.6 that doesn't exist any more, probably due to the linux input layer changes. How this is called from userspace, is this some ioctl?

Gerd

Signature · 12 lines
#define printk(args...) fprintf(stderr, ## args)


-------------------------------------------------------
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
Use IT products in your business? Tell us what you think of them. Give us
Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl
_______________________________________________
User-mode-linux-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
#2 lore raw
Quoted 7 lines · Gerd Knorr
Quoted 4 lines

I looked into this a while ago. What I found was that you have to add UML to the exclude ifdef in CheckGenericGA() from xfree86/common/xf86Bus.c, and also around all the iopl() and ioperm() exclude ifdefs in xfree86/os_support/linux/linux_video.c.

Well, a compile time option isn't that nice as you usually can run the very same binaries inside and outside the UML machine ...

Indeed.

Quoted 6 lines
Quoted 2 lines

I think it doesn't hurt to add Option "PciOsConfig" to the ServerFlags section in the conf file.

Yep, I think that's another issue that on i386 the X-Server might try to do PCI scans by directly banging on the hardware (for compatibility with kernels without /proc/bus/pci, which is pre-2.4 (or even pre-2.2?)).

/proc/bus/pci is 2.4, IIRC.
/proc/pci was 2.2 or 2.0.

Quoted 5 lines
Quoted 2 lines

+++ linux.new/drivers/char/vt.c Sun Aug 1 13:44:36 2003
int _kbd_rate(struct kbd_repeat *rep)

Hmm, in 2.6 that doesn't exist any more, probably due to the linux input layer changes. How this is called from userspace, is this some ioctl?

| tux$ grep kbd_rep linux-2.6.9/drivers/char/*c
| linux-2.6.9/drivers/char/keyboard.c:int kbd_rate(struct kbd_repeat *rep)
| linux-2.6.9/drivers/char/vt_ioctl.c:            struct kbd_repeat kbrep;
| linux-2.6.9/drivers/char/vt_ioctl.c:            if (copy_from_user(&kbrep, up, sizeof(struct kbd_repeat)))
| linux-2.6.9/drivers/char/vt_ioctl.c:            if (copy_to_user(up, &kbrep, sizeof(struct kbd_repeat)))
| tux$

Keyboard rate has been controlled using an ioctl() since ages, but of course X kept on banging the hardware...

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

-------------------------------------------------------
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl
_______________________________________________
User-mode-linux-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

#3 lore raw
Quoted 1 line

| linux-2.6.9/drivers/char/keyboard.c:int kbd_rate(struct kbd_repeat *rep)

Ah, just moved.

That function does already return "success" unconditionally, so we can't trick X11 by patching that one :-/

Guess I'll go fetch the good, old XF86_FBDev server for the next experiments ...

Quoted 2 lines

Keyboard rate has been controlled using an ioctl() since ages, but of course X kept on banging the hardware...

Yep. There is also some other code being pretty upset when run within a UML environment because several assumtions they make about i386 machines are not true any more.

Gerd

Signature · 12 lines
#define printk(args...) fprintf(stderr, ## args)


-------------------------------------------------------
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
Use IT products in your business? Tell us what you think of them. Give us
Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl
_______________________________________________
User-mode-linux-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
#4 lore raw
Quoted 9 lines · Gerd Knorr
Quoted 1 line

| linux-2.6.9/drivers/char/keyboard.c:int kbd_rate(struct kbd_repeat *rep)

Ah, just moved.

That function does already return "success" unconditionally, so we can't trick X11 by patching that one :-/

Guess I'll go fetch the good, old XF86_FBDev server for the next experiments ...

You can also try TinyX.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

-------------------------------------------------------
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl
_______________________________________________
User-mode-linux-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

#5 lore raw
Quoted 2 lines
Quoted 2 lines

Guess I'll go fetch the good, old XF86_FBDev server for the next experiments ...

Well, that one segfaults in a function called "xf86SetKbdRepeat". *gna*, this is not funny :-/

Gerd

Signature · 12 lines
#define printk(args...) fprintf(stderr, ## args)


-------------------------------------------------------
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
Use IT products in your business? Tell us what you think of them. Give us
Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl
_______________________________________________
User-mode-linux-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
#6 lore raw
Quoted 5 lines · Gerd Knorr
Quoted 2 lines
Quoted 2 lines

Guess I'll go fetch the good, old XF86_FBDev server for the next experiments ...

Well, that one segfaults in a function called "xf86SetKbdRepeat". *gna*, this is not funny :-/

Ah yes, it was compiled for ia32 ;-)

Compile TinyX/KDrive yourself?

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

-------------------------------------------------------
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl
_______________________________________________
User-mode-linux-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

#7 lore raw
Quoted 1 line · Geert Uytterhoeven

Compile TinyX/KDrive yourself?

I think I'll bug the Xorg guys with bugreports ;)

Gerd

Signature · 12 lines
#define printk(args...) fprintf(stderr, ## args)


-------------------------------------------------------
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
Use IT products in your business? Tell us what you think of them. Give us
Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl
_______________________________________________
User-mode-linux-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel