HCL:Chroot

跳转至: 导航, 搜索

Chroot

对于 ARM 平台,在任何机器,openSUSE 都可以和您的其他系统并存安装,x86 和 ARM 系统,一视同仁。因此您可以在 x86 工作站上进行 openSUSE ARM 的开发。当然也可以在您的 Android ARM 设备上运行 openSUSE。但是请使用 root 执行以下指令。

首先, 现在最新的 (JeOS, E20, GNOME, KDE, LXQT, X11, or XFCE) root 文件系统 (*.tar.xz) :

  • aarch64
Susemini.png
Version:
Tumbleweed
http://download.opensuse.org/ports/aarch64/tumbleweed/images/
Susemini.png
Version:
Leap 15.0
http://download.opensuse.org/ports/aarch64/distribution/leap/15.0/appliances/
Susemini.png
Version:
Leap 42.3
http://download.opensuse.org/ports/aarch64/distribution/leap/42.3/appliances/


  • armv7
Susemini.png
Version:
Tumbleweed
http://download.opensuse.org/ports/armv7hl/tumbleweed/images/
Susemini.png
Version:
Leap 15.0
http://download.opensuse.org/ports/armv7hl/distribution/leap/15.0/appliances/
Susemini.png
Version:
Leap 42.3
http://download.opensuse.org/ports/armv7hl/distribution/leap/42.3/appliances/


  • armv6
Susemini.png
Version:
Tumbleweed
http://download.opensuse.org/ports/armv6hl/tumbleweed/images/


# wget http://download.opensuse.org/ports/aarch64/tumbleweed/images/openSUSE-Tumbleweed-ARM-JeOS.aarch64-rootfs.aarch64-Current.tar.xz
# mkdir rootfs
# sudo tar xJf *.tar.xz -C rootfs

如果您使用 x86,请设置 QEMU 转码以执行 ARM 执行程序。 您可以跳过以下工作,如果您已经有了一个 ARM 设备:

# zypper in qemu-linux-user
# qemu-binfmt-conf.sh

准备环境:

# 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/

拷贝 qemu/binfmt 模拟转码到如下环境:

# cp /usr/bin/qemu-arm-binfmt rootfs/usr/bin
# cp /usr/bin/qemu-arm rootfs/usr/bin

切换 root 到路径:

# chroot rootfs

您可以参考其他 openSUSE 安装,照常执行指令,例如:

# zypper ref
# zypper up
# zypper in gcc make SDL-devel

完成后,输入:

# exit

现在,就回到了您之前的系统环境。

自主执行环境

如果您已经具有了自己的内核和bootloader,您可以遵循上述步骤,但是仍需要将 rootfs 压缩文件解压到设备上真正的分区(如SD卡)。在进行内核启动时,指定到新的分区启动。

 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

这样,您可以使用自己的内核,bootloader,来运行一个 openSUSE 发行版!