LinuxQuestions.org
Visit Jeremy's Blog.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Newbie
User Name
Password
Linux - Newbie This Linux forum is for members that are new to Linux.
Just starting out and have a question? If it is not in the man pages or the how-to's this is the place!

Notices


Reply
  Search this Thread
Old 07-17-2009, 09:18 AM   #1
alexf007
LQ Newbie
 
Registered: Jul 2009
Posts: 8

Rep: Reputation: 0
patch related question


hi all,
I'm using buildroot on debian with the hope of cross-compiling a linux kernel and filesystem to be used on an arm9 (at91rm9200ek) board.

I downloaded the latest buildroot last night and made very little modifications to the menuconfig. I basically just made sure that the correct target was selected.

I get the following error when it goes ahead and tries to apply the "linux-2.6.28-at91.patch.bz2" patch. It seems weird to me that we would even need that patch since the base kernel is 2.6.29.4 but the option was selected by default in buildroot, so I didn't want to uncheck it.

what do you experts think ?

thanks in advance,
Alex



*** Unpacking kernel source
bzcat /home/alex/buildroot-2009.05/dl/linux-2.6.29.4.tar.bz2 | tar -C /home/alex/buildroot-2009.05/project_build_arm/uclibc -xf -
touch /home/alex/buildroot-2009.05/project_build_arm/uclibc/linux-2.6.29.4/.unpacked
toolchain/patch-kernel.sh /home/alex/buildroot-2009.05/project_build_arm/uclibc/linux-2.6.29.4 toolchain/kernel-headers \
linux-2.6.29.4-\*.patch{,.gz,.bz2}
touch /home/alex/buildroot-2009.05/project_build_arm/uclibc/linux-2.6.29.4/.patched
if [ -d target/device/Atmel/arch-arm/kernel-patches-2.6.28 ] ; then \
toolchain/patch-kernel.sh /home/alex/buildroot-2009.05/project_build_arm/uclibc/linux-2.6.29.4 target/device/Atmel/arch-arm/kernel-patches-2.6.28 \
linux-\*.patch{,.gz,.bz2} ; \
fi

Applying linux-2.6.28-at91.patch.bz2 using bzip2:
patching file arch/arm/configs/csb637_defconfig
Hunk #2 FAILED at 693.
1 out of 2 hunks FAILED -- saving rejects to file arch/arm/configs/csb637_defconfig.rej
patching file arch/arm/configs/csb737_defconfig
patching file arch/arm/configs/homematic_defconfig
patching file arch/arm/configs/kb9202_defconfig
patching file arch/arm/configs/ks8695_defconfig
Hunk #1 FAILED at 1.
Hunk #2 FAILED at 66.
Hunk #3 FAILED at 107.
Hunk #4 FAILED at 175.
Hunk #5 FAILED at 208.
Hunk #6 FAILED at 220.
Hunk #7 FAILED at 236.
Hunk #8 FAILED at 261.
Hunk #9 FAILED at 271.
Hunk #10 FAILED at 296.
Hunk #11 FAILED at 323.
Hunk #12 FAILED at 334.
Hunk #13 FAILED at 353.
Hunk #14 FAILED at 373.
Hunk #15 FAILED at 406.
Hunk #16 FAILED at 414.
Hunk #17 FAILED at 432.
Hunk #18 FAILED at 452.
Hunk #19 FAILED at 467.
Hunk #20 FAILED at 526.
Hunk #21 FAILED at 543.
Hunk #22 FAILED at 552.
Hunk #23 FAILED at 568.
Hunk #24 FAILED at 587.
Hunk #25 FAILED at 609.
Hunk #26 FAILED at 656.
Hunk #27 FAILED at 674.
Hunk #28 FAILED at 686.
Hunk #29 FAILED at 720.
Hunk #30 FAILED at 737.
Hunk #31 FAILED at 744.
Hunk #32 FAILED at 752.
Hunk #33 FAILED at 812.
33 out of 33 hunks FAILED -- saving rejects to file arch/arm/configs/ks8695_defconfig.rej
The next patch would create the file arch/arm/configs/neocore926_defconfig,
which already exists! Assume -R? [n]
Apply anyway? [n] y
patching file arch/arm/configs/neocore926_defconfig
Patch attempted to create file arch/arm/configs/neocore926_defconfig, which already exists.
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED -- saving rejects to file arch/arm/configs/neocore926_defconfig.rej
patching file arch/arm/configs/totemnova_defconfig
patching file arch/arm/configs/tt9200_defconfig
patching file arch/arm/mach-at91/at91cap9.c
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n] y
Hunk #1 FAILED at 18.
Hunk #2 FAILED at 320.
2 out of 2 hunks FAILED -- saving rejects to file arch/arm/mach-at91/at91cap9.c.rej
patching file arch/arm/mach-at91/at91cap9_devices.c
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n] y
Hunk #1 FAILED at 13.
Hunk #2 FAILED at 22.
Hunk #3 succeeded at 76 with fuzz 2 (offset 5 lines).
Hunk #4 FAILED at 161.
Hunk #5 FAILED at 421.
Hunk #6 succeeded at 684 (offset -5 lines).
Hunk #7 succeeded at 859 with fuzz 2 (offset -2 lines).
4 out of 7 hunks FAILED -- saving rejects to file arch/arm/mach-at91/at91cap9_devices.c.rej
patching file arch/arm/mach-at91/at91rm9200_devices.c
patching file arch/arm/mach-at91/at91rm9200_time.c
patching file arch/arm/mach-at91/at91sam9260_devices.c
Hunk #3 FAILED at 438.
Hunk #4 FAILED at 446.
Hunk #5 succeeded at 724 (offset -36 lines).
2 out of 5 hunks FAILED -- saving rejects to file arch/arm/mach-at91/at91sam9260_devices.c.rej
patching file arch/arm/mach-at91/at91sam9261_devices.c
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n] y
Hunk #1 FAILED at 223.
Hunk #2 FAILED at 231.
Hunk #3 succeeded at 520 (offset -15 lines).
Hunk #4 succeeded at 599 (offset -15 lines).
2 out of 4 hunks FAILED -- saving rejects to file arch/arm/mach-at91/at91sam9261_devices.c.rej
patching file arch/arm/mach-at91/at91sam9263_devices.c
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n] y
Hunk #1 FAILED at 487.
Hunk #2 FAILED at 495.
Hunk #3 succeeded at 935 (offset 90 lines).
2 out of 3 hunks FAILED -- saving rejects to file arch/arm/mach-at91/at91sam9263_devices.c.rej
patching file arch/arm/mach-at91/at91sam9rl_devices.c
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n] y
Hunk #1 FAILED at 232.
Hunk #2 succeeded at 562 (offset -11 lines).
Hunk #3 succeeded at 591 (offset -11 lines).
1 out of 3 hunks FAILED -- saving rejects to file arch/arm/mach-at91/at91sam9rl_devices.c.rej
patching file arch/arm/mach-at91/board-cam60.c
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n] y
Hunk #1 FAILED at 39.
Hunk #2 succeeded at 128 with fuzz 2 (offset -25 lines).
Hunk #3 FAILED at 168.
2 out of 3 hunks FAILED -- saving rejects to file arch/arm/mach-at91/board-cam60.c.rej
patching file arch/arm/mach-at91/board-cap9adk.c
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n] y
Hunk #1 FAILED at 36.
Hunk #2 succeeded at 134 (offset -1 lines).
Hunk #3 succeeded at 142 (offset -1 lines).
Hunk #4 succeeded at 160 with fuzz 1 (offset -33 lines).
Hunk #5 succeeded at 323 with fuzz 1 (offset 54 lines).
Hunk #6 FAILED at 348.
Hunk #7 FAILED at 427.
Hunk #8 FAILED at 439.
4 out of 8 hunks FAILED -- saving rejects to file arch/arm/mach-at91/board-cap9adk.c.rej
patching file arch/arm/mach-at91/board-chub.c
patching file arch/arm/mach-at91/board-csb337.c
patching file arch/arm/mach-at91/board-csb637.c
patching file arch/arm/mach-at91/board-csb737.c
patching file arch/arm/mach-at91/board-dk.c
patching file arch/arm/mach-at91/board-eb9200.c
patching file arch/arm/mach-at91/board-ek.c
patching file arch/arm/mach-at91/board-homematic.c
patching file arch/arm/mach-at91/board-kb9202.c
The next patch would create the file arch/arm/mach-at91/board-neocore926.c,
which already exists! Assume -R? [n]
Apply anyway? [n] y
patching file arch/arm/mach-at91/board-neocore926.c
Patch attempted to create file arch/arm/mach-at91/board-neocore926.c, which already exists.
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED -- saving rejects to file arch/arm/mach-at91/board-neocore926.c.rej
patching file arch/arm/mach-at91/board-qil-a9260.c
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n] y
Hunk #1 FAILED at 41.
Hunk #2 FAILED at 149.
Hunk #3 FAILED at 250.
3 out of 3 hunks FAILED -- saving rejects to file arch/arm/mach-at91/board-qil-a9260.c.rej
patching file arch/arm/mach-at91/board-sam9260ek.c
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n] y
Hunk #1 FAILED at 42.
Hunk #2 succeeded at 93 (offset 3 lines).
Hunk #3 succeeded at 174 with fuzz 1 (offset -34 lines).
Hunk #4 succeeded at 305 (offset 35 lines).
Hunk #5 FAILED at 384.
Hunk #6 succeeded at 400 (offset 35 lines).
2 out of 6 hunks FAILED -- saving rejects to file arch/arm/mach-at91/board-sam9260ek.c.rej
patching file arch/arm/mach-at91/board-sam9261ek.c
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n] y
Hunk #1 FAILED at 47.
Hunk #2 FAILED at 78.
Hunk #3 FAILED at 100.
Hunk #4 FAILED at 143.
Hunk #5 succeeded at 195 with fuzz 2 (offset -19 lines).
Hunk #6 succeeded at 375 (offset 50 lines).
Hunk #7 succeeded at 412 (offset 50 lines).
Hunk #8 succeeded at 471 (offset 50 lines).
Hunk #9 succeeded at 482 (offset 50 lines).
Hunk #10 succeeded at 498 (offset 50 lines).
Hunk #11 FAILED at 625.
Hunk #12 succeeded at 648 (offset 50 lines).
5 out of 12 hunks FAILED -- saving rejects to file arch/arm/mach-at91/board-sam9261ek.c.rej
patching file arch/arm/mach-at91/board-sam9263ek.c
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n] y
Hunk #1 FAILED at 46.
Hunk #2 succeeded at 142 (offset 2 lines).
Hunk #3 succeeded at 170 with fuzz 1 (offset -35 lines).
Hunk #4 succeeded at 290 (offset 34 lines).
Hunk #5 FAILED at 454.
Hunk #6 succeeded at 466 (offset 34 lines).
2 out of 6 hunks FAILED -- saving rejects to file arch/arm/mach-at91/board-sam9263ek.c.rej
patching file arch/arm/mach-at91/board-sam9g20ek.c
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n] y
Hunk #1 FAILED at 37.
Hunk #2 succeeded at 118 with fuzz 1 (offset -40 lines).
Hunk #3 FAILED at 189.
2 out of 3 hunks FAILED -- saving rejects to file arch/arm/mach-at91/board-sam9g20ek.c.rej
patching file arch/arm/mach-at91/board-sam9-l9260.c
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n] y
Hunk #1 FAILED at 38.
Hunk #2 FAILED at 150.
Hunk #3 FAILED at 201.
3 out of 3 hunks FAILED -- saving rejects to file arch/arm/mach-at91/board-sam9-l9260.c.rej
patching file arch/arm/mach-at91/board-sam9rlek.c
Hunk #1 FAILED at 29.
Hunk #2 FAILED at 105.
Hunk #3 FAILED at 215.
Hunk #4 succeeded at 251 (offset 27 lines).
3 out of 4 hunks FAILED -- saving rejects to file arch/arm/mach-at91/board-sam9rlek.c.rej
patching file arch/arm/mach-at91/board-tms.c
patching file arch/arm/mach-at91/board-totemnova.c
patching file arch/arm/mach-at91/board-tt9200.c
patching file arch/arm/mach-at91/board-usb-a9260.c
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n] y
Hunk #1 FAILED at 41.
Hunk #2 FAILED at 123.
Hunk #3 FAILED at 212.
3 out of 3 hunks FAILED -- saving rejects to file arch/arm/mach-at91/board-usb-a9260.c.rej
patching file arch/arm/mach-at91/board-usb-a9263.c
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n] y
Hunk #1 FAILED at 40.
Hunk #2 FAILED at 136.
Hunk #3 FAILED at 230.
3 out of 3 hunks FAILED -- saving rejects to file arch/arm/mach-at91/board-usb-a9263.c.rej
patching file arch/arm/mach-at91/clock.c
patching file arch/arm/mach-at91/generic.h
patching file arch/arm/mach-at91/gpio.c
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n] y
Hunk #1 FAILED at 490.
Hunk #2 FAILED at 510.
Hunk #3 FAILED at 554.
3 out of 3 hunks FAILED -- saving rejects to file arch/arm/mach-at91/gpio.c.rej
patching file arch/arm/mach-at91/ics1523.c
patching file arch/arm/mach-at91/include/mach/at91cap9.h
Hunk #1 FAILED at 101.
1 out of 1 hunk FAILED -- saving rejects to file arch/arm/mach-at91/include/mach/at91cap9.h.rej
patching file arch/arm/mach-at91/include/mach/at91_pmc.h
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n] y
Hunk #1 FAILED at 23.
Hunk #2 FAILED at 103.
2 out of 2 hunks FAILED -- saving rejects to file arch/arm/mach-at91/include/mach/at91_pmc.h.rej
patching file arch/arm/mach-at91/include/mach/cpu.h
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n] y
Hunk #1 succeeded at 39 with fuzz 2 (offset -10 lines).
Hunk #2 FAILED at 91.
1 out of 2 hunks FAILED -- saving rejects to file arch/arm/mach-at91/include/mach/cpu.h.rej
patching file arch/arm/mach-at91/include/mach/ics1523.h
patching file arch/arm/mach-at91/include/mach/spi.h
patching file arch/arm/mach-at91/Kconfig
Hunk #1 succeeded at 67 (offset 7 lines).
Hunk #2 succeeded at 116 (offset 7 lines).
Hunk #3 succeeded at 131 (offset 7 lines).
Hunk #4 succeeded at 151 (offset 7 lines).
Hunk #5 succeeded at 230 with fuzz 1 (offset -30 lines).
Hunk #6 FAILED at 317.
Hunk #7 succeeded at 395 (offset 13 lines).
1 out of 7 hunks FAILED -- saving rejects to file arch/arm/mach-at91/Kconfig.rej
patching file arch/arm/mach-at91/Makefile
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n] y
Hunk #1 FAILED at 11.
Hunk #3 FAILED at 51.
Hunk #4 succeeded at 70 (offset 1 line).
2 out of 4 hunks FAILED -- saving rejects to file arch/arm/mach-at91/Makefile.rej
patching file arch/arm/mach-at91/pm.c
The next patch would create the file arch/arm/mach-at91/sam9_smc.c,
which already exists! Assume -R? [n]
Apply anyway? [n] y
patching file arch/arm/mach-at91/sam9_smc.c
Patch attempted to create file arch/arm/mach-at91/sam9_smc.c, which already exists.
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED -- saving rejects to file arch/arm/mach-at91/sam9_smc.c.rej
The next patch would create the file arch/arm/mach-at91/sam9_smc.h,
which already exists! Assume -R? [n]
Apply anyway? [n] y
patching file arch/arm/mach-at91/sam9_smc.h
Patch attempted to create file arch/arm/mach-at91/sam9_smc.h, which already exists.
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED -- saving rejects to file arch/arm/mach-at91/sam9_smc.h.rej
patching file drivers/char/at91_spi.c
patching file drivers/char/at91_spidev.c
patching file drivers/char/Kconfig
Hunk #1 succeeded at 1101 (offset 28 lines).
patching file drivers/char/Makefile
Hunk #1 succeeded at 97 (offset 2 lines).
patching file drivers/i2c/busses/i2c-at91.c
patching file drivers/i2c/busses/Kconfig
patching file drivers/input/touchscreen/Kconfig
Hunk #1 succeeded at 233 (offset 21 lines).
patching file drivers/input/touchscreen/Makefile
patching file drivers/misc/Kconfig
Hunk #1 FAILED at 145.
Hunk #2 FAILED at 431.
2 out of 2 hunks FAILED -- saving rejects to file drivers/misc/Kconfig.rej
patching file drivers/mtd/devices/at91_dataflash.c
patching file drivers/mtd/devices/Kconfig
patching file drivers/mtd/devices/Makefile
patching file drivers/mtd/nand/atmel_nand.c
Hunk #3 succeeded at 188 (offset 1 line).
Hunk #4 succeeded at 365 (offset 1 line).
Hunk #5 succeeded at 439 (offset 1 line).
Hunk #6 succeeded at 515 (offset 1 line).
Hunk #7 succeeded at 561 (offset 1 line).
patching file drivers/mtd/nand/Kconfig
Hunk #1 succeeded at 296 (offset 7 lines).
Hunk #2 succeeded at 329 (offset 7 lines).
patching file drivers/net/arm/at91_ether.c
Hunk #4 succeeded at 842 (offset -1 lines).
Hunk #5 succeeded at 861 (offset -1 lines).
Hunk #6 succeeded at 886 (offset -1 lines).
Hunk #7 FAILED at 976.
Hunk #8 succeeded at 1063 (offset -3 lines).
Hunk #9 succeeded at 1084 (offset -3 lines).
Hunk #10 succeeded at 1107 (offset -3 lines).
Hunk #11 succeeded at 1154 (offset -3 lines).
Hunk #12 succeeded at 1175 (offset -3 lines).
1 out of 12 hunks FAILED -- saving rejects to file drivers/net/arm/at91_ether.c.rej
patching file drivers/net/arm/at91_ether.h
patching file drivers/net/arm/Kconfig
Hunk #1 succeeded at 63 (offset 8 lines).
patching file drivers/net/arm/ks8695_ether.c
patching file drivers/net/arm/ks8695_ether.h
patching file drivers/net/arm/Makefile
Hunk #1 succeeded at 11 with fuzz 1 (offset 1 line).
patching file drivers/pcmcia/at91_cf.c
patching file drivers/pcmcia/Kconfig
patching file drivers/rtc/rtc-at91rm9200.c
patching file drivers/rtc/rtc-at91sam9.c
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n] y
Hunk #1 FAILED at 21.
Hunk #2 succeeded at 151 (offset 1 line).
Hunk #3 succeeded at 180 (offset 1 line).
Hunk #4 succeeded at 328 (offset 1 line).
1 out of 4 hunks FAILED -- saving rejects to file drivers/rtc/rtc-at91sam9.c.rej
patching file drivers/spi/Kconfig
Hunk #1 succeeded at 116 with fuzz 2 (offset 16 lines).
patching file drivers/spi/Makefile
Hunk #1 succeeded at 30 (offset 1 line).
patching file drivers/spi/spi_at91_bitbang.c
patching file drivers/usb/gadget/at91_udc.c
patching file drivers/usb/host/ohci-at91.c
patching file drivers/video/backlight/kb920x_bl.c
patching file drivers/video/backlight/Kconfig
Hunk #1 succeeded at 173 (offset -3 lines).
patching file drivers/video/backlight/Makefile
Hunk #1 succeeded at 20 with fuzz 2.
patching file drivers/video/Kconfig
patching file drivers/video/Makefile
patching file drivers/video/s1d15605fb.c
patching file include/linux/clk.h
patching file sound/spi/at73c213.c
Patch failed! Please fix linux-2.6.28-at91.patch.bz2!
make: *** [/home/alex/buildroot-2009.05/project_build_arm/uclibc/linux-2.6.29.4/.patched.arch] Error 1
root@debian:/home/alex/buildroot-2009.05#
 
Old 07-17-2009, 09:58 AM   #2
i92guboj
Gentoo support team
 
Registered: May 2008
Location: Lucena, Córdoba (Spain)
Distribution: Gentoo
Posts: 4,063

Rep: Reputation: 381Reputation: 381Reputation: 381Reputation: 381
Kernel patches, specially big ones like this, are usually for a given kernel version, and will fail to patch on anything else. So, if you truly need this patch (I am not familiar with arm at all), you are going to find either a newer version of the patch that matches the kernel you want to use, or use an older kernel.

You can of course look into the rejects and fix them to create an updated patch. However, unless you know what you are doing, and given the amount of stuff that is changing from .28 to newer kernel, I bet that it's a good amount of work.
 
Old 07-17-2009, 11:17 AM   #3
alexf007
LQ Newbie
 
Registered: Jul 2009
Posts: 8

Original Poster
Rep: Reputation: 0
using 2.6.28 is a good idea and I'll try that tonight.

When a patches is available for a given kernel rev, can we safely assume that it will be included in the new rev ? In other words, do I actually need to apply linux-2.6.28-at91.patch if I use 2.6.29 ? How can I tell if or when a patch makes it into the official kernel ?
 
Old 07-17-2009, 04:46 PM   #4
i92guboj
Gentoo support team
 
Registered: May 2008
Location: Lucena, Córdoba (Spain)
Distribution: Gentoo
Posts: 4,063

Rep: Reputation: 381Reputation: 381Reputation: 381Reputation: 381
Quote:
Originally Posted by alexf007 View Post
using 2.6.28 is a good idea and I'll try that tonight.

When a patches is available for a given kernel rev, can we safely assume that it will be included in the new rev ?
No. There are lots of reasons why a patchset will never get into the kernel. A famous example is the reiser4 file system.

Quote:
In other words, do I actually need to apply linux-2.6.28-at91.patch if I use 2.6.29 ? How can I tell if or when a patch makes it into the official kernel ?
A good place to start researching might be the linux kernel mailing list, or the home site of the patchset you are trying to apply, if it has one at all.

I can't really tell you anything about arm patches because I know nothing about them.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

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
TCP Related question pwnthis Linux - Networking 0 12-05-2008 09:02 AM
Backup related question Ibrahimbazar Linux - General 1 06-17-2006 09:04 AM
Boot-related question. wombat53 Slackware 55 06-21-2005 01:37 PM
c related question. blackzone Programming 1 07-24-2004 09:55 AM
festival question #2 (not related to #1) SciYro Linux - Software 0 07-12-2004 12:14 AM


All times are GMT -5. The time now is 11:04 PM.

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
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration