Welcome to Linux Forums! With a comprehensive Linux Forum, information on various types of Linux software and many Linux Reviews articles, we have all the knowledge you need a click away, or accessible via our knowledgeable members.
Find the answer to your Linux question:
Site Navigation
Linux Forums
Linux Articles
Product Showcase
Linux Downloads
Linux Hosting
Free Magazines
Job Board
IRC Chat
RSS Feeds
Free Publications


This is a brief tutorial on how to get wireless LAN cards working on Linux. Although the instructions were written for Suse 9.3, they should work on all distributions.

Here is a brief rundown on what we need to do:

  • Download 'ndiswrapper' and prepare to compile it.
  • Compile it and install it to the system.
  • Add the drivers and create the driver configuration.
  • Start it up.
  • Setup IP adresses and networks.
  • Making it work all the time.


Getting ndiswrapper

NOTE: If your Linux distribution comes with ndiswrapper I recommend that you use the version installed by your system instead.

To get ndiswrapper, click here.

Installing it

Now that we've downloaded the file, we need to unpack it. First use the 'cd' command to change directory to wherever you downloaded it. For me it's /downloads



Code:cd /downloads

Then unpack the package. Remember the package name is whatever you downloaded:



Code:tar xvf ndiswrapper-1.3rc1.tar.gz

A new directory should have been created, so change to it.



Code:cd ndiswrapper-1.3rc1

And now, compile and install:



Code:make
make install

Adding the drivers.

Note:From this point forward, this guide assumes that the name of the driver is "bcmwl5". Substitute accordingly.
At this point you need to get the windows drivers you are going to install. You'll want to look for these files.

bcmwl5.inf
bcmwl5.sys

Place them in a folder, and run the following commands:


Code:ndiswrapper -i /link/to/bcmwl5.inf

Obviously replacing the file location to wherever you have it.

A few additional notes:
If you try installing something with ndiswrapper and it goes wrong, it will still list it as installed even though it is not working. You need to run the command below to remove the driver from the list so you can try again.



Code:ndiswrapper -e bcmwl5

If you are not sure what drivers you have installed then get a list by running this command.



Code:ndiswrapper -l

Config + startup

This is the last bit we will do with ndiswrapper. We need to write to the ndiswrapper config file



Code:ndiswrapper -m

Now we start it up.



Code:modprobe ndiswrapper

Perfect! If anything goes wrong here it will be because of problems between the version of ndiswrapper and the kernel.

IP addresses and networks.

First of all we need to connect it to the network, now you can do this through the network devices of whatever distrobution you're using. I'm using SuSE so I'm doing it with YaST.

Now we need to check what your card is known to Linux as. Run the command below to find out if you have wlan or eth or whatever.



Code:dmesg

Now keep that in mind. We need to setup the connection to the wireless station. Now if you use a program such as YaST to add the configuration here are the things you should know.

NOTE: If you setup your IP address with your card too then read below and do it all together.

Device type: Wireless
Configuration name: 0 (most likely 0, it will be what is shown when you run dmesg)
Hardware configuration name: wlan0 (most likely wlan0, it is what dmesg gives you, the whole of it)
Module name: ndiswrapper

If you dont have a graphical interface like that, you can connect using the following commands.



Code:iwlist scan

This should list all networks it can find.

NOTE: If the network you are trying to connect to dose not broadcast its signal then you may not be able to connect to it. You probably can, just ask the administrator of the network to make it broadcast its signal if you can't connect.

Using IFconfig we will setup the network.



Code:iwconfig wlan0 ESSID
iwconfig wlan0 key s:""

If you have a static IP address run this command.



Code:ifconfig wlan0 address

Run the dhcpcd command to setup DHCP.



Code:dhcpcd wlan0

At this point it should of started working, if your DHCP is done through the command line then run 'iwconfig --help' to see the commands you need to setup your DHCP. It will be different for everyone.

By now it should work.

Getting it to work every time.

We need to add this to the startup file so that it always loads when Linux does.

NOTE: Some distrobutions (if done through a graphical interface) will of already added this to the startup script.

Find the file /etc/rc.d/rc.local (sometimes just called rc) open it and search for 'dhcp', 'dhcpcd', 'wlan0', 'ndiswrapper' or any other reference to see if it has already been added, if not, add the following to the bottom.



Code:echo "Set up wireless lan"
modprobe ndiswrapper
dhcpcd wlan0

Remembering to replace wlan0 with whatever yours is called.

And that should be it! Now I need to mention just one more thing. Sometimes Linux will try to start DHCP and fail because it has not loaded the ndiswrapper drivers. A good way to find out is if you have no internet connection, run 'dhcpcd wlan0' and it will tell you this.



Code:**** dhcpcd: already running
**** dhcpcd: if not then delete /var/run//dhcpcd-wlan0.pid file

This means DHCP has failed, where you have added the code in rc.local, add 'rm /var/run/dhcpcd-wlan0.pid' above modprobe so that DHCP can restart. It should look like this.



Code:echo "Set up wireless lan"
rm /var/run/dhcpcd-wlan0.pid
modprobe ndiswrapper
dhcpcd wlan0

And you're done! :D
Rate This Article: poorexcellent
 
Comments about this article
Wonderful!
writen by: Kyle Dunlap on 2006-03-06 14:10:52
Fantastic! This is a wonderful tutorial and it helped me get ndiswrapper working properly. Thanks to Graham Armstrong!
RE: Wonderful! written by Kyle Dunlap:
ndiswrapper query
writen by: Iain Gray on 2006-04-16 10:00:03
I'm having a problem I'm not sure if Ubuntu Breezy is recognising the WLAN MiniPCI card installed in my Dell Inspiron 1300. I would love to get this working as its the last hurdle before completely switching to Linux again (used to use it exclusively till I got broadband) Below is the system checking the Broadcom cards: iain@frozenpenguin:~$ lspci | grep Broadcom 0000:02:00.0 Ethernet controller: Broadcom Corporation BCM4401-B0 100Base-TX (rev 02) 0000:02:03.0 Network controller: Broadcom Corporation: Unknown device 4318 (rev 02) iain@frozenpenguin:~$ I then downloaded R115320.exe from Dell extracted the inf and sys files ran the ndiswrapper and modprobe commands see extract from term below: iain@frozenpenguin:~$ sudo ndiswrapper -i bcmwl5.inf Password: Installing bcmwl5 Forcing parameter IBSSGMode|0 to IBSSGMode|2 Forcing parameter IBSSGMode|0 to IBSSGMode|2 Forcing parameter IBSSGMode|0 to IBSSGMode|2 Forcing parameter IBSSGMode|0 to IBSSGMode|2 Forcing parameter IBSSGMode|0 to IBSSGMode|2 Forcing parameter IBSSGMode|0 to IBSSGMode|2 Forcing parameter IBSSGMode|0 to IBSSGMode|2 Forcing parameter IBSSGMode|0 to IBSSGMode|2 Forcing parameter IBSSGMode|0 to IBSSGMode|2 Forcing parameter IBSSGMode|0 to IBSSGMode|2 Forcing parameter IBSSGMode|0 to IBSSGMode|2 Forcing parameter IBSSGMode|0 to IBSSGMode|2 Forcing parameter IBSSGMode|0 to IBSSGMode|2 Forcing parameter IBSSGMode|0 to IBSSGMode|2 Forcing parameter IBSSGMode|0 to IBSSGMode|2 Forcing parameter IBSSGMode|0 to IBSSGMode|2 Forcing parameter IBSSGMode|0 to IBSSGMode|2 Forcing parameter IBSSGMode|0 to IBSSGMode|2 Forcing parameter IBSSGMode|0 to IBSSGMode|2 Forcing parameter IBSSGMode|0 to IBSSGMode|2 Forcing parameter IBSSGMode|0 to IBSSGMode|2 Forcing parameter IBSSGMode|0 to IBSSGMode|2 iain@frozenpenguin:~$ sudo ndiswrapper -l Installed ndis drivers: bcmwl5 driver present, hardware present iain@frozenpenguin:~$ sudo modprobe ndiswrapper iain@frozenpenguin:~$ sudo iwconfig lo no wireless extensions. eth0 no wireless extensions. sit0 no wireless extensions. This is from syslog: Apr 13 13:31:05 localhost kernel: [4299073.898000] ndiswrapper version 1.1 loaded (preempt=no,smp=no) Apr 13 13:31:05 localhost kernel: [4299074.148000] ndiswrapper (import:238): unknown symbol: ntoskrnl.exe:strrchr Apr 13 13:31:05 localhost kernel: [4299074.148000] ndiswrapper (import:238): unknown symbol: ntoskrnl.exe:MmFreeContiguousMemorySpecifyCache Apr 13 13:31:05 localhost kernel: [4299074.148000] ndiswrapper (import:238): unknown symbol: ntoskrnl.exe:MmAllocateContiguousMemorySpecifyCache Apr 13 13:31:05 localhost kernel: [4299074.148000] ndiswrapper (import:238): unknown symbol: ntoskrnl.exe:MmGetPhysicalAddress Apr 13 13:31:05 localhost kernel: [4299074.148000] ndiswrapper (load_sys_files:456): unable to prepare driver 'bcmwl5' Apr 13 13:31:05 localhost kernel: [4299074.150000] ndiswrapper (ndiswrapper_load_driver:92): loadndiswrapper failed (11); check system log for messages from 'loadndisdriver' I am now real confused, the BIOS on the laptop was changed to always switch on the miniPCI but the hot key will not switch it on, this is why I not convinced that the hardware will work. Iain
RE: ndiswrapper query written by Iain Gray:
Well put.
writen by: ghost13 on 2006-05-02 01:21:07
Nice tutorial. Only had to read one time. Thanks for the help.
RE: Well put. written by ghost13:
SAME EXACT PROBLEM on mine!!
writen by: Jdavidson on 2006-05-12 21:03:12
I have the exact same errors in my log, dont know what to do....
RE: SAME EXACT PROBLEM on mine!! written by Jdavidson:
Little mistake
writen by: antidrugue on 2006-05-23 14:35:10
You forget the "z" in [quote] Code: tar xvf ndiswrapper-1.3rc1.tar.gz [/quote] I guess we should read Code: tar zxvf ndiswrapper-1.3rc1.tar.gz
RE: Little mistake written by antidrugue:
WHAT ABOUT JAVELIN (INTERSIL3886)???
writen by: DECELERON on 2006-05-28 15:25:14
Ndiswrapper wont work with Sitecom's XP driver. I found a 2.7.0.0.arm linux driver but can´t set it up! I'm a newbie to linux. Could U give me a step-by-step guide (installing a driver under SLAX)???? Thankx in advance
RE: WHAT ABOUT JAVELIN (INTERSIL3886)??? written by DECELERON:
failure to create ndiswrapper module
writen by: urs on 2006-05-30 05:35:58
this page is a very logical documentation for rather new users to linux. However, when I tried to run "modprobe ndiswrapper" I got the message below (message includes prior steps too). My debian dist is a testing version 2.6.15-1-486. I cannot find its kernel-source. Either the missing kernel-source or the fact the installed kernel is a testing version, causes this failure.... I'd appreciate if someone could get a look at it if he/she gets a chance... Thanks, Urs lazyboy:/home/urs/debian/WLan# ndiswrapper -i /home/urs/debian/WLan/W70n51.INF w70n51 is already installed. Use -e to remove it lazyboy:/home/urs/debian/WLan# ndiswrapper -i /home/urs/debian/WLan/w70n51.sys Installing w70n51.sys lazyboy:/home/urs/debian/WLan# ndiswrapper -l Installed drivers: w70n51 invalid driver! w70n51.sys invalid driver! lazyboy:/home/urs/debian/WLan# ndiswrapper -m Adding "alias wlan0 ndiswrapper" to /etc/modprobe.d/ndiswrapper lazyboy:/home/urs/debian/WLan# modprobe ndiswrapper FATAL: Module ndiswrapper not found. lazyboy:/home/urs/debian/WLan#
RE: failure to create ndiswrapper module written by urs:
WIreless and Linux? Hobby only
writen by: BUICK1946 on 2006-06-02 15:16:53
Only try wireless networking (or any technology under three years old for that matter) in Linux if it is your hobby. If you need it to work out of the box with a simple follow the instructions and click OK or NEXT you are stuck with Windows XP. many Linux distros are still having trouble coming to terms with PCMCIA in a laptop. Despite what the hardcore fans say wireless networking is still geek territory. Instructions, even those from the vendors are generally poorly written and ambiguous. Reminds me of windows 3.1 and MSDOS 5 instructions, designed to preserve the mystery and magesty of computing and prevent the unwashed massed from getting too familiar with their betters. In short if you need wireless within the next 2 or 3 years, you need WinXP.
RE: WIreless and Linux? Hobby only written by BUICK1946:
none
writen by: fyreme on 2006-06-07 21:11:55
I am not a linux guru by any means. But i am writing this on my laptop over my wireless connection. The laptop is running mandriva one. I used mandriva control center and ndiswrapper to load a windows driver for my pcmcia card. Using the configure lan Gui i was able to configure the connection and have it up and running in under 10 minutes. I never used the command prompt, i never read anything first, i accepted all the defaults (I changed one option, let users start connection to yes) and was up and running. it was easy. If someone could point me to some WEP documentation or help me with some questions i would appreciate it. You don't need WinXP.
RE: none written by fyreme:
PROBLEM
writen by: Christopher Walken on 2006-10-23 12:17:40
Hi! I have a HP Pavilion zd8179ea and have installed Linux Fedora on it. I am trying to make the wireless connection work. It has the Broadcom chipset. I followed the steps you provide at this address http://www.linuxforums.org/network/wlan_cards_and_linux.html but I have stuck somewhere. When I type the ¨make¨ command I get this error: [root@localhost ndiswrapper-1.27]# [root@localhost ndiswrapper-1.27]# make make -C driver make[1]: Entering directory `/home/user/Downloads/ndiswrapper-1.27/driver' Can't find kernel build files in /lib/modules/2.6.18-1.2200.fc5smp/build; give the path to kernel build directory with KBUILD=<path> argument to make make[1]: *** [prereq_check] Error 1 make[1]: Leaving directory `/home/user/Downloads/ndiswrapper-1.27/driver' make: *** [all] Error 2 [root@localhost ndiswrapper-1.27]# The same appears when I try to type the ¨make install¨ command. What is the problem? I can´t continue the installation further cause I get error messages from then and on. Please help me. Also is there a command of how I can type 2 or more commands at the same time? For example as you say the code is ¨make make install¨, how can I type ¨make¨ and ¨make install¨ at the same line? What is going wrong? Please help me as soon as possible cause my work depends on that... Provide me with details cause I am still a linux amateur Thank you
RE: PROBLEM written by Christopher Walken:
me
writen by: joe on 2006-11-09 10:53:48
RE: me written by joe:
Wireless is not really the problem!
writen by: Ben on 2006-11-11 23:39:02
Hi all, Well, I am not a Linux guru either, my wireless runs fine over an open network. It is using WPA_Supplicant that I have a problem with! :-( I just posted a query on the Fedora support forum on this site... Anybody has ideas about that? BTW, lame question (because a friend helped me set up the initial network): How do you probe to find out what driver your card is using? Kind regards, Ben
RE: Wireless is not really the problem! written by Ben:
Same as u
writen by: Nial on 2006-11-25 15:02:25
RE: Same as u written by Nial:
Same as u
writen by: Nial on 2006-11-25 15:03:50
RE: Same as u written by Nial:
A spot of help
writen by: justin on 2007-01-02 03:25:35
I believe that you don't have the kernel source and headers, and whatnot, on your system. (You have the kernel, not the source and headers.) If you look near the top of the article you'll see he mentions this prerequisite and points you in the direction of the kernel source you'll need for this task.
RE: A spot of help written by justin:
that's silly
writen by: justin on 2007-01-02 03:31:31
Come on! My wireless worked in 2 steps in ubuntu: open wlassistant and click on the network! And, yes, it's not that easy for all cards and on all distros, but that's not Linux developer's shortfall, it's idiot vendors who don't give a shite enough about their users to pinch out a measly driver. Linux popular OS with some distros that are definitely for non-geeks who need wireless.
RE: that's silly written by justin:
gg
writen by: gg on 2007-01-02 11:37:40
RE: gg written by gg:
Quick Question
writen by: Jakester on 2007-01-03 23:12:40
Just a quick question...does this work with WPA networks or only WEP and open?
RE: Quick Question written by Jakester:
Quick Question
writen by: Jakester05 on 2007-01-03 23:14:56
Just a quick question...does this work with WPA networks or only WEP and open?
RE: Quick Question written by Jakester05:
ndiswapper compile problem
writen by: Giannis Rizos on 2007-01-04 10:02:26
Nice tutorial. But I can't compile ndiswapper. This is the error I got when I issue make Can't find kernel build files in /lib/modules/2.6.15-1-686/build Any thoughts?
RE: ndiswapper compile problem written by Giannis Rizos:
wlan card on linux on vmware
writen by: networkuserjedi on 2007-01-05 17:44:38
RE: wlan card on linux on vmware written by networkuserjedi:
Fix
writen by: anon on 2007-02-16 14:12:43
RE: Fix written by anon:
source files
writen by: Dave on 2007-02-19 22:06:26
RE: source files written by Dave:
Ndiswrapper -m
writen by: Prashant Pathak on 2007-02-23 05:42:51
Nice Post. Need your help in following. I was Successfully able to install ndiswrapper using Yast Utility. after that i have installed Intel 3945 driver using w39n51.inf ndiswrapper -l w39n51.inf driver installed (alternate driver present:lpw3954 ) and if i do ndiswrapper -m system hangs and i am not able to kill the session and i have forcebilly restart system and after that no luck... can you please help in this
RE: Ndiswrapper -m written by Prashant Pathak:
Theodosios
writen by: Theodosios on 2007-04-30 01:33:26
Hi, nice site! Your hard work paid off <a href=http://amateur.x3porn.info/amateur-porn-free.html> amateur porn free </a><a href=http://amateur.x3porn.info/amateur-bukkake.html> amateur bukkake </a> [url=http://amateur.x3porn.info/amateur-radio.html] amateur radio [/url][url=http://amateur.x3porn.info/amateur-posing-nude--.html] amateur posing nude [/url][url=http://amateur.x3porn.info/ebony-amateur---.html] ebony amateur [/url][url=http://amateur.x3porn.info/amateur-tits.html] amateur tits [/url]
RE: Theodosios written by Theodosios:
Andreou
writen by: Andreou on 2007-04-30 01:37:05
hi.. just droppin' by your site.. it's really cute. nice work! <a href=http://amateur.x3porn.info/amateur-posing-nude--.html> amateur posing nude </a><a href=http://amateur.x3porn.info/amateur-couple.html> amateur couple </a> [url=http://amateur.x3porn.info/amateur-wife-sex.html] amateur wife sex [/url][url=http://amateur.x3porn.info/amateur-thong.html] amateur thong [/url]
RE: Andreou written by Andreou:
driver works but no internet
writen by: damon on 2007-06-16 13:59:34
Hey I want to start using Linux and Have downloaded Ubuntu, Fedora, PClinuxOS, and Mint. But they all have the same problem. They see my wireless card an Ratech 2561 wireless, using the ra61 driver, The Os's also see my network with good signal strength, but they don't connect me to any internet. Once, while running Pclinx, I got on the internet, then it stop after I installed it. Please help Thanks.
RE: driver works but no internet written by damon:
mr
writen by: happen20 on 2007-08-24 14:32:36
I am newer in linux and here. I have one question about the linux wireless: I have a IBM laptop, the cpu is Intel Pentium 4 M. I will install fedora 4 or 7. Is here any one can teach me how to make this computer on this OS can connect to Internet through wireless? Thank you very much!!!!!!!
RE: mr written by happen20:
file driver w39n51.inf
writen by: jessu on 2007-11-09 20:23:13
RE: file driver w39n51.inf written by jessu:
Help can't compile and install
writen by: Brian Cruz on 2008-05-08 16:02:08
I'm really new at linux and any help as to why this isnt working would be greatly appreciated vegincruz@vegincruz-laptop:~$ cd /media vegincruz@vegincruz-laptop:/media$ disk bash: disk: command not found vegincruz@vegincruz-laptop:/media$ /disk bash: /disk: No such file or directory vegincruz@vegincruz-laptop:/media$ cd disk vegincruz@vegincruz-laptop:/media/disk$ cd /Programs bash: cd: /Programs: No such file or directory vegincruz@vegincruz-laptop:/media/disk$ cd /Programs bash: cd: /Programs: No such file or directory vegincruz@vegincruz-laptop:/media/disk$ cd media/Programs bash: cd: media/Programs: No such file or directory vegincruz@vegincruz-laptop:/media/disk$ cd /media/disk/Programs vegincruz@vegincruz-laptop:/media/disk/Programs$ ndiswrapper-1.52 bash: ndiswrapper-1.52: command not found vegincruz@vegincruz-laptop:/media/disk/Programs$ cd /ndiswrapper-1.52 bash: cd: /ndiswrapper-1.52: No such file or directory vegincruz@vegincruz-laptop:/media/disk/Programs$ cd ndiswrapper-1.52 vegincruz@vegincruz-laptop:/media/disk/Programs/ndiswrapper-1.52$ make install make -C driver install make[1]: Entering directory `/media/disk/Programs/ndiswrapper-1.52/driver' make -C /usr/src/linux-headers-2.6.20-15-generic SUBDIRS=/media/disk/Programs/ndiswrapper-1.52/driver make[2]: Entering directory `/usr/src/linux-headers-2.6.20-15-generic' Building modules, stage 2. MODPOST 1 modules make[2]: Leaving directory `/usr/src/linux-headers-2.6.20-15-generic' echo /lib/modules/2.6.20-15-generic/misc /lib/modules/2.6.20-15-generic/misc mkdir -p /lib/modules/2.6.20-15-generic/misc mkdir: cannot create directory `/lib/modules/2.6.20-15-generic/misc': Permission denied make[1]: *** [install] Error 1 make[1]: Leaving directory `/media/disk/Programs/ndiswrapper-1.52/driver' make: *** [install] Error 2 any info would be great
RE: Help can't compile and install written by Brian Cruz:
Best Tutorial ever!
writen by: IceMuppet on 2008-07-21 14:26:55
Well ndiswrapper has always been a pain in the butt, but this is absolutely an amazing tutorial, it worked perfect and everything is running just fine. Thanks for the easy tutorial.
RE: Best Tutorial ever! written by IceMuppet:
problems with wireless driver!!!
writen by: brucelee86 on 2008-09-14 12:10:44
RE: problems with wireless driver!!! written by brucelee86:
Awesome tutorial, but having some compli
writen by: on 2009-05-06 16:48:16
So, I am running Ubuntu on an Acer Aspire 5515, 3 gigs of ram... (well, I suppose the overall specs arn't important, just the WLan card..) I am trying to get an onboard AtheroXB_7_2_0 to work. I've followed the steps, and after a certain point, my hardware doesn't register. It's werid, because the ndisgtk sees the hardware as present... But dmesg shows: [ 55.339962] NET: Registered protocol family 10 [ 55.340453] lo: Disabled Privacy Extensions [ 55.341017] ADDRCONF(NETDEV_UP): eth0: link is not ready [ 128.993839] r8169: eth0: link up [ 128.996591] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 130.072886] NET: Registered protocol family 17 [ 137.577168] eth0: no IPv6 routers present [ 558.264838] APIC error on CPU0: 00(40) [ 1713.588295] APIC error on CPU0: 40(40) jason@jason-laptop:~$ And modprobe ndiswrapper shows: jason@jason-laptop:~$ modprobe ndiswrapper WARNING: /etc/modprobe.d/blacklist line 40: ignoring bad line starting with '“blacklist' WARNING: /etc/modprobe.d/blacklist line 41: ignoring bad line starting with '“blacklist' Which affects ndiswrapper -m, which shows: jason@jason-laptop:~$ sudo ndiswrapper -m WARNING: /etc/modprobe.d/blacklist line 40: ignoring bad line starting with '“blacklist' WARNING: /etc/modprobe.d/blacklist line 41: ignoring bad line starting with '“blacklist' module configuration already contains alias directive module configuration already contains alias directive module configuration already contains alias directive (times 25) And finally, iwconfig: jason@jason-laptop:~$ iwconfig lo no wireless extensions. eth0 no wireless extensions. As it stands, this is what I have when I check on the installation of the driver: jason@jason-laptop:~$ ndiswrapper -l WARNING: /etc/modprobe.d/blacklist line 40: ignoring bad line starting with '“blacklist' WARNING: /etc/modprobe.d/blacklist line 41: ignoring bad line starting with '“blacklist' netathrx : driver installed device (168C:001C) present (alternate driver: ath_pci) Any tips? I've been at this for a few hours now, tried reinstalling the drivers... The alternate driver doesn't work. And I have no clue whats up with the blacklist. Does it really affect the overall configuration?
RE: Awesome tutorial, but having some compli written by :

Comment title: * please do not put your response text here