Android Fix: Adb finds device but not fastboot

I was trying to flash my nexus 7 (2012) with Android L but failed to do so as fastboot couldn’t find my devices. I thought it was Multirom etc which I had on my device causing problem. It turned out that my ubuntu was unable to identify the device specifically for fastboot. Here is how I got this sorted.

# reboot into fastboot mode
adb reboot bootloader

# grab you fastboot/bootloader device ids
lsusb
> Bus 001 Device 035: ID **18d1:4e41** Google Inc.

# install the ids into /etc/udev/rules.d/99-android.rules
SUBSYSTEM==”usb”, ATTR{idVendor}==”18d1″, ATTR{idProduct}==”4e41“, MODE=”0666″, OWNER=”thiago” # restart udev
/etc/init.d/udev restart
# try fastboot (only on bootloader mode)
fastboot devices

Error: Couldn’t load XPCOM Zimbra Desktop

Zimbra desktop installation on a brand new installation of Ubuntu/Linux mint 64 bit release always fails (Tried on Ubuntu 14.04/14.10/Linux Mint 17 etc) due to the lack of 32 bit architecture support.

I confirmed it by running Zimbra desktop with ia32-libs added to the distribution and manually running zdclient as follows:

$ /opt/zimbra/zdesktop/linux/prism/zdclient -webapp “/home/techfiz/zdesktop/zdesktop.webapp” -override “/home/techfiz/zdesktop/zdesktop.webapp/override.ini” -profile “/home/techfiz/zdesktop/profile”
Couldn’t load XPCOM.

This is mainly because the way 32 architecture support used to be enabled on the distro’s. Earlier installing ia32-libs package was quire easier via apt-get. Now the best way to install 32 bit architecture support is as follows:

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install ia32-libs

Now try opening Zimbra desktop, it works like a charm.

Add 32bit package support for Debian/Ubuntu/Mint

Many applications which look for 32bit packages on your Debian/Ubuntu/Mint packages would need ia32-libs packages. Earlier it was possible to get this package installed and later on it has been removed from all distributions. The best way to get back the 32bit package support is to add the architecture to dpkg as follows:

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install ia32-libs

Fix Zimbra stats graph/cron jobs

If your zimbra scheduled tasks are not running or if you don’t see your stats graphs on admin panel, the first thing that you should check if zimbra’s cronjobs. When you reinstall/move your zimbra installation we normally tend to miss cron job setups required for zimbra.

To fix this, find the Zimbra crontabs directory at /opt/zimbra/zimbramon/crontabs

Now, lets put alwal the cronjob’s to a single file (just to make your job easier) as follows:

[[email protected] crontabs]# cat crontab >> crontab.zimbra
[[email protected] crontabs]# cat crontab.ldap >> crontab.zimbra
[[email protected] crontabs]# cat crontab.logger >> crontab.zimbra
[[email protected] crontabs]# cat crontab.mta >> crontab.zimbra
[[email protected] crontabs]# cat crontab.store >> crontab.zimbra

Finally,Load the crontab.zimbra file to crontab as follows:

[[email protected] crontabs]# crontab crontab.zimbra

Voila, that’s it. Wait for few minutes to start seeings the graphs. You can also verify the cornjobs by using ‘crontab -l’.

Vmware Workstation 10.x patch for Linux kernel 3.13

Vmware Workstation breaks if you try using upcoming Linux kernel release’s and at the same time, VMWare community moves fast to push a quick patches to applied for those who dare to use cutting edge beta OS on their machines.

WoodyZ on https://communities.vmware.com provides a patch which just works for Linux Kernel 3.13.

Here is the patch provided from WoodyZ for your quick reference.

Apply the patch to /usr/lib/vmware/modules/source/vmnet.tar (Extract, apply the patch using patch command, compress the files back to vmnet.tar) and run vmware workstation again.

 

--- vmnet-only/filter.c 2013-10-18 15:11:55.000000000 -0400
+++ vmnet-only/filter.c 2013-12-21 20:15:15.000000000 -0500
@@ -27,6 +27,7 @@
#include "compat_module.h"
#include <linux/mutex.h> #include <linux/netdevice.h> +#include <linux/version.h> #if COMPAT_LINUX_VERSION_CHECK_LT(3, 2, 0)
# include <linux/module.h> #else
@@ -203,7 +204,11 @@
#endif</code>

static unsigned int
+#if LINUX_VERSION_CODE &lt; KERNEL_VERSION(3, 13, 0)
VNetFilterHookFn(unsigned int hooknum, // IN:
+#else
+VNetFilterHookFn(const struct nf_hook_ops *ops, // IN:
+#endif
#ifdef VMW_NFHOOK_USES_SKB
struct sk_buff *skb, // IN:
#else
@@ -252,7 +257,12 @@

/* When the host transmits, hooknum is VMW_NF_INET_POST_ROUTING. */
/* When the host receives, hooknum is VMW_NF_INET_LOCAL_IN. */
- transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
+
+#if LINUX_VERSION_CODE &lt; KERNEL_VERSION(3, 13, 0)
+ transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
+#else
+ transmit = (ops-&gt;hooknum == VMW_NF_INET_POST_ROUTING);
+#endif

packetHeader = compat_skb_network_header(skb);
ip = (struct iphdr*)packetHeader;