Configuring custom network driver in openSUSE 11.1

I am here

OK.. we know than we do not to worry about any hardware drivers in Linux as Linux Kernel takes care of all that. But what if we want to install a different driver. What if Kernel does not install the right driver. Recently I had to face this problem. The network card installed on my system is RTL8111/8168B PCI Express Gigabit Ethernet controller (ReaLtek Product) and the default driver Kernel installed was r8169 while the correct driver is r8168.

So here we go about the thing now…

(The below changes have been done in openSUSE11.1, Kernel 2.6.27)

Now, first how to know what network driver you have and what is the correct driver? I can provide you with this script which can help you: collectNWData.sh; Run this script and the output will be something like this (You will have to run this script as “super user” and answer few questions):
collectNWData.sh V0.6.1.15 (Rev: 1.165, Build: 2009/09/02 18:39:22)
--- Which type of your network connection should be tested?
--- (1) Wired connection
--- What's the type of networktopology?
--- (1) DSL modem <---> LinuxClient
--- On which host is the script executed?
--- (1) LinuxClient
!!! CND0120E: Network card eth0 has no IP address
!!! CND0300E: No dhcp server found on interface eth0
!!! CND0230W: IPV6 enabled
!!! CND0310W: Classic network configuration with ifup was detected. Configuration with knetworkmanager is much easier
--- Go to http://www.linux-tips-and-tricks.de/CND#English to get more detailed instructions about the error/warning messages and how to fix the problems
--- If you still don't have success then post the contents of file collectNWData.txt in the net (see http://www.linux-tips-and-tricks.de/CND_UPL#English for links) and then the nopaste link on your favorite Linux forum.
==================================================================================================================
==================================================================================================================
…
…
34: PCI 900.0: 0200 Ethernet controller
Model: "Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller"
Vendor: pci 0x10ec "Realtek Semiconductor Co., Ltd."
Device: pci 0x8168 "RTL8111/8168B PCI Express Gigabit Ethernet controller"
SubVendor: pci 0x103c "Hewlett-Packard Company"
SubDevice: pci 0x3061 
Driver: "r8169"
Driver Modules: "r8169"
Device File: eth0
Link detected: no
Driver Status: r8169 is active
Driver Activation Cmd: "modprobe r8169"
This is just a filtered output of the above script. Here we can see that the module installed is r8169 which should be r8168.

So first download the driver from your vendor site.

Now that we know what we have and what we need we will proceed further (We will have to proceed all the steps from konsole or similar tool) :

First stop the network and remove the wrong module:

 #000000; padding: 0.15cm; margin-left: 0.5cm; margin-right: 0.5cm; font-weight: normal; text-align: left;"> #stop the network
$ rcnetwork stop

#remove r8169 driver
$ rmmod r8169

Go to the directory where you have downloaded the driver. I had downloaded it my home directory and the downloaded file was an archive file so here are the steps:

 #000000; padding: 0.15cm; margin-left: 0.5cm; margin-right: 0.5cm; text-align: left;">$  cd
$ tar xjf r8168-8.014.00.tar.bz2
$ cd 8168-8.014.00

After that I compiled the code. (This may fail if kernel headers and other standard features of a build environment are not installed)

Code:

 #000000; padding: 0.15cm; margin-left: 0.5cm; margin-right: 0.5cm; text-align: left;">$ make clean
$ make modules
$ make install

Add the old driver to blacklist and rename the old driver module to make sure modprobe knows not to use r8169, and that depmod doesn’t find the r8169 module:..

Code:

 #000000; padding: 0.15cm; margin-left: 0.5cm; margin-right: 0.5cm; text-align: left;">$ echo "blacklist r8169n" >> /etc/modprobe.d/blacklist
$ mv /lib/modules/uname -r/kernel/drivers/net/r8169.ko /lib/modules/uname -r
/kernel/drivers/net/r8169.ko.old

Make suse aware of the changes:

Code:

 #000000; padding: 0.15cm; margin-left: 0.5cm; margin-right: 0.5cm; text-align: left;">$ depmod
$ insmod src/r8168.ko
$ ifconfig -a

Notice the output of “ifconfig -a” and saw how NIC was called (probably eth0 or eth1). Mine was eth0 Then I edited the networks file to add my NIC configuration. Added the below lines of code to my /etc/networks

Code:

 #000000; padding: 0.15cm; margin-left: 0.5cm; margin-right: 0.5cm; text-align: left;"> # The Ethernet card
auto eth0
iface eth0 inet dhcp

Notice the output of “ifconfig -a” and saw how NIC was called (probably eth0 or eth1). Mine was eth0 Then I edited the networks file to add my NIC configuration. Added the below lines of code to my /etc/networks

Code:

 #000000; padding: 0.15cm; margin-left: 0.5cm; margin-right: 0.5cm; text-align: left;"> # The Ethernet card
auto eth0
iface eth0 inet dhcp

Then restarted the card:

Code:

 #000000; padding: 0.15cm; margin-left: 0.5cm; margin-right: 0.5cm; text-align: left;">$ ifdown eth0
$ ifup eth0
$ rcnetwork start
This should start you networking 🙂

Configure USB Modem EC1260 in Linux Kernel 2.6.27 and below

Recently I bought a Reliance USB stick (So that I can use my Laptop as a truly portable machine). Right now I am using openSUSE 11.1 which uses Linux Kernel 2.6.27, which is I say is obsolete in this world of rapid technical changes (Even though Linux Kernel 2.6.27 is somewhat just a year old).

So when I plugged in my newly acquired USB modem into my laptop… my system could not detect it as a modem, but just as a USB storage device. So what to do!

Here are the steps I took to make my system recognize it as a USB modem.

First plug in the USB device in the system and after 5-10 seconds get the output of “lsusb” from the konsole (or any command line tool you use). Here is my output:

$ lsusb
Bus 003 Device 003: ID 12d1:140b Huawei Technologies Co., Ltd.
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 002: ID 138a:0001
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 093a:2510 Pixart Imaging, Inc.
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 064e:a127 Suyin Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

On the USB device box it was written that the device was a Huawei one. So the first line from the output is what I need. The part I have bolded is what we need. It is vendor id and device id of the USB device. The product id is “0x140b” and vendor id is “0x12d1”.

Execute the below commands to make system stops recognizing the modem as USB storage device. Before giving out the “eject” command make sure that the device you are ejecting is USB modem. You can use “dmesg” to get this information.

$ eject /dev/sr1
$ modprobe -r usb-storage usbserial
$ modeprobe usbserial vendor=0x12d1 product=0x140b

Now as the device is successfully ejected and we can proceed further.

You will get three devices now:
/dev/ttyUSB0
/devttyUSB1
/dev/ttyUSB2
/dev/ttyUSB0 is the modem, use only this device. /dev/ttyUSB1 is the control channel, /dev/ttyUSB2 is doing GSM checks.
Make changes in /etc/wvdial.conf. Here are my chanages:

[Dialer Defaults]
Modem = /dev/ttyUSB0
Baud = 115200
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2
Init3 =
Area Code =
Phone = #777
Username = myusername |With Reliance net connect |
Password = my_password |it is the mobile number of the modem|
Ask Password = 0
Dial Command = ATDT
Stupid Mode = 1
Compuserve = 0
Force Address =
Idle Seconds = 300
DialMessage1 =
DialMessage2 =
ISDN = 0
Auto DNS = 1

Run wvdial and you are connected to the world wide web 🙂

In place of wvdial you can also use kinternet. Just use settings –> configure with Yast –> add modem, and in the modem name put /dev/ttyUSB0

This may seem a lot of work to do, but we can automate this whole process which I will be putting down in my next blog 🙂

This problem has been solved in Linux Kernel 2.6.29 and greater (I am not sure about Kernel 2.6.28).

Have a nice time…

Terror India and Indians

It looks very heartening to see Indians – Indians of all religions, castes, age, etc., etc. to come out in such large numbers and register their concern about the attack on the very sovereignty of India and raise their voice against the merciless butchering of the fellow Indians. Indeed very heartening.
But, but, but…. Was the attack on the 26-November-2008 the first terror attack on India!! As far as I know India has been grappling with this menace for the past 25-30 years – more years than the age of most of the members here. So why were we silent for all these years?? Where was the “Indian” in us!! Sleeping?

Where were Indians when Punjab was burning with terrorism for 10 years? Where were Indians when 5 Lakh – Mind it, its FIVE LAKH not a few thousands, when 5 Lakh Kashmiri Pandits were forced to leave their homes, belongings, farms – just about everything they had and kicked out of Kashmir in the winter of 1989 – just because this community could not even dream of not being called INDIANS. The BIGGEST forced mass migration of people in independent India after partition….. These people have never been to their homes again after they left it some 19 years back. They are still called refugees – refugees in their own country, India, for being proud to be Indians.

Does anyone have even count of the army men and police officials killed in Punjab, Kashmir, North-Eastern states, naxal prone areas in all these 25-30 years. Why are they being forced to fight a never ending war when Indians are least interested in being Indians?? When after they get killed in some encounter questions are raised on their presence at a particular place, when we do not even hesitate to disgrace their death. And if they survive, then enquiries are launched into their conduct on a particular day. Human Rights activists like Arundhati Roy do not fail to sit for a ‘dharna” for demanding the enquiry into killing of “people” at Batla House encounter, but alas, she has no remorse for the death of Inspector Mohan Chand Sharma in the same encounter, who got killed by the bullets sprayed by the same “innocent civilians” for whom our Human Rights Activists feel so sad!! The minister of Minority – Mr. Antulay feel suspicious on the presence of three top cops at the same spot in Mumbai Carnage, so are Police officials supposed to get permission of all politicians before taking on terrorists?? Why the hell should we expect any army men and police men to protect “Indians” after all they get is – DISGRACE and JUST DISGRACE, DISGRACE IN LIFE AND DISGRACE IN DEATH, DISGRACE for protecting “Indians”!!!

Just a few months back the booker Prize winner author Arundhati Roy declared from Kashmir “Kashmiris need independence from India”. Damn hell, I am a Kashmiri and I do not need ANY independence from India. There are more than Five Lakh Kashmiri Pandits languishing in camps of Jammu, Delhi, in every part of India waiting to return to Kashmir but only as Indians. They will leave Kashmir but not India. But people like Arundhati cannot see them. What matters here is the majority. Kashmir’s majority Muslims feel that they will be better off with Pakistan or Independent even while the sit comfortably on the grants from Indian Government. (Please do not try to compare Kashmiri Muslims with the rest of Muslims in India, their ideologies and aspirations are different, as different as an Indian is from a Pakistani). I am confused here… When the majority indulges in the killing of minority in Gujarat it is wrong as per the same Arundhati Roy but the opinion changes when the majority in Kashmir indulges in the massacre, rape, arson of the minority there. The majority becomes right when their war cry becomes “Jeevey Jeevey Pakistan, Nanga Bukha Hindustan”.

What happened in Gujarat lasted for a week, the same thing is happening in Kashmir for last 20 years and the end is still not in sight. So should we “reward” the majority in Kashmir for what they did and grant them their “Independence” and punish the minority for strongly feeling that they are Indians!!! Reward the Majority when they yell “Aaye Aaye Lakshar Aaaye”(Watch here the laskhar is coming), referring to the notorious terrorist organization Let(Lakshar-e-Toiba) which is also behind the Mumbai Carnage and the blasts chain which rocked the country very recently. How can we even tolerate people like Arundhati Roy among us while they do not shy from lynching down morally the army, police and people who feel proud to be Indians????? The answer is – it does not matter to Indians what the hell other Indians are made to go through. Ever thought how many Indians have been butchered – yes BUTCHERED and not just “killed” by the terrorists in the last 25-30 years. “Indians” are abducted and butchered – by slicing their heads apart from their bodies, their heads are not cut off in a single stroke, it is sliced – can you even feel that… and can you feel the pain of a mother, a daughter, a son, a wife, a father, a mother… on seeing their beloved one dead, with his head separated from his body?? But while these barbaric things happen to some of the “Indians”, other “Indians” feel happy in watching movies (Ironically Bollywood produces movies which only justify the making of a terrorist but the victim of that terrorist does not matter) . Every year thousands of “Indians” (Army, Police, common people) are crippled – legs severed, hands severed – noses and ears are cut off and eyes gauged out by these terrorists. And all we “Indians” can do is come out on a weekend and protest, and then forget everything. Terrorism is not a just a 62 hour Mumbai Carnage; it is not just Taj and Oberoi. It is about the suffering of “Indians” for more than 25 years now.

Just look at how pathetically the Indian media romances the terror attacks on India. Every terror attack becomes India’s 9/11, as if the Indian media wants 9/11 happen to India. The height of aping America.. India is not America!! America will not loose in 1000 years what India has lost in the last 25 years to terrorism…

9/11 resulted in the finishing of Taliban from Afghanistan. What did Punjab, Kashmir, the blasts in Delhi, Jaipur, Gujarat, Assam, Bangalore and Mumbai resulted in?? We Indians are still just like sitting ducks like we were – always, not knowing where the next blasts will take place, no knowing the date of next massacre.

Today, I feel dying a Dog’s death is more graceful than being called as an Indian. What Indians today need is not just weekend protests but Vendetta, a strong Vendetta against terrorists, vendetta against their supporters and those human rights activists who only feel the pain of the butchers and not that of the butchered. Anything less than Vendetta, anything less than vengeance will lead us no where……