Ubuntu24 (redroid)安装ashmem_linux


#安装编译ashmem_linux
#安装dkms
sudo apt install dkms
#下载anbox-modules编译
git clone https://github.com/choff/anbox-modules
#直接运行anbox-modules下的INSTALL.SH
cd anbox-modules
./INSTALL.SH
#其它直接按https://github.com/remote-android/redroid-doc操作
apt install linux-modules-extra-`uname -r`
modprobe binder_linux devices="binder,hwbinder,vndbinder"
modprobe ashmem_linux

#添加docker分组
sudo groupadd docker
#当前用户添加权限
sudo usermod -aG docker $user
#重启docker服务
sudo systemctl restart docker
启动redroid
docker run -itd --rm --privileged \
    --pull always \
    -v ~/data:/data \
    -p 5555:5555 \
    redroid/redroid:12.0.0_64only-latest

## install adb https://developer.android.com/studio#downloads
adb connect localhost:5555
### NOTE: change localhost to IP if running redroid remotely

## view redroid screen
## install scrcpy https://github.com/Genymobile/scrcpy/blob/master/README.md#get-the-app
scrcpy -s localhost:5555

### 解决 ashmem_linux 模块中的致命错误 当遇到 `ashmem_linux` 模块的致命错误时,通常是因为内存分配失败或者设备节点 `/dev/ashmem` 不可用。为了诊断并解决问题,可以按照以下方法排查: #### 1. 检查 Ashmem 设备是否存在 Ashmem 需要依赖于特定的 Linux 内核配置选项来创建 `/dev/ashmem` 节点。如果该文件不存在,则可能是由于内核未启用相应的支持。 ```bash ls -l /dev/ashmem ``` 若命令返回“没有此文件或目录”,则表示当前环境缺少必要的驱动程序[^1]。 #### 2. 加载 Ashmem 内核模块 对于某些发行版,默认情况下可能不会自动加载 ashmem 模块。可以通过手动加载尝试解决这个问题: ```bash sudo modprobe industrialio sudo modprobe ashmem-linux ``` 注意:不同版本的操作系统可能会有不同的命名方式,请查阅官方文档确认具体名称[^2]。 #### 3. 编译带有 Ashmem 支持的自定义内核 如果上述两种方案均无法解决问题,那么考虑重新编译一个包含 Ashmem 功能的新内核镜像。这涉及到修改 `.config` 文件以确保启用了 CONFIG_ASHMEM=y 或者 m (作为可加载模块)[^3]。 ```c // 在 .config 中设置如下参数 CONFIG_ASHMEM=y ``` 完成这些更改之后,继续执行标准的内核构建流程即可。 #### 4. 更新现有软件包 有时问题也可能源于过期的库或其他组件。保持系统的最新状态有助于避免兼容性方面的问题。 ```bash sudo apt update && sudo apt upgrade ``` 以上措施应该能够帮助定位并修复大多数与 ashmem 相关的 FATAL 错误情况。不过具体情况还需要根据实际日志信息进一步分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值