You are on page 1of 6

Development of Linux Based PDA-Like Applications on Modern mp3 Players

Abstract- This paper presents a critical investigation into features of some ultra modern music players that are similar to those of a Personal Digital Assistant (PDA). In particular, the work presented in this paper is centered upon a family of digital music players called iPods developed by Apple Computers. Due to the availability of almost perfect hardware & software systems on these devices, modern music players like iPods are very efficient computing devices. The paper also highlights various subtleties in architectures & features of iPod and the traditional devices like Sonys Walkman. The work presented in this paper involved a customized version of Linux, which was run on iPod. With the Linux as operating system and the complete hardware system of iPod, the player provides an excellent opportunity to develop applications on it & enhance its PDA-like features. A thorough investigation of embedded systems in general and of iPods in particular has been carried out in this work. The procedure to develop applications on iPod is discussed in this paper, starting from running Linux on iPods hardware. Many complex and new applications then can be programmed on iPod keeping in mind some basic rules and facts about the hardware and firmware involved.

I. INTRODUCTION Music has always been a favorite and easily available source of enjoyment for people across the globe for several generations now. The technological advancements have led to the development of several types of music players. Like other electronic gadgets, music players have also greatly benefited from transistors; the building block of all electronic systems. The use of transistors resulted in miniaturization of the player, giving listeners wide range of choices to enjoy music anywhere anytime from the handheld devices. This started setting up a new stage for business in a relatively new sphere. The first Sony Walkman stereo (model TPS-L2) was sold in 1979 [1]. The trademark Walkman became so popular that it evolved into a generic term, and lost its own identity. Sony continues to use the "Walkman" brand name for all kinds of portable audio devices. The recent surge in the VLSI and Embedded Systems has created tremendous growth in media player industry. The advent of flash memory and hard drives memory revolutionized the world of music lovers by reducing the size of the device to that of a matchbox, and providing memory space as large as 120 GB [2]. Listeners can now store thousands of songs, hundreds of movies, photographs etc and listen/watch or see the stored contents anywhere, anytime. These devices mainly deal with digital audio data. With no mechanical part inside these players, there is no need to worry

about the wear and tear issues which were earlier involved with traditional music players like Walkman. While modern research in the field of Error Correcting Codes has resulted in a greater protection against scratches or any other source of data corruption on CD, a similar advancement in Information Theory has helped manufacturers pack huge amount of data in a comparitively smaller space. This means the players can now hold more music than ever before and can deliver excellent quality sound at a relatively higher intensity. Being digital in nature, modern music players deliver high fidelity sound over a wider frequency spectrum and at a very high intensity level. Apple Computer iPod, shown in Fig. 1, for example, can deliver high fidelity sound quality at intensity level as high as 120 dB [3]. Recently its ability to deliver high intensity music has triggered a debate in the scientific community, regarding its role in causing Noise Induced Hearing Loss (NIHL) [4-6]. The iPod, being one of the latest music players in the market, is a result of tremendous research efforts made by the professionals engaged in Research & Development activities of the company. Due to enough hardware and software resources, modern music players like iPod bear excellent PDA-like features, in addition to the superior music quality. The existing hardware and software resources on the iPod may also provide an opportunity to develop more PDA-like applications. Thus the same device, which is used as a music player, can thus, be used as a multipurpose gadget. However it becomes a tough job for third party embedded systems professionals to seriously indulge in computing on these devices. The reason is that the internal details of the player are often obscured from the general public and may be available only to the professionals of the company itself. It may, however, be possible to access a lot of the resources of the player by rigorous reverse engineering. For example, some serious reverse engineering and discussion within the electronics industry unearthed unusual details of Apple's iPod development process [7-9]. As a result of this it is now possible to run a customized version of Linux kernel onto the iPod hardware [10]. With full access to the operating system and the hardware resources, the stage gets set for the next level of challenge i.e. enhancing already included features and developing newer ones. Traditional research on modern music players most of the time focuses on the quality of the audio itself. The work presented in this paper is however concerned with the PDAlike features of iPod The organization of this paper is as follows: Section II presents an overview of architecture of some modern music

players such as iPod. The section also highlights some of the features of the iPod that ranks this player on top. Section III explores the other face of the coin; the PDA-like features of the player and highlights the fact that modern audio players are very good embedded computing platforms. Section IV describes in detail, the steps one would take to run Linux on the iPod & start programming on the player. Section V presents some of the conclusions drawn so far from the research. Although not much literature is available on the subject, the authors have provided a list of references, which can immensely help anyone thinking of seriously indulging in iPod based computing. II. ARCHITECTURE OF SOME MODERN MUSIC PLAYERS The introduction of Apple Computer's iPod coupled with iTunes software in 2001 was a big success. Since then Apple has almost captured the whole market. Although Apple is facing fierce competition with other companies, latest being Micro-Star International's MSI MEGA 540 [11], the first solar powered player, still there is no synonymous of iPod's popularity. iPod has become so popular that the term "iPod" translated into a generic term. People now prefer calling any portable audio player "iPod" instead of the company's assigned name of the device. Basically the player consists of the following unit: LCD Driver/Controller Video Decoder and Processor

Figure 2. General architecture of modern music players

Power Management and Battery Charger Battery Audio Processor Memory Hard Drive Unit Audio Codec

Fig. 2 shows a general block diagram of a portable audio player. As a result of rigorous reverse engineering and disscussions among embedded computing professionals, iPods internal details have been revealed [12]. The iPod uses two ARM7 TDMI-derived CPUs running at 90 MHz, 1.8 inch or 46 mm ATA hard drives (with a proprietary connector) made by Toshiba, a dedicated MP3 decoder and controller chip from PortalPlayer, a stereo digital-to-analog converter from Wolfson Microelectronics Ltd, a flash memory chip from Sharp Electronics Corp., and a power management and battery charging IC from Linear Technologies Inc. Generally the iPod also has 32 MB of RAM (except the 60 GB 5 th generation iPod which has 64 MB). A portion of the RAM is used to hold the iPod OS loaded from firmware, but the vast majority of it serves to cache songs loaded from the storage medium. For example, an iPod could spin its hard disk up once and copy about 30 MB of upcoming songs into RAM, thus saving power by not having the drive spin up for each song separately.
Figure 1 iPod Nano

The current iPod models use internal Lithium-ion batteries while 1st and 2nd generations of iPod used Lithium polymer batteries. The larger models use audio circuitry provided by Wolfson Micro-electronics and use touch wheels provided by Synaptics. The iPod shuffle uses the SigmaTel STMP3550

chip which handles both the music decoding and the audio circuitry. When power is first applied to the iPod the hardware starts execution of code located at the ARM boot location that is 0x0. This location normally maps to the flash [17]. The first flash sector contains the ARM reset vectors with the reset vector pointing to the location where the bootloader is stored. The bootloader then executes and in the simplest caseloads operating system from the HDD and then executes that. In its race to beat all the players in the market, the computer maker has faced some lawsuits as well. In 2005, for example, the company faced two lawsuits claiming patent infringement by the iPod and its associated technologies:[13], Advanced Audio Devices claimed the iPod breached its patent on a "music jukebox",[14] while a Hong Kong-based IP portfolio company called Pat-rights filed a suit claiming that Apple's FairPlay technology breached a patent [15] issued to inventor Ho Keung Tse. The later case also includes the online music stores of Sony, RealNetworks, Napster, and Musicmatch as defendants [16].

programming any device consisting of a CPU, memory and a couple of input output interfacing etc. The iPod, for example boosted the diminishing market share of Apple Computer and is now becoming famous for its PDAlike features, apart from the excellent sound quality. With the Linux kernel loaded onto the players hard disk one can develop innovative applications suiting the need of the time & money. Following are some of the examples of these applications, which have been developed with Linux loaded onto the player [10]: 1. Make an iPod work with Linux machines and run Linux applications. 2. Remove volume caps (iPod sold in Europe, cap the volume at 100 decibels; uncapped iPods can reach more than 115 decibels.) 3. Turn the iPod into a universal remote. 4. Attach an external hard drive to the iPod to increase its storage capacity. 5. Change the iPod's font and graphics. 6. Watch movies on iPod in full-screen mode. 7. Plug iPod into any computer (even without iTunes) and listen to music from the hard drive. 8. Transfer photos to iPod without using iTunes. 9. Replace iTunes all together as the iPod's main jukebox. IV. PROGRAMMING THE iPOD This section focuses on the programming issues on the iPod. The programming has been done in C language on SUSE LINUX operating system. This section describes step by step procedure for developing a program to display the text Aligarh Muslim University on the iPod screen. The authors assume that the intended audiences are familier with the general comand-line operations on Linux terminal. Nevertheless, one may type man or info on Linux termnal, followed by the command to know exact details of the command. A. Step 1. Downloading necessary files Following files will be needed to install Linux kernel on the iPod: 1. Official Boot loader (for the 1st, 2nd, and 3rd generation iPod) which can be downloaded from: http://sourceforge.net/project/showfiles.php? group_id=73079&package_id=101451&release_id=2 26112 The latest kernel from the nightly build can be downloaded from: http://www.ipodlinux.org/builds/ For userland installation download iPodLinux FS which is available at http://168.234.106.10/linuxos2005-08-28-+extras.tar.bz2

III. AN INSIGHT INTO PDA-LIKE FEATURES OF iPOD Audio player manufacturers are putting their best mind and money to get a bigger share of the market. Sometimes it is just a marketing gimmick to attract consumers, and at other times it is a real innovation. The incorporation of PDA-like features into iPod is an example of an innovation, which helped the computer maker get rid of the crises from which it was suffering before the introduction of iPod. People can now listen to the music while watching the photographs as slide show. The iPod bundles a lot of PDA like features such as Photo viewer, games, calendar, address book, notepad etc. The player like iPod also has adequate embedded computing environment to set the stage for newer application development so as to compete with a dedicated PDA. With some rigorous reverse engineering, embedded professionals have successfully ported a customized version of Linux kernel and played video on iPod Nano, which was not possible earlier with the proprietary OS provided by Apple. The exact method to install Linux is described in detail in section IV. The biggest hurdle one faces in developing applications on iPod is the black box appearance of the player. The company has always been tight lipped when it comes to releasing secretes of iPod. So it is a challenging task for the application designers to interact with the hardware of iPod. It is expected that in near future manufacturers will be more open towards releasing chip details following the line of open source software supporters. This will definitely generate a new wave of interest among the embedded computing professionals for

2. 3.

Figure. 3 Screen-shot of Cygwin

4.

The cross-compiler for uclinux from: http://www.uclinux.org/pub/uClinux/arm-elf-tools/. This compiler is necessary because iPod uses an ARM processor, the architecture of which is quite different from the one provided by Intel. Since the intention is to execute the program on iPod, the binary file generated on the PC must be in accordance with the instruction set of ARM processor. If programming is to be done with Windows, Cygwin will be needed which is available at http://www.cygwin.com/. Cygwin (see screen shot in Fig. 3) consists of a library that implements the POSIX (Portable Operating System Interface) system call API in terms of Win32 system calls a GNU development toolchain (such as GCC and GDB) to allow basic software development tasks, and a large number of application programs equivalent to common programs on the Unix system [18]. But it is strongly recommended to use Linux instead. TTK for graphical applications (http://ipodlinux.org/TTK). TTK is a GUI library for the iPod, which may be used for developing graphical applications. Podzilla2 API (http://www.getlinux.org/~oremanj/t/pz2-api.pdf). Podzilla 2 is a modular user interface for the iPod based on TTK.

command at the terminal can do this: # cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: Apple Model: iPod Rev: 1.50 Type: Direct-Access ANSI SCSI revision: 02 Here scsi0 denotes that the iPod is connected to /dev/sda For more details on cat command one may refer to Linux man pages. C. Step 3. Mounting the iPod To explore the content of iPod it is first mounted. For this, a new directory is created using mkdir command and, then it is mounted using the command mount: # mkdir /mnt/iPodSongs # mount -t vfat /dev/sda2 /mnt/iPodSongs Once the player is mounted its contents can be browsed as a normal file system. To unmount the iPod the command umount can be used: # umount /dev/sda2 More help regarding these commands can be found in man pages or typing info followed by the command name on Linux terminal. D. Step 4. Backing up important files Basically we have to port a customized version of uClinux. uClinux (pronounced as mu c Linux) is a version of Linux designed for devices that lack a memory management unit (MMU) [19]. The iPod has some MMU-type capabilities, they are, however, not sufficient to support the Linux kernel. Because it is quite possible to accidentally remove the valuable data already present in the iPod, it is recommended that before installing Linux, one must backup all the files including the iPod boot loader and OS. Typing the following commands on the Linux-terminal can do this: # dd if=/dev/sda of=ipod_boot_sector_backup count=1 # dd if=/dev/sda1 of=ipod_os_partition_backup E. Step 5. Creating a new partition This partition will hold the root file system for Linux. Using the following command, one can create a partition: # fdisk /dev/sda F. Step 6. Creating a file system Using the following commands creates the file system: # mke2fs -j /dev/sda3 It is recommended to set the maximal mount count between two filesystem checks to zero to prevent fsck being run on it:

5.

6.

7.

B. Step 2. Determining iPod Connection The example to demonstrate programming of iPod has been done on Linux (SUSE 9.3) platform. Before programming first of all it is determined what Linux device the iPod is connected as. Simply connecting the iPod to the USB and typing the cat

# tune2fs -c 0 /dev/sda3 G. Step 7. Installing LINUX The downloaded Linux kernel and the bootloader are extracted into a directory. Next, extract the Apple image from the boot loader and create a new image including Linux and Apple OS (the kernel is named uclinux-2.4.24-ipod2.bin): #./make_fw -3 -o apple_os.bin -e 0 ipod_os_partition_backup #./make_fw -3 -o my_sw.bin -i apple_os.bin -l uclinux-2.4.24ipod2.bin loader.bin NOTE: -3 is required in make_fw only for 4th generation iPods. Once this is done, the new image and kernel modules can be copied to the iPod: # dd if=my_sw.bin of=/dev/sda1 # mkdir /mnt/ipod # mount -t ext3 /dev/sda3 /mnt/ipod # cp -r lib /mnt/ipod # umount /mnt/ipod If every thing goes fine till this step, it means that the Linux is now successfully loaded on iPod. To boot into Linux simply detach iPod from USB and reboot by holding down the menu and the play buttons for 3 seconds to reboot it. After rebooting, keep the back button pressed to boot Linux, otherwise the default interface will be loaded. H. Step 8. Programming the iPod For programming, a cross compiler is needed as described above in Step 1. The compiler for uclinux is available from http://www.uclinux.org/pub/uClinux/arm-elf-tools/. Once the compiler is installed, one can compile simple programs. The following program, for example, displays the text Aligarh Muslim University #include <stdio.h> int main(void){ puts("Aligarh Muslim University "); return(0); } The program is saved as display.c. The next step is to compile the program: # arm-elf-gcc -o display display.c -elf2flt Once the binary is generated it is copied to the iPod: # mount-t vfat /dev/sda2 /mnt/iPodSongs # mkdir /mnt/iPodSongs/myprogs # cp display /mnt/iPodSongs/myprogs After unmounting the partition one has to reboot the iPod in podzilla, and scroll down to "File browser->/mnt/myprogs". The option display" will appear at this stage. Clicking the display option, one can see the program output on iPod screen. For more complex GUI based programming it is recommended to use TTK GUI library [20]. TTK is a library

for creation of graphical user interfaces on the iPod, along with a few other things

Figure. 4 iPod displaying the text Aligarh Muslim University

The other option is Nano-X/SDL, but TTK has some advantages over these options. For example TTK is a higherlevel library and has intelligent event handling etc. V. CONCLUSIONS & SCOPE FOR FUTURE WORK

The aim of this paper is to highlight the ongoing research by the authors involving some ultra modern mp3 players. As presented in this paper, the popularity of modern music players is not just the result of a superior sound quality, but also because of the applications they can support. These applications resemble to a large extent to those available on a PDA. Moreover with the mutual growth in semiconductor industry and embedded computing, it can now be anticipated that the general trend of developing the newer applications would continue to grow in future as well. These facts, coupled with the hope that in near future the mnufacturers will be more transparent as far as the internal chip detail is concerned, would mean easier access to the resources on the player. This in turn would provide a platform for developing novel PDAlike applications on the players; which would be a breakthrough in the consumer electronics industry involoving music players. The users will just have to download the application from internet in order to install it on the player. Thus the player which is traditionally used for listening to the music would turn out to be a multi-purpose gadget. The basic idea is to make use of the available resources of the player as much as possible. In particular, due to its unique features and some critical issues and criticism associated with the Apple Computers iPod, the authors have chosen iPod for this research. The

authors have presented an example to illustrate a way to develop a simple Linux-based application on the iPod. Various complex PDA-like applications can then be developed following the same line. Furthermore, Linux, being an effort of Open-Source Software Supporters, does not involve any kind of copyright violation or patent infringement. This will provide a greater freedom & flexibility to small-scale embedded computing industry, especially in a developing country like India, to experiment on the player and enhance its PDA-like features .

REFERENCES
[1] [2] [3] [4] [5] The story behind the Sony Walkman, http://lowendmac.com/orchard/06/0915.html Seagate to Launch 120GB iPod drives, http://www.macnn.com/articles/06/08/14/120gb.18.hdds.in.2006/ Squeezing Apple Juice, A time line of iPOds lawsuits, http://dfire.org/x2231.xml Play it by the ear, http://www.hindu.com/thehindu/mp/2006/12/06/stori es/2006120600400100.htm M. Salim Beg, Heshsham F.Abdul Basit, Narayan Gehlot, Role of Modern Music Players in Noise Induced Hearing Loss, All India Seminar on Biomedical Engg. & Bio-Informatics, AEC, Agra, 24-25 March 2007. Noies-Induced Hearing Loss, http://www.hearinglossweb.com/Medical/Causes/nihl/nihl.htm Reverse Engineering of the iPod Stuns Apple, http://www.outlaw.com/page-4762 Inside the Apple iPOD design triumph, http://www.designchain.com/coverstory.asp?issue=summer02 Apple trying to keep iPod Nano chip manufacturers a secret? http://www.tuaw.com/2006/09/18/apple-trying-tokeep-ipod-nano-chip-manufacturers-a-secret/ Linux on iPod, www.ipodlinux.org MSIs Solar Mega Player 540, http://www.engadget.com/2006/03/12/msis-solar-megaplayer-540/ Next-Generation iPod Details Unveiled http://www.mobilemag.com/redirect.php?content=3802 Channel Register. Apple faces patent lawsuits over its iPod,2005-03-10, http://www.channelregister.co.uk/2005/03/10/apple_ipod_patent_lawsuit s/ U.S. Patent 6,587,403 Advanced Audio Devices' "music jukebox" patent. http://www.google.com/patents? vid=USPAT6587403&id=oawMAAAAEBAJ&dq=6,587,43 U.S. Patent 6,665,797 "Protection of software again against unauthorized use" (corrected to "Computer Apparatus/Software Access Control"), http://www.google.com/patents? vid=USPAT6665797&id=QrR2AAAAEBAJ&dq=6,665,797 AppleInsider. Apple, Sony among those named in new DRM lawsuit, 2005-08-16, http://www.appleinsider.com/article.php?id=1235 Firmware, http://ipodlinux.org/Firmware http://x.cygwin.com/ Embedded Micro Controller Project, www.uclinux.org/ TTK, An iPod GUI Library, www.getlinux.org/~oremanj/t/ttk-api.pdf

[6] [7] [8] [9] [10] [11] [12] [13]

[14] [15]

[16] [17] [18] [19] [20]

You might also like