Re: arm64 Debian/Ubuntu port image available

2013-03-12 Thread Wookey
+++ Wookey [2013-02-27 02:10 +]:
 State of the Debian/Ubuntu arm64 port
 =
 
 *** Arm64 lives! ***
 
 Executive summary
 -
 
  * There is now a bootable (raring) image to download and run

  * A bit more work is needed to make the rootfs useable as a native buildd

Networking and apt, and various bits of breakage was fixed shortly
after the initial upload.

After some jolly hacking at Connect, with much help from Doko, we got
the build and install dependencies of debhelper (what a lot of crap it
(recursively) needs!) crossed and uploaded, and fixed some missing
perl bits, so I have now successfully built the 'hello' package with
the image. 

It's such fun to watch configure scroll by one line at a time for
about an hour


Cross-building stuff:

Ian Campbell also got the Xen arm64/aarch64 cross-build working for
raring (not yet integrated into the packaging), using the info on
https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/arm64bootstrap
without too much aggravation (libyajl needed to be cross-fixed first),
so the environment is already useful for building and getting stuff
cross-ready, so long as you don't have too many build-deps.

Feedback from anyone else who tries this is welcome. 

 The images are available for download:   
 http://wiki.debian.org/Arm64Port#Pre-built_Rootfs
 Along with destructions there for making your own.

Wookey
-- 
Principal hats:  Linaro, Emdebian, Wookware, Balloonboard, ARM
http://wookware.org/

-- 
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel


Re: arm64 Debian/Ubuntu port image available

2013-02-28 Thread Michael K. Edwards
Nice work, Wookey!  If experience cross-building for armhf is any guide,
all you need for NSS is a host build of shlibsign; see
https://github.com/mkedwards/crosstool-ng/blob/master/patches/nss/3.12.10/0001-Modify-shlibsign-wrapper-for-cross-compilation.patch.
 There's also scriptage in that repo for the build sequence and cross
parameters:
https://github.com/mkedwards/crosstool-ng/blob/master/scripts/build/cross_me_harder/510-nss.sh.
It's ugly in places (cross pkgconfig was kind of wonky at the time) but may
help you get past NSS and on to apt.

Cheers,
- Michael
On Feb 26, 2013 6:11 PM, Wookey woo...@wookware.org wrote:

 State of the Debian/Ubuntu arm64 port
 =

 *** Arm64 lives! ***

 Executive summary
 -

  * There is now a bootable (raring) image to download and run
  * Everything has been rebuilt against glibc 2.17 so it works
  * A bit more work is needed to make the rootfs useable as a native buildd
  * Multiarch crossbuilding and the build-profile mechanism is mature
 enough to cross-build
 a port from scratch (this is a big deal IMHO)
  * All packages, sources and tools are in a public repo and this work
 should be reproducible.
  * This image is fully multiarched so co-installing armhf for a
 64/32 mix should work nicely, as should multiarch crossbuilding to
 legacy x86 architectures. :-) (but I haven't tried that yet...)


  * Linaro wants 'the distros' to take this work forward from here so
 people interested in
 Debian and Ubuntu on 64-bit arm hardware need to step up and help out.


 Bootable images
 ---

 A milestone was reached this week: Enough packages were built for arm64 to
 debootstrap an
 image which booted to a prompt! After a bit of fettling (and switching to
 multistrap) I got
 an image with all the packages configured which boots with upstart to a
 login prompt (I
 admit, I did get quite excited about this, as it represents the coming
 together of nearly 3
 years work on multiarch, crossbuilding, bootstrapping, cyclic dependencies
 and arm64 :-)

 The images are available for download:
 http://wiki.debian.org/Arm64Port#Pre-built_Rootfs
 And there are destructions there for making your own.

 All these packages were cross-built on raring, untangling cyclic
 dependencies with build
 profiles (see wiki.debian.org/DebianBootstrap for how that works), making
 this the first
 (non x86) self-bootstrapped debian port ever (so far as I know). All (?)
 previous ports have
 been done using something else like OpenEmbedded (armel, armhf),
 RedHat/HardHat (arm, alpha,
 mips), something IBMy (s390) to get an initial linux rootfs on which
 debian packages are
 built.

 The new bootstrap process is (almost) just a list of sbuild commands. In
 practice there are
 still a few rough edges around cross- build-dependencies so of the 140
 packages needed for
 the bootstrap, 9 had to be built manually with 'dpkg-buildpackage -aarm64
 -d' (to skip
 build-dep checks) instead of 'sbuild --host arm64 package'.

 The current bootstrap packageset status is here:

 http://people.linaro.org/~wookey/buildd/raring-arm64/status-bootstrap.html

 There is no armv8 (arm64/aarch64) hardware available yet, so this image
 can currently only
 be run in a model. ARM provide a free-beer prorietary 'Foundation model'
 so we do have
 someting to test with. It's sluggish but perfectly useable. Booting the
 images takes a
 couple of minutes on my fairly average machine.

 The images are using the Linaro OE release kernels which seem to work fine
 for this purpose.
 Thanks to Marcin for modified bootloader lines in .axf files.



 Image status
 

 I was impressed that things basically 'just worked' on first boot. There
 is of course plenty
 of breakage, I'm sure, and I haven't looked very hard yet, but it's a lot
 better than I
 expected after months of just building stuff and testing nothing. (Things
 that are poorly:
 nano can't parse it's own syntax-coluring files for example, and multiarch
 perl has the
 wrong @INC path compiled in; I'm sure there is more). Consider this
 alpha-grade until it's
 been used a bit more.

 Things that are not yet built which would make the images a lot more
 useful are apt and a
 dhcp client. apt needs gnupg needs curl needs nss. The nss cross-build
 needs fixing to
 unbung that. A debian chroot without apt turns out to be disappointing
 quite quickly :-)
 Expect an updated image with more packages very soon.


 Multiarch crossbuilding
 ---

 It's really nice to have building and crossbuilding using exactly the same
 mechanisms
 and tools, with all files having one canonical location, and dependency
 mechanisms that
 are reliable. The more I've used this, the more I've been impressed by it.
 There is
 still work to do to expand the set of cross-buildable stuff, but it's a
 solid base to
 work from.

 Getting this port working has been 'interesting' because it's attempting 4
 new 

Re: arm64 Debian/Ubuntu port image available

2013-02-27 Thread Marcin Juszkiewicz
W dniu 27.02.2013 03:10, Wookey pisze:
 State of the Debian/Ubuntu arm64 port
 =
 
 *** Arm64 lives! ***

Congratulations Wookey (and everyone involved)!


  * There is now a bootable (raring) image to download and run

 Once you've created a tarball chroot builds are simply done with 
 sbuild -c quantal-amd64-sbuild -d quantal --host=arm64 package.dsc or 
 sbuild -c quantal-amd64-sbuild -d quantal --host=arm64 package_version  
 (I'd love it 

s/quantal/raring/ I think.



-- 
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel


Re: arm64 Debian/Ubuntu port image available

2013-02-27 Thread Ian Campbell
On Wed, 2013-02-27 at 13:37 +, Wookey wrote:
 I had to choose between getting this working in vaguely finite time
 and keeping both Debian and Ubuntu bootstraps in sync, so unstable
 just got stuck at the 'toolchain bootstrap needed' stage.

That's quite reasonable

 Is raring useful to you or do you need sid? Once the toolchain is done it
 shouldn't be _too_ much work to get Debian uptodate although there
 will be a _lot_ of patched packages. 

Raring is fine, just reached for Debian out of habit etc.

To be honest I'm probably getting a little bit ahead of myself anyway --
I'm working on aarch64 guest support for Xen at the minute and your mail
prompted me to wonder how hard it would be to build the Xen tools for
arm64 in a multiarch environment, to some extent the toolchain is the
least of my worries ;-).

Ian.
-- 
Ian Campbell

A witty saying proves nothing, but saying something pointless gets
people's attention.


-- 
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel


Re: arm64 Debian/Ubuntu port image available

2013-02-27 Thread Ian Campbell
On Wed, 2013-02-27 at 02:10 +, Wookey wrote:
 
 Setting up an arm64 build environment is very simple. Use sbuild-createchroot 
 or mk-sbuild
 and point at the bootstrap repo, with a bit of config and some updated tools 
 packages from
 the repo (amd64 only supplied). Details are given on
 https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/arm64bootstrap 

I think these are missing a dpkg --add-architecture arm64 at some
point before apt-get update / install crossbuild-essential-arm64 ?

I tried to adjust those instructions to something similar for Sid + the
debian-bootstrap repo but there were unmet dependencies of
crossbuild-essential-arm64 (libc, pkgbinarymangler), but I get the
impression that is to be expected at this stage?

Ian.
-- 
Ian Campbell

Alea iacta est.
[The die is cast]
-- Gaius Julius Caesar


-- 
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel


Re: arm64 Debian/Ubuntu port image available

2013-02-27 Thread Wookey
+++ Ian Campbell [2013-02-27 12:00 +]:
 On Wed, 2013-02-27 at 02:10 +, Wookey wrote:
  
  Setting up an arm64 build environment is very simple. Use 
  sbuild-createchroot or mk-sbuild
  and point at the bootstrap repo, with a bit of config and some updated 
  tools packages from
  the repo (amd64 only supplied). Details are given on
  https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/arm64bootstrap 
 
 I think these are missing a dpkg --add-architecture arm64 at some
 point before apt-get update / install crossbuild-essential-arm64 ?

Yes, good point. Now fixed on the wiki page, along with some
s/quantal/raring/ 

Sbuild will do this for you before updating/installing, but when doing
stuff manually in the chroot (as those instructions suggest for
pre-installing crossbuild-essential-arm64) you do indeed need to add
the foreign architecture(s).

 I tried to adjust those instructions to something similar for Sid + the
 debian-bootstrap repo but there were unmet dependencies of
 crossbuild-essential-arm64 (libc, pkgbinarymangler), but I get the
 impression that is to be expected at this stage?

You won't get anywhere in Sid at the moment: No prebuilt
cross-toolchain, and some of the multiarch info missing. If you
actually want to _use_ this (as opposed to fix it) then it has to be
raring. 

I had to choose between getting this working in vaguely finite time
and keeping both Debian and Ubuntu bootstraps in sync, so unstable
just got stuck at the 'toolchain bootstrap needed' stage. Is raring
useful to you or do you need sid? Once the toolchain is done it
shouldn't be _too_ much work to get Debian uptodate although there
will be a _lot_ of patched packages. 

Wookey
-- 
Principal hats:  Linaro, Emdebian, Wookware, Balloonboard, ARM
http://wookware.org/

-- 
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel


Re: arm64 Debian/Ubuntu port image available

2013-02-27 Thread Cláudio Sampaio
On Tue, Feb 26, 2013 at 11:10 PM, Wookey woo...@wookware.org wrote:

 State of the Debian/Ubuntu arm64 port
 =

 *** Arm64 lives! ***


Hi,

Is there any device with Aarch64 on sale? I couldn't find any, only some
mentions from Calxeda.
Would you mind to provide suggestions of any seller which sells through the
internet?

-- 
Cláudio Patola Sampaio
IRC: ptl  - Yahoo: patolaaa
Campinas, SP - Brazil.
-- 
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel


arm64 Debian/Ubuntu port image available

2013-02-26 Thread Wookey
State of the Debian/Ubuntu arm64 port
=

*** Arm64 lives! ***

Executive summary
-

 * There is now a bootable (raring) image to download and run
 * Everything has been rebuilt against glibc 2.17 so it works
 * A bit more work is needed to make the rootfs useable as a native buildd
 * Multiarch crossbuilding and the build-profile mechanism is mature enough to 
cross-build 
a port from scratch (this is a big deal IMHO)
 * All packages, sources and tools are in a public repo and this work should be 
reproducible.
 * This image is fully multiarched so co-installing armhf for a
64/32 mix should work nicely, as should multiarch crossbuilding to
legacy x86 architectures. :-) (but I haven't tried that yet...)


 * Linaro wants 'the distros' to take this work forward from here so people 
interested in 
Debian and Ubuntu on 64-bit arm hardware need to step up and help out.


Bootable images
---

A milestone was reached this week: Enough packages were built for arm64 to 
debootstrap an
image which booted to a prompt! After a bit of fettling (and switching to 
multistrap) I got
an image with all the packages configured which boots with upstart to a login 
prompt (I
admit, I did get quite excited about this, as it represents the coming together 
of nearly 3
years work on multiarch, crossbuilding, bootstrapping, cyclic dependencies and 
arm64 :-)

The images are available for download:   
http://wiki.debian.org/Arm64Port#Pre-built_Rootfs
And there are destructions there for making your own.

All these packages were cross-built on raring, untangling cyclic dependencies 
with build
profiles (see wiki.debian.org/DebianBootstrap for how that works), making this 
the first
(non x86) self-bootstrapped debian port ever (so far as I know). All (?) 
previous ports have
been done using something else like OpenEmbedded (armel, armhf), RedHat/HardHat 
(arm, alpha,
mips), something IBMy (s390) to get an initial linux rootfs on which debian 
packages are
built. 

The new bootstrap process is (almost) just a list of sbuild commands. In 
practice there are
still a few rough edges around cross- build-dependencies so of the 140 packages 
needed for
the bootstrap, 9 had to be built manually with 'dpkg-buildpackage -aarm64 -d' 
(to skip
build-dep checks) instead of 'sbuild --host arm64 package'. 

The current bootstrap packageset status is here: 
  http://people.linaro.org/~wookey/buildd/raring-arm64/status-bootstrap.html

There is no armv8 (arm64/aarch64) hardware available yet, so this image can 
currently only
be run in a model. ARM provide a free-beer prorietary 'Foundation model' so we 
do have
someting to test with. It's sluggish but perfectly useable. Booting the images 
takes a
couple of minutes on my fairly average machine.

The images are using the Linaro OE release kernels which seem to work fine for 
this purpose.
Thanks to Marcin for modified bootloader lines in .axf files. 



Image status


I was impressed that things basically 'just worked' on first boot. There is of 
course plenty
of breakage, I'm sure, and I haven't looked very hard yet, but it's a lot 
better than I
expected after months of just building stuff and testing nothing. (Things that 
are poorly:
nano can't parse it's own syntax-coluring files for example, and multiarch perl 
has the
wrong @INC path compiled in; I'm sure there is more). Consider this alpha-grade 
until it's
been used a bit more.

Things that are not yet built which would make the images a lot more useful are 
apt and a
dhcp client. apt needs gnupg needs curl needs nss. The nss cross-build needs 
fixing to
unbung that. A debian chroot without apt turns out to be disappointing quite 
quickly :-)
Expect an updated image with more packages very soon.


Multiarch crossbuilding
---

It's really nice to have building and crossbuilding using exactly the same 
mechanisms
and tools, with all files having one canonical location, and dependency 
mechanisms that
are reliable. The more I've used this, the more I've been impressed by it. 
There is
still work to do to expand the set of cross-buildable stuff, but it's a solid 
base to
work from. 

Getting this port working has been 'interesting' because it's attempting 4 new 
things all at
once: multiarch (file layouts and dependencies), crossbuilding (tools and 
packaging support
in a distro that historically was always natively built), arm64 (aarch64) 
support in
packages that need it, and build-profiles to linearise the build-order. 

The arm64 part of this is a relatively small part as the heavy lifting has been 
done
upstream (gcc, (e)glibc, binutils, kernel, libffi, autotools and a lot of minor 
fixes in
various packages). Thanks are due to doko (Matthias Klose) for sterling work 
getting all
that integrated into the debian and ubuntu toolchain packages, and infinity 
(Adam Conrad)
for merging various eglibc branches. There were also hordes of