Thursday, October 19, 2017

AVD launch in Android Studio 2.3 and Ubuntu 17.04

Hello All,

For people who use Android Studio for Android programming and in the Ubuntu / Debian Environment, there was a recent problem loading a AVD in the latest 2.3 version.

This blog post helps you solve this peculiar problem.

The details:

1. You write some android code, and want to test with a AVD. You install the specific target machine, but after gradle build, the launch of AVD totally stops.

There is a timeout of about 300 seconds and the AVD fails to load.

One alternate method is to use your existing Android based smart phone and connect it with a USB cord.

The second approach is given below:

Issue this below command in bold and then restart Android Studio. The problem should be solved.

ln -sf /usr/lib/libstdc++.so.6  /your_sdk/emulator/lib64/libstdc++/libstdc++.so.6


Make sure to replace your_sdk above with your respective $ANDROID_SDK path.

Hope this helps you..

Tc,
Ananth G S

Tuesday, August 29, 2017

Firefox Flem - solving the problem of Bookmarks remotely..

Hello... Most of us have the practice of bookmarking webpages... This post does not explain how to import or export bookmarks..

Read full to know more..

Recently I faced a problem where in - I had to fetch my bookmarks from  Google Chrome located at a remote machine. Unfortunately I had not taken a backup of my bookmarks.. Also I had only CLI ssh access to the machine..

What most of us do is that - we use browsers like Firefox and Chrome and we login to the browsers via an account(Chrome a/c for example) and that saves us from exports / import.

I dont have this practice.. So fetching my urls were much more difficult..

I googled to find out where the location of my bookmarks in Chrome stored in my /home location.

After finding it out... Which is: inside the respective home folder

.config/google-chrome/Default/Bookmarks [observe the . at the beginning]

I was kind of happy to find my Bookmarks.

2. The next problem was - the moment I gave cat Bookmarks

The file was in completely JSON format. I had around 97 URLs bookmarked.

3. How to fetch only the URLs from this file of JSON format was the next hurdle..

Shell commands to the rescue...

I issued the command:

cat Bookmarks | grep http

This output had enough amount of invalid characters as well... But it also fetched me https urls.. So the problem of http and https was solved..

Then the next command...

cat Bookmarks | grep http | wc -l [gave an output as 97 ]

4. Removing the invalid characters and only fetching the exact URL paths...

I now issued the command:

cat Bookmarks | grep http | cut -d : -f 2,3

This gave me all the list of URLs as 97 URLs.

5. Ok what next? How do I put them across to a text file?

It was pretty simple... cat Bookmarks | grep http | cut -d : -f 2,3 > urls.txt

... Concept of redirection..

6. Now how on earth would I put the urls.txt back to my existing browser in the local machine?

I cannot copy 97 URLs one after the other and save it yet again...?

7. Firefox Flem to the rescue..

This addon of Firefox can import a list of URLs or even a text file into its browser at one shot... !

Try Flem...

Let me know for any queries..

Tc,
Ananth G S
















Saturday, July 8, 2017

Canon LBP2900 driver installation - Arch Linux

Hi All,

This post explains how to setup CanonLBP2900 printer drivers in Arch Linux.

Installation of drivers:

1. You need the yaourt package manager (to install software for AUR)

2. Issue the command yaourt capt-src
    This command installs the 2.7 version of CAPT drivers.

Configuration of the CUPS driver:

1. As we know CAPT has to sit on the CUPS driver. So make sure that CUPS is installed and configured properly.

To be on the safer side, you can issue the command:

sudo pacman -S cups

Then enable the cups driver by the command:

systemctl enable org.cups.cupsd.service

Then start the service:

systemctl start org.cups.cupsd.service

Check the status by:

systemctl status org.cups.cupsd.service (you should get active status with pid values)

Configuration of the CAPT driver:

2. Make sure that the user is added to both the groups - lp and sys

gpasswd -a ananth sys lp

3. Next make sure that the ppd is registered to the path

sudo /usr/sbin/lpadmin -p LBP2900 -m CNCUPSLBP2900CAPTK.ppd -v ccp://localhost:59687 -E

4. Check for the path where the printer has its device, register capt to cups through the usblp device 

sudo /usr/sbin/ccpdadmin -p LBP2900 -o /dev/usb/lp1

5. Start and enable the ccp daemon:

sudo systemctl enable ccpd.service

sudo systemctl start ccpd.service

sudo systemctl status ccpd.service (to check its running/active status)

6. Check if its all working fine with

captstatusui -P LBP2900 

Precaution commands:

Many a times, the printer might not work due to various reasons. 

Steps / Commands to be followed then:

1. Reinstall CUPS
2. Reinstall CAPT
3. ls -l /var/ccp
4. sudo mkdir /var/ccpd
5. sudo mkfifo /var/ccpd/fifo0
6. sudo chown -R lp:lp /var/ccpd
7. sudo chown -R user_name:lp /var/ccpd (replace username with $LOGNAME)

8. ldd /usr/bin/captfilter (produces this below output)
        linux-gate.so.1 (0xf76f7000)
libpopt.so.0 => /usr/lib32/libpopt.so.0 (0xf76b0000)
libc.so.6 => /usr/lib32/libc.so.6 (0xf74ef000)
/lib/ld-linux.so.2 (0xf76f9000)

9. ldd /usr/bin/capt* | sort | uniq | grep "not found" (should give you no output )

Last enable both cups and capt for startup by the command

sudo systemctl enable org.cups.cupsd.service
sudo systemctl enable ccpd.service

Hope this helps...

Tc,
Ananth G S









Sunday, June 18, 2017

Dual monitor display with Nouveau and xrandr

Hello fellas.... Its been a while blogging... I would not repeat this statement yet again... !

This post explains how to setup a dual monitor display with Nouveau open source drivers and using the tool xrandr.

Hardware:

1. Nvidia GT 730 with 3 outputs - HDMI, VGA and DVI.

Platform of setup:

1. 2 Dell monitors of 20" display (using only 1 as of now)
2. 1 TV (Vu 32 inches)

OS: Linux Sarah.

Tools and Drivers:

Nouveau open source graphics driver and xrandr

The problem statement:

If you already read my setup, my TV supports a stupid resolution of only 1360x768 where as my Dell monitor supports upto 1600x900 both in 60Hz. A xrandr query shows a much bigger resolution.

Each time I installed a OS and installed Nvidia proprietary drivers, I had enough difficulties to setup for a dual display - cos - when mirrored displays were used - both TV and Monitor would end up only with 1024x768 resolution.

Why not Nvidia? 

1. The typical wrong misconception, that a VGA cable cannot be used to upgrade a resolution.

2. Being proprietary, it did not support xrandr properly (got Bad Mismatch errors)

The ultimate solution:

1. Uninstall all installed Nvidia drivers

2. Install Nouveau drivers.

Implementation of the solution:

1. sudo apt-get remove nvidia*
2. sudo apt-get purge nvidia*
3. sudo apt-get purge bumble*
4. sudo apt-get purge bbswitch
5. sudo apt-get --reinstall install xserver-xorg-video-nouveau
6. sudo apt-get --reinstall install  nouveau-firmware
7. sudo dpkg-reconfigure xserver-xorg
8. sudo dpkg-reconfigure xserver-xorg-video-nouveau
9. Remove all blacklisted nouveau names in /etc/modprobe.d/ folder
10. Reboot - sudo reboot now

Make sure that both the monitors are connected through your graphics card outputs.

Once booted back - nouveau should automatically pickup the displays.

But the screen resolution problem is not yet solved: 1 screen shows 1600x900 and the other 1360x768

Solution: Use xrandr tool

Commands:

1. gtf 1600 900 60 -x
2. xrandr --newmode "1600x900_60.00"  119.00  1600 1696 1864 2128  900 901 904 932  -HSync +Vsync
3. xrandr --addmode VGA-1 1600x900_60.00
4. xrandr --output VGA-1 --mode 1600x900_60.00

Finally I can even get a high resolution of 1920x1200 !

If need be, you can convert the above 4 lines to a shell script and execute the script at each startup.

Tc..
Ananth G S







Friday, December 23, 2016

How to install Oracle 8 on Debian 8.6 via a PPA in just 5 steps

Hello All.. 

This post explains how to install Oracle 8 on Debian based systems and specifically on Debian 8.6... 

Oracle 8 is needed for many applications and though OpenJDK(openjdk.java.net) is the default in LINUX, it makes sense to install both many a times...

While configuring Android Studio 2.2.3, I had to mandatorily configure Oracle 8 with the below following steps (as the root user):

1. echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee /etc/apt/sources.list.d/webupd8team-java.list

2. echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list

3.  apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886

4. apt-get update

5. apt-get install oracle-java8-installer

Thats it...

And to make Oracle 8 as the default, 

Execute this below command:

1. apt install oracle-java8-set-default

Hope this helps...
Ananth S Gouri





Wednesday, December 14, 2016

Canon LBP2900B and HP Deskjet 3540 - Installation with Debian 8.6

Hello... Its been a while since blogging....

This post is more for people like me who forget the core concept of a SDLC called Documentation... I hate it basically and never document anything...

Today after installing Debian 8.6 onto my new HDD - I had to spend more time to configure my printers Canon LBP2900B and HP Deskjet 3540... Thats when I thought - I shall document - so as to spend little time the next instance / time.

So here I go with first Canon LBP2900B

This is my desktop configuration - Its a i7 4th gen, 16GB RAM, 3.5 TB HDD, 2GB GeForce Graphics Card..The OS currently and I work most of the times is a 64bit Debian - Note not Ubuntu...

1. Download the latest (2.6) printer 64 bit drivers from the link given below:
Canon APT Drivers - 2.60

2. After download, unzip the folder with the below command inside the terminal
tar xvf filename.tgz (replace accordingly)

3. Go into the 64-bit drivers folder/Debian and issue the below 2 commands:

-> sudo dpkg -i cndrvcups-common.deb
-> sudo dpkg -i cndrvcups-capt.deb

(Follow the same order)

4. Now make sure your printer is switched off... Its extremely important....

5. Now issue the below commands in sequence:

-> sudo /etc/init.d/cups restart
-> sudo lpadmin -p LBP2900 -m CNCUPSLBP2900CAPTK.ppd -v ccp://localhost:59687 -E
-> sudo ccpdadmin -p LBP2900 -o /dev/usb/lp1

6. In step 5 - last command - note check if your printer is placed at lp1 or else note down the change in place holder and reissue the last command. Typically in most cases it would be lp1

7. Now that the drivers are installed - its time that we check for its working... Switch on the printer and issue the below commands in sequence:

-> sudo /etc/init.d/ccpd start
-> sudo /etc/init.d/ccpd status

Step 7, last command should give you 2 pid values... If not continue from step 8...

8. Check for the command: ls -l /var/ccpd

9. If command in step 8 is a null or no such file - then follow the next steps in sequence:
sudo mkdir /var/ccpd
sudo mkfifo /var/ccpd/fifo0
sudo chown -R lp:lp /var/ccpd

10. Issue the command captstatusui -p LBP2900

11. If the window in step 10 tells "Ready to Print" - you are all set to go..If not continue from step 12..

12. Issue the command ldd /usr/bin/captfilter

13. If the command output of step 12 is null values, then you need to do the following:

sudo dpkg --add-architecture i386
sudo apt-get update (Do not forget this command)

14. After step 13, issue the command: sudo apt-get install libc6:i386 libpopt0:i386

15. Also check for other missing filters with the command:

ldd /usr/bin/capt* | sort | uniq | grep "not found"

16. If for null values in step 15, now issue -
sudo apt-get install zlib1g:i386 libxml2:i386 libstdc++6:i386


Thats it... Now that after step 16, you should get a working state of the printer... Re-issue the commands of step 7 with a slight modification:

sudo /etc/init.d/ccpd restart
sudo /etc/init.d/ccpd status

Now you should get 2 pid values... Cross verify the same with
captstatusui -P LBP2900

Note: At any stage while checking for the number of pids - if it is more than 2/3 pid values - then kill the ccpd process with the below command:

sudo pkill -9 ccpd

Thats it for now... I shall write wrt HP Deskjet printer in my next post...

Thanks and hope this helped...

Let me know...

Tc....
Ananth S Gouri





Friday, October 23, 2015

gbrainy

Hello All...

gbrainy is a software on OSS to keep our brains up and running...

Install the software via synaptic package manager or via command line..

It has 4 categories or different levels of games- Logical, Mental calculations, memory trainers and verbal challenges ...

Check out the snapshot for more clarity..


Play it and keep your brains working..
Ananth S Gouri