Author: rahul

  • Free Long Distance Calling Using SIP (with Linksys PAP2 or any softphone)

    Short and simple steps for the technically challenged

    For this setup, you will have to first buy a phone adapter. A very good and cheap SIP phone adapter is the Linksys PAP2. This will cost around Rs.2500 in CTC, Secunderabad. If you want to use single phone for internet calling and normal telephone line, then you can consider buying Linksys SPA3102. (Note: Newer versions of these ATAs modelled SPA112 and SPA122 have been launched). After you buy the phone adapter, follow the below instructions to configure cheap calling to international destinations:

    1. Go to http://www.voipdiscount.com and create an account
    2. Get the IP address of your PAP2 device by following Step 1- Step 5 in http://www.callcentric.com/support/device/linksys/pap2
    3. Configure Voipdiscount in your PAP2 device by following the instructions at http://www.voipdiscount.com/en/sipp.html. See section on Linksys SPA3102. Also see section on “If you have audio problems:”.
    4. For US number, visit http://www.ipkall.com/. Create a new phone number and assign the below SIP address.
      SIP Username: Your VoIP discount username.
      SIP Server: sip.voipdiscount.com
      For UK number, visit http://www.uknumber.co.uk/voip.htm and register your SIP address : username@sip.voipdiscount.com (substitute username with VoIP discount username).
      For more such DID Providers, visit http://wiki.sipsorcery.com/mw/index.php?title=DID_Providers
    5. (Slightly Advanced) For direct IP calling, follow the instructions in http://faq.sipbroker.com/tiki-index.php?page=Inbound%20Calls%20Directly%20to%20your%20LinkSys%20or%20Sipura

    For understanding more about SIP, read on.


    Overview

    This is the second article I am writing on Long Distance calling. And in a way it obsoletes my previous article on Net Telephony. This article mainly focuses on using SIP for making long-distance calls. SIP (Session Initiation Protocol) is a protocol which is used for voice communication for internet (Read more). For making these calls, the bare minimum is a net connection. The setup is best explained with the below diagram.

    SIP Setup

    For furthur clarification, an analog phone is just an ordinary corded/cordless phone using which you place your regular landline calls. Now that you have an idea of the setup, let us get into some real action.

    Basics

    Choosing a SIP provider

    Just like when you chat on yahoo messenger, you have a yahoo client installed on your PC and Yahoo Server providing the messenger connectivity, for SIP you need to have a SIP provider (and SIP client). I had considered many SIP providers. I have summarized some of them below.

    • Callcentric – The biggest reason for me to try out Callcentric are its really good reviews at Callcentric Voip Reveiws. And true to the reviews, the quality of Callcentric as of today seems to be really good. Also their rates and packages they offer such as Pay Per Call are useful to the end-users. And definitely not to forget the excellent documentation they have for setting up your SIP device which you shall get to hear of soon.
    • VoipDiscount – Voipdiscount is perhaps the cheapest VOIP provider out there on the internet. It is owned by Betamax which also runs many other such similar VOIP services. You can find out more about Betamax and its products at http://backsla.sh/betamax and http://progx.ch/home-voip-prixbetamax-3-1-1.html. For configruing Voipdiscount with your SIP device, click here (you shall read more about what a SIP device is later).
    • sipgate and Voipfone – Though sipgate and Voipfone do not offer as cheap outgoing rates as Voipdiscount, they both provide a free UK number. While sipgate offers a number starting with 0845 or 0870, Voipfone offers a free number starting with 056. This makes it extremely useful if your primary need is to have your relatives in UK call your phone adapter.

    This was just an overview of some of the free SIP providers. They are many out there which you may feel to try out if you have the time and patience :). I intend to keep this updated as and when I come across any good SIP providers. So for now, we shall go ahead with Callcentric.

    Creating a SIP account

    The next obvious step would be to create a new SIP account. Kindly visit Callcentric or the website of the SIP provider you have chosen and create a new account.

    Please note that if you make only (or mostly) outgoing calls, then Voipdiscount is what I would suggest you look at.

    Configuring your SIP client

    Just as for yahoo messenger after creating an account you have to download and install the client, similar is the case with SIP. You have just created a SIP account and now you need to download, install and conifugre the client.

    You can use the free SIP phone X-Lite as a SIP client. There are many other SIP softphones available but I choose this because it is a very popular SIP phone. Also you can find step-by-step detailed instructions for configuring Callcentric on X-Lite here.

    Communicating with your friends

    Now ask your friend or whomever you want to voice chat with to follow the same procedure by creating a SIP account with some provider, download, installing and configuring the client. Once he does that, either of you can call each other using the SIP number associated with the respective accounts.

    Advantages of SIP

    You might have observed that what we have achieved so far (i.e. PC-to-PC voice chat) can be achieved using Yahoo Messenger or Skype or some other voice chat software. But what makes SIP so special is that it is based on open standards which enables use of the following features.

    Using SIP phone adapter (ex. Linksys PAP2)

    This is perhaps the best thing I like about using the SIP protocol. You can replace your computer + headset with a SIP phone adapter + any analog telephone. The phone adapter is especially a boon for those who are not familiar with how to use the computer.

    A very good and cheap sip phone adapter is the Linksys PAP2. I recently purchased this piece from Bhumika Computers (in Hyderabad, India) and it costed Rs.2800. As per my knowledge, the latest version as of September 2007 is PAP2T and it comes in a properly packed blue box. Also make sure that this is an unlocked version which you are purchasing. The instructions for configuring callcentric account can be found here.

    Also note that there are some other slightly costlier phone adapters / VoIP Gateways which provide additional functionality compared to Linksys PAP2. For instance, the Linksys SPA3102 integrates with your PSTN network thereby enabling you to use only one analog phone for PSTN and VoIP. This device also has the additional provision of configuring multiple outgoing providers and switching between them based on your destination number. If you call up various countries, this would be particularly useful.

    This kind of feature of choosing outgoing provider based on destination is also provided by services such as Voxalot and SIP Sorcery. But there might be latency issues when compared to configuring the outgoing providers directly in your phone adapter.

    If you have understood the working of the phone adapter, then you must have realized by now that if you have only one network connection, it is not feasible to use your computer and the phone adapter at the same time. To overcome this you will have to buy a device which provides routing functionality and phone adapter functionality OR buy phone adapter and some other router (netgear, linksys, softrouter, etc.) separately. The latter option is what I recommend because it will prove more economical to buy a separate router taking into consideration the features provided by a separate router (such as wifi, multi-port, etc.).

    Calling via traditional PSTN networks

    It is possible to reach your SIP phone via traditional PSTN numbers. This is made available through the SIP Broker service. Apart from this, SIP Broker service can be used for making calls between SIP networks. Visit their site for more information.

    I shall explain how this feature has proved a boon to my aunt who stays in India (she has a callcentric configured on Linksys PAP2 and let us assume her account id is 1722221224) and how her daughter who stays in England calls her via her PSTN phone.

    i. The daughther first selects a number from the list in SIP Broker PSTN Access Numbers. For her, all calls to London are free. Hence she selects a London PSTN access number.

    ii. After dialing the number, she hears a welcome message asking to enter the SIP number followed by the hash sign. Now she punches in the SIP Provider code which is *462 for Callcentric followed by my aunt’s SIP number which is 1722221224, finally ending it with a hash (#) sign i.e. after she hears the welcome message, she punches in “*42617772219612#” (without the quotes).

    iii. That’s it. Once she does that the SIP phone at my aunt’s place rings and they can talk to each other.

    Calling from other SIP networks

    It is possible to call callcentric users from other SIP networks. For example, people using Vonage / Packet8 should be able to call you directly using this method. For more details refer Callcentric FAQ.

    Incoming Phone Numbers

    Using the service offered by IPKall, it is possible to have a free local US phone number in the washington state. Please note that for callcentric users, your SIP number will be of the form “17770000001” and your SIP proxy is “in.callcentric.com”.

    Callcentric offers paid local phone numbers in other countries as well. For the details, visit Callcentric Phone Numbers.

    SIP Broker Alias

    For certain SIP providers, you are provided with a SIP account such as amaramrahul@sip.voipbuster.com but no SIP number. These would pose a limitation if someone would like to call this user using their phone as phones support only number dialing. To overcome this limitation, SIP Broker provides an excellent service which allows creating a free SIP number alias for your non-number based SIP URI. For furthur details, visit SIP Broker Alias

    Another way of calling non-numeric SIP address (such as amaramrahul@sip.voipbuster.com), is by switching to advanced view in Linksys PAP2 web interface, clicking on User 1 (or User 2 depending upon your line) and setting one of the Speed Dial numbers to the SIP address. Then you can call this SIP address by dialing the speed dial number (2-9) followed by the “#” key from your phone. But this does not provide a SIP number as in the previous case.

    Inbound Calls Directly To Your Phone Adapter and Direct IP Calling

    If you have a public IP / can set up one of the ports in your router to be forwarded to you phone adapter, then you can set up inbound calls directly to your phone adapter. This implies anybody can call your phone adapter using the public IP with which it connects to the Internet. The biggest advantage of this is that people who call you can directly call your phone adapter bypassing the intermediate SIP provider. A combination of Voipdiscount (for outgoing calls to traditional phones) and setting up your phone adapter to accept ip incoming calls proves to be really economical. To enable dialing the phone adapter IP using a SIP number, you may either use a SIP Broker Alias (details above) or Enum (details below). You can also use IPKall (details above) to map a U.S. phone number directly to your phone adapter IP. For more information on Inbound Calls to Phone Adapter, visit this article Inbound Calls Directly To Your Linksys Or Sipura on SIP Broker Wiki.

    Enum

    From http://www.e164.org – “E164.org is a public enum directory of telephone numbers that can be reached over the Internet by anyone anywhere. The system works by publishing a DNS zone, ‘e164.org’, that can be used by various Internet applications. The idea is to be able to map your phone number to an Email address, website, VoIP addresses, etc.”.

    For ex. this is how I can use it. Let us assume my home phone number is “+91 40 123456”, then using e146.org I can map my home phone number to the SIP address “amaramrahul@sip.voipbuster.com”. Now someone who knows my home phone number can contact me using the SIP Broker Service with the code for enum (*013) and my phone number (9140123456).

    Using the Phone Adapter as Intercom

    Alright, this you might not find documented anyway. But this is one small little trick I found out. As mentioned above, it is possible to call the phone adapter using the IP assigned to it and port number. As Linksys PAP2 phone adapter generally comes with two phone lines, it is possible to call up one phone line using the other. I’ll explain this using a small example. Assume your set up is as below.

    Phone Adapter IP: 192.168.1.2
    Line 1 User: user1
    Line 2 User: user2
    Line 1 Port: 5060
    Line 2 Port: 5061

    Go to “http://192.168.1.2 -> switch to advanced view -> User 1” and set “Speed Dial 2” to “user2@192.168.1.2”. Similarly go to “http://192.168.1.2 -> switch to advanced view -> User 2” and set “Speed Dial 2” to user1@192.168.1.2.

    Now either of the users can call the other person by using the Speed Dial feature of Linksys PAP2 adapter i.e. by dialing the Speed Dial number to which the address is assigned to (in this case “2”) followed by the “#” key.

    Other Useful Links

    http://www.myvoipprovider.com/blog/60_free_voip_services
    http://www.redflagdeals.com/forums/showthread.php?t=454642
    http://en.wikipedia.org/wiki/Comparison_of_VoIP_software
    http://voipguides.blogspot.com/2006/12/top-5-free-voip-providers-for.html
    http://voipguides.blogspot.com/2007/01/allfreecallsnet-hack-to-make-worldwide.html
    http://forums.whirlpool.net.au/forum-replies-archive.cfm/1159846.html
    http://voipstuff.net.au/IPDialling.html
    http://snapvoip.blogspot.com/2009/01/free-sip-accounts-revisited.html

    Summing it all up …

    VOIP i.e. the ability to transfer voice over the internet has become a big market today. Merged with standard protocols such as SIP, we are getting the convenience of the traditional phone at a very low price. Looking at the current trend, it might not be long before the traditional phone lines are replaced with IP phones.

  • Apache2 + Tomcat5 + mod_jk

    This is a straight forward step-by-step tutorial to set up Apache2 to server java content (jsp and servlets) through tomcat web server using mod_jk.

    1. Install apache2 along with dependencies.
      # apt-get install apache2

    2. Install tomcat5 along with dependencies.
      # apt-get install tomcat5

      Modify /etc/default/tomcat5 to set the correct path to JAVA_HOME directory (jdk needs to be installed and setup prior to installing tomcat). Then restart tomcat.
      # /etc/init.d/tomcat5 restart

      The tomcat5 webserver runs on port 8180 by default in Mepis / Ubuntu.

    3. Install the mod_jk connector and restart apache2 to load the module.
      # apt-get install libapache2-mod-jk
      # /etc/init.d/apache2 restart

      The beauty of installing the distribution specific libapache2-mod-jk package is that it comes pre-configured with all the necessary files and options for using the connector out-of-the-box.

    4. Next you need to edit /etc/apache2/apache2.conf and add the following lines: .

      ##### Begin Tomcat connector configuration #####

      # Where to find workers.properties
      JkWorkersFile /etc/libapache2-mod-jk/workers.properties
      # Where to put jk logs
      JkLogFile /var/log/apache2/mod_jk.log
      # Set the jk log level [debug/error/info]
      JkLogLevel info
      # Select the log format
      JkLogStampFormat “[%a %b %d %H:%M:%S %Y] ”
      # JkOptions indicate to send SSL KEY SIZE,
      JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
      # JkRequestLogFormat set the request format
      JkRequestLogFormat “%w %V %T”

      ##### End Tomcat connector configuration #####

    5. Now you have to add directives in /etc/apache2/apache2.conf or in the virtual host () section to tell apache which content has to be forward to tomcat. Below are a few examples.

      To send all jsp requests to tomcat, add the line:
      JkMount /* ajp13_worker

      To send servlet for context /jsp-examples:
      JkMount /jsp-examples ajp13_worker

      To send JSPs for context /jsp-examples/*:
      JkMount /jsp-examples/* ajp13_worker

      To send all but /cgi-bin/ requests to tomcat, add:
      JkMount /* ajp13_worker
      JkUnMount /cgi-bin/* ajp13_worker

  • An Actual Trial in UK

    This is from an actual trial in the UK :

    A young woman who was several months pregnant boarded a bus. When She
    noticed a young man smiling at her she began feeling humiliated on account
    of her condition. She changed her seat and he seemed more amused. She
    moved again and then on her third move he burst out
    laughing………………

    She had him arrested.

    Then the case came before the court, the young man was asked why he acted
    in such a manner.

    His reply was: When the lady boarded the bus I couldn’t help noticing she
    was pregnant. She sat under an advertisement, which read: ‘Coming Soon: The
    Gold Dust Twins’. I was even more amused when she sat under a shaving
    advertisement, which read:’William’s Stick Did The Trick’. Then I could not
    control myself any longer when on the third move she sat under an
    advertisement, which read: ‘Dunlop Rubber would have prevented this
    accident.’

    The case was dismissed………!!!!!!!

  • A Training Program for Top Management

    A well-known motivational speaker gathering the entire crowd’s attention, said, “The best years of my life were spent in the arms of a woman who wasn’t my wife !”. The crowd was shocked! He followed up by saying, “That woman was my mother!” The crowd burst into laughter and he gave his speech, which was well received.

    About a week later, one of the top managers who had the training decided to use that joke at his house. He tried to rehearse the joke in his head. It was a bit foggy to him. He said loudly, “The greatest years of my life were spent in the arms of a woman who was not my wife!”. Naturally, his wife was shell shocked, murmuring. After standing there for almost 10 seconds trying to recall the second half of the joke, the manager finally blurted out “… and I can’t remember who she was !”. As expected, he got thrashing of his life time….

    Moral of the story : Don’t copy if you can’t paste 🙂

  • In God’s Hands

    I am a mother of three (ages 14, 12, 3) and have recently completed my college degree. The last class I had to take was Sociology. The teacher was absolutely inspiring with the qualities that I wish every human being had been graced with. Her last project of the term was called “Smile”.

    The class was asked to go out and smile at three people and document their reactions. I am a very friendly person and always smile at everyone and say hello anyway, so, I thought, this would be a piece of cake, literally. Soon after we were assigned the project, my husband, youngest son, and I went out to McDonald’s one crisp March morning. It was just our way of sharing special playtime with our son. We were standing in line, waiting to be served, when all of a sudden everyone around us began to back away, and then even my husband did. I did not move an inch…an overwhelming feeling of panic welled up inside of me as I turned to see why they had moved. As I turned around, I smelled a horrible “dirty body” smell, and there standing behind me were two poor homeless men. As I looked down at the short gentleman close to me, he was “smiling”. His beautiful sky blue eyes were full of God’s Light as he searched for acceptance. He said, “Good day” as he counted the few coins he had been clutching. The second man fumbled with his hands as he stood behind his friend. I realized the second man was mentally deficient and the blue eyed gentleman was his salvation. I held my tears as I stood there with them. The young lady at the counter asked him what they wanted. He said, “Coffee is all Miss” because that was all they could afford. (If they wanted to sit in the restaurant and warm up, they had to buy something. He just wanted to be warm.) Then I really felt it, the compulsion was so great I almost reached out and embraced the little man with the blue eyes. That is when I noticed all eyes in the restaurant were set on me, judging my very action. I smiled and asked the young lady behind the counter to give me two more breakfast meals on a separate tray. I then walked around the corner to the table that the men had chosen as a resting spot. I put the tray on the table and laid my hand on the blue eyed gentleman’s cold hand. He looked up at me, with tears in his eyes, and said, “Thank you.” I leaned over, began to pat his hand and said, “I did not do this for you. God is here working through me to give you hope.” I started to cry as I walked away to join my husband and son. When I sat down, my husband smiled at me and said, “That is why God gave you to me, Honey, to give me hope.” We held hands for a moment and at that time we knew that only because of the Grace that we had been given we were able to give. We are not churchgoers, but we are believers. That day showed me the pure Light of God’s sweet love.

    I returned to college, on the last evening of class, with this story in hand. I turned in my project and the instructor read it. Then she looked up at me and said “Can I share this?” I slowly nodded as she got the attention of the class. She began to read and that is when I knew that we, as human beings and being part of God, share this need to heal people and be healed. In my own way, I had touched the people at McDonald’s, my husband, son, instructor and every soul that shared the classroom on the last night I spent as a college student.

    I graduated with one of the biggest lessons I would ever learn: UNCONDITIONAL ACCEPTANCE. Much love and compassion is sent to each and every person who may read this and learn how to LOVE PEOPLE AND USE THINGS – NOT LOVE THINGS AND USE PEOPLE.

  • Cracked Pot

    A water bearer in India had two large pots, each hung on each end of a pole which he carried across his neck. One of the pots had a crack in it, and while the other pot was perfect and always delivered a full portion of water at the end of the long walk from the stream to the master’s house, the cracked pot arrived only half full. For a full two years this went on daily, with the bearer delivering only one and a half pots full of water in his master’s house. Of course, the perfect pot was proud of its accomplishments, perfect to the end for which it was made. But the poor cracked pot was ashamed of its own imperfection, and miserable that it was able to accomplish only half of what it had been made to do. After two years of what it perceived to be a bitter failure, it spoke to the water bearer one day by the stream. “I am ashamed of myself, and I want to apologize to you.” Why?” asked the bearer. “What are you ashamed of?”. “I have been able, for these past two years, to deliver only half my load because this crack in my side causes water to leak out all the way back to your master’s house. Because of my flaws, you have to do all of this work, and you don’t get full value from your efforts,” the pot said. The water bearer felt sorry for the old cracked pot, and in his compassion he said, “As we return to the master’s house, I want you to notice the beautiful flowers along the path.” Indeed, as they went up the hill, the old cracked pot took notice of the sun warming the beautiful wild flowers on the side of the path, and this cheered it some. But at the end of the trail, it still felt bad because it had leaked out half its load, and so again it apologized to the bearer for its failure. The bearer said to the pot, “Did you notice that there were flowers only on your side of your path, but not on the other pot’s side? That’s because I have always known about your flaw, and I took advantage of it. I planted flower seeds on your side of the path, and every day while we walk back from the stream, you’ve watered them. For two years I have been able to pick these beautiful flowers to decorate my master’s table. Without you being just the way you are, he would not have this beauty to grace his house.”

    Moral: Each of us has our own unique flaws. We’re all cracked pots, but it’s the cracks and flaws we each have that make our lives together so very interesting and rewarding. You’ve just got to take each person for what they are, and look for the good in them. There is a lot of good out there. There is a lot of good in us! Blessed are the flexible, for they shall not be bent out of shape. Remember to appreciate all the different people in your life! Or as I like to think of it–if it hadn’t been for the crackpots in my life, it would have been pretty boring and not so interesting…

  • The Gift of Life

    On the very first day, God created the cow. He said to the cow, “Today I have created you! As a cow, you must go to the field with the farmer all day long. You will work all day under the sun! I will give you a life span of 50 years.” The cow objected, “What? This kind of tough life you want me to live for 50 years? Let me have 20 years, and the 30 years I’ll give back to you.” So God agreed.

    On the second day, God created the dog. God said to the dog, “What you are supposed to do is to sit all day by the door of your house. Any people that come in, you will have to bark at them! I’ll give a life span of 20 years.” The dog objected, “What? All day long to sit by the door? No way! I give you back my other 10 years of life!” So God agreed.
    On the third day, God created the monkey. He said to the monkey, “Monkeys have to entertain people. You’ve got to make them laugh and do monkey tricks. I’ll give you 20 years life span.” The monkey objected. “What? Make them laugh? Do monkey faces and tricks? Ten years will do, and the other 10 years I’ll give you back.” So God agreed.

    On the fourth day, God created man and said to him, “Your job is to sleep, eat, and play. You will enjoy very much in your life. All you need to do is to enjoy and do nothing. This kind of life, I’ll give you a 20 year life span.” The man objected. “What? Such a good life! Eat, play, sleep, do nothing? Enjoy the best and you expect me to live only for 20 years? No wayman…! Why don’t we make a deal? Since the cow gave you back 30 years, and the dog gave you back 10 years and the monkey gave you back 10 years, I will take them from you! That makes my life span 70 years, right?” So God agreed.

    AND THAT’S WHY…. In our first 20 years, we eat, sleep, play, enjoy the best and do nothing much. For the next 30 years, we work all day long, suffer and get to support the family. For the next 10 years, we entertain our grandchildren by making monkey faces and monkey tricks. And for the last 10 years, we stay at home, sit by the front door and bark at people!

  • A Moment of Truth

    Today I free myself. I had been unable to see why I have been haunted for so many years. But today I somehow realized this as I lay in my bed. It is probably those very few moments of truth which you come across your life. And it surprises me that it had been so simple yet I failed to see it.

    As funny as it might sound, my fears have always been like – “What do I do if someone kills my very close friend and to get the court to punish the culprit I would have to bribe the officials? Will I bribe them? Will I compromise on my values?”. Yet another one among them – “What if someone kidnaps my child? Will I pay the ransom or will I stick to my values and let the kidnappers harm my son?”

    And today I have understood the reason for these fears. All these fears arose from the single fact because I had been bound by my values. And if you read the above questions carefully, you shall realize that what bothered me more than the event (murder, kidnap) was the fear that I might compromise on my values. I had begin to identify myself with my values. I had begin to define myself on those values. All to such an extent that the very thought of comprising on them began to make me feel so empty. Strange but true just as people become dependent on their work, people become dependent on their spouses, people become dependent on their materialistic pleasures I had become dependent on my values. And just as a person is scared of losing his materialistic comfort / work / spouse, the thought of losing my value system simply haunted me. Because I had began to identify and define myself on those values.

    And yet for every word I speak, I just seem to keep getting stronger with my value system. The answers to all my questions as of now still remain the same as they were yesterday. If you ask me if corruption is wrong, I’d still say corruption is wrong. If you ask me if u’d let ur child die in the hands of a kidnapper, I’d still say I’d let him get killed rather than paying the ransom. I still have my belief system and values in place. But what is different from yesterday to this moment is that as I say all this I feel free. I am no longer a slave of my belief system. It is what now I begin to follow whole-heartedly. Or as they say in SSY, I have now become a leader rather than a follower in this particular aspect.

    I have the freedom to laugh. I have the freedom to cry. I have the freedom to love. I have the freedom to hate. I have the freedom to break my word. I have the freedom to keep up my promises. And yet the thought of being so contradictory doesn’t disturb me because today I openly proclaim that everything I feel, everything I promise and my entire value system is only true for that moment. I might be an entirely new person the very next moment. I do not identify myself with anything. And accepting this has certainly taken a lot of load off me. This is perhaps one of the few moments in my life when I feel so free.

  • Installing Ubuntu 6.06 LTS Dapper On Intel DG965RY via PXE / Network / USB

    This article mainly covers the installation of Ubuntu 6.06 Dapper (both Desktop Edition and Server Edition) on an Intel DG965RY motherboard. Anyone of you who have purchased this motherboard must have realized that most of the linux distributions fail to boot from the IDE CD-ROM. The reason for this being DG965RY uses Marvell PATA controller and this is not supported by anything but the bleeding edge kernels. So though the CD maybe booted initially, at the point where the kernel has to fetch the files from the CD-ROM the installation fails. The few linux distributions which seem to be working with this are Open Suse 10.2 and Ubuntu Fiesty 7.04 (as these seem to support the Marvell PATA controller).

    There were various methods I tried to install Ubuntu Dapper. I shall cover these methods below:

    • Network Installation (works with Server Edition and possibly Alternate CD, does not work with Desktop Edition)
    • USB Installation (works with Desktop Edition and possibly Server Edition and Alternate CD)
    • Installation using USB-Disk and CD-ROM (works with Server Edition and possibly Alternate CD, does not work with Desktop Edition)

    Requirments

    Intel DG965RY motheboard (or any board based on the Marvell PATA controller) + Processor
    SATA Hard Drive
    1 GB USB Disk and/or Network Card (depending upon the installation method)
    IDE CD-ROM (only for third installation method)

    Network Installation

    Oh yeah, this seems to be the most obvious choice if you have a PC running linux other than the one you are about to install on. Let us call the PC with DG965RY motherboard on which Ubuntu is to be installed “PC-I” and the second PC which acts as a server and holds the Ubuntu packages “PC-S” (IP: 192.168.2.1).

    For this installation, it is necessary that you have an extra network card as the onboard network interface is not recogniszed by the dapper kernel. So have the network card fixed to your PC before you start installation.

    Setting up server (PC-S) for serving install files

    1. Install and configure apache2 web server so that the install files can be served via http
      # apt-get install apache2
    2. Create the directory /var/www/ubuntu/.
      # mkdir -p /var/www/ubuntu
    3. If you have the ubutnu server edition iso image, mount it as below.
      # mount -o loop ubuntu-6.06.1-server-i386.iso /var/www/ubuntu/

      If you have the ubuntu server edition CD, then you can mount it as below.
      # mount /dev/cdrom /var/www/ubuntu/

    4. Access http://192.168.2.1/ubuntu/ from another PC to make sure the files are accessible.

    Starting Installation via PXE

    As per the instructions, we need to have a DHCP and TFTP server running. The DHCP server assings and IP and netmask to PC-I and also mentions the intitial file to be fetched from the TFTP server. The TFTP server provides the kernel for booting linux.

    Setting up TFTP server:

    1. First install the tftp server
      # apt-get install tftpd-hpa
    2. Next I suggest running it as a seperate service and not as an inetd service. So first open /etc/inetd.conf and comment out the line starting with “tftp”. Restart the inetd service (/etc/init.d/inetutils-inetd restart). You can check that the tftp service is not running using netstat (netstat -nl | grep 69).
    3. Now edit /etc/default/tftpd-hpa and set RUN_DAEMON=”yes”. Now restart the tftpd-hpa service.
      # /etc/init.d/tftpd-hpa stop
      # /etc/init.d/tftpd-hpa start
    4. Now you will have to download and extract the netboot files for dapper to the tftp repository.
      # cd /var/lib/tftpboot
      # wget -c -t 0 “http://archive.ubuntu.com/ubuntu/dists/dapper/main/installer-i386/current/images/netboot/netboot.tar.gz”
      # tar -xvzf netboot.tar.gz
      # rm netboot.tar.gz (optional)
    5. The tftp server is now ready to serve the files. In order to test it, you can install the tftp client on some other machine and try connecting and downloading the pxelinux.0 file from PC-S.
      # apt-get install tftp-hpa
      # tftp 192.168.2.1
      tftp> verbose on
      Verbose Mode On.
      tftp> binary
      mode set to octet
      tftp> get pxelinux.0
      getting from 192.168.2.1:pxelinux.0 to pxelinux.0 [octet]
      Received 13156 bytes in 0.0 seconds [inf bits/sec]
      tftp> quit
    6. In case you face any problems, you may need to check whether the service is running on it, listening on the approriate interface and also the firewall settings

    Setting up DCHP server:

    1. Install dhcp3-server
      # apt-get install dhcp3-server
    2. Edit /etc/dhcp3/dhcpd.conf (you may need to comment out everything else) and add the following lines. The “server-name” is the TFTP server from which the file “pxelinux.0” should be fetched. I belive the next-server is also used for the same purpose. For me, it was not necessary to add “next-server” to start the installation. But as it has been given in many sites, I am adding it here.

      ping-check = 1;
      subnet 192.168.2.0 netmask 255.255.255.0 {
      range 192.168.2.11 192.168.2.254;
      server-name “192.168.2.1”;
      next-server 192.168.2.1;
      filename = “pxelinux.0”;
      }

      Note: If you plan to do installation over internet, you will also have to add the default gateway and name servers.

    3. Add the appropraite interface on which DHCP server should be listening in /etc/default/dhcp3-server
    4. Restart the server
      # /etc/init.d/dhcp3-server restart

    Launching installation:

    1. Fix the network cable to the onboard network interface of PC-I. Boot PC-I, go to the BIOS Boot options and enable booting through network. Also set the boot priority of the network to be before that of hard disk. Now boot the PC. The PC should first get itself an IP automatically and then show the “boot:” prompt.

    Starting Installation via USB disk

    1. Download boot.img.gz and write it the USB disk (the USB should not be mounted)
      # wget -c -t 0 “http://archive.ubuntu.com/ubuntu/dists/dapper/main/installer-i386/current/images/netboot/boot.img.gz”
      # zcat boot.img.gz > /dev/sda
      # sync

      We are assuming that /dev/sda refers to the USB drive. It might differ.

    2. Once the USB floppy is ready, boot the computer, go to BIOS configuration and enable booting of USB disks and set its booting order. Save the changes and restart the computer. You should get the “boot:” prompt.

    Continuing Installation

    1. Now that you got the “boot:” prompt using either PXE or USB floppy and that the server (PC-S) is serving the installation files, you can now boot one of the four boot labels – “install”, “expert”, “server”, “server-expert”. Please note that all the boot labels should be passed the option “pci=nommconf” or else the installation will not proceed. Here is an example:

      boot: expert pci=nommconf

    Notes

    1. Due to some strange reason, when “install” or “expert” boot lables were used the installation hanged while downloading the installer components. In case you face this problem, please use “expert” and “server-expert” boot labels.
    2. If using PXE to start installtion, once the kernel is loaded, you will have to remove the cable from the onboard network interface and plug-in to the extra network interface card. If using USB floppy installation, you can plug-in the cable to the extra network interface card from the beginning of the installation itself.
    3. If you have started the installation via USB disk, make sure you have either used DHCP or manually configured the network for the PC properly.

    Related Links

    Hacking the Ubuntu Installation: Kicking Off the Network Install with a USB Drive
    Ubuntu Network Install
    PXE Network Booting on Ubuntu Linux
    Halis Way: Ubuntu dapper PXE network install
    Installation from LocalNet

    Install Ubuntu without CD-ROM
    Ubuntu PXE Install
    Linux on DG965RY HOWTO

    USB Installation

    Installation via USB Disk shall be useful if you want to install the Desktop Edition. Below are the steps to perform this.

    1. Blank the USB Disk using “dcfldd”. “dcfldd” is nothing but an enhanced version of dd and performs just like dd. But it also has some nice features like progress indicator, because of which I use it here (“dfcldd” can be installed using apt-get). Assuming /dev/sda is your USB disk, run the below command (the USB disk should not be mounted)
      # dcfldd statusinterval=10 if=/dev/zero of=/dev/sda
    2. Next create a FAT 16 file system
      # mkdosfs -I -F 16 /dev/sda
    3. Mount the Live CD and the USB drive.
      # mkdir -p /mnt/usb
      # mkdir -p /mnt/img
      # mount -o loop ubuntu-6.06-desktop-i386.iso /mnt/img/
      # mount /dev/sda /mnt/usb
    4. Copy over the files. This can take 30 minutes or longer. Also, ignore the errors about symbolic links since FAT16 does not support them.
      # (cd /mnt/img ; tar -cf – *) | (cd /mnt/usb ; tar -xvf -)
      # sync
    5. Set up the files for a bootable disk. Since SYSLINUX does not support subdirectories for kernel files, you need to move these to the top directory on the USB drive.

      Move the kernel files and memory tester
      # mv /mnt/usb/casper/vmlinuz /mnt/usb/vmlinuz
      # mv /mnt/usb/casper/initrd.gz /mnt/usb/initrd.gz
      # mv /mnt/usb/install/mt86plus /mnt/usb/mt86plus

      Move boot files to top of the drive
      # mv /mnt/usb/isolinux/* /mnt/usb/
      # mv /mnt/usb/isolinux.cfg /mnt/usb/syslinux.cfg
      # rm /mnt/usb/isolinux.bin

      Optionalally, you may delete Windows tools and ISO files to free space
      # rm -rf /mnt/usb/start.* /mnt/usb/autorun.inf
      # rm -rf /mnt/usb/bin /mnt/usb/programs
      # rm -rf /mnt/usb/isolinux

      All done
      # sync

    6. Edit the /mnt/usb/syslinux.cfg file and correct the kernel paths. Remove the paths /casper/ and /install/ wherever you see them. This is because you moved the files to the root of the USB drive in the previous step.
      # sed -r ‘s/\/casper\///g;s/\/install\///g’ syslinux.cfg > syslinux.cfg.tmp && mv -f syslinux.cfg.tmp syslinux.cfg
    7. Unmount the drive and make it bootable.
      # umount /mnt/usb
      # syslinux /dev/sda
      # sync
    8. Now plug in the USB, enable USB booting in the BIOS and boot from the USB. At the splash screen, do not forget to press F6 and add the “pci=nommconf” option to the kernel.

    By making minor changes to the above procedure it should be possible to boot Ubuntu Server Edition from USB as well.

    Notes

    1. You may have to choose the Safe graphics mode for starting GNOME

    Related Links

    Hacking the Ubuntu Installation: Installating a Full File System
    Installation from USB Stick

    Installation using USB-Disk and CD-ROM

    This is another interesting way of installing Ubuntu Server Edition. The idea behind this is to start the boot using the CD-ROM but the installation files are provided by the USB disk. Below are the steps to perform this.

    1. First write the server edition iso image to the USB disk. Assuming /dev/sda is your USB disk, this is done as follows:
      # dcfldd statusinterval=10 if=ubuntu-6.06.1-server-i386.iso of=/dev/sda bs=1M
      # sync

      If you have the Server Edition CD, you can run the below command:
      # dcfldd conv=noerror statusinterval=10 if=/dev/cdrom of=/dev/sda bs=1M
      # sync

    2. You can check if the image got properly written by mounting it.
      # mkdir -p /mnt/usb
      # mount -t iso9660 /dev/sda /mnt/usb
      # ls -a /mnt/usb
      # umount /mnt/usb
    3. Now fix the USB to the PC and boot the PC from the server edition CD. At the boot prompt as usual be sure to pass “pci=nommconf” option to the kernel.
    4. Once the kernel is loaded from the CD-ROM, the files are automatically loaded from the usb disk into the /cdrom directory.
    5. If the installer complains of a missing cdrom, you will have to create a cdrom device and link it to the USB disk. Assuming /dev/sdb is your usb disk (as /dev/sda will most probably be the SATA hard disk), do the following by pressing “Alt F2” and opening the console:

      # mkdir -p /dev/cdroms
      # cd /dev/cdroms
      # ln -s ../sdb cdrom0

      This will add a new cd-rom device. The installation should continue from here.

    Related Links

    Installing ubuntu on dg965ry motherboard

    Other References

    Ubuntu Various Installation Methods
    Core 2 Duo Support and Work-Arounds

    Related Information