FOSS.in 2008



Let me share a complete report about FOSS.in 2008 event that I attended recently at IISc Bangalore.

Day 1:

Opening keynote was by Harald Welte. He is concern about sad situation of Linux in embedded space.

He raised question: Is GSM secure? At his workout Improving Free Software based GSM protocol analysis.

We all have belief that whatever we talk over or mobile, that is encrypted voice and no one else can hear it. It is myth. In India, few operators have not implemented encryption. I verified it with a special software runs on old Nokia phone. We have many sniffing tool for wire line. EtherpeekNX, Wireshark (Ethereal) etc. We have IETF standard documents to decode TCP/IP packets. Same way, we have 3GPP documents for GSM decoding. Still there is lack of sniffers because hardware is an issue. In this workout I came across USRP (Universal Software Radio Platform). We configured it to capture a single 200 Khz wide GSM channel over 1800 MHz band. We captured some live sample of broadcast channel.

We have few more options for hardware:

  1. USRP. It cost around $700

  2. Firmware source code for TSM30 mobile is available on Internet.

  3. MAD Operating System for Nokia phone.

  4. We can have access to modem firmware with Open BTS project

  5. OR we can tap E1 link over ABis Interface from BTS to BSC with Linux. I think, in India it ABis is not wireline E1 link, it is microwave point to point link. How to tap it?

  6. beagle board has project to link the board with USRP.

I came across some new software projects like

1. wiki.thc.org/gsm

2. thre.at/gsm

3. http://wiki.thc.org/gsm/decode gsmdecode software takes ASCII hex as input and generate decoded ASCII text.

4. Wireshark plugin

Most of the mobile support SIMToolkit. So any operator have complete access of any subscriber’s mobile’s address book. How to prove it?

Evening we had session about Contributing to Bluez. Bluzez is Linux Bluetooth protocol stack.

Bluetooth = core specifications + profiles.

UUID = Universal Unique ID for any Bluetooth service

Useful tools

  1. $ hciconfig

$ hicconfig scan

  1. $sdptoop records –raw

$sdptool browse

  1. bletoothd is user space daemon. We can get it from git.kernal.org We run this daemon with –n option for foreground –d for debug print.

  2. DBus is interface.

  3. test_device and simple_agent are other useful tools

The Bluetooth stack had RFCOOMM service for Obex and At commands while L2CAP gives service to SDP. We can have HCI sockets too.

There are concepts about Adapter and Device. Org.bluez.Adaptor Org.bluez.Device

Btd_device struct hold proprieties inside PC for other remote Bluetooth device.


Bt_rfcomm_connect() is function call to connect to device


Bluetooth audio device uses SBC codec for audio. For more dtails

www.bluetooth.com

www.bluetooth.org

wiki.bluez.org


I asked the speaker Alok Barsode,few questions offline. The Bluetooth supports about 3 MBPS bandwidth. So yes, we can have Bluetooth video device. How to identify the remote Bluetooth device is mobile phone? No there is not any specific UUID supported by all mobile. The device class will be “mobile” in Bluetooth profile. Each Bluetooth device has its own unique BID. If we send “\r\nRing” command to headset, it will ring. Not true for mobile phone. I have USB Bluetooth adapter. Its trial version software driver has 5 MB data transfer limit over Windows. Linux has built in driver and no such limit.


Maemo under the hood and how to get involved Nokia has open source tablets N770, N800 and N810. It cost around EURO 250


Day 2:


Telepathy: communication for people and programs Telepathy is a framework to support all communication needs like chat, VoIP call etc. It has Connection Manager handle different protocols. This URL http://www.pidgin.im/ list all the supported protocols.

Tube channels: Dbus tubes, Steam tubes

Git clone at git://dev.laptop.org/projects/hellomesh

Telepathy stack: the bottom layer is connection managers for each protocol. Then common D-Bus. Then upper layer applications like chat, voice, logging etc. We have ’link-local’ option to communicate locally. Gabble is for XMPP. We have manager per account and Connection per protocol. Channel is per contact. Mission Control. Mingle is google application. Server less chat are also possible


For more details:

Rtcomm.garage.maemo.org

Live.gnome.org/Empathy

Telepathy.freedesktop.org


Day 3


Sorting in Indic locales/Indian language spell-checking enhancements Here we checked sorting of alphabet for few Indian languages. We can do sorting at glibc level ICU library level, Database level and Unicode CLDR level. LC_COLATE for each language.


We have few sessions related to KDE in the morning. KDE had Marble Widget. It is just few steps to write first ‘Hello World’ application. One can set theme for World Map. We need to end our source code with show function call to make this Marble widget visible. KDE has function ki8n(“…….”) for Internationalization support. CMake is powerful tool to generate make file. We should keep src and build directory separate. KDE had XML file to define GUI. We can define different menu, keyboard accelerator etc in that file. QtDesigner is similar to Visual Basic. One can re-use the Marble widget by drag and drop to QtDesigner. QtAssistant is like Help file. KDE has two IDEs. KDevelop and QDevelop. Kapp is a template.


Contributing to YUI Here I came across few useful JavaScript resources like...

  • Crockford’s book ‘JavaScript for Good Parts’

  • Object Oriented Java Script’ by Stnfanov

JSLint is a nice tool for JavaScript. JavaScript has no class inheritance. It has object inheritance. Here every function is an object. We have some simple trick for encapsulation. To hide function’s private members and it is used throughout the YUI code. Here we have two ways for inheritance. ‘Augment’ if we change base object, no effect to derived object. ‘Extend’ base and derive objects are linked.


Developing Speech Enabled Applications For Indian Languages and Dhvani TTS ‘eSpeak’, ‘Dhavni’ and ‘Festival’ are TTS(Text to Speech) for Indian language. Santhosh Thottingal the speaker gave live demonstration of the software. He wrote few lines of code to demonstrate library calls. One can set Pitch for TTS to change the voice. He explained with few lines of code, and different pitch setting for each spoken statemen, we can develop audio drama very quickly. TTS has many challenges. They already wrote many rules for Hindi TTS.


More details:

http://live.gnome.org/GAP/AtkGuide

http://dhvani.sourceforge.net



VBA Macros - The Fun Bits It is huge challenge to transfer existing VBA application to Open Office.org http://go-oo.org/ Website has some tools for it.


Day 4


Fedora Electronics Laboratory is EDA development Tool.


LKHG stands for Linux Kernel Hackers Gathering. Yes, we have few barriers before we start contributing to Linux Kernel. We need to understand the basics about kernel and jargons associated with it. We have many checklist before we submit our code. The development procedure is well documented. Many of my IBM colleagues are contributing to it. They talked about how and why they re-wrote the kernel code. LKHG: File Systems The speaker Christoph Hellwig explains that for a single CPU local file system we have alternatives like Ext3, XFS, Ext4, btrfs. For shared disk cluster we have GFS (by RedHat), OCFS2 (by Oracle and SuSE) and GFS2. For network file system we have NFSv4, NFSv4.1, pNFS, CIFS and Kernel AFS. Now Intel has built-in support for CRC32 check. So it expedite file access. SCSI T10 DIF/DIX is hot topic. Ext4 may come in early 2009. It has many nice features. One of them is seamless migration of data from Ext3 to Ext4.


LKHG: Profiling / Tracing / Debugging Initially we had only printk() functions for kernel debugging. Now we have Dprobes, Linux Trace Toolkit, KDB, KProbes (2.6.9 onwards), jprobe, kretprobe, modprobe etc. dfork system call takes 165 ms. Ananth – the speaker – explains relative pros and cons for Marker v/s KProbes. If we enable Markers they are faster, if we disable it has negligible impact on performance, because every time if statement will check marker is enable or not. If we enable, KProbe it is slower, if we disable it has zero impact.


LKHG: Power Management Vaidyanathan Srinivasan the speaker emphasize that nowadays power saving is one more criteria for scheduler. We have two classes for task. Real Time and non-Real Time. Group Scheduling is new concepts. We can put different tasks in different groups. Like one group for all browsers, another for Oracle application, another for particular user etc. Now, each group will get some percentage of time. The scheduler will pick up the next task is in two stage. First select group then select task within that group. I was wondering, why cannot we reuse such kernel code about scheduling for EVDO and HSDPA base station. I thinhk, their schedules are much complex than kernel.


Howto contribute to Subversion project Bhuvaneswaran A – the speaker encourage the audience to contribute to SVN and join the community. One can play different roles here like Code Reviewer, Patch Manager, Release Manager, Community Manager etc. He explained SVN architecture. CLI and GUI both interfaces used same client library calls. For HTTP we have surf and Neon. The library can use local repository also instead of HTTP protocol. For storage we have BDB and FSFS alternatives.


Machine Translation for Indic Languages using Apertium I noted down few useful URLs from Pranava Swaroop’s talk like Here we have Hindi Dictionary

http://xixona.dlsi.ua.es/~fran/hindidict.txt

http://apertium.sn.sourceforge.net/

http://apertium.svn.sourceforge.net/viewvc/apertium/

www.apertium.org


LKHG: Reverse Engineering and Porting Linux to a WinMobile PDA phone Harald Welte the speaker talked about pity of porting Linux to mobile device. Without active community participation, it takes longer time and when it is over the life span of that mobile model is also over, so no use. He talked about E-TEN glorfish, project gnufiish, jtagfinder project. He just run the kernel for the device under test, and pleasant surprise it runs.


He explained some tips for HaRET (Hardware Reverse Engineering Tech). FCC database has good resolution picture of PCB inside all mobile devices. Keep rebooting device with different pin connected to OCR, every time. At one pin you will get some signal, that is serial port. He identified S3C2442 application processor, SiRF GPS chipset. He explained hardware reverse engineering techniques with photographs. So many cables were associated with all possible pins inside mobile. The PCB was hidden just below shield. For some device this shield is also soldered. Then he gave various interrupt like pressing key. Each device has special mode of booting. If you press camera button, or other combination of buttons, while booting the device, then It may enter to camera mode OR USB mode OR factory test mode. HaRET console gives python script control over TCP port. “ROM cooking” IDA (Interactive Disassembly) used to convert byte code to assembly language code. The developers of WinCE device left few debug statement, that helped to identified function name. He demonstrated it. Disassembly is legal. Decompilation is also legal in this context as the purpose is to build inter operability. WinCE also has registry.


LKHG: Lightning Talks & Open House One student talked about Linux kernel with Pine (?) ser space. He was invited for next day workout. Atul emphasized on simple working model of kernel with less feature, so novice student can play with it. One IBM delegate replied with some tool to understand kernel code and propose to demonstrate it. Atul continued…we are giving so many options to student, who is very new to this kernel development. Next day these kernel related workouts were quite successful.


Hanji Hanji is a web server framework targeted to be hosted on personal devices like PDAs, Laptops, SmartPhones. Dojo toolkit is used for web UI. It is very easy and supports fast implementation for new applets. Django is Data Model + Applet + Web UI + HTML points. The speaker Philippe May gave some live example of Point, Set is group of points, Track is link series of points. Server side we have Python and Client side it is JavaScript or Dojo widgets. For more details visit phil.hanjinet.org


Day 5


Linux Sound in 2008 The speaker Lennart Poettering explained the Linux architecture for audio. Alloca is a fnction in ACCA that allocates memory from stack. So no memory leak. No need to free. JACK has GUI. OSS is kernel interface. No method to provide time. Just write raw bytes to it, and it will be played. We can redirect library calls and implement or own library. Pulse Audio, SDL. Open AL is for positional audio, widely used by game developers. Phonon, KNotify, Xine, MPlayer, ESD, NAS etc are various building blocks with own APIs to programme audio in Linux.


Anatomy of Fedora Kiosk Mode It is to provide guest access to any user in Fedora.


Innovating with Mozilla Labs: The Weave Story. Mozial Labs has many useful tools. Snowl, Ubiquity (command line interface for browser), weave, Test Pilot (for testing beta releases), Prism (for website specific browsers), Personas etc. Weave used to transfer your bookmarks, cookies, passwords, history etc. Where ever you go, they follows with you like Hutch network. You can upload any video on Youtube with tag mozoconcept, then it will reach to community. Ubiquity had very few commands initially like, translate, replace, map etc. Out of all these, so far Prism got visibility with production build.


For details

Labs.mozila.com


FOSS.in has two tradition. We do not invite chief guest. And we end with some non-FOSS related talk, where no software, just FOSS principle. Atul felt embarrassed to propose Kalyan a close friend to request for closing keynote. He introduced Kalyan with an old e-mail where Kalyan requested to participate in Banglore Linux User Group meeting. We all had great fun with Kalyan as closing key note address speaker.


Kalyan explained Free world as ‘Caring and Sharing’. Art of Living mission statement is also similar. ‘We care, we share’. As being photographer, his presentation has so many pictures. He explained very nicely with some insects photographs, what is mean by FOSS. It is all about community efforts. He talked about Security. It can never be broken, it just bypassed. Like back-door entry. Like getting credit card details with social networking. With live example of rediff.com e-commerce site, he explained how to order, without paying money. Just replace N with Y in address bar. He informed that Rediff has fixed this bug. :( But we may have such Indian e-commerce website, where one can try his luck to get free stuff. Feeling secure is more important than actual security. Again he gave some live example of IISc campus, his own home, recent Bombay bomb blast etc.


Then he compare photography with programming. In analog photography days, experts were not sharing tricks to make better photograph. Now flicker has many notes about special effects. A common man staying next to hotel took photos of bomb blast, uploaded on flicker and shared with twitter, that is used by TV channels. National Geography confirmed that most of the best pictures come from immature photographers. He shared his experience that how his wild life photographs, used by Tamil movie ‘Snakes on Plane’, Maxima magazine, BBC etc. He uploaded high resolution pictures, that paid off. He believes in this world, good people are more compare to bad people.


He demonstrated result of automatic camera for wild life photography. It sense temperature change and take photos. One bird keep on visiting same place because of this camera sound and it make camera memory exhausted. Elephants are very curious like human beings. So it took camera inside its trunk. Camera got destroyed but not memory card, so we saw those photos.


FOSS principle is understand the problem, before finding solution. And recognize the problem, that is beyond just in front of your nose. Share your work. You will get recognition. Believe in friends. His friends printed calendars with his wild life photographs and provide him a platform. His talk forced the audience to think something serious. Make the difference for you and others.


He shared his recent experience of Kachchha (Gujarat). He appreciated Gujarat for mobile connectivity throughout the desert of Kachchha. :) At one point, his driver was confused and lost the way. Kalyan used his GPS, Goolge map over GPRS and guided him that after 300 m, there will be well and take left from there. The driver was amazed.


Atul ended with closing remarks about sponsors. In the present economic situation, it is difficult to get sponsors. But we managed. Even Nokia who has monopoly in market, sponsor FOSS. Some people play cricket, and others chess. We do FOSS.in. For a painter painting process is joyful, but more joyful is when people see the painting. Same way for Atul and his team the real joy is how the community used this FOSS.in platform by participating in talks, workouts, BoFs etc. We all met new diversified people: student and professionals, young and old, thin and fat. We had funny video captured during events and thanks giving ceremony.

Click here for FOSS-IN/2006

1 comments:

Anonymous said...

Hey Manish,
Pretty neat summary.I loved the Mozilla slides since I am a ardent fan of Ubiquity.

It has been almost 2 years since I went to FOSS but after reading your article,I felt I have also participated in FOSS.

Being an Embedded Engineer and currently working on Open Source, I loved the Audio Architecture as well.

Kalyan Verma is always rocking !!! Thumbs up to Atul Chitnis and his team for such a great event !!!

Awaiting more articles from you on such kind of events.

-Himanshu Sheth

Post a Comment