Jump to: navigation, search

The openSUSE ARM team is working hard to get the 64-bit ARM variant (AArch64) as green as possible! Things are looking very good already.

Build results of the 12.3 AArch64 rebuild are here: https://build.opensuse.org/project/show?project=devel:ARM:AArch64:12.3
The current working overlay project in OBS can be found here: https://build.opensuse.org/project/show?project=devel:ARM:AArch64:Factory

Building is currently only possible via an emulator due to lack of hardware.

Test openSUSE images

If you want to test openSUSE 13.1 (or openSUSE Facotry) AArch64 images, please go to openSUSE:AArch64 page.

Run old 12.3 pre-built image

We have created an image for you to try out openSUSE 12.3 on AArch64! To get the emulator up and rolling with our image, please follow these steps:

$ ./Foundation_v8 --image img-foundation.axf --block-device openSUSE-12.3-AArch64-JeOS.alpha1.raw --network=nat
  • Access the model's serial port
$ telnet localhost 5000
  • See the system boot up. You can log in as root. The password is linux.
  • Be patient. The Foundation Model is not exactly the fastest emulator on the planet. Things take time. As soon as hardware is available, this will be all good :).
  • Do fun things with your new AArch64 openSUSE system. Zypper is installed and gets you (almost) any package you want onto your virtual machine.
 [  OK  ] Started LSB: Configure network interfaces and set up routing.
 [  OK  ] Reached target Network.
 [  OK  ] Reached target Host and Network Name Lookups.
 [  OK  ] Reached target Remote File Systems (Pre).
          Starting LSB: Start the sshd daemon...
          Starting System Logging Service...
          Starting /etc/init.d/boot.local Compatibility...
 [  OK  ] Started /etc/init.d/boot.local Compatibility.
 [  OK  ] Started System Logging Service.
          Starting System Kernel Logging Service...
 [  OK  ] Reached target Syslog.
          Starting D-Bus System Message Bus...
 [  OK  ] Started D-Bus System Message Bus.
          Starting Command Scheduler...
 [  OK  ] Started Command Scheduler.
          Starting LSB: Network time protocol daemon (ntpd)...
 [  OK  ] Started System Kernel Logging Service.
 [  OK  ] Started Login Service.
 [  OK  ] Started LSB: Network time protocol daemon (ntpd).
 [  OK  ] Started LSB: Start the sshd daemon.
 [  OK  ] Reached target Multi-User.
 [  OK  ] Reached target Graphical Interface.
 Welcome to openSUSE 12.3 "Mantis" - Kernel 3.8.0-1-linaro-vexpress64 (ttyAMA0).
 linux login: root
 Password: linux
 Have a lot of fun...
 linux:~ #

Setup system for local build using qemu

By default qemu-linux-aarch64 is used to build packages inside of OBS. This way is much faster then inside of Foundation Model.

  • Install osc and build package from openSUSE:Tools project
  • Install qemu-linux-aarch64 from openSUSE:Tools project in case you want
 to do chroot builds. It is not needed for KVM builds, OBS will install
 the right one automatically.
  • You need to be on a x86_64 system. i586 systems will not work.
  • for chroot builds call
 osc build standard aarch64
  • for kvm builds call
 osc build --vm-type=kvm standard aarch64

It will setup automatically an aarch64 system and run the build.

Setup system for local build using Foundation Model

  • Install osc and build package from openSUSE:Tools project
  • Extract and install the executable and libraries into /usr/lib/build/emulator/ directory
  • Patch kernel parameters in image

The emulator does not allow to hand over kernel parameters. So you need to patch the compiled in parameter string inside the binary (as root).

sed -i 's,root=/dev/vda2,root=/dev/vda ,' img-foundation.axf

  • Enable the emulator by editing /usr/lib/build/emulator/emulator.sh . The example for aarch64 emulator handling is inside. Just remove the warning and exit in the begin of the file.

Run the build

  • osc co devel:ARM:AArch64:Factory <PACKAGE>
  • cd <PACKAGE>
  • osc build --vm-type emulator standard aarch64 <PACKAGE>.spec

this will build the package via the emulator.