Evidently, some custom ROMs come with Logcat disabled by default. The manner in which it is disabled varies. Here is what worked for me.
(This article assumes you have rooted your device, as well as adb installed and configured correctly, and a basic knowledge of its use)
I recently installed a ROM without logcat enabled. When attempting to access logcat through adb I received the message:
Error : Unable to open log device '/dev/log/main': No such file or directory
To correct the issue I did the following:
We can't get anything done without accessing the /system partition. Thus we must ensure it is mounted as writeable.
$ adb shell
This should output a list containing information about your mounted partitions. You should look for the line where the second (space seperated item) is "
/system". The format of the line should be:
partition-name mount-point filesystem-type mount-condition
In our case the mount point is
/system. If the mount condition is rw (read / write) you are good to go. If, on the other hand, it is ro (read only) you must do the following:
# mount -o remount,rw -t filesystem-type partition-name mount-point
First you need to locate the logger kernel module. It should be a file named logger.ko located in a folder called modules, somewhere in your /system folder. Try these locations:
This module must be loaded before logcat will work. In order to load it we must create a file in our init.d folder which should be located in your /system folder. On my system the location was:
In this directory files are executed as the device boots in the order of the numbers which prepends their file-names.
At this point we should create a file on our computer named something like:
This file is to be a script insuring the logger module gets loaded. It should contain text similar to:
The path after the
#! should reflect the directory containing the
insmod executable. The path after
insmod should reflect the location of
Once we've saved that, we should push that file to the correct location on the device with:
$ adb push 99logcat /system/etc/init.d/
Alternatively you can create this file on your devices with a root text editor. Now all we need to do is reboot.
Here are some of the things which didn't work for me:
enlogfrom the adb shell
*#*#2846579#*#*to access the service menu