Scaling API-first – The story of a global engineering organization
Fedora Embedded at foss.in 2010
1. Agenda
Fedora Embedded SIG Special Interest Group
Some background
A basic hands-on with QEMU/ARM
Fedora ARM Infrastructure
Questions?
foss.in/2010 - Fedora Embedded and
QEMU/ARM hands on
ƒ—leem ens—ri
Fedora
IUth he™em˜er PHIH
Saleem Ansari foss.in/2010 - Fedora Embedded and QEMU/ARM hands o
2. Agenda
Fedora Embedded SIG Special Interest Group
Some background
A basic hands-on with QEMU/ARM
Fedora ARM Infrastructure
Questions?
1 egend—
2 pedor— im˜edded ƒsq ! ƒpe™i—l snterest qroup
3 ƒome ˜—™kground
4 e ˜—si™ h—ndsEon with iw…Ge‚w
5 pedor— e‚w snfr—stru™ture
6 uestionsc
Saleem Ansari foss.in/2010 - Fedora Embedded and QEMU/ARM hands o
3. Agenda
Fedora Embedded SIG Special Interest Group
Some background
A basic hands-on with QEMU/ARM
Fedora ARM Infrastructure
Questions?
Agenda
pedor— im˜edded ƒsq ! ƒpe™i—l snterest qroup
ƒome ˜—™kground knowlege
e ˜—si™ h—ndsEon with iw…Ge‚w
pedor— e‚w snfr—stru™ture
Saleem Ansari foss.in/2010 - Fedora Embedded and QEMU/ARM hands o
4. Agenda
Fedora Embedded SIG Special Interest Group
Some background
A basic hands-on with QEMU/ARM
Fedora ARM Infrastructure
Questions?
Fedora Embedded SIG Special Interest Group
qo—ls E httpXGGfedor—proje™tForgGwikiGƒsqsGim˜edded
Create high quality packages of cross-compilers and related
tools
Provide packaging guidelines
Make distribution releases on sub architectures
„—rgeted pl—tformsG—r™hesX e‚wD e†‚QPD e†‚D fl—™k(nD
„sqggD ‚„iwƒD others
por this t—lk we will fo™us on e‚w —r™hite™ture
Saleem Ansari foss.in/2010 - Fedora Embedded and QEMU/ARM hands o
5. Agenda
Fedora Embedded SIG Special Interest Group
Some background
A basic hands-on with QEMU/ARM
Fedora ARM Infrastructure
Questions?
Why Fedora on ARM architecture? Multiple reasons!
PHHUX £ WV7 of one ˜illion mo˜ile phones sold e—™h ye—r use —t
le—st one e‚w pro™essorF
PHHWX £ WH7 of —ll em˜edded QPE˜it ‚sƒg pro™essors —re e‚w
pro™essorsF
PHIHX £ S fillion e‚wW pro™essors h—ve ˜een shipped so f—r
e‚w pro™essors to enter server m—rkets E w—rvell9s
—nnoun™ement
e‚w pro™essorE i—gle
based on Cortex A15 architecture, it has hardware
virtualization support!
yv€g is — one ˜ig proje™t whi™h interested to use pedor—
e‚w port
Saleem Ansari foss.in/2010 - Fedora Embedded and QEMU/ARM hands o
6. Agenda
Fedora Embedded SIG Special Interest Group
Some background
A basic hands-on with QEMU/ARM
Fedora ARM Infrastructure
Questions?
Some background
€l—tform G pro™essor sele™tion for — vinuxGem˜edded proje™t
at-least 32bit processor
processor should have a MMU
non-MMU based processors can use ucLinux
however you have to modify applications too
oating point unit
which optional and can be emulated by libraries
Saleem Ansari foss.in/2010 - Fedora Embedded and QEMU/ARM hands o
7. Agenda
Fedora Embedded SIG Special Interest Group
Some background
A basic hands-on with QEMU/ARM
Fedora ARM Infrastructure
Questions?
Why do we need a boot loader?
„here is — lot of work done ˜y ˜oot lo—derF
uernel —ssumes th—t — lot of system initi—liz—tion is —lre—dy
doneX
conguring memory sub-system.
loading kernel image at the correct memory address
loading initial RAM disk ( optional )
initializing boot parameters
obtaining the ARM Linux machine type
initializing register variables for entry into kernel
‡riting ™ode for —ll this isX
highly error prone, repetitive, cumbersome and boring
a readymade bootloader generally just ts in
Saleem Ansari foss.in/2010 - Fedora Embedded and QEMU/ARM hands o
8. Agenda
Fedora Embedded SIG Special Interest Group
Some background
A basic hands-on with QEMU/ARM
Fedora ARM Infrastructure
Questions?
Why do we need Linux Kernel?
vinuxD ofE™ourseD is ypen ƒour™e
†endor sndependen™e
€yƒsˆ ™ompli—n™e
†—ried r—rdw—re ƒupport
linux kernel h—s m—ny devi™e drivers —lre—dy ˜uilt ˜y someone
provide us with well dened device interfaces
does the grunt work of hardware level interfacing with the
devices
driver works on another hardware with usually very few changes
Saleem Ansari foss.in/2010 - Fedora Embedded and QEMU/ARM hands o
9. Agenda
Fedora Embedded SIG Special Interest Group
Some background
A basic hands-on with QEMU/ARM
Fedora ARM Infrastructure
Questions?
About QEMU
iw… is —n emul—tor for popul—r g€…
x86, ARM, PowerPC, Sparc32/64, MIPS and ColdFire
AVR32 support is in progress at
http://repo.or.cz/w/qemu/avr32.git
It also simulates peripheral devices, basically a complete
System on Chip.
‡h—t m—kes iw… spe™i—l for doing em˜edded systems
developmentc
No need of actual hardware for prototyping.
Its greener- no need of any power source.
Many projects already use QEMU
Android, MeeGo, etc.
Saleem Ansari foss.in/2010 - Fedora Embedded and QEMU/ARM hands o
10. Agenda
Fedora Embedded SIG Special Interest Group
Some background
A basic hands-on with QEMU/ARM
Fedora ARM Infrastructure
Questions?
Hands-on. We will discuss the following:
hevelopment setup up
ARM toolchain, QEMU etc.
‡h—t h—ppens —t system resetc
Initialization.
Bootloader.
Kernel.
Initial root lesystem.
Saleem Ansari foss.in/2010 - Fedora Embedded and QEMU/ARM hands o
11. Agenda
Fedora Embedded SIG Special Interest Group
Some background
A basic hands-on with QEMU/ARM
Fedora ARM Infrastructure
Questions?
System setup
pedor— e‚w „ool™h—in
ARMv5 only -
http://fedoraproject.org/wiki/Architectures/ARM/CrossToolchain
iw…Ge‚w
mkim—ge E tool to ™re—te ˜oot im—ges
other tools
bridge-utils ( optional )
koji
Saleem Ansari foss.in/2010 - Fedora Embedded and QEMU/ARM hands o
12. Agenda
Fedora Embedded SIG Special Interest Group
Some background
A basic hands-on with QEMU/ARM
Fedora ARM Infrastructure
Questions?
What happens when an ARM based board is powered ON?
…nderst—nd the memory m—p for ‚ew —nd ‚yw
ƒt—rtup ™ode
First instruction
Vector table
Stack initialization
Relocating the RAM to a dierent address
Running from RAM
Saleem Ansari foss.in/2010 - Fedora Embedded and QEMU/ARM hands o
13. Agenda
Fedora Embedded SIG Special Interest Group
Some background
A basic hands-on with QEMU/ARM
Fedora ARM Infrastructure
Questions?
Hands on:
„—rget h—rdw—re E †ers—tile€f E emul—ted iw…
vets m—ke — minim—listi™ linux ˜—sed system on e‚w
pollowing steps —re involvedX
Compile and congure U-Boot boot-loader
Compile and congure Linux Kernel
Create a root le-system
We will use Busybox for shell command interface
Shove all of them into a one big chunk to be ashed onto
memory
Saleem Ansari foss.in/2010 - Fedora Embedded and QEMU/ARM hands o
14. Agenda
Fedora Embedded SIG Special Interest Group
Some background
A basic hands-on with QEMU/ARM
Fedora ARM Infrastructure
Questions?
What we learn from this excercise?
sts — gre—t le—rning experien™e
rowever its not produ™tive in the long termF
st doesn9t s™—le to thous—nds of softw—re p—™k—gesF
pedor— e‚w port solves this pro˜elmX
Proven packaging technology already in use in many of the
most popular distros
Reduce development time and time to market for your next
device
Saleem Ansari foss.in/2010 - Fedora Embedded and QEMU/ARM hands o
15. Agenda
Fedora Embedded SIG Special Interest Group
Some background
A basic hands-on with QEMU/ARM
Fedora ARM Infrastructure
Questions?
Fedora ARM Infrastructure
ƒene™— gentre for hevelopment of ypen „e™hnology @ghy„A
—t the ƒ™hool of gomputer ƒtudies —t ƒene™— gollegeD „orontoF
httpXGGzenitFsene™—™FonF™—GwikiGindexFphpGpedor—•e‚w•ƒe™ond—ry•
httpXGGzenitFsene™—™FonF™—GwikiGindexFphpGpedor—•e‚w•uoji•fuild
v—test newsX
http://fedora-arm.blogspot.com/
http://paulfedora.wordpress.com/
gurrent st—tus p—ge
http://arm.koji.fedoraproject.org/status/
‚e™ent video ˜y €—ul ‡h—len
http://fsoss.senecac.on.ca/2010/node/24 Embedded and QEMU/ARM hands o
Saleem Ansari foss.in/2010 - Fedora
16. Agenda
Fedora Embedded SIG Special Interest Group
Some background
A basic hands-on with QEMU/ARM
Fedora ARM Infrastructure
Questions?
Bulding packages for Fedora ARM
gre—te or (x —n existing ƒ‚€w p—™k—ge
ƒ™hedule — ˜uild on e‚w uoji to ™re—te ‚€w
ghe™k —nd (x if ne™ess—ry
e‚w uoji we˜ interf—™e
wore on rowto use koji
http://fedoraproject.org/wiki/Koji
Saleem Ansari foss.in/2010 - Fedora Embedded and QEMU/ARM hands o
17. Agenda
Fedora Embedded SIG Special Interest Group
Some background
A basic hands-on with QEMU/ARM
Fedora ARM Infrastructure
Questions?
Contributing to Fedora/ARM
fedor—proje™tForgGwikiGer™hite™turesGe‚wGrow„oemu
w—iling list
https://admin.fedoraproject.org/mailman/listinfo/arm
s‚g E 5fedor—E—rm on ir™FfreenodeFnet
sssues not yet resolvedX
https://bugzilla.redhat.com/show_bug.cgi?id=ARMTracker
wore info —tX
http://fedoraproject.org/wiki/Architectures/ARM/Team_and_Develo
Saleem Ansari foss.in/2010 - Fedora Embedded and QEMU/ARM hands o
18. Agenda
Fedora Embedded SIG Special Interest Group
Some background
A basic hands-on with QEMU/ARM
Fedora ARM Infrastructure
Questions?
Current state of aairs in Fedora/ARM
pedor— IQ rele—se for e‚w will hopefully ˜e ne—r ˆm—sF
„he def—ult tool™h—in is still for e‚wvS —nd doesn9t support
h—rdfp so m—y of the modern e‚w g€…s —ren9t optim—lly used
plo—ting point support in the pedor—Ge‚w ™ross tool™h—inX
Discussion is on for which of soft/softfp or hardfp to select for
upcoming ARMv7 toolchain
yv€g @™urrently the only one e—ger to use pedor— e‚w for —
l—rge s™—le proje™tA
they seem to be aiming to jump from F-11 to F-14, for their
next release
its not clear if that includes XO-1.75 ( the OLPC's ARM
target ).
Saleem Ansari foss.in/2010 - Fedora Embedded and QEMU/ARM hands o
19. Agenda
Fedora Embedded SIG Special Interest Group
Some background
A basic hands-on with QEMU/ARM
Fedora ARM Infrastructure
Questions?
Questions?
Saleem Ansari foss.in/2010 - Fedora Embedded and QEMU/ARM hands o
20. Agenda
Fedora Embedded SIG Special Interest Group
Some background
A basic hands-on with QEMU/ARM
Fedora ARM Infrastructure
Questions?
Thank you!
tuxdn— —t 5fedor—E—rm on ir™FfreenodeFnet
Saleem Ansari foss.in/2010 - Fedora Embedded and QEMU/ARM hands o