1 2006.10.18 OpenEmbedded. Wprowadzenie OpenEmbedded Wprowadzenie Marcin Juszkiewicz Poznań 2006.10.18
2 2006.10.18 OpenEmbedded. Wprowadzenie OpenEmbedded i ja Czerwiec 2003: Palm M105 by sprawdzić, czy palmtop jest tym czego szukałem Wrzesień 2003: Sony Clie SJ30 ekran wysokiej rozdzielczości, niestety słabo wspierany przez system Luty 2004: Sharp Zaurus SL-5500 bo dobrze jest móc pogrzebać w systemie Marzec 2004: Pierwszy kontakt z OpenEmbedded chciałem coś skompilować nas Zaurusa Maj 2004: Dołączyłem do teamu OpenEmbedded jako opiekun SL-5500 Kwiecień 2005: Przesiadka na Sharp Zaurus C-760 Grudzień 2005: Michael Lauer przekazał mi zarządzanie dystrybucją OpenZaurus Marzec 2006: OpenZaurus 3.5.4 wydany przez wielu ogłoszony najlepszą wersją Czerwiec 2006: OpenZaurus 3.5.4.1 wydany wszystkie modele wspierane Sierpień 2006: Pierwsza testowa wersja OpenZaurusa z kernelem 2.6 dla SL-5600 i SL- 6000 Wrzesień 2006: Założyłem własną firmę HaeRWu zajmującą się konsultacjami związanymi z OpenEmbedded
3 2006.10.18 OpenEmbedded. Wprowadzenie Czym jest OpenEmbedded? w pełni otwartym rozwiązaniem problemów z kompilacją skrośną systemem rozwijanym przez pasjonatów projektem niezależnym od żadnej firmy komercyjnej narzędziem tworzącym systemy plików gotowe do użycia na docelowych urządzeniach odpowiedzią na dystrybucje wymagające 200 MiB dysku na podstawowy system
4 2006.10.18 OpenEmbedded. Wprowadzenie Historia 2001: Sharp wypuszcza na rynek swego pierwszego LinuxPDA: Sharp Zaurus SL-5000 2002: Chris Larson zaczyna prace nad własną dystrybucją o nazwie OpenZaurus 2002-2003: Buildsystem używany przez developerów (buildroot) staje się coraz bardziej niewygodny przy dodawaniu nowych pakietów i urządzeń Styczeń 2003: Dyskusje nad nowym systemem do budowania oprogramowania ma być niezależny od dystrybucji i urządzeń Luty 2003: Holger Schurig tworzy pierwszą wersję OpenEmbedded Maj 2003: Chris Larson rozwija funkcjonalność OpenEmbedded i zaczyna konwertować pakiety z poprzedniego systemu Grudzień 2003: Michael Lauer wypuszcza OpenZaurus-a 3.3.5 będącego ostatnią wersją zbudowaną przy użyciu poprzedniego systemu Maj 2004: Marcin Juszkiewicz dołącza do teamu OpenEmbedded Grudzień 2004: OpenEmbedded zostaje podzielony na BitBake i metadane Lipiec 2005: OpenEmbedded przechodzi z BitKeepera na Monotone
5 2006.10.18 OpenEmbedded. Wprowadzenie Możliwości OpenEmbedded umożliwia budowanie oprogramowania i całych dystrybucji automatyczne generowane zależności pomiędzy pakietami obsługa kompilacji skrośnej niezależność od dystrybucji i architektury umożliwia definiowanie dowolnej liczby zadań w ramach pakietu umożliwia kooperację różnych projektów w ramach jednych metadanych posiada prosty format pakietów budowanie z zależnościami od docelowego urządzenia, dystrybucji, architektury duża granulacja pakietów (dokumentacja osobno, lokalizacje osobno)
6 2006.10.18 OpenEmbedded. Wprowadzenie Kto używa OpenEmbedded Dystrybucje: Ångström Familiar JLime Nylon OpenOmap OpenSlug OpenZaurus Firmy: 4G-Systems (Meshcube router) AMD CELF (Consumer Electronics Linux Forum) Dream Multimedia TV (Dreambox DVB settopbox) Siemens
7 2006.10.18 OpenEmbedded. Wprowadzenie Wspierane urządzenia Palmtopy: Sharp Zaurus (wszystkie modele poza SL-A300) ipaq h1910, h1940, h3600, h3900, h5400, h2200, hx2000, h4000, hx4700, h6300 HP Jornada 5xx, 6xx, 7xx Nokia 770 Psion NetBook Pro Siemens SIMpad Routery, serwery plików: Linksys NSLU2 Linksys WRT54 Meshcube ASUS wl500g A także: różne devboardy, komputery domowe, settopboksy (np. Dreambox DVB).
8 2006.10.18 OpenEmbedded. Wprowadzenie Pakiety Dostępne pakiety: toolchainy bazujące na glibc, uclibc różne programy przydatne developerom (debugery, testy) aplikacje sieciowe, daemony X.Org 7.1 GCC 3.3.x, 3.4.x, 4.1.x GPE Palmtop Environment Open Palmtop Integrated Environment języki programowania takie jak Perl, PHP, Python, Ruby Ogółem OpenEmbedded zawiera prawie 4000 pakietów co przekłada się na ponad 12000 pakietów gotowych do użycia na docelowych urządzeniach.
9 2006.10.18 OpenEmbedded. Wprowadzenie Przykładowy opis urządzenia #@TYPE: Machine #@NAME: OMAP5912 cpu on an OSK board #@DESCRIPTION: Machine configuration for the OMAP Starter Kit with a 5912 processor TARGET_ARCH = "arm" IPKG_EXTRA_ARCHS = "armv5te" PREFERRED_PROVIDER_virtual/kernel = "linux-omap1" SERIAL_CONSOLE?= "115200 ttys0" EXTRA_IMAGECMD_jffs2 = "--pad --little-endian --eraseblock=0x20000 -n" MACHINE_FEATURES = "kernel26 pcmcia usbhost" include conf/machine/include/tune-arm926ejs.conf
10 2006.10.18 OpenEmbedded. Wprowadzenie Przykładowa dystrybucja #@TYPE: Distribution #@NAME: OpenOMAP #@DESCRIPTION: OE Distribution for TI OMAP Development Boards INHERIT += " package_ipk debian multimachine" TARGET_OS = "linux" TARGET_FPU = "soft" PREFERRED_VERSION_linux-omap1_omap5912osk?= "2.6.18+git" # toolchain PREFERRED_VERSION_gcc = "4.1.1" PREFERRED_VERSION_gcc-cross = "4.1.1" PREFERRED_VERSION_gcc-cross-initial = "4.1.1" PREFERRED_VERSION_binutils = "2.17" PREFERRED_VERSION_binutils-cross = "2.17" PREFERRED_VERSION_linux-libc-headers = "2.6.15.99" PREFERRED_VERSION_glibc = "2.4" PREFERRED_VERSION_glibc-intermediate = "2.4" # We want images supporting the following features (for task-base) DISTRO_FEATURES = "nfs pcmcia usbhost" PCMCIA_MANAGER = "pcmciautils"
11 2006.10.18 OpenEmbedded. Wprowadzenie Przykładowy pakiet DESCRIPTION = "GNU nano (Nano's ANOther editor, or Not ANOther editor) is an enhanced \ clone of the Pico text editor." HOMEPAGE = "http://www.nano-editor.org/" LICENSE = "GPLv2" SECTION = "console/utils" DEPENDS = "ncurses" SRC_URI = "http://www.nano-editor.org/dist/v1.3/nano-${pv}.tar.gz \ file://glib.m4" inherit autotools do_configure_prepend () { } install -m 0644 ${WORKDIR}/glib.m4 m4/
12 2006.10.18 OpenEmbedded. Wprowadzenie Pytania
13 2006.10.18 OpenEmbedded. Wprowadzenie Dziękuję za uwagę Marcin Juszkiewicz e-mail: haerwu@hrw.one.pl telefon: +48 608 093 708 http://www.hrw.one.pl/