openSUSE:OpenSUSE on your ARM board
tagline: From openSUSE
openSUSE on your ARM board
Pre-built images for ARM boards are available here: http://download.opensuse.org/ports/armv7hl/distribution/12.2/
- beagle: for BeagleBoard and BeagleBoard-xM
- efika: for Efika MX
- panda: for PandaBoard and PandaBoard ES
- cubox: for SolidRun CuBox (work in progress)
You need to download the file ending with .raw.xz (not -raw.bz2) matching your board. Then, as root (or use sudo) unzip and write it to your SD card with xzcat and dd. Replace sdX (or mmcblkX) with the device name of your SD card. Be careful. If you use a wrong letter, you could erase your hard disk!:
xzcat <image>.raw.xz | dd bs=4M of=/dev/sdX; sync
If no pre-built images are available for your board, download the root file system (rootfs) available at http://download.opensuse.org/ports/armv7hl/distribution/12.2/ . And make your own SD card to boot on, with first bootloader (manufacturer specific), U-Boot (configured for your board) and a kernel (configured for your board) if openSUSE does not provide it.
Bootstrapping a kernel using openSUSE chroot
openSUSE does not currently ship a cross-compiler for ARM. If you don't want to compile your own, you can use a chroot'ed openSUSE rootfs on your PC.
First, download the JeOS rootfs from the openSUSE:Factory:ARM images repository:
$ wget http://download.opensuse.org/repositories/openSUSE:/Factory:/ARM/images/openSUSE-Factory-ARM-JeOS.armv7l-1.12.1-Build32.6.tbz $ sha256sum openSUSE-Factory-ARM-JeOS.armv7l-1.12.1-Build32.6.tbz $ mkdir rootfs $ sudo tar xvjf openSUSE-Factory-ARM-JeOS.armv7l-1.12.1-Build32.6.tbz -C rootfs
Set up QEMU translation for ARM binaries:
# zypper in qemu-linux-user # qemu-binfmt-conf.sh
Prepare the environment:
# mount --bind /proc rootfs/proc # mount --bind /sys rootfs/sys # mount --bind /dev rootfs/dev # cp /etc/resolv.conf rootfs/etc/ # cp /usr/bin/qemu-arm* rootfs/usr/bin # chroot rootfs
You can now run commands like you would on an ARM board, for example:
# zypper ref # zypper up # zypper in gcc make SDL-devel
Either obtain kernel sources using wget, git, etc. or copy into the rootfs from the host. Then compile like you would natively. Once you're done, type
and you're back in your previous filesystem.