Making the Coda File System a 1st Class Citizen on Handheld Linux Devices Unlocking the Hildon-FM & Introducing Fine File Manager for Coda Sang Kil Cha Jae Yoon Chong Anoop Jaishankar Mentor: Jan Harkes 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2 Agenda Abstract High-level Requirement Achievement Risk Analysis Schedule Future Work Question 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2 Abstract Failure-resilient, scalable, and secure access to shared information by mobile user over wireless network is a challenge Coda file system meets this challenge through disconnected operation, weak connectivity, translucent caching, and other mechanisms 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2 High-level Requirement Visibility Coda file system should be visible in any application that uses Hildon-FM library Hildon-FM should provide graphical user interface for authentication Usability User should be able to access cached information in any built-in application 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2 Achievement Installed Coda client on Nokia N810 device Analyzed and modified Hildon-FM library to show Coda file system Designed new user friendly file manager application Incorporated Coda authentication module in Hildon- FM library 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2 Coda Client Failed to run Coda client in Scratchbox environment Scratchbox tool-kit does not emulate Maemo Opportunity to learn more about Maemo, Scratchbox, libraries, and other environment Installed Coda client on the device with required dependencies Works for current Maemo version, Diablo Cache saved in internal memory Manual load of Venus and kernel module required 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2 Coda Client Manually loading Coda kernel module 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2 Coda Client Manually loading Venus client cache manager 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2 Coda Client Manually loading Venus client cache manager 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2 Coda Client What to do next Automate loading Venus and kernel module Risk Analysis Venus crash, kernel module failed to load, cache directory being deleted Out of scope of this project Is internal memory enough for Coda? 2 GB space shared with other application Yes, it is 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2 Hildon-FM Library Application transparent vs. application aware Part of Hildon application framework, default library for Maemo platform Default application (music player, web browser) use the library for file system related operation Provides encapsulated view for protection of system Right click equivalent mechanism support Analyzed Hildon-FM source code to figure out its structure and modified it to show Coda file system 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2 Hildon-FM Library Coda file system is shown in file manager 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2 Hildon-FM Library What to do next Refresh Coda directory after Venus is executed and the directory is mounted 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2 File Manager Application From application-transparent to application-aware Some features cannot be made application transparent Source code for Maemo file manager application is not available to developer There’s no open source file manager that uses Hildon-FM library 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2 File Manager Application New Fine File Manager (left) and original Maemo File Manager(right) 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2 File Manager Application What to do next Copy and paste, and move More options in main menu Full file system display 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2 Authentication Module User has to authenticate with Coda server Parameters required: username, password, realm Two ways Modify and include clog as a function Fork/exec a clog program to authenticate Problems: Context menu is application-dependent 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2 Authentication Module (cont’d) 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2 Risk Analysis Internal memory for caching Software/hardware update Theft of the device after authentication 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2 Schedule Original schedule after checkpoint 1 ID Tas k Days Start 1 2 3 4 5 6 7 8 Checkpoint 1 17 d 9/1/08 Modifying the H ildon-FM Complete 9 9/1 9/23/08 9/1 10 d 9/24/08 10/7/08 Analyze Coda to combine w ith the file manager 5d 10/8/08 10/14/08 Combine the file manager w ith Coda 5d 10/15/08 10/21/08 Checkpoint 2 5d 10/22/08 10/28/08 10 d 10/29/08 11/11/08 5d 11/12/08 11/18/08 10 d 11/19/08 12/2/08 Debug additional stuff Installation package & embellishment Final Demo 9/24 10 9/21 9/23 10/11 11 11/1 12 11/21 10/7 10/8 10/14 10/15 10/21 10/22 10/28 10/29 11/11 11/12 11/18 11/19 12/2 Sang Kil: file manager application Jae Yoon: analyze and modified Hildon-FM Anoop: authentication and file manager application 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2 1 12/11 Schedule Revised Schedule, actual work done after checkpoint 1 ID Task Days Start Complete 9 10 9/21 9/22 9/1 1 Found source c ode and analyzed Hildon-FM 2 3 4 5 6 7 8 9 10 11 12 13 16 d 9/1/08 9/1 9/22/08 Checkpoint 1 1d 9/23/08 9/23/08 Base file manager applic ation 3d 9/24/08 9/26/08 Implemented event handler 4d 9/29/08 10/2/08 33 d 10/3/08 11/18/08 Installed Coda in Scratchbox 5d 9/24/08 9/30/08 Installed Coda on the device 2d 10/1/08 10/2/08 10 d 10/3/08 10/16/08 Authentication module 7d 10/17/08 10/27/08 Checkpoint 2 1d 10/28/08 10/28/08 17 d 10/29/08 11/20/08 Installation pack age & embellis hment 5d 11/25/08 12/1/08 Final Demo 1d 12/2/08 12/2/08 Implemented applic ation func tions Modifying the Hildon-FM Debugging 11 10/11 11/1 9/23 9/23 9/24 9/26 9/29 10/2 10/3 9/24 10/1 10/3 12 11/21 11/18 9/30 10/2 10/16 10/17 10/28 10/29 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2 10/27 10/28 11/20 11/25 12/1 12/2 12/2 Future Work Script for Coda client startup Fix Hildon-FM related problem USB disconnection, mount refresh Distinguish realms in authentication More features in file manager application Testing with multiple Coda server Embellishment / packaging 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2 Future Work (cont’d) Register with the official Maemo website, as an open source application 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2 Questions 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2 Hildon-FM Library Libraries used in our application Gtk+2.0 Library GtkObject GtkWidget GtkContainer GtkBin GtkWindow HildonFileSe lection GtkDialog HildonFileC hooserDialog GtkBut ton GtkToo lbar GtkBox GtkEntr y HildonFileSy stemModel HildonFileD etailsDialog 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2 Work Division New Coda File Manager Application Hildon-FM Analysis and Modification Coda Client Authentication Installation and Module Automation Sang Kil Cha 80% 10% 33% 10% Jae Yoon Chong 10% 80% 33% 10% Anoop Jaishankar 10% 10% 33% 80% 15-821/18-843: Mobile and Pervasive Computing – Checkpoint 2