You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
(235) |
Apr
(30) |
May
(32) |
Jun
(86) |
Jul
(81) |
Aug
(108) |
Sep
(27) |
Oct
(22) |
Nov
(34) |
Dec
(10) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(78) |
Feb
(10) |
Mar
(81) |
Apr
(27) |
May
(13) |
Jun
(105) |
Jul
(78) |
Aug
(52) |
Sep
(59) |
Oct
(90) |
Nov
(127) |
Dec
(49) |
2002 |
Jan
(102) |
Feb
(72) |
Mar
(54) |
Apr
(98) |
May
(25) |
Jun
(23) |
Jul
(123) |
Aug
(14) |
Sep
(52) |
Oct
(65) |
Nov
(48) |
Dec
(48) |
2003 |
Jan
(22) |
Feb
(25) |
Mar
(29) |
Apr
(12) |
May
(16) |
Jun
(11) |
Jul
(20) |
Aug
(20) |
Sep
(43) |
Oct
(84) |
Nov
(98) |
Dec
(56) |
2004 |
Jan
(28) |
Feb
(39) |
Mar
(41) |
Apr
(28) |
May
(88) |
Jun
(17) |
Jul
(43) |
Aug
(57) |
Sep
(54) |
Oct
(42) |
Nov
(32) |
Dec
(58) |
2005 |
Jan
(80) |
Feb
(31) |
Mar
(65) |
Apr
(41) |
May
(20) |
Jun
(34) |
Jul
(62) |
Aug
(73) |
Sep
(81) |
Oct
(48) |
Nov
(57) |
Dec
(57) |
2006 |
Jan
(63) |
Feb
(24) |
Mar
(18) |
Apr
(9) |
May
(22) |
Jun
(29) |
Jul
(47) |
Aug
(11) |
Sep
|
Oct
|
Nov
|
Dec
|
2024 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
From: Helge H. <hel...@ai...> - 2004-10-22 21:15:46
|
On Fri, Oct 22, 2004 at 04:13:15PM +0300, Aivils wrote: > Hi All! > > linux-ruby synced to 2.6.9 now. > > fbcon works for me. > I tried it, and so far I haven't succeeded. The first attempt, with fbcon, died early. The boot messages got to: ACPI: PCI Root Bridge [PCI0] (00:00) and then it hung. Plain 2.6.9 continues with PCI: Probing PCI hardware (bus 00) ACPI: PCI interrupt routing table ... and so on. Ruby did not continue. I tried disabling fbcon by not compiling it. That used to work with ruby 2.6.8.1. I got past this point, the framebuffer initialized, and the pc hung sometime after that. Neither keuboard worked, no numlock LED and not even sysrq+B. The next attempt will be a kernel without framebuffers, I don't need those to run X after all. I'll try without vgacon too if necessary. Please tell if you have any ideas about how to debug this or anything else to try. Helge Hafting |
From: Observer <obs...@mo...> - 2004-10-22 20:40:48
|
I want to have independent users per displays, is this what you succeded?. Accelerated X is preferred but not required. I want to do it cheap, i think the cheapest dual head card are sis xabre, but i want to make the less possible attempts, so i would like to know of existent working configurations, I read in the list that there is a list of supported hardware and a db of ruby users but I cant found them, does anyone have them? El vie, 22-10-2004 a las 06:23, Helge Hafting escribi=C3=B3: > On 22-10-2004 06:01:18, Observer wrote: > > Hi > > I want to setup a ruby system using 2 or 3 dual head cards, but i =20 > > have > > read the list and im not sure if there is some succes with this kind > > of > > setup yet, can someome tell me if this is possible and what cards to > > use? > >=20 > > thanks. >=20 > I have used one matrox G550 dualhead card, it worked. > I have the impression that the older G400 cards works > better, mostly because they are better documented. >=20 > Do you want to run xinerama over several displays, or do you > want to have one independent user per display? The latter > is a bit trickier, particularly if you want to use > accelerated X (which one usually wants). The problem is that > an xserver tends to grab an entire card. > I believe matrox have some dualhead cards (and four-way cards too) > that solve this because they look like 2 or 4 cards to the software. > They are very expensive though. >=20 > Helge Hafting >=20 >=20 >=20 > ------------------------------------------------------- > This SF.net email is sponsored by: IT Product Guide on ITManagersJourna= l > 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 > _______________________________________________ > Linuxconsole-dev mailing list > Lin...@li... > https://lists.sourceforge.net/lists/listinfo/linuxconsole-dev |
From: Aivils <ai...@un...> - 2004-10-22 13:14:40
|
Hi All! linux-ruby synced to 2.6.9 now. fbcon works for me. For Nvidia closed source drivers attached patch must be applayed. Also files avaible http://www.ltn.lv/~aivils/files/ruby-2.6.9-20041021.diff.bz2 http://www.ltn.lv/~aivils/files/nvidia-2.6.9.diff Aivils |
From: Helge H. <hel...@ai...> - 2004-10-22 11:17:30
|
On 22-10-2004 06:01:18, Observer wrote: > Hi > I want to setup a ruby system using 2 or 3 dual head cards, but i =20 > have > read the list and im not sure if there is some succes with this kind > of > setup yet, can someome tell me if this is possible and what cards to > use? >=20 > thanks. I have used one matrox G550 dualhead card, it worked. I have the impression that the older G400 cards works better, mostly because they are better documented. Do you want to run xinerama over several displays, or do you want to have one independent user per display? The latter is a bit trickier, particularly if you want to use accelerated X (which one usually wants). The problem is that an xserver tends to grab an entire card. I believe matrox have some dualhead cards (and four-way cards too) that solve this because they look like 2 or 4 cards to the software. They are very expensive though. Helge Hafting |
From: Aivils <ai...@un...> - 2004-10-22 08:27:17
|
On Friday 22 October 2004 08:43, samar j. singh wrote: > Hi > > I am looking at the best way of setting up 16 usb keyboards connected > through multiple hubs to one linux machine, so that the input of the > keyboards either goes to separate files, or, it goes to a common file > and some prefix identifies the keyboard from which the input has come. > > As the inputs are short there is no need for the input document to be > visible to the persons typing at the keyboard. The purpose is data > collection so multiple X Servers are not necessary or desirable. > > Is it possible that there is some way of polling each usb keyboard > and capturing the characters or alternately using the usb port code > to act as a prefix for that character in a common file. > All ideas are welcome. You can use evtest.c code from linuxconsole.sf.net CVS repositary and more compicated Debian evdev keyboard driver. I do not understand how to work Debian file repositaries, just down load Debian xfree86 sources and patches and look for *lnx_evdev*. Both evtest.c and evdev keyboard driver are fully functional in Your case. IMHO You must be capable write and patch "C" programms :) There is not existing "ready for use" solutions. Aivils |
From: samar j. s. <sa...@ef...> - 2004-10-22 05:46:41
|
Hi I am looking at the best way of setting up 16 usb keyboards connected = through multiple hubs to one linux machine, so that the input of the = keyboards either goes to separate files, or, it goes to a common file = and some prefix identifies the keyboard from which the input has come. As the inputs are short there is no need for the input document to = be visible to the persons typing at the keyboard. The purpose is data = collection so multiple X Servers are not necessary or desirable. Is it possible that there is some way of polling each usb keyboard and = capturing the characters or alternately using the usb port code to act = as a prefix for that character in a common file. All ideas are welcome. samar |
From: samar j. s. <sa...@ef...> - 2004-10-22 05:46:36
|
Hi I am looking at the best way of setting up 16 usb keyboards connected = through multiple hubs to one linux machine, so that the input of the = keyboards either goes to separate files, or, it goes to a common file = and some prefix identifies the keyboard from which the input has come. As the inputs are short there is no need for the input document to = be visible to the persons typing at the keyboard. The purpose is data = collection so multiple X Servers are not necessary or desirable. Is it possible that there is some way of polling each usb keyboard and = capturing the characters or alternately using the usb port code to act = as a prefix for that character in a common file. All ideas are welcome. samar |
From: Observer <obs...@mo...> - 2004-10-22 04:01:30
|
Hi I want to setup a ruby system using 2 or 3 dual head cards, but i have read the list and im not sure if there is some succes with this kind of setup yet, can someome tell me if this is possible and what cards to use? thanks. |
From: Aivils <ai...@un...> - 2004-10-21 10:58:40
|
On Thursday 21 October 2004 10:36, dan...@ep... wrote: > Hello! > > I have prepared a patch to use ruby for 2.6.9. It is not done very well > (for instance CTRL+ALT+<NUMBER> does not work to switch from X to a console > window) and I have not tested the framebuffer console - but otherwise it > works. Maybe somebody w/ more knowledge of the code can use this to prepare > a good patch. Thanks! I will compare subject with my own version at night :) 2.6.9 gives back my tdfxfb, which will not work under ruby now. Aivils |
From: <dan...@ep...> - 2004-10-21 07:36:54
|
Hello! I have prepared a patch to use ruby for 2.6.9. It is not done very well (for instance CTRL+ALT+<NUMBER> does not work to switch from X to a conso= le window) and I have not tested the framebuffer console - but otherwise it works. Maybe somebody w/ more knowledge of the code can use this to prepa= re a good patch. Daniel ________________________________________ http://www.epost.de - das Kommunikationsportal der Deutschen Post |
From: Allen R. L. <all...@ch...> - 2004-10-18 06:02:09
|
Any other out there interested in the spaceball input devices ? I remeber first seeing a Spaceball (2003) on a sgi workstation about 10+ year ago. Recently I have found then reasonably priced on ebay and decided to see if I could use them under Linux. However my initial attempts meet with little succes. I used Vojtech Pavlik input layer driver, along with his inputattach program. If you have a spaceball, I would be interested in your experience using the input layer driver / or how you used it with linux. Could you send me then make/model information. Also if you know the firmware string would be helpful. The four spaceball I have are 1) hp A4360A. This is a spaceball 2003b ? model, which has 9 button, the 8 on the top and one on the spaceball itself. I found this bombed out of inputtach right away, not even getting by the first spaceball_waitchar. 2) IBM 6094-030. This is a spaceball 2003c. Inputattach worked. detecting, it correctly. 3) Spaceball 3003. From Spactec itself. Inputattach found the spaceball but it failed when the "spaceball_cmd(fd, "hm", r)", command was issued. It did not recognized this command at. 4) Spaceball 4000 Flx. This failed on the first spaceball_waitchar as did the hp A4360A. After several weeks of playing with them under windows with using serial monitoring, and several test program under linux, I was able to hack inputtach to workdwith all of them. I did this by supplying an additional command line paramater -sb2003b, -sb3003, -sb4000. I am including my hacked version of inputattach.c along with slightly tweeked spaceball.c. Spaceball.c did not did map the hp A4360A button on the spaceball itself. Also it sent and the advanced button information for the spaceball 4000 which was redundant. Normally the comamnd line is inputattach --spaceball /dev/ttyS0 to this add -sb2003b, -sb2003c, -sb3003 or -sb4000 ex inputattach --spaceball /dev/ttyS0 -sb2003b /* * $Id: inputattach.c,v 1.21 2002/07/10 22:34:01 vojtech Exp $ * * Copyright (c) 1999-2000 Vojtech Pavlik * * Sponsored by SuSE * * Twiddler support Copyright (c) 2001 Arndt Schoenewald * Sponsored by Quelltext AG (http://www.quelltext-ag.de), Dortmund, Germany */ /* * Input line discipline attach program */ /* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Should you need to contact me, the author, you can do so either by * e-mail - mail your message to <vo...@uc...>, or by paper mail: * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic * * Hack a bit by Allen Lorenz. */ #include <linux/serio.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/ioctl.h> #include <sys/time.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> #include <termios.h> #include <string.h> #include <assert.h> #include <ctype.h> int readchar(int fd, unsigned char *c, int timeout) { struct timeval tv; fd_set set; tv.tv_sec = 0; tv.tv_usec = timeout * 1000; FD_ZERO(&set); FD_SET(fd, &set); if (!select(fd+1, &set, NULL, NULL, &tv)) return -1; if (read(fd, c, 1) != 1) return -1; return 0; } void setline(int fd, int flags, int speed) { struct termios t; tcgetattr(fd, &t); t.c_cflag = flags | CREAD | HUPCL | CLOCAL; t.c_iflag = IGNBRK | IGNPAR; t.c_oflag = 0; t.c_lflag = 0; t.c_cc[VMIN ] = 1; t.c_cc[VTIME] = 0; cfsetispeed(&t, speed); cfsetospeed(&t, speed); tcsetattr(fd, TCSANOW, &t); } int logitech_command(int fd, char *c) { int i; unsigned char d; for (i = 0; c[i]; i++) { write(fd, c + i, 1); if (readchar(fd, &d, 1000)) return -1; if (c[i] != d) return -1; } return 0; } int magellan_init(int fd, long *id, long *extra) { write(fd, "m3\rpBB\rz\r", 9); return 0; } int warrior_init(int fd, long *id, long *extra) { if (logitech_command(fd, "*S")) return -1; setline(fd, CS8, B4800); return 0; } int spaceball_waitchar(int fd, unsigned char c, unsigned char *d, int timeout) { unsigned char b = 0; while (!readchar(fd, &b, timeout)) { if (b == 0x0a) continue; *d++ = b; if (b == c) break; } *d = 0; return -(b != c); } int spaceball_waitcmd(int fd, char c, char *d) { int i; for (i = 0; i < 8; i++) { if (spaceball_waitchar(fd, 0x0d, d, 1000)) return -1; if (d[0] == c) return 0; } return -1; } int spaceball_cmd(int fd, char *c, char *d) { int i; for (i = 0; c[i]; i++) write(fd, c + i, 1); write(fd, "\r", 1); i = spaceball_waitcmd(fd, toupper(c[0]), d); return i; } #define SPACEBALL_1003 1 #define SPACEBALL_2003A 2 #define SPACEBALL_2003B 3 #define SPACEBALL_2003C 4 #define SPACEBALL_3003C 7 #define SPACEBALL_4000FLX 8 #define SPACEBALL_4000FLX_L 9 //--- flags for optional arguements #define SB_2003a 0x0001 #define SB_2003b 0x0002 #define SB_2003c 0x0004 #define SB_3003 0x0008 #define SB_4000 0x0010 #define SB_MASK ( SB_2003a | SB_2003b | SB_2003c | SB_3003 | SB_4000 ) #define DAEMON 0x8000 typedef struct { char *string; unsigned flag; } Flag_entry; Flag_entry flag_table[] = { { "-sb2003a", SB_2003a }, { "-sb2003b", SB_2003b }, { "-sb2003c", SB_2003c }, { "-sb3003", SB_3003 }, { "-sb4000", SB_4000 }, { "-daemon", DAEMON }, }; #define NUM_FLAGS 6 char *spaceball_initstring1 = "CB\015FT?\015FR?\015P@r@r\015MSSV\015Z"; char *spaceball_initstring2 = "M\015YC\015\""; int flags; int spaceball_init(int fd, long *id, long *extra) { char r[64]; if (flags & SB_MASK) { if ( flags & SB_2003a ) { spaceball_cmd( fd, spaceball_initstring1, r ); spaceball_cmd( fd, spaceball_initstring1, r ); *id = SPACEBALL_2003A; } if ( flags & SB_2003b ) { spaceball_cmd( fd, spaceball_initstring1, r ); spaceball_cmd( fd, spaceball_initstring1, r ); *id = SPACEBALL_2003B; } if ( flags & SB_2003c ) { spaceball_cmd( fd, spaceball_initstring1, r ); spaceball_cmd( fd, spaceball_initstring1, r ); *id = SPACEBALL_2003C; } if ( flags & SB_3003 ) { spaceball_cmd( fd, spaceball_initstring1, r ); spaceball_cmd( fd, spaceball_initstring1, r ); *id = SPACEBALL_3003C; } if ( flags & SB_4000 ) { spaceball_cmd( fd, spaceball_initstring2, r ); spaceball_cmd( fd, spaceball_initstring2, r ); *id = SPACEBALL_4000FLX; } return(0); } if (spaceball_waitchar(fd, 0x11, r, 4000) || spaceball_waitchar(fd, 0x0d, r, 1000)) return -1; if (spaceball_waitcmd(fd, '@', r)) return -1; if (strncmp("@1 Spaceball alive", r, 18)) return -1; if (spaceball_waitcmd(fd, '@', r)) return -1; if (spaceball_cmd(fd, "hm", r)) return -1; if (!strncmp("Hm2003B", r, 7)) *id = SPACEBALL_2003B; if (!strncmp("Hm2003C", r, 7)) *id = SPACEBALL_2003C; if (!strncmp("Hm3003C", r, 7)) *id = SPACEBALL_3003C; if (!strncmp("HvFirmware", r, 10)) { if (spaceball_cmd(fd, "\"", r)) return -1; if (strncmp("\"1 Spaceball 4000 FLX", r, 21)) return -1; if (spaceball_waitcmd(fd, '"', r)) return -1; if (strstr(r, " L ")) *id = SPACEBALL_4000FLX_L; else *id = SPACEBALL_4000FLX; if (spaceball_waitcmd(fd, '"', r)) return -1; if (spaceball_cmd(fd, "YS", r)) return -1; if (spaceball_cmd(fd, "M", r)) return -1; return 0; } if (spaceball_cmd(fd, "P@A@A", r) || spaceball_cmd(fd, "FT@", r) || spaceball_cmd(fd, "MSS", r)) return -1; return 0; } int stinger_init(int fd, long *id, long *extra) { int i; unsigned char c; unsigned char *response = "\r\n0600520058C272"; if (write(fd, " E5E5", 5) != 5) /* Enable command */ return -1; for (i = 0; i < 16; i++) /* Check for Stinger */ if (readchar(fd, &c, 200) || (c != response[i])) return -1; return 0; } int mzp_init(int fd, long *id, long *extra) { if (logitech_command(fd, "*X*q")) return -1; setline(fd, CS8, B9600); return 0; } int newton_init(int fd, long *id, long *extra) { int i; unsigned char c; unsigned char response[35] = { 0x16, 0x10, 0x02, 0x64, 0x5f, 0x69, 0x64, 0x00, 0x00, 0x00, 0x0c, 0x6b, 0x79, 0x62, 0x64, 0x61, 0x70, 0x70, 0x6c, 0x00, 0x00, 0x00, 0x01, 0x6e, 0x6f, 0x66, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x10, 0x03, 0xdd, 0xe7 }; for (i = 0; i < 35; i++) if (readchar(fd, &c, 400) || (c != response[i])) return -1; return 0; } int twiddler_init(int fd, long *id, long *extra) { unsigned char c[10]; int count, line; /* Turn DTR off, otherwise the Twiddler won't send any data. */ if (ioctl(fd, TIOCMGET, &line)) return -1; line &= ~TIOCM_DTR; if (ioctl(fd, TIOCMSET, &line)) return -1; /* Check whether the device on the serial line is the Twiddler. * * The Twiddler sends data packets of 5 bytes which have the following * properties: the MSB is 0 on the first and 1 on all other bytes, and * the high order nibble of the last byte is always 0x8. * * We read and check two of those 5 byte packets to be sure that we * are indeed talking to a Twiddler. */ /* Read at most 5 bytes until we find one with the MSB set to 0 */ for (count = 0; count < 5; count++) { if (readchar(fd, c+0, 500)) return -1; if ((c[0] & 0x80) == 0) break; } if (count == 5) { /* Could not find header byte in data stream */ return -1; } /* Read remaining 4 bytes plus the full next data packet */ for (count = 1; count < 10; count++) { if (readchar(fd, c+count, 500)) return -1; } /* Check whether the bytes of both data packets obey the rules */ for (count = 1; count < 10; count++) { if ((count % 5 == 0 && (c[count] & 0x80) != 0) || (count % 5 == 4 && (c[count] & 0xF0) != 0x80) || (count % 5 != 0 && (c[count] & 0x80) != 0x80)) { /* Invalid byte in data packet */ return -1; } } return 0; } int dump_init(int fd, long *id, long *extra) { unsigned char c, o = 0; c = 0x80; if (write(fd, &c, 1) != 1) /* Enable command */ return -1; while (1) if (!readchar(fd, &c, 1)) { printf("%02x (%c) ", c, ((c > 32) && (c < 127)) ? c : 'x'); o = 1; } else { if (o) { printf("\n"); o = 0; } } } struct input_types { char name[16]; char name2[16]; int speed; int flags; unsigned long type; unsigned long extra; int flush; int (*init)(int fd, long *id, long *extra); }; struct input_types input_types[] = { { "--sunkbd", "-skb", B1200, CS8, SERIO_SUNKBD, 0x00, 1, NULL }, { "--spaceorb", "-orb", B9600, CS8, SERIO_SPACEORB, 0x00, 1, NULL }, { "--spaceball", "-sbl", B9600, CS8, SERIO_SPACEBALL,0x00, 0, spaceball_init }, { "--magellan", "-mag", B9600, CS8 | CSTOPB | CRTSCTS, SERIO_MAGELLAN, 0x00, 1, magellan_init }, { "--warrior", "-war", B1200, CS7 | CSTOPB, SERIO_WARRIOR, 0x00, 1, warrior_init }, { "--stinger", "-sting", B1200, CS8, SERIO_STINGER, 0x00, 1, stinger_init }, { "--mousesystems", "-msc", B1200, CS8, SERIO_MSC, 0x01, 1, NULL }, { "--sunmouse", "-sun", B1200, CS8, SERIO_SUN, 0x01, 1, NULL }, { "--microsoft", "-bare", B1200, CS7, SERIO_MS, 0x00, 1, NULL }, { "--mshack", "-ms", B1200, CS7, SERIO_MS, 0x01, 1, NULL }, { "--mouseman", "-mman", B1200, CS7, SERIO_MP, 0x01, 1, NULL }, { "--intellimouse", "-ms3", B1200, CS7, SERIO_MZ, 0x11, 1, NULL }, { "--mmwheel", "-mmw", B1200, CS7 | CSTOPB, SERIO_MZP, 0x13, 1, mzp_init }, { "--iforce", "-ifor", B38400, CS8, SERIO_IFORCE, 0x00, 0, NULL }, { "--newtonkbd", "-newt", B9600, CS8, SERIO_NEWTON, 0x00, 0, newton_init }, { "--h3600ts", "-ipaq", B115200, CS8, SERIO_H3600, 0x00, 0, NULL }, { "--stowawaykbd", "-ipaqkbd", B115200, CS8, SERIO_STOWAWAY, 0x00, 0, NULL }, { "--ps2serkbd", "-ps2ser", B1200, CS8, SERIO_PS2SER, 0x00, 1, NULL }, #if 0 { "--twiddler", "-twid", B2400, CS8, SERIO_TWIDKBD, 0x00, 0, twiddler_init }, { "--twiddler-joy", "-twidjoy", B2400, CS8, SERIO_TWIDJOY, 0x00, 0, twiddler_init }, { "--ipod-remote", "-ipod", B9600, CS8, SERIO_IPOD_REM, 0x00, 0, NULL }, #endif { "--dump", "-dump", B2400, CS8, 0, 0x00, 0, dump_init }, { "", "", 0, 0 } }; int main(int argc, char **argv) { unsigned long devt; int ldisc; int type; long id, extra; int fd; char c; int i,j; if ((argc < 2 ) || !strcmp("--help", argv[1])) { puts(""); puts("Usage: inputttach <mode> <device>"); puts(""); puts("Modes:"); puts(" --sunkbd -skb Sun Type 4 and Type 5 keyboards"); puts(" --spaceorb -orb SpaceOrb 360 / SpaceBall Avenger"); puts(" --spaceball -sbl SpaceBall 2003 / 3003 / 4000 FLX"); puts(" --magellan -mag Magellan / SpaceMouse"); puts(" --warrior -war WingMan Warrior"); puts(" --stinger -stng Gravis Stinger"); puts(" --mousesystems -msc 3-button Mouse Systems mice"); puts(" --sunmouse -sun 3-button Sun mice"); puts(" --microsoft -bare 2-button Microsoft mice"); puts(" --mshack -ms 3-button mice in Microsoft mode"); puts(" --mouseman -mman 3-button Logitech and Genius mice"); puts(" --intellimouse -ms3 Microsoft IntelliMouse"); puts(" --mmwheel -mmw Logitech mice with 4-5 buttons or wheel"); puts(" --iforce -ifor I-Force joysticks and wheels"); puts(" --h3600ts -ipaq Ipaq h3600 touchscreen"); puts(" --stowawaykbd -ipaqkbd Stowaway keyboard"); puts(" --ps2serkbd -ps2ser PS/2 via serial keyboard"); #if 0 puts(" --twiddler -twid Handykey Twiddler chording keyboard"); puts(" --twiddler-joy -twidjoy Handykey Twiddler used as a joystick"); puts(" --ipod-remote -ipod iPod remote control"); #endif puts(""); return 1; } if ( argc > 3 ) { flags = 0; for( i = 3; i < argc; i++ ) { for( j = 0; j < NUM_FLAGS; j++ ) { if ( strcmp( flag_table[j].string, argv[i] ) == 0 ) flags |= flag_table[j].flag; } } } for (type = 0; input_types[type].speed; type++) { if (!strncasecmp(argv[1], input_types[type].name, 16) || !strncasecmp(argv[1], input_types[type].name2, 16)) break; } if (!input_types[type].speed) { fprintf(stderr, "inputattach: invalid mode\n"); return 1; } if ((fd = open(argv[2], O_RDWR | O_NOCTTY | O_NONBLOCK)) < 0) { perror("inputattach"); return 1; } setline(fd, input_types[type].flags, input_types[type].speed); if (input_types[type].flush) while (!readchar(fd, &c, 100)); id = 0; extra = input_types[type].extra; if (input_types[type].init && input_types[type].init(fd, &id, &extra)) { fprintf(stderr, "inputattach: device initialization failed\n"); return 1; } ldisc = N_MOUSE; if(ioctl(fd, TIOCSETD, &ldisc)) { fprintf(stderr, "inputattach: can't set line discipline\n"); return 1; } devt = SERIO_RS232 | input_types[type].type | (id << 8) | (extra << 16); if(ioctl(fd, SPIOCSTYPE, &devt)) { fprintf(stderr, "inputattach: can't set device type\n"); return 1; } if ( flags & DAEMON ) daemon(0,0); read(fd, NULL, 0); ldisc = 0; ioctl(fd, TIOCSETD, &ldisc); close(fd); return 0; } /* * $Id: spaceball.c,v 1.17 2002/01/22 20:29:03 vojtech Exp $ * * Copyright (c) 1999-2001 Vojtech Pavlik * * Based on the work of: * David Thompson * Joseph Krahn */ /* * SpaceTec SpaceBall 2003/3003/4000 FLX driver for Linux */ /* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * Should you need to contact me, the author, you can do so either by * e-mail - mail your message to <vo...@uc...>, or by paper mail: * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic * * hacked a bit by Allen Lorenz */ #include <linux/kernel.h> #include <linux/slab.h> #include <linux/module.h> #include <linux/init.h> #include <linux/input.h> #include <linux/serio.h> MODULE_AUTHOR("Vojtech Pavlik <vo...@uc...>"); MODULE_DESCRIPTION("SpaceTec SpaceBall 2003/3003/4000 FLX driver"); MODULE_LICENSE("GPL"); /* * Constants. */ #define SPACEBALL_MAX_LENGTH 128 #define SPACEBALL_MAX_ID 8 #define SPACEBALL_1003 1 #define SPACEBALL_2003B 3 #define SPACEBALL_2003C 4 #define SPACEBALL_3003C 7 #define SPACEBALL_4000FLX 8 #define SPACEBALL_4000FLX_L 9 static int spaceball_axes[] = { ABS_X, ABS_Z, ABS_Y, ABS_RX, ABS_RZ, ABS_RY }; static char *spaceball_names[] = { "?", "SpaceTec SpaceBall 1003", "SpaceTec SpaceBall 2003", "SpaceTec SpaceBall 2003B", "SpaceTec SpaceBall 2003C", "SpaceTec SpaceBall 3003", "SpaceTec SpaceBall SpaceController", "SpaceTec SpaceBall 3003C", "SpaceTec SpaceBall 4000FLX", "SpaceTec SpaceBall 4000FLX Lefty" }; /* * Per-Ball data. */ struct spaceball { struct input_dev dev; struct serio *serio; int idx; int escape; unsigned char data[SPACEBALL_MAX_LENGTH]; char phys[32]; }; /* * spaceball_process_packet() decodes packets the driver receives from the * SpaceBall. */ static void spaceball_process_packet(struct spaceball* spaceball, struct pt_regs *regs) { struct input_dev *dev = &spaceball->dev; unsigned char *data = spaceball->data; int i; if (spaceball->idx < 2) return; input_regs(dev, regs); switch (spaceball->data[0]) { case 'D': /* Ball data */ if (spaceball->idx != 15) return; for (i = 0; i < 6; i++) input_report_abs(dev, spaceball_axes[i], (__s16)((data[2 * i + 3] << 8) | data[2 * i + 2])); break; case 'K': /* Button data */ if (spaceball->idx != 3) return; if (dev->id.product > 7 ) return; /* advance button data follows */ input_report_key(dev, BTN_1, (data[2] & 0x01) || (data[2] & 0x20)); input_report_key(dev, BTN_2, data[2] & 0x02); input_report_key(dev, BTN_3, data[2] & 0x04); input_report_key(dev, BTN_4, data[2] & 0x08); input_report_key(dev, BTN_5, data[1] & 0x01); input_report_key(dev, BTN_6, data[1] & 0x02); input_report_key(dev, BTN_7, data[1] & 0x04); input_report_key(dev, BTN_9, data[1] & 0x08); input_report_key(dev, BTN_8, data[1] & 0x10); break; case '.': /* Advanced button data */ if (spaceball->idx != 3) return; input_report_key(dev, BTN_A, data[2] & 0x01); input_report_key(dev, BTN_B, data[2] & 0x02); input_report_key(dev, BTN_C, data[2] & 0x04); input_report_key(dev, BTN_1, data[2] & 0x08); input_report_key(dev, BTN_2, data[2] & 0x10); input_report_key(dev, BTN_3, data[2] & 0x20); input_report_key(dev, BTN_4, data[2] & 0x80); input_report_key(dev, BTN_5, data[1] & 0x01); input_report_key(dev, BTN_6, data[1] & 0x02); input_report_key(dev, BTN_7, data[1] & 0x04); input_report_key(dev, BTN_8, data[1] & 0x08); input_report_key(dev, BTN_9, data[1] & 0x10); break; case 'E': /* Device error */ spaceball->data[spaceball->idx - 1] = 0; printk(KERN_ERR "spaceball: Device error. [%s]\n", spaceball->data + 1); break; case '?': /* Bad command packet */ spaceball->data[spaceball->idx - 1] = 0; printk(KERN_ERR "spaceball: Bad command. [%s]\n", spaceball->data + 1); break; } input_sync(dev); } /* * Spaceball 4000 FLX packets all start with a one letter packet-type decriptor, * and end in 0x0d. It uses '^' as an escape for CR, XOFF and XON characters which * can occur in the axis values. */ static irqreturn_t spaceball_interrupt(struct serio *serio, unsigned char data, unsigned int flags, struct pt_regs *regs) { struct spaceball *spaceball = serio->private; switch (data) { case 0xd: spaceball_process_packet(spaceball, regs); spaceball->idx = 0; spaceball->escape = 0; break; case '^': if (!spaceball->escape) { spaceball->escape = 1; break; } spaceball->escape = 0; case 'M': case 'Q': case 'S': if (spaceball->escape) { spaceball->escape = 0; data &= 0x1f; } default: if (spaceball->escape) spaceball->escape = 0; if (spaceball->idx < SPACEBALL_MAX_LENGTH) spaceball->data[spaceball->idx++] = data; break; } return IRQ_HANDLED; } /* * spaceball_disconnect() is the opposite of spaceball_connect() */ static void spaceball_disconnect(struct serio *serio) { struct spaceball* spaceball = serio->private; input_unregister_device(&spaceball->dev); serio_close(serio); kfree(spaceball); } /* * spaceball_connect() is the routine that is called when someone adds a * new serio device. It looks for the Magellan, and if found, registers * it as an input device. */ static void spaceball_connect(struct serio *serio, struct serio_dev *dev) { struct spaceball *spaceball; int i, t, id; if ((serio->type & ~SERIO_ID) != (SERIO_RS232 | SERIO_SPACEBALL)) return; if ((id = (serio->type & SERIO_ID) >> 8) > SPACEBALL_MAX_ID) return; if (!(spaceball = kmalloc(sizeof(struct spaceball), GFP_KERNEL))) return; memset(spaceball, 0, sizeof(struct spaceball)); spaceball->dev.evbit[0] = BIT(EV_KEY) | BIT(EV_ABS); switch (id) { case SPACEBALL_4000FLX: case SPACEBALL_4000FLX_L: spaceball->dev.keybit[LONG(BTN_A)] |= BIT(BTN_A) | BIT(BTN_B) | BIT(BTN_C); case SPACEBALL_2003B: spaceball->dev.keybit[LONG(BTN_0)] |= BIT(BTN_9); default: spaceball->dev.keybit[LONG(BTN_0)] |= BIT(BTN_2) | BIT(BTN_3) | BIT(BTN_4) | BIT(BTN_5) | BIT(BTN_6) | BIT(BTN_7) | BIT(BTN_8); case SPACEBALL_3003C: spaceball->dev.keybit[LONG(BTN_0)] |= BIT(BTN_1) | BIT(BTN_8); } for (i = 0; i < 6; i++) { t = spaceball_axes[i]; set_bit(t, spaceball->dev.absbit); spaceball->dev.absmin[t] = i < 3 ? -8000 : -1600; spaceball->dev.absmax[t] = i < 3 ? 8000 : 1600; spaceball->dev.absflat[t] = i < 3 ? 40 : 8; spaceball->dev.absfuzz[t] = i < 3 ? 8 : 2; } spaceball->serio = serio; spaceball->dev.private = spaceball; sprintf(spaceball->phys, "%s/input0", serio->phys); init_input_dev(&spaceball->dev); spaceball->dev.name = spaceball_names[id]; spaceball->dev.phys = spaceball->phys; spaceball->dev.id.bustype = BUS_RS232; spaceball->dev.id.vendor = SERIO_SPACEBALL; spaceball->dev.id.product = id; spaceball->dev.id.version = 0x0100; serio->private = spaceball; if (serio_open(serio, dev)) { kfree(spaceball); return; } input_register_device(&spaceball->dev); printk(KERN_INFO "input: %s on serio%s\n", spaceball_names[id], serio->phys); } /* * The serio device structure. */ static struct serio_dev spaceball_dev = { .interrupt = spaceball_interrupt, .connect = spaceball_connect, .disconnect = spaceball_disconnect, }; /* * The functions for inserting/removing us as a module. */ int __init spaceball_init(void) { serio_register_device(&spaceball_dev); return 0; } void __exit spaceball_exit(void) { serio_unregister_device(&spaceball_dev); } module_init(spaceball_init); module_exit(spaceball_exit); |
From: Antonino A. D. <ad...@ho...> - 2004-10-16 00:41:10
|
On Saturday 16 October 2004 06:12, Kendall Bennett wrote: > Helge Hafting <hel...@ai...> wrote: > > On Fri, Oct 15, 2004 at 11:36:04AM -0700, Kendall Bennett wrote: > > > Helge Hafting <hel...@ai...> wrote: > > That's fine. What I meant, was please make it independent of the > > VESA framebuffer driver, because one might want to use an > > acellerated driver when one is available. > > Oh, it already is. The VESA driver is not actually done yet so the only > drivers using VideoBoot right now are the accelerated ones ;-) > If these get in (emulator with/without the video boot), I'm willing to modify the vesafb driver. Tony |
From: Kendall B. <Ken...@sc...> - 2004-10-15 22:12:46
|
Helge Hafting <hel...@ai...> wrote: > On Fri, Oct 15, 2004 at 11:36:04AM -0700, Kendall Bennett wrote: > > Helge Hafting <hel...@ai...> wrote: > > > [...] > > > Having video BOOT would be great, and please make it independent of > > > the framebuffer drivers. > > > > Right now it is independent but I added a single line of code to the > > Radeon driver to init the card prior to initing the rest of the driver. > > That's fine. What I meant, was please make it independent of the > VESA framebuffer driver, because one might want to use an > acellerated driver when one is available. Oh, it already is. The VESA driver is not actually done yet so the only drivers using VideoBoot right now are the accelerated ones ;-) > > It can be done earlier than that inside fbmem.c, but I wasn't sure how to > > set up the code so it would only POST each card as it is needed as I > > don't want to bring up secondary controllers unless the user actually > > wants this. > > Selecting which cards to "boot" can probably be done with a kernel > parameter? The default could be to bring up all cards except the > one the bios brought up already. Wanting to _not_ bring up some > cards seems to be the unusual case to me. Not really. In many cases there may be a secondary controller on the system that is not wanted, such as when the user has an i915G or other chipset with integrated video but has plugged a different video card into the system. The integrated video can still be active so trying to bring it up may be problematic unless it is really wanted. > > How does the framebuffer console system handle secondary controllers > > right now? It seems from my look at the code that it only brings up the > > primary and not the secondary? > > The stock 2.6.x fbcon only use one framebuffer console. I use the > ruby patch which supports multiple consoles. The ruby patch for > 2.6.7 support multiple fbcons so you can have several keyboards > attached to separate framebuffers thus supporting several users. > (VT1-VT16 is the first kbd on the first fbcon, VT17-VT32 is the > second kbd on the second fbcon, and so on.) > > The ruby patch for 2.6.8.1 is somewhat broken, and doesn't work > with fbcon. It still support multiple keyboards and multiple > framebuffers, so I can support several users with separate xservers > but currently not gettys on separate fbcons. Cool. So this stuff is not yet in the official kernel trees. Is that going to happen or is the project to move the video out of the kernel going to happen first? > Note that soft-booting the "extra" video card in order to support a > framebuffer driver is nice even if it doesn't attach to the > console, because there is other software that can utilize a > framebuffer. X is the most well-known of them. Yes, but if you don't need a framebuffer console on the card then X or whatever can bring up the secondary controller from user space once the kernel has booted. Regards, --- Kendall Bennett Chief Executive Officer SciTech Software, Inc. Phone: (530) 894 8400 http://www.scitechsoft.com ~ SciTech SNAP - The future of device driver technology! ~ |
From: Helge H. <hel...@ai...> - 2004-10-15 21:39:26
|
On Fri, Oct 15, 2004 at 11:36:04AM -0700, Kendall Bennett wrote: > Helge Hafting <hel...@ai...> wrote: > [...] > > Having video BOOT would be great, and please make it independent of > > the framebuffer drivers. > > Right now it is independent but I added a single line of code to the > Radeon driver to init the card prior to initing the rest of the driver. That's fine. What I meant, was please make it independent of the VESA framebuffer driver, because one might want to use an acellerated driver when one is available. > It can be done earlier than that inside fbmem.c, but I wasn't sure how to > set up the code so it would only POST each card as it is needed as I > don't want to bring up secondary controllers unless the user actually > wants this. > Selecting which cards to "boot" can probably be done with a kernel parameter? The default could be to bring up all cards except the one the bios brought up already. Wanting to _not_ bring up some cards seems to be the unusual case to me. > How does the framebuffer console system handle secondary controllers > right now? It seems from my look at the code that it only brings up the > primary and not the secondary? > The stock 2.6.x fbcon only use one framebuffer console. I use the ruby patch which supports multiple consoles. The ruby patch for 2.6.7 support multiple fbcons so you can have several keyboards attached to separate framebuffers thus supporting several users. (VT1-VT16 is the first kbd on the first fbcon, VT17-VT32 is the second kbd on the second fbcon, and so on.) The ruby patch for 2.6.8.1 is somewhat broken, and doesn't work with fbcon. It still support multiple keyboards and multiple framebuffers, so I can support several users with separate xservers but currently not gettys on separate fbcons. Note that soft-booting the "extra" video card in order to support a framebuffer driver is nice even if it doesn't attach to the console, because there is other software that can utilize a framebuffer. X is the most well-known of them. Helge Hafting |
From: Hugo V. <hvw...@ya...> - 2004-10-10 22:00:27
|
Hi! Is it the recommendation that to get vc's on both monitors a Matrox G550 is the answer? Thanks Hugo _______________________________ Do you Yahoo!? Declare Yourself - Register online to vote today! http://vote.yahoo.com |
From: Helge H. <hel...@hi...> - 2004-10-08 12:14:02
|
Xorg 6.8.1+debian works fine for me on a non-ruby machine. Getting xorg to work with ruby seems a bit harder. I downloaded isolatedevice patches from Svetoslav Slavtchev's site. They were for xorg 6.7.0, and applied without errors but plenty of offsets. The strange thing is that isolatedevice seemed to work for PCI:1:0:0 but not for PCI:0:8:0 which I found very strange. The logfile Xorg.0.log acknowledged the isolatedevice option, the logfile Xorg.1.log did not. And the xorg.conf-files in use are copies of the ones that works for xfree86, so it cannot possibly be a config file error. Perhaps the patch went wrong? Is there a isolatedevice patch for xorg 6.8.1? Helge Hafting |
From: Yitzhak B. G. <yit...@ya...> - 2004-10-08 07:10:51
|
Following is my correspondence with the manufacturer of the device: Telegnosis (Japan). This is what prompted me to bring up the topic or Ruby on laptops or on computers with no PCI slots. Yitzhak Bar Geva Dear Sir, Thanks for your prompt reply. Under Windows, we can support up to 8 dongles if you do not care its slowly display performance. It means that users can extend 8 monitors max. from their PC's real USB2.0 ports. Best Regards Chung-fu Hong Kairen Co.,Ltd. -----???????----- ??? : Yitzhak Bar Geva [mailto:yit...@ya...] ???? : 2004?9?8? 22:08 ?? : 'lubic-staff' ?? : RE: Interested in Telegnosis VGA to USB 2 adapter Thank you for the response. I wish to stay in touch with you. Please tell me, even under Windows, can one attach two or more of your units to enable two or more video screens to be added? Yitzhak Bar Geva Our USB20SVGA dongle just only support Window2000pro or XP. It can help PC user especially for notebook to use Windows' multidisplay function easily. It can not support Linux right now. Best Regards Chung-fu Hong Kairen Co.,Ltd. -----???????----- ??? : yitzhak bar geva [mailto:yit...@ya...] ???? : 2004?9?3? 17:53 ?? : st...@lu... ?? : Interested in Telegnosis VGA to USB 2 adapter I can't read Japanese, but I am interested in corresponding regarding the Telegnosis VGA to USB adapter. My first question is: Can multiple adapters be placed on the same PC? My application requires four different monitors, each attaches to a seperate X Windows session under Linux. To be precise: I do not(!!) have one desktop. I use four different desktops - each one with a separate user. Can your adapter provide this capability for mapping four different PCI addresses? Thank you, Yitzhak Bar Geva -----Original Message----- From: lin...@li... [mailto:lin...@li...] On Behalf Of Mark Hurenkamp Sent: Thursday, October 07, 2004 10:51 AM To: lin...@li... Cc: lin...@li... Subject: Sitecom CN-105 USB2 to VGA adapter? Hi, Has anyone tried this device? It seems an ideal way to expand a server with as many terminals as needed, without being limited by available PCI slots. Sitecom has no Linux drivers or info on this device, so I guess it is currently not supported by Linux, but I'm curious what it would take to get this thing to work... (see http://www.sitecom.com/products_info.php?product_id=292&grp_id=1 ) Regards, Mark. |
From: Aivils <ai...@un...> - 2004-10-07 09:42:29
|
On Thursday 07 October 2004 11:50, Mark Hurenkamp wrote: > Hi, > > Has anyone tried this device? It seems an ideal way to expand > a server with as many terminals as needed, without being limited > by available PCI slots. > > Sitecom has no Linux drivers or info on this device, so I guess > it is currently not supported by Linux, but I'm curious what it > would take to get this thing to work... > (see http://www.sitecom.com/products_info.php?product_id=292&grp_id=1 ) i have not tried device. Previosly annouced japanese device uses NetChip 2280 USB device controller, which have Linux kernel driver. You can ask 2280 Linux kernel driver author - "how about video devices?". IMHO driver-less device may support only memory array, which may be goes to video output as 640x480 60 Hz. Aivils |
From: Mark H. <Mar...@xs...> - 2004-10-07 08:51:37
|
Hi, Has anyone tried this device? It seems an ideal way to expand a server with as many terminals as needed, without being limited by available PCI slots. Sitecom has no Linux drivers or info on this device, so I guess it is currently not supported by Linux, but I'm curious what it would take to get this thing to work... (see http://www.sitecom.com/products_info.php?product_id=292&grp_id=1 ) Regards, Mark. |
From: Hugo V. <hvw...@ya...> - 2004-10-02 16:27:40
|
Hi Ruby! with 2.6.7-ruby I now have the pc speaker working and the keyboard led programming. But why doesn't vcstime work? This is what the code looks like: ================================================= /* * vcstime.c * * Show time in upper right hand corner of the console screen * aeb, 951202, following a suggestion by Miguel de Icaza. */ #include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <time.h> void fatal(char *s) { perror(s); exit(1); } int number_of_columns() { int fda; unsigned char rc[2]; /* unsigned: Ra...@so... */ if((fda = open("/dev/vcsa0", O_RDONLY)) < 0) fatal("/dev/vcsa0"); if(read(fda, rc, 2) != 2) fatal("/dev/vcsa0"); close(fda); return rc[1]; } int main(){ int fd; int cols = number_of_columns(); time_t tid; struct tm *t; char tijd[10]; if((fd = open("/dev/vcs0", O_WRONLY)) < 0) fatal("/dev/vcs0"); while(1) { lseek(fd, cols-10, 0); tid = time(0); t = localtime(&tid); sprintf(tijd, " %02d:%02d:%02d", t->tm_hour, t->tm_min, t->tm_sec); write(fd, tijd, 9); usleep(500000L); /* or sleep(1); */ } } ================================================== Hugo __________________________________ Do you Yahoo!? Yahoo! Mail Address AutoComplete - You start. We finish. http://promotions.yahoo.com/new_mail |
From: Johannes G. <joh...@gm...> - 2004-09-29 19:42:10
|
On 09/27/2004 12:40:38 PM, Aivils wrote: > > Maybe it is no good idea to start two XServers at > > the very same time? > > That is not sane idea. kdm allways try to start all X servers > at same time. > Instead, gdm will start one after another and stop in > reversed order. This starting/stoping mode is the best. > ... > better choose gdm. Thanks very much, with gdm the starting/stoping of both XServers work perfectly (with i386 architecture and MGA primary, NVidia secondary). I only wonder why I need hackvideo although I use the prefbusid-patch. Without hackvideo the mouse and keyboard on the first XServer freezes as soon as the second XServer is started. Also the first XServer uses 99% CPU. And without the prefbusid-patch it does not work at all (black screen). I want to thank all of you who have made it possible to use one linux box with multiple monitors/keyboards/mice ! I hope that this feature will find its way into the standard linux kernel and the standard XServer. Johannes Gajdosik |
From: Helge H. <hel...@hi...> - 2004-09-29 09:29:53
|
Aivils wrote: > >That is not sane idea. kdm allways try to start all X servers >at same time. >Instead, gdm will start one after another and stop in >reversed order. This starting/stoping mode is the best. > > Do you know why this is so? In an ideal world, one xserver shouldn't care about another xserver - similar to how other programs don't step on each others toes at all. Helge Hafting |
From: Aivils <ai...@un...> - 2004-09-27 09:45:59
|
On Sunday 26 September 2004 01:08, Johannes Gajdosik wrote: > I also configured kdm to start 2 XServers, but in this configuration > on the second XServer the mouse is immovable and the keyboard does > not work. I do not know why, perhaps because the second XServer on > the NVidia comes up really fast while the XServer on the MGA takes > its time. Maybe it is no good idea to start two XServers at > the very same time? That is not sane idea. kdm allways try to start all X servers at same time. Instead, gdm will start one after another and stop in reversed order. This starting/stoping mode is the best. > Nevertheless I am not quite satisfied because I would like to > 1) use x86_64 kernel, not i386 > 2) have NVidia card as primary display device > 3) start both XServers from within kdm (or gdm). better choose gdm. Aivils |
From: Johannes G. <joh...@gm...> - 2004-09-25 22:19:11
|
2004-08-16 00:40 Aivils wrote: > P.S. Also exsits nested X server Xnest. May be anyone will patch > it and so run nested X with separate, unnested keyboard/mouse ? If I had such a program I would throw away the MGA, start 2 X11 screens on the NVidia, and start the modified Xnest on the second screen. I am also thinking about an XFree86 patch so that one XFree86 process contains 2 (or more) XServers that may access the same hardware. I do not know very much about the XFree86 implementation details, but perhaps it is not more difficult than building the modified Xnest. I would be much interested in your opinion. Johannes Gajdosik |
From: Johannes G. <joh...@gm...> - 2004-09-25 22:08:56
|
Ludovic Pollet wrote: > Can you try the same setpci command with the swithch -H1 ? It asks > setpci to bypass the kernel when accessing the pci bus. I am sorry, but on x86_64 the switch -H1 is not recognised. > > Up to now only one configuration has some promising results: > > MGA is primary, NVidia secondary, i386 kernel: > > In this case I can start the first XServer on the NVidia (vt7), > > and then a second Xserver on the MGA (vt17). Both Xservers > > have the prefbusid patch. > > That looks like a virtual console problem... > If the MGA is primay, I suppose it is used for the vga console > display. In this case you should start the MGA x server on vt7, > and NVidia on vt17. Thanks very much for the advice! Now I use /proc/bus/hackvideo, I start the first XServer on the primary card(MGA), I start the second XServer from an xterm on the first XServer and both XServers work! I also configured kdm to start 2 XServers, but in this configuration on the second XServer the mouse is immovable and the keyboard does not work. I do not know why, perhaps because the second XServer on the NVidia comes up really fast while the XServer on the MGA takes its time. Maybe it is no good idea to start two XServers at the very same time? Nevertheless I am not quite satisfied because I would like to 1) use x86_64 kernel, not i386 2) have NVidia card as primary display device 3) start both XServers from within kdm (or gdm). ad 1) Is it true that 2 graphic cards are not supported in linux-x86_64 (at least in kernel 2.4.27 and 2.6.8.1) ? ad 2) Perhaps the MGA Millenium cannot be a secondary display device? Johannes Gajdosik |