是否可以将已编译的 x86 二进制文件转换/重新编译为 ARM 二进制文件?
我正在使用带有命令行 Ubuntu (Maverick)的BeagleBoard并希望运行Ventrilo服务器,但据我所知,它们提供的 x86 可执行文件无法在硬件上运行(很可能是由于架构不同)。
不幸的是,我无法访问源代码以允许我在本地重新编译它。
如果没有,有没有其他方法可以让二进制文件运行(例如模拟)?
正如问题标题中所述 - 众所周知,存在标准,根据这些标准,如果您格式化您的随身碟,在那里安装 x86 引导加载程序和系统分区,您可以获得一个 x86 USB 记忆棒,它几乎可以在任何电脑。具有 ARM 处理器的计算机(如笔记本电脑)是否有类似的标准?
SuperUser 上有关此问题的其他帖子要么太旧而无用,要么适用于不同的操作系统,要么不正是我正在寻找的内容。
我有一台 Windows 10-on-Arm 蜂窝连接平板电脑(Galaxy Book2、SM-W737A),其中安装了高通移动宽带调制解调器。它完美地使用了 3G 和 4G LTE。我的 SIM 卡和数据套餐支持无限制的一切。我已经能够使用该设备和调制解调器使用 Ubuntu Linux 发送和接收文本和呼叫。但是我不知道如何在 Windows 上执行此操作。
如何使用 Windows-10 上的移动宽带调制解调器与移动公共交换电话网络 (PSTN) 交互,以通过信令系统 7 (SS7) 等标准发送和接收短信/彩信?
QEMU 支持 Cortex M4 仿真吗?另外,我尝试模拟的控制器(硬件)是裸机实现( FreeRTOS ),是否可以在 QEMU 中实现这种场景?或者操作系统映像是必须的?
编辑:更好的问题是 QEMU 是否支持 STM32 的 Cortex-M4 仿真。
我正在尝试使用此处提供的说明在我的 Allwinner 设备(带有 armhf 内核的 ARM Cortex-A8 NEON 和大约 380 MB 的 RAM)上从此GitHub 存储库编译 VLC 。
我不断收到段错误,所以我创建了一个这样的交换分区:
root@lianro:~/# dd if=/dev/zero of=/swap bs=1M count=1024
root@linaro:~/# mkswap -c /swap
root@linaro:~/# swapon /swap
Run Code Online (Sandbox Code Playgroud)
它变得更好了;而不是在大约一分钟后随机中断,而是在很长时间后随机中断,上次它几乎完成,但我在最后一个模块中遇到了段错误。
在编译过程中的任何时候似乎都没有使用 Swap。我有足够的可用磁盘空间。
可能是什么问题?
我想在 Qemu 下使用 ARM 版本的 Ubuntu(具有图形支持),但是我在找到任何关于如何最容易完成它的教程时遇到问题(我更喜欢只下载一些图像并运行一个命令来执行它) . 如何以最少的麻烦实现这一目标?
例如,我可以运行主要在 ARM 处理器上运行的 Android,在 x86 Intel 处理器上的 VirtualBox 上运行吗?
我知道 Android x86,但是,这不是一个可行的解决方案。
我在 chroot 环境中的 arm64 android 手机中安装了 debian stretch。我已经按照这里的这些步骤安装了 docker-ce 。
在启动泊坞窗时:: systemctl start docker
返回此错误:: Running in chroot, ignoring request.
使用service docker status
节目 检查[FAIL] Docker is not running ... failed!
如果我运行 using dockerd
,它会显示此错误::
INFO[2018-02-05T22:15:35.631735524+05:30] libcontainerd: started new docker-containerd process pid=23047
INFO[0000] starting containerd module=containerd revision=89623f28b87a6004d4b785663257362d1658a729 version=v1.0.0
INFO[0000] setting subreaper... module=containerd
INFO[0000] changing OOM score to -500 module=containerd
INFO[0000] loading plugin "io.containerd.content.v1.content"... module=containerd type=io.containerd.content.v1
INFO[0000] loading plugin "io.containerd.snapshotter.v1.btrfs"... module=containerd type=io.containerd.snapshotter.v1
WARN[0000] failed to load plugin …
Run Code Online (Sandbox Code Playgroud) 我试过在交换文件(在 ext4 上)上启用交换:
# file /mnt/usb/swapfile
/mnt/usb/swapfile: Linux/i386 swap file (new style), version 1 (4K pages), size 1023999 pages, no label, UUID=9dfaa27a-d72f-4dad-ac97-ffead7e29845
# swapon /mnt/usb/swapfile
swapon: /mnt/usb/swapfile: swapon failed: Invalid argument
Run Code Online (Sandbox Code Playgroud)
和一个交换分区:
# parted /dev/sda2 print
Model: Unknown (unknown)
Disk /dev/sda2: 2934MB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:
Number Start End Size File system Flags
1 0.00B 2934MB 2934MB linux-swap(v1)
# swapon /dev/sda2
swapon: /dev/sda2: swapon failed: Invalid argument
Run Code Online (Sandbox Code Playgroud)
系统信息:
# uname -a
Linux alarm 3.10.18-24-ARCH #1 …
Run Code Online (Sandbox Code Playgroud) 我已经从https://uup.rg-adguard.net/下载了 Windows ARM64 ISO并使用 Qemu 打开它,如本文所述。但是 Qemu 模拟整个 Windows ARM64 操作系统的速度太慢了(我知道 emulation << hypervisor)。因此,我想是否可以在 Qemu(或其他程序)中模拟单个可执行文件(如 arp、ping 等)。如果是,那么我该怎么做?如果不是,那为什么?