Welcome, my name is Gopinath. I am an embedded software engineer from India. I love to write software to make great products in the embedded technology. I have been working professionally in software development since 2012 in the electronics and embedded domain with experience across the Linux, Android, Windows Embedded and RTOS platforms. Please vist About Me page for more information.

Disable/enable software navigation keys in Android

If you want to play with turning on or off with the little back, home, menu buttons on your Android Lollipop device (Note: You need to give root access to do this), then below steps will be useful for you. Connect your device via adb shell. In the adb shell terminal give the following command to enable/disable these navigation keys. //To turn ON soft keys $ setprop qemu.hw.mainkeys 0 //To turn OFF soft keys $ setprop qemu. If you want to play with turning on or off with the little back, home, menu buttons on your Android Lollipop device (Note: You need to give root access to do this), then below steps will be useful for you. Connect your device via adb shell. In the adb shell terminal give the following command to enable/disable these navigation keys. //To turn ON soft keys $ setprop qemu.hw.mainkeys 0 //To turn OFF soft keys $ setprop qemu. [Read More]

Fix for bluetooth deadlock issue in Linux kernel 3.10.45 and lower

For those who are using Linux kernel version 3.10.45 and earlier version, they may have face issues in Bluetooth. The issue is, any Bluetooth related operation may cause the entire kernel/OS to hand infinitely. The issue is because of deadlock condition in the Bluetooth HCI driver. Kernel.org fixed this issue from kernel version 3.10.46 and below is the link for patch. Below is the patch link for this fix in Linux kernel version 3. For those who are using Linux kernel version 3.10.45 and earlier version, they may have face issues in Bluetooth. The issue is, any Bluetooth related operation may cause the entire kernel/OS to hand infinitely. The issue is because of deadlock condition in the Bluetooth HCI driver. Kernel.org fixed this issue from kernel version 3.10.46 and below is the link for patch. Below is the patch link for this fix in Linux kernel version 3. [Read More]
linux 

Porting NDIS 5.1 Miniport wireless driver to NDIS 6.0 and higher version

This article summaries the important steps towards porting NDIS 5.1 wireless driver to NDIS 6.0 wireless driver in Windows Embedded Compact 13 platform.

More Information about NDIS

The Network Driver Interface Specification (NDIS) is an application programming interface (API) for network interface cards (NICs). developed jointly by Microsoft and 3Com Corporation and is mostly used in Microsoft Windows. NDIS facilitates communication between the Windows Embedded Compact operating system (OS) and network adapter and protocol drivers. NDIS 6.0 and higher versions have lot of advantages over lower versions. They are, Advantages

  • Higher performance.
  • Better manageability.
  • Reduced complexity.
  • Simplified driver models.

This article summaries the important steps towards porting NDIS 5.1 wireless driver to NDIS 6.0 wireless driver in Windows Embedded Compact 13 platform.

More Information about NDIS

The Network Driver Interface Specification (NDIS) is an application programming interface (API) for network interface cards (NICs). developed jointly by Microsoft and 3Com Corporation and is mostly used in Microsoft Windows. NDIS facilitates communication between the Windows Embedded Compact operating system (OS) and network adapter and protocol drivers. NDIS 6.0 and higher versions have lot of advantages over lower versions. They are, Advantages

  • Higher performance.
  • Better manageability.
  • Reduced complexity.
  • Simplified driver models.
[Read More]

Running IPERF on WinCE 6.0 Device

Iperf is network testing tool that can create Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) data streams and measure the throughput of a network that is carrying them. It is written in C and as cross platforms. It comes under BSD license. This below section explains how to run iperf tools for WinCE 6.0 ethernet and Wi-Fi driver performance measurement.

Iperf is network testing tool that can create Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) data streams and measure the throughput of a network that is carrying them. It is written in C and as cross platforms. It comes under BSD license. This below section explains how to run iperf tools for WinCE 6.0 ethernet and Wi-Fi driver performance measurement.

[Read More]
WinCE 

Connect to a WiFi network with wlantool.exe

To connect to a specific AP, using wlantool.exe in compact 7/WEC13, follow below steps.

  • To create profile using wlantool,
$ wlantool -cp -i WLANSDIO -p TestAP

where, WLANSDIO is interface name(wireless adapter name) TestAP is access point name

  • To scan list of APs
$ wlantool -ln -s
  • To connect to an AP with Open authentication with no encryption,
$ wlantool -c -i WLANSDIO -ssid TestAP -auth open -encr none 
  • To connect to an AP with SSID TestAP,with WPA-PSK authentication with TKIP encryption and password 1234aaaa,
$ wlantool -c -i WLANSDIO -ssid TestAP -auth WPAPSK -encr TKIP -key 1234aaaa 

Configuring Ethernet in Android

In most of the Android phone, its supports WiFi and data connections for internet connectivity in settings menu. But even though you have USB to Ethernet you may not find Ethernet settings in most of the android phones. Here are the steps to configure Ethernet for static IP. For this you need to access you phone via ADB shell. Commands $ ndc resolver setnetdns eth0 $ ifconfig eth0 up $ route add default gw dev eth0 Below is the example of configuring an static ip using above steps. In most of the Android phone, its supports WiFi and data connections for internet connectivity in settings menu. But even though you have USB to Ethernet you may not find Ethernet settings in most of the android phones. Here are the steps to configure Ethernet for static IP. For this you need to access you phone via ADB shell. Commands $ ndc resolver setnetdns eth0 $ ifconfig eth0 up $ route add default gw dev eth0 Below is the example of configuring an static ip using above steps. [Read More]

Finding all IP address connected in a Home network

There are few situation in office, we need to find out user of an IP address or know IP address of others in your network for the purpose like using SSH and SCP. In such a case, you can use the below steps from Linux terminal: you can get the details of them (with host-name and IP address) by, $ avahi-browse -rt _workstation._tcp The above command will list only the computers in your network which uses avahi-daemon (DNS-SD). There are few situation in office, we need to find out user of an IP address or know IP address of others in your network for the purpose like using SSH and SCP. In such a case, you can use the below steps from Linux terminal: you can get the details of them (with host-name and IP address) by, $ avahi-browse -rt _workstation._tcp The above command will list only the computers in your network which uses avahi-daemon (DNS-SD). [Read More]
linux 

GVIM Customizations

Here are the few tips for configuring GVIM to support, Opening multiple files as tab in same GVIM instance To make Windows shortcut keys (Cut, copy , past. etc) work in GVIM. Opening multiple files as tab in same GVIM instance Whenever you a open file from command line using gvim, it will always open that file in a new window. Switching between many windows may be difficult for few. Here are the few tips for configuring GVIM to support, Opening multiple files as tab in same GVIM instance To make Windows shortcut keys (Cut, copy , past. etc) work in GVIM. Opening multiple files as tab in same GVIM instance Whenever you a open file from command line using gvim, it will always open that file in a new window. Switching between many windows may be difficult for few. [Read More]
Linux 

Solution for "make menuconfig" Error in Linux PC

Are you facing below error message when giving “make menuconfig” command during your kernel development? $ make menuconfig HOSTLD scripts/kconfig/mconf scripts/kconfig/mconf.o: In function `show_help': mconf.c:(.text+0x8a4): undefined reference to `stdscr' scripts/kconfig/lxdialog/checklist.o: In function `print_arrows': checklist.c:(.text+0x2c): undefined reference to `wmove' checklist.c:(.text+0x4c): undefined reference to `acs_map' checklist.c:(.text+0x54): undefined reference to `waddch' checklist.c:(.text+0x66): undefined reference to `waddnstr' checklist.c:(.text+0x76): undefined reference to `wmove' checklist.c:(.text+0xa0): undefined reference to `acs_map' checklist.c:(.text+0xa8): undefined reference to `waddch' checklist.c:(.text+0xe3): undefined reference to `acs_map' checklist. Are you facing below error message when giving “make menuconfig” command during your kernel development? $ make menuconfig HOSTLD scripts/kconfig/mconf scripts/kconfig/mconf.o: In function `show_help': mconf.c:(.text+0x8a4): undefined reference to `stdscr' scripts/kconfig/lxdialog/checklist.o: In function `print_arrows': checklist.c:(.text+0x2c): undefined reference to `wmove' checklist.c:(.text+0x4c): undefined reference to `acs_map' checklist.c:(.text+0x54): undefined reference to `waddch' checklist.c:(.text+0x66): undefined reference to `waddnstr' checklist.c:(.text+0x76): undefined reference to `wmove' checklist.c:(.text+0xa0): undefined reference to `acs_map' checklist.c:(.text+0xa8): undefined reference to `waddch' checklist.c:(.text+0xe3): undefined reference to `acs_map' checklist. [Read More]
linux 

Solution for Android Device not detecting in ADB (Ubuntu)

If your Android device is not detected in ADB in Ubuntu and showing error like List of devices attached ????????? (no permissions) follow these instructions or something like below, List of devices attached then below steps may help to solve the issue. Change the first ‘ATTR{idProduct}’ to ‘ATTR{idVendor}’ in the 51-android.rules file. It can be found in /etc/udev/rules.d/51-android.rules. Kill the adb server and start it again using the below commands with sudo permission. If your Android device is not detected in ADB in Ubuntu and showing error like List of devices attached ????????? (no permissions) follow these instructions or something like below, List of devices attached then below steps may help to solve the issue. Change the first ‘ATTR{idProduct}’ to ‘ATTR{idVendor}’ in the 51-android.rules file. It can be found in /etc/udev/rules.d/51-android.rules. Kill the adb server and start it again using the below commands with sudo permission. [Read More]