HCL:Chroot
Chroot
openSUSE for ARM can be installed alongside your other OS on any Linux machine, be it x86 or ARM based. This way you can work with openSUSE for ARM on your x86 based workstation. Or you can run it on your Android ARM device. Please make sure to be root for the command snippets below.
First, download the latest (JeOS, E20, GNOME, KDE, LXQT, X11, or XFCE) root file system (*.tar.xz) available at:
- aarch64
Tumbleweed
|
http://download.opensuse.org/ports/aarch64/tumbleweed/appliances/ |
Leap 15.4
|
http://download.opensuse.org/ports/aarch64/distribution/leap/15.4/appliances/ |
- armv7
Tumbleweed
|
http://download.opensuse.org/ports/armv7hl/tumbleweed/appliances/ |
Leap 15.4
|
http://download.opensuse.org/ports/armv7hl/distribution/leap/15.4/appliances/ |
- armv6
Tumbleweed
|
http://download.opensuse.org/ports/armv6hl/tumbleweed/appliances/ |
# wget http://download.opensuse.org/ports/aarch64/tumbleweed/appliances/openSUSE-Tumbleweed-ARM-JeOS.aarch64-rootfs.aarch64.tar.xz # mkdir rootfs # sudo tar xf *.tar.xz -C rootfs
If you are on x86, set up QEMU translation for ARM binaries. You can skip this if you are already on an ARM device:
# 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 # mount --bind /dev/pts rootfs/dev/pts # cp /etc/resolv.conf rootfs/etc/
Copy files necessary for qemu/binfmt emulation into the environment:
# cp /usr/bin/qemu-arm-binfmt rootfs/usr/bin # cp /usr/bin/qemu-arm rootfs/usr/bin
Chroot into the environment:
# chroot rootfs
You can now run commands like you would on any openSUSE installation, for example:
# zypper ref # zypper up # zypper in gcc make SDL-devel
Once you're done, type
# exit
and you're back in your previous filesystem.
Do-it-yourself environment
If you have your own kernel and bootloader, you can follow the steps as above, but instead extract the rootfs tbz file into a real partition on your machine (or on a partition on an SD card). When booting your own kernel, point it to that new partition
U-Boot 2012.04.01 (Oct 14 2012 - 20:04:42) CPU: Some CPU Board: Some Board DRAM: n GiB Using default environment In: serial Out: serial Err: serial Hit any key to stop autoboot: 0 U-Boot > setenv bootargs root=/dev/mmcblk0p1 U-Boot > boot
This way you can use your own kernel and bootloader to run an openSUSE distribution!