Shivakar Vulli

Archive for the ‘Linux’ Category

Dell Axim X3i and Linux

leave a comment

Mobile devices running Windows Mobile Operating Systems sync to Windows desktops using a proprietary software called ActiveSync. Obviously, this software is not available for Linux based operating systems and therefore Linux desktop users cannot sync their Windows Mobile devices with their desktops. However, there are software tools available to Linux users to achieve synchronization with their Windows Mobile devices. One such tool is SynCE.

About SynCE

SynCE is group of software tools which provide a means of communication and synchronization with a Windows Mobile device from a computer running Linux, *BSD or other unix-based systems using USB and Bluetooth. For more information about SynCE, visit the project homepage.

Although the information provided in this article can be modified to other linux-based operating systems and Windows Mobile devices quite easily, the following list of tool used is listed for reference and completeness.

Windows Mobile Device: Dell Axim X3i, Intel XScale 400MHz Processor with 64MB RAM.
Windows Mobile OS Version: Windows Mobile 2003 SE.
Desktop OS: Fedora 11 (64-bit), GNOME 2.26
SynCE Version: libsynce-0.14.1, synce-gnome-0.11-3

Installing SynCE

For other operating systems visit the installation instructions on SynCE website.

Install the necessary packages using

yum install libsynce synce-hal synce-gnome synce-sync-engine synce-trayicon synce-software-manager librapi

Any necessary dependecies should be automatically installed by yum.

Firewall Configuration for SynCE

Port 990 and Port 5679 are required to be unblocked for normal operation of SynCE. This can most easily accomplished by adding these two ports for tcp protocol in the Other Ports menu of System->Administration->Firewall configuration tool.

Using SynCE

After connecting the device to the computer, start the tray icon from Applications->System Tools->synce-trayicon.

Since Nautilus no longer uses gnomevfs (uses gvfs instead), Explore with Filemanager does not work at the time of writing. However, the command line tool pls works from the command line.

Add/Remove software can done from the Applications tab in the View device status window of the tray icon. Software manager can also be started from Applications->System Tools->synce-software-manager.

The Windows Mobile device is now ready to be used with a Linux desktop.

Written by Shivakar

November 21st, 2009

Posted in Desktop, Fedora, Linux

Using Beagle to Speed Up Desktop Searches on Linux

leave a comment

About Beagle

Beagle is a desktop-indepedent search service for Linux that lets you search your user files. It has the capability to search and index all files including images, music, videos, documents (pdf, odt, odp, etc.), emails, web history, IM conversations, addressbook, calendar, source code, archives and much more. It is a complete desktop search service perfect for anyone using Linux.

Beagle indexes user data in real time with indexing done at the time of file creation, re-indexing on modification and purged from index on deletion. E-mail is indexed up on arrival and IM conversations are indexed in real time. Beagle searches not only the text contained in the document, but also all metadata such as ID3 Tags for music, header information from emails, etc.

I use GNOME on a Fedora 11 machine, therefore I will detail the procedure to get beagle search up and running in the same. The procedure would be all that different with a different desktop or Linux distribution.

Installing Beagle

On Fedora you can install Beagle using

yum install beagle

Using Beagle

Once the installation is completed, start Places > Search and select Search > Preferences. Select the options you need but do check the option for Start search & indexing services automatically in the Searching tab. In the Indexing tab, add any paths that you want to be indexed, and any application data sources (like Thunderbird and Pidgin) that you want beagle to index in the Data sources tab. I have not used indexing remote search-enabled hosts feature, but you can check it out in Network options. You can also enable a web-interface and allow external access to local search services in the same tab.

To check the installation, open a terminal and issue the following command

beagled --fg --debug

This should display the settings of beagled. You can kill the service by pressing Ctrl-C.

When you login the next time, beagle will be running and indexing your existing files and should index any new file created. However, if you want to speed things up and index all the existing files before you start using your system again, beagle has a solution.

You need to export the following variable to set accelerated indexing. Keep in mind this is going to use as much as your CPU as needed and will take time some time depending on the number of files you have in your included search directories.

 export BEAGLE_EXCERCISE_THE_DOG=1

Now run the following command to start beagle in the accelerated indexing mode.

beagled --indexing-test-mode

This will set beagled to exit after indexing all the files in the current search directories. Once this is done you can logout and log back in to start using beagle for your searches.

At any time if you want to check the current status of beagled, issue the following command

beagled-status

And to shut down beagled you can either do it from Service Options in the search window or by issuing the beagle-shutdown from a terminal.

For more information on beagle, visit the project homepage.

Written by Shivakar

October 30th, 2009

Posted in Fedora, Linux, OpenSource

Tagged with , , ,

RTAI on Arcom’s SBC-GXX533 Development Kit.

leave a comment

Note: This is an entry from my old website. This project was completed in 2007. I make no guaratee that this will work with newer versions of the software used for this project. Please use caution when using this information


About this guide

This guide outlines the procedure to install RTAI on Arcom’s SBC-GX533 Development Board. You will need the SBC-GX533 Development Kit and a Linux machine (running preferably Kernel 2.6) to complete this tutorial. I will be referring to the Linux machine as the host system and the SBC-GX533 as the target board. Access to the Internet from the host system is preferred. Also you need a way to copy files from the host system to the target board. I used ssh for this purpose. The board’s ethernet card 0 (eth0) is configured via DHCP so all I needed to do was to plug one of the spare ethernet cables from my router to eth0 and I was able to access the target board via eth0. If you don’t have Internet connection on either machine, all you need to do is configure both systems’ IP addresses manually and put them on a network. If for this you need to login to the target board, you can connect to the board using serial connection. The procedure to connect to the target board using serial connection can be found in the SBC-GX533 Technical Manual.

You need the following installed on the host system before proceeding.

  1. Perl – To install the AEL host environment.
  2. AEL host environment – You can install the AEL host environment from the CD provided with the kit. Installation instructions can be found in Arcom Embedded Linux Technical Manual.
  3. Minicom or other serial communications program like GtkTerm.

About Arcom

Arcom, a Eurotech company, is a leading supplier of standard, modified, and custom solutions for embedded communication and control technology. Founded in Cambridge in 1982, Arcom has developed a broad range of solutions for data processing, communications and control in industry and commercial applications. Arcom has engineering and support teams in Kansas City (US) and Cambridge (UK) which offer Design services to OEM customers.

More information about Arcom can be found at http://www.arcom.com.

About SBC-GX533

To put it into a single sentence, The Arcom SBC-GX533 Linux Development Kit provides the easiest way to develop a wide range of embedded devices in a Linux environment.

More elaborately, [from Arcom's Website] The SBC-GX533 is a low profile, fan-less, RoHS compliant EBX form factor board, based on the AMD Geodeā„¢ GX 533 @1.1W processor. It includes all the standard PC interfaces as well as a full range of multimedia features including onboard graphics which can drive a standard analog display or a TFT flat panel, dual 10/100baseTx Ethernet, onboard 32Mbyte Flash drive, CompactFlash port, four USB ports, four serial ports and an analog touchscreen interface.

The SBC-GX533 is ideal for fan-less embedded controllers which require PC compatibility with full solid-state operation.

Kernel 2.6 based Embedded linux is already installed, with GNC C library. Compressed Journalling Flash File System (JFFS2) offering high reliability and recovery from power interruptions. Secure Shell (openSSH) , Embedded Web Server. Embedded Linux Drivers for onboard I/O, network and audio.

For more information on the SBC-GX533 Development Kit, visit :


About RTAI

RTAI stands for Real-Time Application Interface for Linux. RTAI lets you write applications with strict timing constraints. RTAI consists mainly of two parts:

  1. A patch to the kernel which introduces a hardware abstraction layer. This adds to the kernel real-time capabilities allowing you to have a real-time OS within a non real-time Linux environment.
  2. A broad variety of services which make real-time programmers’ lives easier. The RTAI API provides you a wide variety of functions you can use to develop your embedded application faster.

For more information on RTAI, check out the project website.

Installing RTAI on Arcom’s SB-GX533

Step1: Setup the Sources

Download the latest stable RTAI Package from their project website. For this project I used the 3.4 closure version. The Kernel source for the target board can be found on the AEL Host environment on the host machine. On the machine used for this project, the path to the source was

/opt/arcom/src/linux-source-2.6.16.14-arcom1.tar.gz

Extract both, the kernel source and rtai source to /usr/src. Create symlink /usr/src/linux pointing to the kernel source using

ln -s /usr/src/linux-source-2.6.16.14-arcom1 /usr/src/linux

Now to apply the RTAI patch do the following.

1
2
cd /usr/src/linux
patch-p1 /usr/src/rtai-3.4-cv/base/arch/i386/patches/hal-linux-2.6.16.i386-1.3.08.patch

Now the sources are setup and we can proceed to configuring and compiling the kernel and RTAI.

Step 2: Configuring and Compiling the Kernel

First get the default configuration by running

make ARCH=i386 sbc-gx533_defconfig

Next you can tweak the options to suite your needs using

make ARCH=i386 xconfig

According to the RTAI installation guide, you need to turn off module versioning, ACPI support and APM support as these conflict with RTAI. I turned on support for Arcom SBC-GX533 and also made the kernel preemptible. Once this is done you can move on to compiling the kernel. You have to do this using the tool ael-kernel-build.

ael-kernel-build --ARCH=i386 image

This will compile the kernel, build the image and build three .deb packages at /usr/src/. Copy the linux-image .deb file to the target board and install using

dpkg -i linux-image-2.6.16.14-arcom1_10.0.Custom_i386.deb

Now connect to the target board using serial connection and enter the Redboot mode, by pressing Ctrl-C when prompted during the boot up. Once you are in the Redboot enter the following command to change the default kernel to the newly installed one.

alias kernel /boot/vmlinuz-

Now the board is ready for RTAI to be installed.

Step 3: Configuring and Compiling the RTAI

According to the RTAI manual you need to be running the kernel with which you are going to use RTAI. But the cross compilation did work for me with a few fixable problems. Change the working directory to /usr/src and create a new directory called build. This is preferred way of compiling RTAI. Change the working directory to build. Now enter the following to build and install RTAI.

make -f /usr/src/rtai-3.4-cv/makefile xconfig CC=i386-linux-gcc CXX=i386-linux-g++

Select all the features you need and then save the configuration and exit. Now compile RTAI.

make all

Now install RTAI to a folder so that you can transfer it to the target board.

make install DESTDIR=/tmp/rtai

Once the installation is completed you can transfer the installation to the target board by the following commands. The target board by default does not have bunzip compression installed on it, hence it is easier to use gunzip compression.

1
2
3
cd /tmp/rtai
tar cvzf ../rtai_install.tar.gz *
cd .. sftp root@<TargetBoard_Hostname_or_IPAddress>

now login to the target board and install RTAI.

cd / tar xvf /root/rtai_install.tar.gz

This concludes the installation of RTAI

Step 4: Testing the RTAI Installation

Change the working directory to /usr/realtime/testsuite/kern/latency and type the following

rtai-load latency

This should run the latency test and display the results. The default installation asks you to just run ./run in the current directory tos ee the latency results, but due to cross compilation (IMHO) it does not work like that any more. You have to call rtai manually passing it the test you want to run. There is a file named .runinfo in each of the testsuite directory. The first word inside the file is the argument you have to pass to rtai_load to run the test. Compare your results with the ones on this site – http://issaris.org/rtai/.

Now your Arcom SBC-GX533 is ready for running real-time applications.

Written by Shivakar

October 30th, 2009

Posted in Embedded, Linux

Tagged with , , , ,