Monday, September 28, 2009

How to read Telugu news paper in Mac

I used to read the Eenadu, a telugu daily news paper using my notebook with windows vista installed in the notebook.

One of my friend had a notebook with MAC os ( firefox browser ) installed in it, ad he was having the problem to read the news paper in his system, since the font was not supported in the MAC os

To resolve this problem,

- Download the Fonts from the eenadu's font's help URL
http://www.eenadu.net/fonthelp.htm

The instructions provided in the Eenadu web site ( in the above URL ) are w.r.t to the Windows OS. If we need to do the relavent changes in the MAC os, then we need to install the fonts in the respective directory in the MAC. The following process will help you to do the following:

- Download the fonts ( you will get the font.zip file after downloading )

- unzip or extract the zip file ( you will get the eenadu.ttf file after extracting )

In the MAC os, the fonts are stored in the " /Library/Fonts " directory. So, copy the extracted "eenadu.ttf " file to the "/Library/Fonts" directory,

cp eenadu.ttf /Library/Fonts

------------------------------------------------------------------------------------------------------------------
If you want read the Andhrajyothy news paper, then download the font from the Andhrajyothy's web site. You will get a SHREE900.ttf file after downloading. Copy this file to the "/Library/Fonts" directory.

------------------------------------------------------------------------------------------------------------------

Now you should be able to read the news paper with it's font.

If you are not able to read any telugu ( or any other language ) news paper due to font's problem in MAC, you should be able to resolve it using the above procedure



Additional:


- To be consistent with other ttf files in the " /Library/fonts" directory, change the files access permissions and the owner as follows ( these steps are optional)

cd /Library/Fonts
chmod 644 eenadu.ttf

( The following step is not mandatory, but for consistency reason, I had done the following )

sudo chown root eenadu.ttf
( you will be prompted to enter your passwor, after executing the above command)

Wednesday, September 16, 2009

Tuesday, September 15, 2009

How to compile the Linux Kernel (2.6.31)

Step 1: Download the latest stable kernel from the http://www.kernel.org/
( As on 16-Sep-2009, The latest stable kernel version is 2.6.31)

Step 2: unpack the downloaded source file. To unpack the source file you can use
$ tar -xvzf (file name) -----> [ if the downloaded file is .gz file ]
$ tar -xvjf (file name) ------> [ If the downloaded file is .bz2 file ]

The above commands will automatically create a new directory, in the current working directory. If you want the unpacked source code in some other directory, then you need to mantion the destination directory in the above command.

Step 3: Kernel Building
For detailed build instructions on how to build the kernel , please go through the file "README". in the kernel source directory. For quick instrcutions use the following informaiton
Select the kernel options that are needed for your development using
The kernel options can be selected using the commad
$ cd (kernel source directory)
$ make menuconfig
Build the kernel
$ make





I encountered the following issues during the kernel build
Issue 1:
During the compilation of linux-2.6.31 kernel, I got the following error ( with default configuaration )
- drivers/message/fusion/mptsas.c: In function `mptsas_port_delete':
- drivers/message/fusion/mptsas.c: 105: sorry, unimplemented: inlining failed in call to 'mptsas_set_rphy': function body not available
- drivers/message/fusion/mptsas.c: 467: sorry, unimplemented: called from here

Reason:
The 'mptsas_set_rphy' function is defined after the 'mptsas_port_delete' function in the file.
Solution :
Moved the 'mptsas_set_rphy' function definition before to the function 'mptsas_port_delete' function definition.

Issue 2:
drivers/built-in.o(.init.text+0x3bad): In function `con_init':
include/trace/events/kmem.h:47: undefined reference to `.L1452'
Temporary Hack:
This problem was due to the result of allocating the memory using kzalloc() in con_init() function in the drivers/char/vt.c file.
The compilation problem is occuring for the statement
vc_cons[currcons].d = vc = kzalloc(sizeof(struct vc_data), GFP_NOWAIT);
To resolve the compilation issue, this statement was re-coded as in the previous kernel versions ( i.e allocating the memory for this structure using the bootmem )
vc_cons[currcons].d = vc = alloc_bootmem(sizeof(struct vc_data));
Now the compilation issue is resolved. ( Need to check during the boot time for any side-effects ).

During the boot time, if we got any issue, then the memory allocation for the screen buffer also need to be changed to allocate using the bootmem, and change reset the flag vc->vc_kmallocated to zero.




See my future blogs for related topics like
- How to burn the kernel Image onto the custome board
- How build the file system for the new board
- How to compile the toolchain in host system for the custom board

etc.,