[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Summary from the "State of the ARM" BoF at DC14



[ Please note the cross-post and Reply-To ]

Hi folks,

As promised, here's a quick summary of what was discussed at the BoF
session in Portland. Apologies for the delay - it takes a while to
write these up... :-/

Thanks to the awesome efforts of our video team, the session is
already online [1]. I've taken a copy of the (partial!) Gobby notes
too, alongside my small set of slides for the session. [2]

As part of the "Ports" track at DebConf, We spoke about the
past/present/future state of ARM ports in Debian.

Existing port: armel
====================

 * Current port, first released with Lenny. Older ports have gone
   away.

 * Targets the ARM EABI, soft-float, to run on ARMv4t and newer
   processors. These are older generations of processors, but there
   are lots of people still running hardware based on them. 

 * Still supported upstream in kernel, toolchain, etc. but there are
   places where this support may be starting to go away.

 * ARMv4 devices are still readily available and now very cheap - see
   the ARM7TDMI as an example. But for most people they want newer,
   more powerful systems.

 * At some point in the future we may have to drop armel. Most other
   distros don't give real support for anything older than ARMv7, so
   we're almost alone here. However, for the various *Plug machines
   and Kirkwood-based NAS boxes (ARMv5), armel is still very much a
   desired port. We keep on considering moving to ARMv5 as a baseline,
   but there's little that we can identify to make that really
   worthwhile.

Existing port: armhf
====================

 * Current port, first released with Wheezy.

 * Targets the ARM EABI, hard-float variant, VFP3-D16, to run on
   ARMv7. These are the current generation of 32-bit ARM processors,
   for example in almost all currently-shipping Android phones. This
   is the agreed cross-distro standard for ARM distributions.

 * We have moved to a single armmp kernel flavour in Debian. This uses
   Device Tree Blobs (DTBs) and should run on a massive range of
   different ARMv7 hardware. Some of the peripherals on some devices
   may not yet have actual driver support, but going forwards we
   expect no new platforms to be added without using DT. In theory, we
   don't need to go and test all the different devices here - most
   should just work assuming upstream kernel support.

Buildds and hardware
====================

 * Still relying mainly on development boards as buildd machines. For
   both armel and armhf, we've updated recently to using new Armada XP
   machines donated by Marvell (thanks!). Quad-core fast CPU, 4G,
   onboard SATA, Gigabit ethernet - really nice machines, much faster
   than the older Freescale imx53 dev boards. We've now retired the
   older Marvell v5 buildds that we were using for armel building, so
   we can drop the old kernel flavour we have been using.

 * We had minor teething troubles with the new machines (as is common
   with using dev boards as build machines and running them 24/7!),
   but with some local modifications to the cases to fit bigger fans
   etc. they've been much 100% reliable since. Thanks to Vince Sanders
   for the help there!

 * We've had offers of real ARMv7-based servers to augment/replace the
   dev boards, bit that's not happened yet. We're still working on
   those as they should be better and more reliable in the long run
   than using dev boards forever.

New port: arm64
===============

 * Brand new port that's just entered the main archive recently [3].

   for more details.
   
   Arm64 has already been mostly-bootstrapped in debian-ports by
   Wookey over the last 2-3 years, working hard to get packages to
   build, breaking bootstrap loops etc. Now we're in the main archive
   using those debian-ports packages as a seed. We can also use more
   packages from the d-p archive to help us break loops as we get to
   them.

 * Strongly hoping to release with Jessie. There are some concerns
   from DSA and the Release Team on that front, but we're getting on
   with things OK and they seem to trust us to fix issues as they come
   up.

 * 2 official builds hosted at ARM: Juno dev boards (6-core ARMv8, 8GB
   RAM, USB disks etc.). These are still dev boards, but they've been
   wonderfully stable for us while thrashing them 24/7 so far. Fingers
   crossed!

 * In 2 weeks from the start, we got to ~50% of the archive built on
   arm64. Starting to slow down as we get further up the package
   chains to bigger, more complex packages.

 * ppc64el was added to the archive just after arm64, but built faster
   due to massively more powerful server hardware (cheating!). We're
   not actually racing *each other* here, but instead both of the new
   arches are racing to get enough of the archive built to get in for
   Jessie.

 * The build graphs for the two arches are slightly differently
   shaped, probably an artifact of differing build orders when
   breaking the complex build loops that we've encountered. After the
   initial hump, we've kept the machines building solidly so there
   have not been any gaps. Finally, as you have more and more of the
   archive built, there is ever-growing scope for package maintainers
   to upload new versions of their packages, triggering rebuilds.

 * We've been watching the Needs-Build list on #debian-buildd for
   arm64, making sure we keep the build machines busy so we don't
   waste time. Thanks to the people helping there! Bootstrapping is
   *hard*, or "fun". :-) Loops are *very* frustrating, e.g. gtk and qt
   in the same build chains around each other.

New stuff
=========

 * Cool stuff: Andy Simpkins talking later about developing a laptop
   using an arm64 (ARMv8) CPU. Considering developing a replacement
   motherboard to go in a Thinkpad X220. See www.vero-apparatus.com
   for more details.

 * Donated hardware: Banana Pi boards donated as a giveaway by Lemaker
   (thanks!) for Debian people to use. These were handed out to people
   to help work on the armhf port. Boards are very similar to the
   Raspberry Pi, but more advanced - they're ARMv7 based (Allwinner
   A20) instead of ARMv6 so they'll run armhf. Doesn't quite work with
   the Debian kernel (yet!)

 * Donated software: announcement and demo from ARM, courtesy of Pawel
   Moll in ARM's Development Solutions Group. ARM's DS-5 Development
   Studio is now available free of charge for all Debian Developers
   [4,5].

Discussion
==========

 * State of Raspbian in the archive? They're quite isolated and short
   of manpower to get into the main archive. Not much interest any
   more in trying to move things over. We also don't want *yet
   another* ARM port in the Debian archive - we already have 3 ports!
   We could move armel up and merge things a little, but it's not
   likely to help very much. It's a shame the Broadcom SoC in the Pi
   was v6 - if it was v7 life would have been much easier for
   everybody... :-(

 * Future of the armel port? C++11 atomics are not supported directly
   on ARMv4 and ARMv5. We can just use the kernel-provided helpers,
   but performance will be slow compared to the better options that
   newer CPU versions include. We need to make sure this is sorted
   out - make sure that C++11 will work for us if we're going to keep
   armel going. Need more discussion on the list. Should armel become
   the first partial port in Debian? Not many people are going to be
   running the big desktop apps on a Guruplug, surely?

 * Toolchains etc. will have to continue targeting older ARM
   processors for a long time - *many* people still using smaller,
   cheaper cores so toolchain support has to continue. For Debian
   purposes, we're mainly going to be targeting bigger CPUs, though.

 * Bare-metal cross toolchain is in the main Debian archive too, to
   help with people targeting small ARM devices.

 * ARM/Debian stickers to give away too, but Wookey forgot them on the
   day. Were available later...

 * Vagrant has been working on a few different ARM boards for
   debian-installer, flash-kernel etc. to try and get more different
   boards working out of the box with Debian. Please help if you can!

Help!
=====

We're still always looking for more people to help on porter
work. Join #debian-arm and/or debian-arm@lists.debian.org to get
involved. Also mentioned - upcoming mini-debconf hosted by ARM in
Cambridge in November [6].

Thanks!
=======

ARM and Linaro have been very involved in getting Debian working well
on ARM. Wookey and Steve are both working for ARM and seconded into
Linaro. Wookey's day job has involved getting the arm64 port
bootstrapped; without that we wouldn't have got this far. Many ARM
engineers are Free Software fans and contributors and want to get more
involved in Debian and other projects! Expect to see more of them
soon!

[1] http://meetings-archive.debian.net/pub/debian-meetings/2014/debconf14/webm/State_of_the_ARM.webm
[2] http://www.einval.com/~steve/talks/Debconf14-state-of-the-arm/
[3] https://wiki.debian.org/Arm64Port
[4] http://ds.arm.com/debian
[5] https://lists.debian.org/debian-devel-announce/2014/08/msg00014.html
[6] https://wiki.debconf.org/wiki/Miniconf-UK/2014

-- 
Steve McIntyre, Cambridge, UK.                                steve@einval.com
"The problem with defending the purity of the English language is that
 English is about as pure as a cribhouse whore. We don't just borrow words; on
 occasion, English has pursued other languages down alleyways to beat them
 unconscious and rifle their pockets for new vocabulary."  -- James D. Nicoll

Attachment: signature.asc
Description: Digital signature


Reply to: