EmbeddedUbuntu
4129
Comment:
|
← Revision 46 as of 2009-04-30 12:54:01 ⇥
11711
|
Deletions are marked like this. | Additions are marked like this. |
Line 4: | Line 4: |
* '''Created''': [[Date(2005-10-31T22:49:33Z)]] by AndersonLizardo, CarlosCesa, EdjardMota * '''Contributors''': AndersonLizardo, CarlosCesa, EdjardMota |
* '''Created''': <<Date(2005-10-31T22:49:33Z)>> by AndersonLizardo, CarlosCesa, EdjardMota * '''Contributors''': AndersonLizardo, CarlosCesa, EdjardMota, lucasvo, RodrigoBelem, BrunoAbinader |
Line 7: | Line 7: |
Line 10: | Line 11: |
In general, mobile devices for specific purposes are expensive. On the other hand, those for general purpose are not flexible enough. Embedded Ubuntu is a highly flexible framework to generate customised Ubuntu derivatives for target mobile devices. | Embedded Linux is a fast growing operating system option in the world of mobile devices. Unfortunately, existing frameworks to embed Linux are either complex (e.g. use too many hacks to fake a native environment) or use proprietary code on the target side. This brings a lot of constraints to porting desktop applications for the handheld world and making a completely Free embedded operating system. Embedded Ubuntu is an initiative to build a community around the development of a highly flexible and simple framework to generate customised Ubuntu derivatives for target architectures found in mobile devices. |
Line 14: | Line 15: |
There are over 1 billion mobile phone users worldwide and over 2 billion connections. Such mobile devices, PDAs and new embedded devices such as Internet Tablets could be of more use to a wider population, mostly to those who cannot afford to pay high prices to have multimedia applications in their hands. Since the Ubuntu principle is to have Linux for human beings, to embed Ubuntu into such mobile devices is the fundamental basis of having people not only connected but humanly connected. |
There are over 1 billion mobile phone users worldwide and over 2 billion connections. Such mobile devices, PDAs and new embedded devices such as Internet Tablets could be of more use to a wider population, mostly those who cannot afford to pay high prices to have multimedia applications in their hands. Since the Ubuntu principle is to have Linux for human beings, to embed Ubuntu into such mobile devices is the fundamental basis of having people not only connected but humanly connected. |
Line 25: | Line 20: |
* Maria and her class mates of a primary school need to make up a report on how to protect the environment of dolphins, digitally recorded by them. They ask assistance from Jeff who selects a suitable subset of Ubuntu applications. He then generates an Embedded Ubuntu system image for the Internet Tablets they have and flashes it on the devices. The kids use Gstreamer, for example, and through WiFi connection they send their 5 minutes content to a 3G mobile phone of their teacher, which sends the content to other childreen in another city who never saw a dolphin in their lives. | * Maria and her primary school class mates need to create a report on how to protect the environment of dolphins. The report must be digitally recorded by them. They ask assistance from Jeff who selects a suitable subset of Ubuntu applications. He then generates an Embedded Ubuntu system image for the Internet Tablets they have and flashes it on the devices. The kids use Gstreamer, for example, and through a WiFi connection send their 5 minutes of content to a their teachers' 3G mobile phone . The teacher can then send the content to other children in another city who have never seen a dolphin in their lives. |
Line 27: | Line 22: |
* Miriam is a family practice physician who works on a remote village. She needs to send photos of her patients' lesons to an specialist in an advanced medical center to make the differential diagnostic. She receives an Embedded Ubuntu DVD, with pre-selected suitable applications from a friend and installs it on her PDA/Internet Tablet. She accesses her office on the Interner through WiFi connection and her cell phone, sends the photos and discuss with the specialist. | * Miriam is a family practice physician who works in a remote village. She needs to send photos of her patients' lessons to a specialist in an advanced medical center to make the differential diagnostic. She receives an Embedded Ubuntu DVD with pre-selected suitable applications from a friend and installs it on her PDA/Internet Tablet. She accesses her office on the Internet through WiFi connection and her cell phone, sends the photos and discusses with the specialist. |
Line 31: | Line 26: |
EmbeddedUbuntu will initially cover only ARM-based platforms, preferably with a LCD display. This includes, for instance, ARM-based PDAs and Internet Tablets. | EmbeddedUbuntu will initially cover ARM-based platforms, preferably with a LC-Display. This includes ARM-based PDAs and Internet Tablets. Development is being done on the TI OMAP 5912 Starter Kit (see http://tree.celinuxforum.org/CelfPubWiki/OSK for more information about this device). |
Line 33: | Line 28: |
== Design == {{{XXX: dsilvers: Should this be empty?}}} |
There are a number of OMAP (a popular embedded platform) devices already running Linux: http://www.muru.com/linux/omap/devices/. These should be easier to work with because there is kernel support for most of their hardware, so we will concentrate on supporting this class of device first. There is also a good list of devices running linux on: http://www.handhelds.org/moin/moin.cgi/SupportedHandheldSummary |
Line 39: | Line 32: |
* Minimal System * Create a minimal seed, using GPE as graphical environment and select some user applications (e.g. EduUbuntu). * Use the seed above to generate the list of packages to be imported from Debian ARM distribution * Implement a cross-installation system: - Create a package that contains a statically linked version of QEMU ARM user emulator (qemu-arm-static) - Use dpkg-cross to install the ARM libc6 package on the host (usually not ARM-based). - Use the binfmt_misc kernel module to support running ARM binaries on non-ARM platforms, using QEMU as interpreter - Modify debootstrap to properly work for cross-bootstrapping, allowing us to create a minimal bootstrap system * Implement dpkg hooks that strip documentation and other files not necessary for running applications to reduce the final image size * Investigate a method to create system images to be flashed on the mobile device. * Package the rest of GPE modules not yet on universe. * Cross-Compile Linux kernel and bootloader to specific platforms |
* Create an emulated environment of the target platform with no memory or storage restrictions. This allows us to use traditional tools like dpkg, debootstrap and apt-get to generate and update the target filesystem. (DONE) * Create a package that contains a statically linked version of QEMU ARM user emulator (qemu-arm-static) * Use dpkg-cross to install the ARM libc6 package on the host (usually not ARM-based). * Use the binfmt_misc kernel module to support running ARM binaries on non-ARM platforms using QEMU to emulate the target platform. |
Line 52: | Line 37: |
* Distribution Mechanism: Create installation CD with tools needed to flash the generated system images on mobile devices | * Implement a cross-installation system (DONE) * Modify debootstrap to properly work for cross-bootstrapping, allowing us to create a minimal bootstrap system |
Line 54: | Line 40: |
* Integrate **lightweight EduUbuntu** applications | * Implement dpkg hooks that strip documentation (and other files not necessary for running applications). |
Line 56: | Line 42: |
{{{XXX: dsilvers: Do we need an arm port of Ubuntu to achieve this?}}} | * Investigate a method to create system images to be flashed on the mobile device. * Investigate flashing methods for each platform (for OSK 5912: http://tree.celinuxforum.org/CelfPubWiki/FlashRecoveryUtility). * Select lightweight packages suitable (or easily adaptable) for use on embedded devices. * Select a set of applications to build a very simple reference system (for example, for demos); initially, GPE will be used as reference graphical environment. * Package the rest of GPE modules not yet on universe. * Create an archive of ARM packages ready to be installed on the embedded system. Not all applications currently available for Ubuntu are suitable for embedded hardware, so they should be ommited from this archive. * Compile Linux kernel and bootloader to specific platforms (tested and working for OSK 5912 platform). * The Linux kernel used in this process will be the linux-omap tree, available from http://www.muru.com/linux/omap. This tree has patches (periodically synced upstream) necessary to have a fully working kernel on OMAP-based devices. * For the bootloader, we will use U-boot, available from http://sourceforge.net/projects/u-boot. * Distribution mechanism: create installation CD with tools needed to flash the generated system images on mobile devices. |
Line 60: | Line 59: |
{{{XXX: dsilvers: Should this be empty?}}} | The Operating System that was previously installed on the mobile device will be lost after flashing the customized Ubuntu. Support for backing up the previous OS can be added in future. |
Line 64: | Line 63: |
QEMU should be intensively tested for full system installation. | * Some applications behave badly when running under QEMU. For instance, "update-gdkpixbuf-loaders" (run by some post-installation scripts) currently segfaults when running under QEMU. We should investigate why this happens and fix QEMU (or the application itself where aplicable). Some syscalls are not implemented in QEMU yet, but they do not seem to be critical for building and installing packages. * QEMU should be intensively tested for full system installation. For now it was tested for a minimal debootstrap installation. Basic client X libraries and applications also installed without problems. Package building (using debuild) worked fine too. |
Line 67: | Line 68: |
* FabioDiNitto suggested either building packages natively or using pre-built cross-toolchains to build the ARM archive. Packaging cross-toolchains for each host-target combination would be unpractical. * LaMontJones explained a lot about how Build Daemons work and how a new archive pool is created. He also suggested using breezy as a base and initially building main (maybe not whole main?) and those packages from universe we might need. * MattZimmerman asked us to send the patches we have for existing packages, and submit the new packages for inclusion into universe, so we can have a working cross-development environmment for dapper. * AndriyTymchenko suggested to consider [[http://www.nokia.com/770|Nokia 770]] as potential platform for development - start with taking software from [[http://maemo.org/|Maemo.org]], strip what seems to be not necessary (try to retain core SW as much as possible), and build on top of it. Comments/feedback requested. == Announcement == Ubuntu Mobile and Embedded Edition At the heart of the Ubuntu project lies a belief that open source software and technology can play a key role in enabling individuals to achieve their potential. A central goal has been the creation of a world-class, free and open source operating system that we have worked to make accessible across notebooks, desktops, thin clients and servers. Three years on, it is clear that new types of device - small, handheld, graphical tablets which are Internet-enabled are going to change the way we communicate and collaborate. These devices place new demands on open source software and require innovative graphical interfaces, improved power management and better responsiveness. Intel, specifically, have announced a new low-power processor and chipset architecture which will be designed to allow full internet use on these mobile Internet devices. To fulfil the aims of our mission and in response to the technical challenges that these devices pose, we are announcing the Ubuntu Mobile and Embedded project. We will start more detailed planning at the Ubuntu Developer Summit next week in Seville and the first release of this edition will be in October with Ubuntu 7.10. If you are interested in the project, please get involved. We will be working through our normal development processes on Launchpad, the developer mailing lists and IRC. Finally, we are delighted to be working with Intel on this version of Ubuntu. Intel are making significant contributions of technology, people and expertise to the project. We hope that others who are interested in producing an easy-to-use and open source environment for this class of device will join us in making this a success. Matt Zimmerman Sat May 5 11:10:26 BST 2007 [[https://lists.ubuntu.com/archives/ubuntu-devel-announce/2007-May/000289.html]] == Similar projects == * The Emdebian Project (http://www.emdebian.org/) is an official Debian project which shares some goals with this project. They are working on dpkg-cross and have already developed cross-toolchain packages for a lot of platforms (ARM, MIPS, ...). They use Stag (http://stag.mind.be/) and Scratchbox (http://www.scratchbox.org/) to build the platform. Stage and Slind are main distributions now, in process of merging. Check http://www.aleph1.co.uk/talks/emdebian/Debconf2005.pdf for a talk given at Debconf by one of the main developers. The mailing list used for coordination is debian-embedded@lists.debian.org. * Have you guys considered http://www.openembedded.org. It is very easy to use even for someone like me that really knows nothing about compiling (even less about cross-compiling), is cleverly designed, has a fast growing and helpful community, scales extremely well. Give it a spin. It might just be 99,9% of what you are trying to painfully design here. OpenEmbedded is a metadata repository for creating embedded distributions. * The Familiar Distribution is a distribution for Handhelds based on OpenEmbedded. http://familiar.handhelds.org ---- * I have been using openembedded for about 6 months now and I do believe it has about 99% of the objectives required for this project. The only major thing missing from it would be a nice gui interface. The system is set up in such a manner that it would be very easy to program such an interface. I, myself, prefer the command line interface but I do believe for human usability (Ubuntu style!) it needs a gui. * Although not directly aiming at creating a framework, I think it should be mentioned here, that there already seems to evolve a very viable 'competition' to a possible 'Embedded Ubuntu' namely [[http://www.openmoko.org|Openmoko]]. It has the added advantage of a hardware manufacturer supporting it, thus being able to avoid binary kernel modules (it least on the soon to be released phone [[http://en.wikipedia.org/wiki/Neo1973|Neo1973]]. * A OpenEmbedded/Debian based distribution that could be very interesting is [[http://www.angstrom-distribution.org/|Angstrom]]. * Google [[http://code.google.com/android/|Android]] could be an interesting platform. ---- CategorySpec |
Launchpad Entry: https://launchpad.net/distros/ubuntu/+spec/embedded-ubuntu
Created: 2005-10-31 by AndersonLizardo, CarlosCesa, EdjardMota
Contributors: AndersonLizardo, CarlosCesa, EdjardMota, lucasvo, RodrigoBelem, BrunoAbinader
Packages affected: qemu, debootstrap, dpkg-cross, binfmt-support
Summary
Embedded Linux is a fast growing operating system option in the world of mobile devices. Unfortunately, existing frameworks to embed Linux are either complex (e.g. use too many hacks to fake a native environment) or use proprietary code on the target side. This brings a lot of constraints to porting desktop applications for the handheld world and making a completely Free embedded operating system. Embedded Ubuntu is an initiative to build a community around the development of a highly flexible and simple framework to generate customised Ubuntu derivatives for target architectures found in mobile devices.
Rationale
There are over 1 billion mobile phone users worldwide and over 2 billion connections. Such mobile devices, PDAs and new embedded devices such as Internet Tablets could be of more use to a wider population, mostly those who cannot afford to pay high prices to have multimedia applications in their hands. Since the Ubuntu principle is to have Linux for human beings, to embed Ubuntu into such mobile devices is the fundamental basis of having people not only connected but humanly connected.
Use cases
Maria and her primary school class mates need to create a report on how to protect the environment of dolphins. The report must be digitally recorded by them. They ask assistance from Jeff who selects a suitable subset of Ubuntu applications. He then generates an Embedded Ubuntu system image for the Internet Tablets they have and flashes it on the devices. The kids use Gstreamer, for example, and through a WiFi connection send their 5 minutes of content to a their teachers' 3G mobile phone . The teacher can then send the content to other children in another city who have never seen a dolphin in their lives.
Miriam is a family practice physician who works in a remote village. She needs to send photos of her patients' lessons to a specialist in an advanced medical center to make the differential diagnostic. She receives an Embedded Ubuntu DVD with pre-selected suitable applications from a friend and installs it on her PDA/Internet Tablet. She accesses her office on the Internet through WiFi connection and her cell phone, sends the photos and discusses with the specialist.
Scope
EmbeddedUbuntu will initially cover ARM-based platforms, preferably with a LC-Display. This includes ARM-based PDAs and Internet Tablets. Development is being done on the TI OMAP 5912 Starter Kit (see http://tree.celinuxforum.org/CelfPubWiki/OSK for more information about this device).
There are a number of OMAP (a popular embedded platform) devices already running Linux: http://www.muru.com/linux/omap/devices/. These should be easier to work with because there is kernel support for most of their hardware, so we will concentrate on supporting this class of device first. There is also a good list of devices running linux on: http://www.handhelds.org/moin/moin.cgi/SupportedHandheldSummary
Implementation
- Create an emulated environment of the target platform with no memory or storage restrictions. This allows us to use traditional tools like dpkg, debootstrap and apt-get to generate and update the target filesystem. (DONE)
- Create a package that contains a statically linked version of QEMU ARM user emulator (qemu-arm-static)
- Use dpkg-cross to install the ARM libc6 package on the host (usually not ARM-based).
- Use the binfmt_misc kernel module to support running ARM binaries on non-ARM platforms using QEMU to emulate the target platform.
- Implement a cross-installation system (DONE)
- Modify debootstrap to properly work for cross-bootstrapping, allowing us to create a minimal bootstrap system
- Implement dpkg hooks that strip documentation (and other files not necessary for running applications).
- Investigate a method to create system images to be flashed on the mobile device.
Investigate flashing methods for each platform (for OSK 5912: http://tree.celinuxforum.org/CelfPubWiki/FlashRecoveryUtility).
- Select lightweight packages suitable (or easily adaptable) for use on embedded devices.
- Select a set of applications to build a very simple reference system (for example, for demos); initially, GPE will be used as reference graphical environment.
- Package the rest of GPE modules not yet on universe.
- Create an archive of ARM packages ready to be installed on the embedded system. Not all applications currently available for Ubuntu are suitable for embedded hardware, so they should be ommited from this archive.
- Compile Linux kernel and bootloader to specific platforms (tested and working for OSK 5912 platform).
The Linux kernel used in this process will be the linux-omap tree, available from http://www.muru.com/linux/omap. This tree has patches (periodically synced upstream) necessary to have a fully working kernel on OMAP-based devices.
For the bootloader, we will use U-boot, available from http://sourceforge.net/projects/u-boot.
- Distribution mechanism: create installation CD with tools needed to flash the generated system images on mobile devices.
Data preservation and migration
The Operating System that was previously installed on the mobile device will be lost after flashing the customized Ubuntu. Support for backing up the previous OS can be added in future.
Outstanding issues
- Some applications behave badly when running under QEMU. For instance, "update-gdkpixbuf-loaders" (run by some post-installation scripts) currently segfaults when running under QEMU. We should investigate why this happens and fix QEMU (or the application itself where aplicable). Some syscalls are not implemented in QEMU yet, but they do not seem to be critical for building and installing packages.
- QEMU should be intensively tested for full system installation. For now it was tested for a minimal debootstrap installation. Basic client X libraries and applications also installed without problems. Package building (using debuild) worked fine too.
BoF agenda and discussion
FabioDiNitto suggested either building packages natively or using pre-built cross-toolchains to build the ARM archive. Packaging cross-toolchains for each host-target combination would be unpractical.
LaMontJones explained a lot about how Build Daemons work and how a new archive pool is created. He also suggested using breezy as a base and initially building main (maybe not whole main?) and those packages from universe we might need.
MattZimmerman asked us to send the patches we have for existing packages, and submit the new packages for inclusion into universe, so we can have a working cross-development environmment for dapper.
AndriyTymchenko suggested to consider Nokia 770 as potential platform for development - start with taking software from Maemo.org, strip what seems to be not necessary (try to retain core SW as much as possible), and build on top of it. Comments/feedback requested.
Announcement
Ubuntu Mobile and Embedded Edition
At the heart of the Ubuntu project lies a belief that open source software and technology can play a key role in enabling individuals to achieve their potential. A central goal has been the creation of a world-class, free and open source operating system that we have worked to make accessible across notebooks, desktops, thin clients and servers.
Three years on, it is clear that new types of device - small, handheld, graphical tablets which are Internet-enabled are going to change the way we communicate and collaborate. These devices place new demands on open source software and require innovative graphical interfaces, improved power management and better responsiveness.
Intel, specifically, have announced a new low-power processor and chipset architecture which will be designed to allow full internet use on these mobile Internet devices.
To fulfil the aims of our mission and in response to the technical challenges that these devices pose, we are announcing the Ubuntu Mobile and Embedded project.
We will start more detailed planning at the Ubuntu Developer Summit next week in Seville and the first release of this edition will be in October with Ubuntu 7.10. If you are interested in the project, please get involved. We will be working through our normal development processes on Launchpad, the developer mailing lists and IRC.
Finally, we are delighted to be working with Intel on this version of Ubuntu. Intel are making significant contributions of technology, people and expertise to the project. We hope that others who are interested in producing an easy-to-use and open source environment for this class of device will join us in making this a success.
Matt Zimmerman
Sat May 5 11:10:26 BST 2007
https://lists.ubuntu.com/archives/ubuntu-devel-announce/2007-May/000289.html
Similar projects
The Emdebian Project (http://www.emdebian.org/) is an official Debian project which shares some goals with this project. They are working on dpkg-cross and have already developed cross-toolchain packages for a lot of platforms (ARM, MIPS, ...). They use Stag (http://stag.mind.be/) and Scratchbox (http://www.scratchbox.org/) to build the platform. Stage and Slind are main distributions now, in process of merging. Check http://www.aleph1.co.uk/talks/emdebian/Debconf2005.pdf for a talk given at Debconf by one of the main developers. The mailing list used for coordination is debian-embedded@lists.debian.org.
Have you guys considered http://www.openembedded.org. It is very easy to use even for someone like me that really knows nothing about compiling (even less about cross-compiling), is cleverly designed, has a fast growing and helpful community, scales extremely well. Give it a spin. It might just be 99,9% of what you are trying to painfully design here. OpenEmbedded is a metadata repository for creating embedded distributions.
The Familiar Distribution is a distribution for Handhelds based on OpenEmbedded. http://familiar.handhelds.org
- I have been using openembedded for about 6 months now and I do believe it has about 99% of the objectives required for this project. The only major thing missing from it would be a nice gui interface. The system is set up in such a manner that it would be very easy to program such an interface. I, myself, prefer the command line interface but I do believe for human usability (Ubuntu style!) it needs a gui.
Although not directly aiming at creating a framework, I think it should be mentioned here, that there already seems to evolve a very viable 'competition' to a possible 'Embedded Ubuntu' namely Openmoko. It has the added advantage of a hardware manufacturer supporting it, thus being able to avoid binary kernel modules (it least on the soon to be released phone Neo1973.
A OpenEmbedded/Debian based distribution that could be very interesting is Angstrom.
Google Android could be an interesting platform.
EmbeddedUbuntu (last edited 2009-04-30 12:54:01 by 193)