LinuxQuestions.org
Visit Jeremy's Blog.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Hardware
User Name
Password
Linux - Hardware This forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?

Notices


Reply
  Search this Thread
Old 02-09-2004, 08:13 PM   #151
jpbarto
Senior Member
 
Registered: Mar 2003
Location: Pittsburgh, PA
Distribution: Gentoo / NetBSD
Posts: 1,251

Rep: Reputation: 45

Does version 3.7.0 support the 2.6 kernel? I haven't looked at it in about the last 4 months so I honestly don't know. I just know the previous drivers wouldn't work with the 2.5 series.
 
Old 02-10-2004, 10:04 AM   #152
Osis
LQ Newbie
 
Registered: Feb 2004
Location: Riga, Latvia
Distribution: Debian unstable
Posts: 12

Rep: Reputation: 0
there is some workaround kernel 2.6.x diferent make file and when compiling it makes fglrx.ko module. XFree log file shows same poblem lieka 2.4.x without editing c file. it cannot find correct agp version. So i'm again on VESA or on kernel 2.4.x )

maybe sombedy knows something about that.
 
Old 02-10-2004, 10:40 AM   #153
jpbarto
Senior Member
 
Registered: Mar 2003
Location: Pittsburgh, PA
Distribution: Gentoo / NetBSD
Posts: 1,251

Rep: Reputation: 45
Osis, does the fglrx.ko kernel module detect your AGP improperly or does the XFree86 module detect improperly. If you post some error messages I'll try to give you a hand.
 
Old 02-10-2004, 10:58 AM   #154
Osis
LQ Newbie
 
Registered: Feb 2004
Location: Riga, Latvia
Distribution: Debian unstable
Posts: 12

Rep: Reputation: 0
Full logs aviable at http://osis.nix.lv


XFree86.log

drmOpenByBusid: drmGetBusid reports PCI:1:0:0
(II) fglrx(0): [drm] created "fglrx" driver at busid "PCI:1:0:0"
(II) fglrx(0): [drm] added 8192 byte SAREA at 0xd0ac3000
(II) fglrx(0): [drm] mapped SAREA 0xd0ac3000 to 0x40201000
(II) fglrx(0): [drm] framebuffer handle = 0xd8000000
(II) fglrx(0): [drm] added 1 reserved context for kernel
(II) fglrx(0): DRIScreenInit done
(II) fglrx(0): Kernel Module Version Information:
(II) fglrx(0): Name: fglrx
(II) fglrx(0): Version: 3.7.0
(II) fglrx(0): Date: Dec 18 2003
(II) fglrx(0): Desc: ATI Fire GL DRM kernel module
(II) fglrx(0): Kernel Module version matches driver.
(II) fglrx(0): Kernel Module Build Time Information:
(II) fglrx(0): Build-Kernel UTS_RELEASE: 2.6.2
(II) fglrx(0): Build-Kernel MODVERSIONS: no
(II) fglrx(0): Build-Kernel __SMP__: no
(II) fglrx(0): Build-Kernel PAGE_SIZE: 0x1000
(II) fglrx(0): [drm] register handle = 0xe1000000
(II) fglrx(0): [agp] Mode=0x1f000a1b bridge: 0x1106/0x3189
(II) fglrx(0): [agp] AGP v1/2 disable mask 0x00000000
(II) fglrx(0): [agp] AGP v3 disable mask 0x00000000
(II) fglrx(0): [agp] enabling AGP with mode=0x1f000b1a


kern.log

Feb 10 18:52:39 debian kernel: <6>AGP: Found 2 AGPv3 devices
Feb 10 18:52:39 debian kernel: AGP: Doing enable for AGPv3
Feb 10 18:52:39 debian kernel: agpgart: Found an AGP 3.5 compliant device.
Feb 10 18:52:39 debian kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000001
Feb 10 18:52:39 debian kernel: printing eip:
Feb 10 18:52:39 debian kernel: d0ac3330
Feb 10 18:52:39 debian kernel: *pde = 0f2f7067
Feb 10 18:52:39 debian kernel: *pte = 00000000
Feb 10 18:52:39 debian kernel: Oops: 0002 [#8]
Feb 10 18:52:39 debian kernel: CPU: 0
Feb 10 18:52:39 debian kernel: EIP: 0060:[_end+275247720/1069260600] Tainted: P
Feb 10 18:52:39 debian kernel: EFLAGS: 00013292
Feb 10 18:52:39 debian kernel: EIP is at 0xd0ac3330
Feb 10 18:52:39 debian kernel: eax: 00000001 ebx: d0b43460 ecx: ffffffff edx: 69746e65
Feb 10 18:52:39 debian kernel: esi: d0b426d8 edi: cf4090c0 ebp: d0b43460 esp: c9a55f04
Feb 10 18:52:39 debian kernel: ds: 007b es: 007b ss: 0068
Feb 10 18:52:39 debian kernel: Process XFree86 (pid: 822, threadinfo=c9a54000 task=c9dc20c0)
Feb 10 18:52:39 debian kernel: Stack: d0b1dcf4 69746e65 444d4163 00305002 d0b43460 d0b43460 d0b426d8 cf4090c0
Feb 10 18:52:39 debian kernel: d0b27efa cfe19000 d0b4369c d0b43460 d0b1480d 1f000b1a d0b1d8e8 d0b43460
Feb 10 18:52:39 debian kernel: d0b2df9d d0b43460 bffffaa4 00000004 c021b543 c9dc20c0 1f000b1a d0b2df11
Feb 10 18:52:39 debian kernel: Call Trace:
Feb 10 18:52:39 debian kernel: [_end+275618860/1069260600] __ke_amd_adv_spec_cache_feature+0x14/0x90 [fglrx]
Feb 10 18:52:39 debian kernel: [_end+275660338/1069260600] _r6x_CheckAGPCommand+0x145/0x190 [fglrx]
Feb 10 18:52:39 debian kernel: [_end+275580741/1069260600] __fgl_agp_enable+0x1d/0x20 [fglrx]
Feb 10 18:52:39 debian kernel: [_end+275617824/1069260600] __ke_agp_enable+0x28/0x40 [fglrx]
Feb 10 18:52:39 debian kernel: [_end+275685077/1069260600] drm_agp_enable+0x8c/0xcd [fglrx]
Feb 10 18:52:39 debian kernel: [capable+35/96] capable+0x23/0x60
Feb 10 18:52:39 debian kernel: [_end+275684937/1069260600] drm_agp_enable+0x0/0xcd [fglrx]
Feb 10 18:52:39 debian kernel: [_end+275623367/1069260600] firegl_ioctl+0x167/0x1a2 [fglrx]
Feb 10 18:52:39 debian kernel: [sys_ioctl+317/720] sys_ioctl+0x13d/0x2d0
Feb 10 18:52:39 debian kernel: [syscall_call+7/11] syscall_call+0x7/0xb
Feb 10 18:52:39 debian kernel:
Feb 10 18:52:39 debian kernel: Code: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


syslog

Feb 10 18:52:39 debian kernel: Process XFree86 (pid: 822, threadinfo=c9a54000 task=c9dc20c0)
Feb 10 18:52:39 debian kernel: Stack: d0b1dcf4 69746e65 444d4163 00305002 d0b43460 d0b43460 d0b426d8 cf4090c0
Feb 10 18:52:39 debian kernel: d0b27efa cfe19000 d0b4369c d0b43460 d0b1480d 1f000b1a d0b1d8e8 d0b43460
Feb 10 18:52:39 debian kernel: d0b2df9d d0b43460 bffffaa4 00000004 c021b543 c9dc20c0 1f000b1a d0b2df11
Feb 10 18:52:39 debian kernel: Call Trace:
Feb 10 18:52:39 debian kernel: [_end+275618860/1069260600] __ke_amd_adv_spec_cache_feature+0x14/0x90 [fglrx]
Feb 10 18:52:39 debian kernel: [_end+275660338/1069260600] _r6x_CheckAGPCommand+0x145/0x190 [fglrx]
Feb 10 18:52:39 debian kernel: [_end+275580741/1069260600] __fgl_agp_enable+0x1d/0x20 [fglrx]
Feb 10 18:52:39 debian kernel: [_end+275617824/1069260600] __ke_agp_enable+0x28/0x40 [fglrx]
Feb 10 18:52:39 debian kernel: [_end+275685077/1069260600] drm_agp_enable+0x8c/0xcd [fglrx]
Feb 10 18:52:39 debian kernel: [capable+35/96] capable+0x23/0x60
Feb 10 18:52:39 debian kernel: [_end+275684937/1069260600] drm_agp_enable+0x0/0xcd [fglrx]
Feb 10 18:52:39 debian kernel: [_end+275623367/1069260600] firegl_ioctl+0x167/0x1a2 [fglrx]
Feb 10 18:52:39 debian kernel: [sys_ioctl+317/720] sys_ioctl+0x13d/0x2d0
Feb 10 18:52:39 debian kernel: [syscall_call+7/11] syscall_call+0x7/0xb
Feb 10 18:52:39 debian kernel:
Feb 10 18:52:39 debian kernel: Code: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Feb 10 18:52:39 debian gdm[821]: gdm_slave_xioerror_handler: Fatal X error - Restarting :0
Feb 10 18:52:39 debian gdm[493]: deal_with_x_crashes: Running the XKeepsCrashing script
Feb 10 18:52:43 debian gdm[493]: Failed to start X server several times in a short time period; disabling display :0
Feb 10 18:53:01 debian /USR/SBIN/CRON[1138]: (mail) CMD ( if [ -x /usr/lib/exim/exim3 -a -f /etc/exim/exim.conf ]; then /usr/lib/exim/exim3 -q ; fi)
Feb 10 18:54:20 debian gconfd (osis-531): GConf server is not in use, shutting down.
Feb 10 18:54:20 debian gconfd (osis-531): Exiting


I hope i gave info what you needed

Last edited by Osis; 02-10-2004 at 11:12 AM.
 
Old 02-10-2004, 02:01 PM   #155
jpbarto
Senior Member
 
Registered: Mar 2003
Location: Pittsburgh, PA
Distribution: Gentoo / NetBSD
Posts: 1,251

Rep: Reputation: 45
That's some serious error messages. Does loading the 2.6 fglrx module cause the system to crash by any chance?

Well I don't have a 2.6 kernel so I haven't tried to use ATI's 2.6 module. But it looks like (unless you can find someone else who's had this problem) you may have to debug ATI's code to figure out just what's going wrong.

We have to find out what the module is doing that causes this message:
Quote:
Feb 10 18:52:39 debian kernel: agpgart: Found an AGP 3.5 compliant device.
Feb 10 18:52:39 debian kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000001
to occur. If I get some time tonight I'll download the ATI module and take a look at it. But that's where I'd start is with those two messages, find out what its doing right after it prints out that its found an AGP 3.5 device and then find out if the second message is coming from the kernel or from the module itself. If its coming from the module find out what conditions lead that message to be printed.

jpbarto
 
Old 02-10-2004, 11:29 PM   #156
jpbarto
Senior Member
 
Registered: Mar 2003
Location: Pittsburgh, PA
Distribution: Gentoo / NetBSD
Posts: 1,251

Rep: Reputation: 45
Ok, Osis. I've taken a look at the code and I've located the last known good output from the kernel (before the kernel complains about the NULL dereference). I've included some patches that you can apply. Most of them (agp3.c and i7505-agp.c) only output more than usual. The third however agpgart_be.c has some minor tweaks in terms of what functions are used. Make backups of i7505-agp.c, agp3.c and agpgart_be.c and then apply these patches. Recompile and let me know how things go.

jpbarto

--- agpgart_be.c 2004-02-10 23:51:11.000000000 -0500
+++ agpgart_be_new.c 2004-02-11 00:26:04.000000000 -0500
@@ -1020,12 +1020,8 @@ int agp_generic_agp_enable(u32 mode)
} else
if (v3_devs>1) {
printk (KERN_INFO "AGP: Doing enable for AGPv3\n");
-#ifdef FGL_USE_AGPV3_OFFICIAL_ENABLE
- return agp_generic_agp_3_0_enable(mode);
-#else
return agp_generic_agp_v3_enable(mode); // FGL preliminary coding
-#endif
- } else {
+ } else {
printk (KERN_INFO "AGP: Insufficent amount of AGP devices found\n");
return(-1);
}
@@ -6070,13 +6066,13 @@ static struct {
VIA_APOLLO_KT400,
"Via",
"Apollo KT400",
- via_generic_setup }, // AGP v2
+ via_kt400_setup }, // AGP v2
{ PCI_DEVICE_ID_VIA_8754, // == PCI_DEVICE_ID_VIA_P4X333,
PCI_VENDOR_ID_VIA,
VIA_APOLLO_P4X400,
"Via",
"Apollo P4X400",
- via_generic_setup }, // AGP v2
+ via_kt400_setup }, // AGP v2
{ PCI_DEVICE_ID_VIA_P4M266,
PCI_VENDOR_ID_VIA,
VIA_APOLLO_P4M266,


--- agp3.c 2004-02-11 00:33:48.000000000 -0500
+++ agp3_new.c 2004-02-11 00:34:57.000000000 -0500
@@ -687,20 +687,25 @@ int agp_generic_agp_3_0_enable(u32 mode)
printk(KERN_INFO PFX "Found an AGP %d.%d compliant device. \n",
major, minor);
if(major >= 3) {
+ printk(KERN_INFO PFX "DBG Info: Reading PCI Config...\n");
pci_read_config_dword(agp_bridge.dev, agp_bridge.capndx + 0x4, &agp_3_0);
/*
* Check to see if we are operating in 3.0 mode
*/
+ printk(KERN_INFO PFX "DBG Info: Checking current AGP Mode...\n");
if((agp_3_0 >> 3) & 0x1) {
+ printk(KERN_INFO PFX "DBG Info: Enabling AGP3 Mode...\n");
agp_3_0_node_enable(mode, minor);
return 0; /* success */
}
}
#if 1 /* FGL */
+ printk(KERN_INFO PFX "DBG Info: Enabling AGP2 Mode...\n");
agp_generic_agp_v2_enable(mode); // redirect to FGL coding
#else
agp_generic_agp_enable(mode);
#endif

+ printk(KERN_INFO PFX "DBG Info: Leaving agp_generic_agp_3_0_enable\n");
return 0; /* success */
}



--- i7505-agp.c 2004-02-10 23:51:11.000000000 -0500
+++ i7505_new.c 2004-02-11 00:07:40.000000000 -0500
@@ -150,6 +150,7 @@ int __init intel_7505_setup(struct pci_d
agp_bridge.cleanup = intel_7505_cleanup;
agp_bridge.tlb_flush = intel_7505_tlbflush;
agp_bridge.mask_memory = intel_7505_mask_memory;
+ printk(KERN_INFO PFX "DBG Info: Setting i7505 enabler to agp_generic_3\n");
agp_bridge.agp_enable = agp_generic_agp_3_0_enable;
agp_bridge.cache_flush = global_cache_flush;
agp_bridge.create_gatt_table = agp_generic_create_gatt_table;

Last edited by jpbarto; 02-10-2004 at 11:36 PM.
 
Old 02-11-2004, 05:38 PM   #157
Osis
LQ Newbie
 
Registered: Feb 2004
Location: Riga, Latvia
Distribution: Debian unstable
Posts: 12

Rep: Reputation: 0
whan building module there are no changes in output.

debian:/lib/modules/fglrx# ./make_install.sh
- creating symlink
- recreating module dependency list
- trying a sample load of the kernel module
FATAL: Error inserting fglrx (/lib/modules/2.6.2/kernel/drivers/char/drm/fglrx.ko): Unknown symbol in module, or unknown parameter (see dmesg)
failed.

dmesg contains nothing specific about this error

if trying modprobe then in debug

for the fors two times it added line
Feb 12 00:45:28 debian kernel: request_module: failed /sbin/modprobe -- char-major-10-134. error = 256

after some edditing c files it stopped but result is the same FATAL: blah blag Unknown symbol in module

my gcc
gcc (GCC) 3.3.3 20040125 (prerelease) (Debian)

maybe it due to XFree98 4.2.1 ???

builded fglrx.ko file (and changed .c files are aviable on my web at osis.nix.lv)

Last edited by Osis; 02-11-2004 at 05:44 PM.
 
Old 02-11-2004, 08:30 PM   #158
jpbarto
Senior Member
 
Registered: Mar 2003
Location: Pittsburgh, PA
Distribution: Gentoo / NetBSD
Posts: 1,251

Rep: Reputation: 45
Osis, I reviewed the file agp3.c from your website, I didn't see the printk modifications the patch was too supply. However if after applying the patches the compile failed we'll need to check the source and make sure I didn't miss a double-quote somewhere.
 
Old 02-12-2004, 10:35 AM   #159
Osis
LQ Newbie
 
Registered: Feb 2004
Location: Riga, Latvia
Distribution: Debian unstable
Posts: 12

Rep: Reputation: 0
Unhappy

Feel my self little bit stupid now...

These where wrong files (( now there are correct ones but output is the same.

Compile didn't failed (for my point of view) but somehow here are some mystic unresolved symbols, and modprobe failed.

(for the first time whan I tried to change files I made some mistakes and it didn't made a module at all.


maybee these bugs is do to ATI used nVidia's source files to support AGP and even then don't suport kernel 2.6.2 normaly.

Last edited by Osis; 02-12-2004 at 10:43 AM.
 
Old 02-12-2004, 04:11 PM   #160
Osis
LQ Newbie
 
Registered: Feb 2004
Location: Riga, Latvia
Distribution: Debian unstable
Posts: 12

Rep: Reputation: 0
So people one helped me and kere is solution:

here comes the e-mail
///////////////////////////////
Hello Janis,

Thursday, February 12, 2004, 7:17:47 PM, you wrote:
J> I'm using debian unstable (XFree86 4.2.1-16)
J> set up kernel 2.4.24 without agpgard and drm modules becose ati drivers
J> supprts it and is suggested to use ati internal agpgart
I'll suggest using kernel's agpgart (drm can be disabled)

J> then i set up kernel 2.6.2 and tried to do the same for it but only
J> thing i got that AGP v3 cannot be found and XFree dies with error
J> message as without modifying agpgart_be.c with kernel 2.4.24
Well, if you want 2.6.x, you'll need o apply some patches for fglrx:
go to http://csociety-ftp.ecn.purdue.edu/p...drivers/files/
and get patch:
fglrx-3.2.8-fix-amd-adv-spec.patch
use it for fglrx sources (then rebuild and install)
if it not works try the next ones (i hope you'll not need them):
fglrx-2.6-vmalloc-vmaddr.patch
fglrx-2.6-iminor.patch
3.2.5-linux-2.6.0-test6-mm.patch

and setup module loading: before fglrx should be loaded agpgart.ko
and via_agp.ko

-- Best regards, Vasile
//////////////////////////////////////////////

So I did as he said (allmost) I downloaded this amd patch found funcion from diff file

diff -Nurp ../fglrx-orig/build_mod/firegl_public.c build_mod/firegl_public.c
--- ../fglrx-orig/build_mod/firegl_public.c 2003-07-11 11:42:06.000000000 +0000
+++ build_mod/firegl_public.c 2003-08-03 16:15:57.447117216 +0000
@@ -3050,33 +3050,6 @@ static int __init have_cpuid_p(void)

int __ke_amd_adv_spec_cache_feature(void)
{
- char vendor_id[16];
- int ident;
- int family, model;
-
- /* Must have CPUID */
- if(!have_cpuid_p())
- goto donthave;
- if(cpuid_eax(0)<1)
- goto donthave;
-
- /* Must be x86 architecture */
- cpuid(0, &ident,
- (int *)&vendor_id[0],
- (int *)&vendor_id[8],
- (int *)&vendor_id[4]);
-
- if (memcmp(vendor_id, "AuthenticAMD", 12))
- goto donthave;
-
- ident = cpuid_eax(1);
- family = (ident >> 8) & 0xf;
- model = (ident >> 4) & 0xf;
- if (((family == 6) && (model >= 6)) || (family == 15)) {
- return 1;
- }
-
-donthave:
return 0;
}

and commented it out

compiled driver loaded and woila.... everything works again
 
Old 02-12-2004, 07:46 PM   #161
jpbarto
Senior Member
 
Registered: Mar 2003
Location: Pittsburgh, PA
Distribution: Gentoo / NetBSD
Posts: 1,251

Rep: Reputation: 45
And the 'how to make ATI's stupid driver work' just keeps on growing. There are days when I really wish I would've bought the NVidia.

Glad to hear you're up and runnin Osis.

jpbarto
 
Old 02-13-2004, 03:34 AM   #162
Osis
LQ Newbie
 
Registered: Feb 2004
Location: Riga, Latvia
Distribution: Debian unstable
Posts: 12

Rep: Reputation: 0
jpbarto without you i still used linux without any 3D support...
 
Old 02-13-2004, 09:45 AM   #163
jpbarto
Senior Member
 
Registered: Mar 2003
Location: Pittsburgh, PA
Distribution: Gentoo / NetBSD
Posts: 1,251

Rep: Reputation: 45
I know there's been a lot of talk about bit but has it actually happened: a formal write up (or rather a collection of all the howto info in this thread) of how to install ATI drivers on the VIA chipsets? As the driver branches out further and as the 2.6 series kernel gets more and more popular the questions and difficulties are only going to get more diverse. Suggestions?
 
Old 02-17-2004, 09:36 PM   #164
init
Member
 
Registered: Oct 2003
Location: Portland, Maine
Distribution: Gentoo 2004_2 2.6.7r14
Posts: 160

Rep: Reputation: 30
while true; do echo "gimme an a"; sleep 1; banner -w 40 A!; sleep 1; clear; echo "gimme a t"; banner -w 40 T!; sleep 1; clear; echo "gimme an i"; banner -w 40 I!; sleep 1; clear; done

I am back to this good old thread... I am really struggling with fglrx and 2.6.2 kernel. I cant even install the modules with out error.

my error on ./make_install.sh

- creating symlink
- recreating module dependency list
- trying a sample load of the kernel module
FATAL: Error inserting fglrx (/lib/modules/2.6.2/kernel/drivers/char/drm/fglrx.ko): Unknown symbol in module, or unknown parameter (see dmesg)
failed.

dmesg output

fglrx: module license 'Proprietary. (C) 2002 - ATI Technologies, Starnberg, GERMANY' taints kernel.
fglrx: Unknown symbol VMALLOC_VMADDR

Osis I'm am not sure what to do with the patch could you maybe help me out a bit?

Good side of this : I can sure as heck compile a kernel with ease know.... 6 times in two days
 
Old 02-18-2004, 07:46 AM   #165
jpbarto
Senior Member
 
Registered: Mar 2003
Location: Pittsburgh, PA
Distribution: Gentoo / NetBSD
Posts: 1,251

Rep: Reputation: 45
Not to detract from the newfound troubles with the 2.6 kernel but I wanted to ask a question if I could. When I shutdown X windows the fglrx (even the latest version) module always spits out a 'attempted to free NULL pointer' and some mtrr errors. I've started last night trying to debug the matter but I wanted to know if anyone gets similiar results. To test (if you're running XDM or something) you can always log in to the console (ctrl+alt+F1) and execute 'telinit 3' to shutdown the graphical login. You should then be able to see such errors in /var/log/messages. Let me know if anyone is getting this error, cause if it's not just my setup then I'll post any findings / fixes I come across.

jpbarto
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
DMA don't work chipset kt400 pike Linux - General 14 06-23-2005 02:05 AM
Radeon graphics cards with KT400 chipset nemesis636 Linux - Hardware 14 11-15-2004 06:06 AM
Sound problem with ASUS A7V8X-X chipset KT400 mentallysilent Mandriva 30 06-24-2004 08:07 AM
Radeon 9800 Pro w/ KT400 chipset Direct Rendering not working nemesis636 Linux - Hardware 7 12-22-2003 09:16 AM
agpgart problems with a radeon 9700 pro, kt400, and redhat 9 makai_wi Linux - Hardware 11 08-22-2003 01:34 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Hardware

All times are GMT -5. The time now is 11:08 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration