About

Debian is the universal operating system. Thus, it needs to run on mobile devices. This wiki page is a tool to help bring Debian to mobile platforms.

It would be great if Debian could run on many kinds of mobile devices: iPhones, Android capable HW, Windows Mobile HW, tablets, etc.

The software should allow dual booting, into both Debian and any software that came with the hardware.

Debian on mobile devices should have GUI capabilities, appropriate to the hardware capabilities.

It would also be great if Debian could run applications written to be native to the original OS for the hardware. This will enable Debian to serve the many people in society who want to easily use those applications.

Debian might benefit from having its own User Interface, or UIs, based on progression from the desktop Debian UIs - ex, GNOME or KDE. It would be great if the GNOME, KDE and other GUI communities could come to agreement on a common UI for Debian, to save unnecessary duplication of development effort, both of the Debian UI, and application software for Debian. Also to save the users from having to learn unnecessary extra UIs.

Origin and Purpose

To get this wiki page started, see the original message I sent suggesting this project. It includes some reference URLs, to help seed thinking on Debian on smartphones development.

Contributions

Many people made useful replies to that email, and it would be great if they would add their suggestions of software components, foundations, and URLs thereof to this page. If we all take a few minutes to make contributions to this page when we have something valuable to add, this page will grow to be a great resource for us all. So, please take a moment to add something valuable to this page right now, or when you have the opportunity.

Howto

Learn software development. Port low-level stuff to a device. Package some middleware. Package a user experience. Package applications that can deal with small screens and touch input. Build images for users to flash onto the device. Get hardware to developers.

Learning

At various stages you will need to learn some of the following. This can be done at the same time as working on Debian for smartphones.

Languages:

ARM assembly: Linux, bootloaders

C: Linux, bootloaders, UIs

make: build systems

Python: middleware, applications

Vala: middleware, applications

Tools:

Version control:

git: Linux, middleware, applications

svn: UI, applications

bzr: applications

Compilers: GCC, LLVM, GCC cross-compilers

Build systems:

make: almost everything

autotools: middleware, UI, applications

cmake: some things

other: Linux and bootloaders might have custom build systems based on make

Porting

Pick a specific device. Get support for it into a bootloader (u-boot/etc), mainline Linux. Ask relevant teams to build linux/bootloader packages that work on your device. Port the debian installer to the device.

This is most of the work. It is important to get your changes into Linux/u-boot mainline otherwise Debian will not be able to support your device since the Linux kernel team for Debian will not add non-mainline drivers/patches to Debian kernels and therefore you won't be able to support Debian on the phone you care about. It will be made easier since the Android drivers probably already exist and can be ported to mainline Linux. Some hardware vendors will be violating the GPL and not releasing drivers/patches. You might be able to get the code by contacting them or getting the Software Freedom Conservancy or gpl-violations.org involved.

Middleware

Pick some middleware, join the packaging group for it or package it for Debian and look for some sponsors.

UI

Pick a UI or create a new one, create a team, start packaging it for Debian and look for sponsors.

There are numerous existing FLOSS UXen for mobile devices. As the universal OS, Debian should aim to support several of these.

Applications

Images

Talk to the Debian installer, live and CDs teams about building daily, weekly and release images that people can flash onto their phones. This could significantly change the way Debian images are built so it will require a fair bit of discussion first.

Other tips

If you can get hardware into the hands of kernel developers that would help a lot. You might find some hardware manufacturers who are willing to give out some free samples to developers.

glshim: video acceleration for OpenGL 1.x software on mobile devices that use OpenGL ES. note that this isn't needed for GPUs with Free Software drivers because mesa supports both OpenGL 1.x and OpenGL ES on the same hardware.

Halium: group maintenance of Android parts that cannot be added to normal GNU/Linux distributions, as well as compatibility shims. This includes proprietary blobs as well as Android forks of the Linux kernel.

webOS: mobile distribution based on HTML/JS, OpenEmbedded, backed by HP

See Also

Let's start the "Debian distro for Android capable hardware phones".
What are the first steps we can easily take, to get started on this?
1) Talk about how to do it on this email list.
2) Put something on www.debian.org web page about beginning to work on
this project.
3) Create a mailing list for "Debian for Android Hw".
4) Send some thoughts in reply to this email, & to the new mailing list.
5) Make a wiki page for "Debian distro for Android capable hardware
phones".
- http://wiki.debian.org/DebianOnHandhelds
=
My motivation:
I got an Android capable smartphone/computer a few months ago. - Samsung
Intercept, Virgin Mobil, $200, $25/month includes unlimited internet.
Of course, I'd like to get a GNU(Linux) distro on it. So, rather than
have to piece together something using CyanogenMod & piece a bunch of
aps together, I'd just like to have a KUbuntu version to put on there.
- Download the ISO, start, 15 minutes later it's all there with all my
familiar desktop aps in smartphone version.
So, I figure, first step (before getting my KUbuntu), is there needs to
be the Debian for Android Hw smartphones distro, for KUbuntu to build on
top of.
=
Ok, well, there you are, folks. I've done my initial part for the
project - suggest it get started. So, can some interested Debian
individuals please now step it another step forward?
Thanks for all the great Debian stuff! :)
===== References:
http://wiki.debian.org/DebianOnHandhelds
http://wiki.debian.org/Handheld
http://wiki.debian.org/Hardware
http://wiki.debian.org/
-
How can open source survive in a post-PC World?
http://www.h-online.com/open/features/How-can-open-source-survive-in-a-post-PC-world-1210071.html
How can open source survive in a post-PC World? (h-online.com)
http://news.ycombinator.com/item?id=2348907
WikiPedia:List_of_open_source_Android_applications
http://maniacdev.com/2010/06/35-open-source-iphone-app-store-apps-updated-with-10-new-apps/
Open Source iPhone Apps List – Real App Store Code Examples!
http://maniacdev.com/2010/06/35-open-source-iphone-app-store-apps-updated-with-10-new-apps/
-
http://www.cyanogenmod.com/
WikiPedia:CyanogenMod
WikiPedia:Android_%28operating_system%29
-
Permanent root for the Samsung Intercept
http://forum.sdx-developers.com/intercept-development-2-2/sprint-intercept-wfroyo-permanent-root-using-epic-expoit/
[HOWTO] Rooting your Samsung Intercept the Easy Way
http://forum.xda-developers.com/showthread.php?t=890460
Samsung Intercept > Intercept Android Development
http://forum.xda-developers.com/forumdisplay.php?s=b6120fd362a554792ba666425dc5e102&f=901