Moving to personal hosting

All the future postings are being moved to https://confluenceoftech.in. Archived posts on this blog will continue to remain.

See you there! 🙂

Advertisements

Torch7 install in Fedora 22

[UPDATE 25/06: The patch that i wrote for Fedora 22 support has been merged upstream. Hence, the steps on Torch7 website can be used directly instead of following the below steps.]

Fedora is and will always be my first choice for a distro.. Given that I wrote about installing Torch7 in Ubuntu 15.04 recently, how could we leave behind Fedora!!

Unfortunately, the Torch install-dependencies script is hardcoded to support Fedora 20. I have made some changes to the script which makes it support Fedora 22 as well, and have made it available as a github gist (Torch7 install Fedora 22). Have also raised an issue and supplied a patch to the original developers of the script.

Enjoy ‘Torch’-ing away to glory on Fedora 22!!! 🙂

Thick bottom border of titlebars in Gnome 3.16

This is supposedly a bug affecting Gnome 3.16.

However, if this issue is too much of an eye-sore for you too, there’s a simple way to remove this, as detailed in this archlinux blog.The change in appearance is best represented by the below screenshots.

This is the thing I truly love about Linux distros.. if you dont like something, just change it as per your wish! 🙂

Bottom border thickness

Bottom border thickness

Bottom border thickness removed

Bottom border thickness removed

Install Torch7 in Ubuntu

I feel that the install steps listed at the official website of torch have a couple of issues:

  1. it assumes that some of the build system dependencies have been already installed, such as cmake, curl, etc.
  2. One of the cmake steps in install.sh file involves explicit use of luajit2.1, which supposedly is broken in Ubuntu, as listed in this issue.

The following step effectively solves the issue#1 listed above:

#install build related dependencies
sudo apt-get install curl cmake git build-essential \
python-dev libxml2-dev libxslt-dev libfftw3-dev \
libsox-dev libssl-dev

To solve the build error listed in issue#2, open the install.sh file in the torch source folder and edit the following line:

cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" \
-DCMAKE_BUILD_TYPE=Release -DWITH_LUAJIT21=ON

to

cmake .. -DCMAKE_INSTALL_PREFIX="${PREFIX}" \
-DCMAKE_BUILD_TYPE=Release

That’s it! Now delete the build/ folder in torch root directory and restart the build process..
Enjoy!!!

Graphical view of new Android kernel flashing

A picture speaks a thousand words.. Hence, summarizing my experience from the previous two days, below is the graphical overview of new Android kernel flashing steps:

Android kernel flashing steps

Android kernel flashing – graphical overview

Key to the above figure:

  • Items in RED : things to be downloaded from the internet.
  • Boxes in GREEN : Step#1 of the new kernel install – making flashable kernel zip.
  • Box(es) in WHITE : Step#2 of the new kernel install – installing modules.
  • Boxes in YELLOW : a step producing multiple things, and used individually.

Solving “WiFi not working” issue after new kernel install on an Android device

Yesterday I managed to successfully install a self-built kernel onto my test Android phone. The major visible issue that cropped up was that of WiFi not working. After going through several blogs, have finally solved the issue :), thanks mainly to a great point mentioned on a geeksphone blog (point no. 9). I’ll summarize the issue and the solution here:

The filesystem present on the Android device contains several kernel modules at the location /system/lib/modules.These may have been compiled using an unknown toolchain (android-ndk or Linaro or Sabermod, etc.). Personally, am using Sabermod-4.7-32bit toolchain, given that I have a 32-bit linux OS installed on my laptop.

This mismatch in toolchains results in the zImage created by our kernel-build, and the several .ko files already present in devices’ /system/lib/modules being incompatible, and thus issues like WiFi not working crop up!

To solve this, copy all the .ko’s generated during our kernel build to the devices /system/lib/modules. This can be achieved through the following steps:

# cd to kernel source directory
cd kernel-src-dir/

#copy all kernel modules from kernel source directory
find . -name '*ko' -exec cp '{}' custom-dir/ \;

#mount the device after plugging it into the USB
adb shell mount -o remount,rw /system
for filename in custom-dir/*
do
  adb push `basename $filename` /system/lib/modules/
done;

#reboot the device
adb reboot

Thats it! Next time you reboot, WiFi should be working as normal with your own new, shiny custom kernel.. Enjoy!!

Foray into Android Kernel hacking

A post after ages.. and we begin a new journey into the world of (Linux’s cousin) Android kernel hacking.

Presently, have taken baby steps in this field involving:

  • building the kernel from source using default defconfig of my device. Thanks to cheatman for the kernel source for my test device.
  • Thanks to excellent explanation provided at this xda link, kernel build was almost a cakewalk!
  • Kernel build produces a zImage, which is a compressed image of the kernel. Next step involves packaging the kernel into a form that a custom recovery installed in your Android devices can read it (FYI, I am currently using CWM Recovery).
  • Kernel packaging involves the following steps:
    1. Extract ramdisk (or, initramfs on older devices) from an existing boot.img. This can be obtained from freely downloadable flashable kernel zips corresponding to one’s device.
    2. Use this ramdisk along with the built zImage to create a new boot.img
    3. Create a zip out of this boot.img and META-INF folder that was obtained from flashable kernel zip in 1).
  • The linux tools for performing the above can be obtained from this link.
  • Once the zip is ready, copy it to your sdcard, boot to recovery and select option : install from zip and select your flashable kernel file.

Finally, a screenshot from my device 🙂

Screenshot of new kernel install from device's settings view

Screenshot of new kernel install

A major problem am facing presently is that WiFi on this device is not working since the new kernel install. Will try to figure out the issue and post an update soon.