我正在尝试在 ARM64 / xfce4 / jetson nano 上运行一些图形 i386 应用程序。我已按照本教程配置了 I386 / bionic chroot 环境,并对其进行了少许调整:
https://www.youtube.com/watch?v=dzAoaFOJy7U&t=161s&ab_channel=NovaspiritTech
我已经使用以下命令在 ubuntu x64 上使用外部 i386 创建了 chroot-i386:
debootstrap --foreign --arch i386 bionic ./chroot-bionic-i386/
我将目录复制到 jetson nano,然后使用以下命令将 qemu-i386-static 从 jetson nano 复制到 i386 chroot:
cp /usr/bin/qemu-i386-static /root/Scrivania/work/qemu-x86/chroot-bionic-i386
现在,不再运行:
chroot ./chroot-bionic-i386/ /debootstrap/debootstrap --second-stage
在 chroot 文件夹之外,在 chroot 内部我执行了:
chroot ./chroot-bionic-i386 /bin/bash
我改变了 PS1 以查看我是否在 chroot 中:
PS1="(chroot i386) $PS1"
我已经启动了 debootstrap 第二阶段:
/debootstrap/debootstrap --second-stage
它成功了。我不知道为什么本教程的作者的工作方式与我不同。现在我试图了解如何在 chroot 中运行 Teamviewer。
下面你可以看到他得到的最终结果以及我想要达到的结果:
不幸的是,我得到的是:
我这边缺少了一些东西,他忽略了。我做了和他一样的事情,包括在文件中添加了这一行/root/.bashrc
export DISPLAY=:0
那么,还有什么可以忽略的呢?我想要达到的效果是看到 teamviewer 窗口出现在您在图片上看到的终端内。无论如何,我想节省您展示他发出的命令的时间,这样您就可以避免观看完整的教程。在 chroot 中,他写道:
apt install xterm
cd opt
mkdir chrootscript
cd chrootscript
sudo nano chrootmount
!/bin/bash
sudo mount -t sysfs /sys/ /root/Scrivania/Work/qemu-x86/chroot-bionic-i386/sys/
sudo mount -t proc /proc/ /root/Scrivania/Work/qemu-x86/chroot-bionic-i386/proc/
sudo mount --bind /dev /root/Scrivania/Work/qemu-x86/chroot-bionic-i386/dev/
sudo mount --bind /dev/pts /root/Scrivania/Work/qemu-x86/chroot-bionic-i386/dev/pts/
sudo mount --bind /dev/shm /root/Scrivania/Work/qemu-x86/chroot-bionic-i386/dev/shm/
sudo chmod +x chrootmount
sudo nano /etc/systemd/system/chrootmount.service
[Unit]
Description= mounts chroot on boot
[Service]
Type=one-shot
ExecStart=/opt/chrootmount/chrootmount
[Install]
WantedBy=multi-user.target
sudo systemctl enable chrootmount.service
sudo nano /opt/chrootscript/start_x86_user
!/bin/sh
/usr/sbin/chroot /root/Scrivania/Work/qemu-x86/chroot-bionic-i386/ /bin/su -l ziomario
sudo nano /opt/chrootscript/start_x86_root#
!/bin/sh
/usr/sbin/chroot /root/Scrivania/Work/qemu-x86/chroot-bionic-i386/ /bin/su -l root
chmod +x start_x86_user
chmod +x start_x86_root
相反,在 nano 上安装的 ubuntu 18.04 桌面上,我执行了以下操作:
nano /root/Scrivania/x86_user.desktop
[Desktop Entry]
Type=Application
Comment=Start x86 user
Name=x86 User
Exec=lxterminal -e sudo /opt/chrootscript/start_x86_user
Icon=
Terminal=false
Categories=Utility
StartupNotify=True
和 :
nano /root/Scrivania/x86_root.desktop
[Desktop Entry]
Type=Application
Comment=Start x86 root
Name=x86 root
Exec=lxterminal -e sudo /opt/chrootscript/start_x86_root
Icon=
Terminal=false
Categories=Utility
StartupNotify=True
此时我已将文件夹 chrootscript 从 chroot 的 /opt 文件夹复制到 ubuntu 18.04 / jetson nano 的 /opt 文件夹中,然后在 nano 桌面上运行 x86_user 和 x86_root 图标,但出现错误:“无法打开显示”。
注意:我还没有创建任何xorg配置文件文件,因为他没有这样做。
您能知道错误在哪里吗?谢谢。