Connect Airtel 4G dongle in Ubuntu 14.04 LTS 64-bit, using Network Manager

The connection manager GUI app shipped with Airtel 4G dongle has trouble running in 64-bit Ubuntu 14.04.
I had previously written a post on a quick fix for this. But that was a temporary fix which could easily break as other libraries are installed or when you simply do a system upgrade.

Below we go through the steps of making the dongle work using the Network Manager shipped with Ubuntu. If required, we'll go ahead and install the utilities: usb-modeswitch and wvdial.

Part A : Adding a new connection

In the best case, you plug in your dongle and it is detected as a modem by Ubuntu.

1) Click on Network Connections icon in the task bar and choose 'Edit Connections'.



2)  Select 'Add -> Mobile Broadband'. Click on 'Create'.
3) If the modem is detected, it'll be listed in the next screen (Eg: ZTE WCDMA Technologies MSM). If you can't find this, skip to Part B below and work through the steps to make Ubuntu detect your modem.
4) Select Country: India, Provider: Airtel. Click 'Continue', and finally 'Apply'.
5) You can choose a custom name for the Connection in the resulting window. This will be listed in your network connections now, and can be clicked to connect to Airtel 4G.

Note: If you're facing immediate disconnect issues in Step 5 above, you might want to correct your ppp options. Check Part C below.

Part B : USB Mode Switching

1) Install latest version of usb-modeswitch, usb-modeswitch-data, and libusb from developer website. DON'T use apt-get as it may not have the latest version.
After installing the packages and rebooting, the dongle should be automatically switched to modem in most of the cases. If not, continue to Step 2 below.
2) Plug in your dongle, and check output of dmesg. You should be able to find the product id and vendor id from this. Sample output below:
[ 3629.225660] usb 3-2: new high-speed USB device number 7 using xhci_hcd 
[ 3629.269215] usb 3-2: New USB device found, idVendor=19d2, idProduct=1238 
[ 3629.269223] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 
[ 3629.269227] usb 3-2: Product: ZTE WCDMA Technologies MSM 
[ 3629.269230] usb 3-2: Manufacturer: ZTE,Incorporated 
[ 3629.269233] usb 3-2: SerialNumber: MF8250ZTED000000 
[ 3629.286847] usb-storage 3-2:1.0: USB Mass Storage device detected 
[ 3629.287079] scsi10 : usb-storage 3-2:1.0 
Here the vendor id is 19d2 and product id is 1238.
3) Check contents of file /etc/usb_modeswitch.d/19d2:1238 (filename is the vendor:product) combo you observed.
If the device is listed, the file should be present, and you'll find the target id of the device (the id of the device when it acts as a modem).
Create a usb_modeswitch config file as root:
sudo gedit /etc/usb_modeswitch.conf
Paste the contents of the sample config below. Edit the vendor and device ids appropriately:
DefaultVendor=0x19d2
DefaultProduct=0x1238

TargetVendor=0x19d2
TargetProduct=0x0017

StandardEject=1
MessageEndpoint=0x01
MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
#MessageContent="55534243123456782000000080000c85010101180101010101000000000000"
#MessageContent="5553424312345678000000000000061b000000030000000000000000000000" 
NeedResponse=1
4) Now run the following command:
sudo usb_modeswitch -c /etc/usb_modeswitch.conf
If all goes well, you should be able to see notification of a new device (Airtel) mounted. The Network Manager should be able to recognize the modem in Part A above (Give it a few seconds after running the above command). But before we rush there, go through Part C below for the correct ppp config.

Part C : ppp config using wvdial

1) Install wvdial
sudo apt-get install wvdial
2) Open wvdial config as root:
sudo gedit /etc/wvdial.conf
And paste the sample config below:
[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,"IP","airtelgprs.com"
Password = pass
Ask Password = 0
New PPPD = yes
Phone = *99#
Idle Seconds = 0
Modem Type = Analog Modem
Stupid Mode = 1
Compuserve = 0
Baud = 9600
Auto DNS = 0
Dial Command = ATDT
Modem = /dev/ttyUSB1
ISDN = 0
Username = user
3) Now run wvdialconf command to auto detect modem attributes:
sudo wvdialconf
This will populate correct attributes in wvdial.conf file and throw out a few warnings on conflicts in ppp config.
4) Open ppp config:
sudo gedit /etc/ppp/options
If the following line is present, comment it out with a #:
#'chat -v -f /etc/ppp/chat-ztisp'
Replace following lines (or similar, you get the idea) with the Modem and Baud values generated in /etc/wvdial.conf in Step 3 above
/dev/modemttyUSB2
115200

That's it! You've made it.

Optionally, you can quickly connect from command line as:
sudo wvdial
Ideally, now that the dongle is detected, use Network Manager to connect as explained in Part A

For a quick recap, now your steps on using the dongle after a fresh boot will be:
  1. Connect the dongle, wait for green/blue light to appear.
  2. If you fall in the category where the dongle isn't automatically detected, run the usb modswitch command from Part B -> Step 3.
  3. Wait for a few seconds. If you've configured the connection using Network Manager, it will now become active in connections list. Click to connect.

Still doesn't work?

For more insight into what might be stopping the dongle from being detected or getting a stable connection, take a look at syslog after connecting the dongle, running usb modswitch etc. :
tail -f /var/log/syslog 

Solved: Running Airtel 4G Dongle on Ubuntu 14.04 LTS 64-bit version

Note:
This is a temporary fix, as new libraries and OS upgrades can easily break the Airtel connection manager again. The permanent solution is to use Ubuntu's Network Manager, as explained here.

Problem

Using an Airtel 4G Dongle in Ubuntu 14.04 LTS, 64-bit version. Installed the software, but it doesn't run at all.

The Linux flavor of the software that came with the dongle was installed as follows:
  1. Untar the contents of the Linux directory found in the dongle (say, to Desktop)
  2. Run: sudo ~/Desktop/PCL_AIRTEL/install.sh

Troubleshooting

This is not a complete step by step solution, rather a few helpful notes on getting it to work.

The core issue here is that the Airtel connection software comes with 32-bit binaries and is unable to run in the 64-bit environment, at least not right away.
The solution is to install all the extra 32-bit libraries that is missing.

Depending on what is already installed in your system, you could be at different phase of progress in the solution. Assuming a fairly fresh installation:
  • Install ia32-libs. A helpful StackOverflow discussion here.
  • See about any further missing libraries. Follow below steps until the Airtel4G GUI actually appears:
    • Untar Airtel_4G.tar.gz inside PCL_AIRTEL directory
    • Run ~/Desktop/PCL_AIRTEL/Airtel_4G/Airtel_4G
    • Look out for missing shared library errors
    • Install the 32-bit version of a missing libexample.so as sudo-apt-get install libexample:i386
    • (Some times the above can be lib32example)
    • Install the 32-bit version of a missing libexample.so.x as sudo-apt-get install libexamplex:i386
  • You'll need libcurses. Check for libcurses-*-dev in Ubuntu Software Manager and install them. Now try to run Airtel from the proper Applications menu itself and see if it detects your dongle.
  • Miscellaneous: I probably also installed certain other libraries that came up in the forum solutions (like g++-multilib, libcurl3:i386), while searching for the above. But this is a bother only if the above steps don't get it working for you.
 Here's hoping this post made your Airtel dongle troubleshooting a little less frustrating :)

ET Smiley Set for Blogger: Emoticon Panel for Threaded Comments Form

Note: This is a revised version of the post , ET Smileys Panel over your comment form updated for the new Blogger interface and Threaded Comments

Okay here's a little more to add to your very own et Smileys Script, which has helped a bunch of people to use adorable smileys on their blogs!

If you've enabled ET smileys in your blog, they can be used in the posts and even work in the comments. A little inconvenience here is that, even though all your visitors can use the smileys in their comments, they need not always know the correct smiley symbol to type in.

Here's the simple solution - just add a smiley reference panel over your comment form. Your visitors now have a handy guide to et Smileys!

The essential Steps


#0 Make sure that your comment-form is embedded below post. If you are sure about that, skip to Step #1.
Or else go to your Blogger dashboard. In the drop down menu next to the blog's name, Click on Settings and in Posts and Comments section, select Comment Location as  Embedded

Comment form placement in blogger



#1 Go to your Blogger dashboard, and in the drop down menu next to the blog, click Template and click on the Edit HTML button

#2 You need to edit 3 parts of code in the template.

  Now find the following piece of code in the template : (You can hit Ctrl+F and enter the code to search)
var onReply = function

The below screenshot shows the entire code which you need to replace:
(click for larger image)



Select all the code starting from var to the last semicolon (;), and replace it with the below code:

var onReply = function(commentId, domId) {
        if (replybox == null) {
          // lazily cache replybox, and adjust to suit this style:
          replyboxContainer = document.getElementById('comment-editor-container');
          replybox = document.getElementById('comment-editor');
          if (replybox != null) {
            replybox.height = '250px';
            replybox.style.display = 'block';
            replyUrlParts = replybox.src.split('#');
          }
        }
        if (replybox && (commentId !== replyParent)) {
          document.getElementById(domId).insertBefore(replyboxContainer, null);
          replybox.src = replyUrlParts[0]
              + (commentId ? '&parentID=' + commentId : '')
              + '#' + replyUrlParts[1];
          replyParent = commentId;
        }
};


  Likewise replace one more piece of code in the template.
Again, find the following piece of code in the template : (You can hit Ctrl+F and enter the code to search)
<b:includable id='threaded-comment-form' var='post'>

Click on the small arrow to the left of this line to unfold the full code. A few lines below the above part, look for the following code (click for larger image):


Here you can see the iframe tag highlighted in green. Replace the highlighted part with the whole of below code:

<div id='comment-editor-container'>
<script src='https://et-smileys.googlecode.com/svn/trunk/etSmileysPanelFull.js' type='text/javascript'/>
<iframe allowtransparency='true' class='blogger-iframe-colorize blogger-comment-from-post' frameborder='0' height='500' id='comment-editor' name='comment-editor' src='' width='100%'/>
</div>

The highlighted script tag in above code determines which of the two flavors of smiley panel is used. The above code uses the full smiley panel. You can replace the script tag part for a minimal smiley panel.
See Step #3 below for detailed options.

  Threaded comments will not be enabled until at least one comment is added to the post. In order to account for this case, you need to add the smiley script in one more place.

Search for the following code in the template:
<b:includable id='comments' var='post'>

If there is a small arrow to the left of this line, Click on it to unfold the full code. Below this line, look for the following code (click for larger image):



Below the closing <h4/> tag, paste the following code:

<b:if cond='data:post.numComments == 0'>
<script src='https://et-smileys.googlecode.com/svn/trunk/etSmileysPanelFull.js' type='text/javascript'/>   
</b:if>

Again, see below for the two options of ET Smiley Panel that you can choose from!


#3 You have two choices of smiley panels:

  One, you can display the entire set of available smileys above your comment form. In order to make this happen, copy the below code and paste it after the line, as said in Step #2:

<script type="text/javascript" src="https://et-smileys.googlecode.com/svn/trunk/etSmileysPanelFull.js"></script>


Note: More smileys may be added in the future, and this panel may get bigger then. 


  Way two, you can add a minimalist panel of selected, most frequently used smileys. Copy the below code and paste it in the appropriate position:

<script type="text/javascript" src="https://et-smileys.googlecode.com/svn/trunk/etSmileysPanelBasic.js"></script>



Hope you find the smileys panel a most useful addition! :)

The Comic Portrait Project - Customized Cartoon Portraits of Real Persons

Frankly, portraits weren't always my favorite choice in drawing; It didn't seem interesting just to capture people as is.
Then again, there are multiple ways to look at things. Smile and laughter, cartoon and comic, all these magically make things several times better. It's been great fun since I took a glance at this funny and lighter side.


I started out making a few comic portraits of people around me. The idea took off real quick.
More portraits were made, and even more requests were coming in.
Now it is time to put everything in one place and give the project its own space in the Interwebs.
The Comic Portrait Project is live, complete with an option to get your own customized comic portrait.


The portraits created in the project strives to be something more than simply a cartoonified version of yourself. This is not even a caricature, for that reason, which means the portrait won't be just a copy in lines of the photo provided.
This is a fully customized, personalized portrait that is entirely the comical you!

I look forward to making more portraits - a hundred, a hundred more?
Above all, it is a happy thing to explore the comic essence in different persons and putting it down in lines and color.


Click the below image to explore The Comic Portrait Project and even get a customized cartoon portrait for yourself or your loved ones ^_^