Ubuntu服务器运行无头Android模拟器遇cpufreq文件缺失,如何启动?
无头Android模拟器启动崩溃解决方案
问题背景
在Ubuntu 5.15.0-86-generic服务器上运行从官方AOSP构建的无头Android模拟器,执行启动命令:
emulator -no-window -qemu -nographic -machine virt -no-audio
模拟器几秒内崩溃,触发file_io_posix.cc错误,日志显示无法找到/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq和scaling_max_freq文件。尝试通过apt安装acpi包部署cpufreq,启动时提示No support for device type: power_supply,无法成功。
模拟器版本:Android emulator version 34.1.1.0 (build_id 10728531)
可行解决方法
1. 禁用CPU频率检测特性
在启动命令中添加-feature -cpufreq参数,强制模拟器跳过cpufreq相关检测:
emulator -no-window -qemu -nographic -machine virt -no-audio -feature -cpufreq
这是最直接的解决方式,无需修改系统文件。
2. 手动创建缺失的cpufreq文件
如果上述参数无效,可手动创建缺失文件并写入模拟值:
- 创建目录(若不存在):
sudo mkdir -p /sys/devices/system/cpu/cpu0/cpufreq - 写入模拟频率值:
echo "3000000" | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq echo "1500000" | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq - 设置可读权限:
sudo chmod 644 /sys/devices/system/cpu/cpu0/cpufreq/scaling_*freq
注意:系统重启后需重新执行,可写入开机脚本实现持久化。
3. 指定QEMU CPU模拟配置
通过QEMU参数强制使用固定CPU模拟配置,绕过主机cpufreq读取:
emulator -no-window -qemu -nographic -machine virt -no-audio -cpu max,suppress-vendor-id=on
-cpu max启用高级CPU模拟,同时跳过部分主机硬件检测逻辑。
内容的提问来源于stack exchange,提问作者Me7e0r
相关产品推荐
相关产品推荐

