将Android APP安装到sm8550 HDK的NVMe SSD

本文详细介绍了Android应用数据在内部存储、外部存储、缓存目录以及系统公共目录的默认位置,同时提供了三种方法转移App数据至NVMe设备,包括基于mount--bind、将/data/app路径挂载和使用软链接实现数据迁移,以及权限管理和检查过程。

APP存储路径

在Android中,App在运行过程中主要访问的数据路径通常包括以下几个方面:

内部存储(Internal Storage):App会访问其私有的内部存储空间,这个空间通常位于:

/data/data/<package_name>/:这个目录是每个App的专属内存空间,用于存储私有数据,如数据库、SharedPreferences、文件等。

外部存储(External Storage):如果App需要存储对用户可见的数据或是共享文件,可能会访问外部存储:

/sdcard/Android/data/<package_name>/ 或 /storage/emulated/0/Android/data/<package_name>/:用于存储可被用户或者设备上其他App访问的非私有数据。

缓存目录(Cache):App运行过程中会产生临时数据,内部缓存路径为:

/data/data/<package_name>/cache/:内部缓存目录,用于临时存储数据。

外部缓存路径为:

/sdcard/Android/data/<package_name>/cache/:外部缓存目录,也用于临时存储,但存储在外部存储上。
应用程序资源和代码(Application Resources and Code):
/data/app/<package_name>/:App安装在这个位置,在这里可以找到APK文件以及和App相关的其他执行文件。

系统提供的公共目录:一些公共的数据,如音乐、照片等,App可以通过相应权限访问系统提供的公共目录:

/sdcard/Music/
/sdcard/Pictures/
/sdcard/Download/等等。

方法一:基于mount --bind方法

# selinux会检测权限问题所以先关闭它
setenforce 0
# 创建挂载点
mkdir /data/nvme_ssd
# 挂载nvme ssd
mount /dev/block/nvme0n1p1 /data/nvme_ssd
# 复制目录到nvme ssd
cp -r -p /data/data /data/nvme_ssd/
cp -r -p /data/app /data/nvme_ssd/
cp -r -p /sdcard/Android /data/nvme_ssd/
# 挂载目录到nvme ssd
mount --bind /data/nvme_ssd/data /data/data
mount --bind /data/nvme_ssd/app /data/app
mount --bind /data/nvme_ssd/Android /sdcard/Android
# 查看挂载结果
df -h -a

方法二:/data/app路径转移到NVMe设备

# selinux会检测权限问题所以先关闭它
setenforce 0
# 将盘挂载到/data/app路径下
mount /dev/block/nvme0n1p1 /data/app
# 修改目录权限
chown -R system:system /data/app

方法三:/data/data路径软连接到NVMe设备

因为这里已经存储了很多原厂的app数据,而且各个目录/各级目录的权限也不同,因此修改起来比较麻烦
确定要迁移的APP,这里以com.sohu.inputmethod.sogou为例

# 在/data/app下创建新的data目录
mkdir /data/app/data
# 修改权限
chown -R system:system /data/app/data
# 迁移APP数据
mv /data/data/com.sohu.inputmethod.sogou /data/app/data/
# 看一下权限所有者,应该没有变,是app号
ls -lh /data/app/data
total 3.0K
drwx------ 9 u0_a163 u0_a163 3.4K 2024-02-26 01:42 com.sohu.inputmethod.sogou
# 创建软连接
ln -s /data/app/data/com.sohu.inputmethod.sogou /data/data/com.sohu.inputmethod.sogou
# 修改软连接权限
chown -h u0_a163:u0_a163  /data/data/com.sohu.inputmethod.sogou
#看一下修改结果
cd /data/data
ls -lh
lrwxrwxrwx  1 u0_a163 u0_a163 41 2024-02-26 01:46 com.sohu.inputmethod.sogou -> /data/app/data/com.sohu.inputmethod.sogou
<think>好的,我现在需要帮助用户在openEuler系统上安装Ascend HDK 310P NPU。首先,用户的问题提到他们在寻找相关的指南或教程,而他们之前可能参考过引用[1]中的步骤,但可能存在一些问题。我需要先理解引用中的内容,然后结合openEuler系统的特点来调整步骤。 首先,引用[1]提到了安装CANN Toolkit、驱动和固件的步骤,包括运行.run文件、处理权限、解决用户创建错误和固件升级问题。但用户现在是在openEuler系统上,可能需要确认这些步骤是否适用,或者是否有特定于openEuler的注意事项。 接下来,我需要回忆openEuler的特点,比如它基于CentOS,使用dnf/yum包管理,可能对内核版本有要求。Ascend HDK 310P NPU驱动和固件可能对系统内核有依赖,需要确保openEuler的版本与驱动兼容。例如,检查驱动支持的OS版本是否包括用户使用的openEuler版本。 然后,安装步骤大致应该包括:1. 系统准备,如更新系统、安装依赖包;2. 下载驱动和工具包;3. 安装驱动和固件;4. 验证安装。但需要根据openEuler调整命令,比如使用dnf而不是apt-get安装依赖。 可能遇到的问题包括:依赖项缺失,权限问题,用户组配置,固件安装错误(如提示不是物理机),以及安装后的重启和服务启动。需要针对这些情况给出解决方案,比如创建用户组,检查硬件兼容性,使用npu-smi工具验证等。 另外,用户之前遇到的错误提示如“not a physical-machine”可能是在虚拟环境中尝试安装,而驱动需要物理机支持,这一点需要明确提醒用户。同时,安装后的配置,如设置环境变量,添加用户到HwHiAiUser组,也需要包含在步骤中。 最后,生成的相关问题需要考虑用户后续可能遇到的困难,比如环境变量配置、多卡支持、安装失败处理等,这有助于用户进一步解决问题。</think>以下是在openEuler系统上安装Ascend HDK 310P NPU的详细指南,结合华为官方文档和实际部署经验整理: ### 一、安装前准备 1. **系统要求** - openEuler 22.03 LTS或更高版本 - 内核版本需与驱动包中的kernel-devel版本匹配 - 预留至少10GB磁盘空间 2. **依赖安装** ```bash sudo dnf install -y gcc gcc-c++ make cmake kernel-devel-$(uname -r) python3 ``` 3. **禁用nouveau驱动** ```bash echo "blacklist nouveau" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf sudo dracut --force ``` ### 二、安装流程 1. **获取安装包** - 从华为企业支持网站下载: - Ascend-hdk-310p-npu-driver_[version]_linux-aarch64.run - Ascend-hdk-310p-npu-firmware_[version]_linux-aarch64.run - Ascend-cann-toolkit_[version]_linux-aarch64.run 2. **安装驱动(按顺序执行)** ```bash chmod +x Ascend-hdk-310p-npu-driver_*.run sudo ./Ascend-hdk-310p-npu-driver_*.run --full --install-for-all ``` 3. **安装固件 ```bash chmod +x Ascend-hdk-310p-npu-firmware_*.run sudo ./Ascend-hdk-310p-npu-firmware_*.run --full ``` 4. **安装CANN Toolkit** ```bash chmod +x Ascend-cann-toolkit_*.run sudo ./Ascend-cann-toolkit_*.run --install --install-for-all ``` ### 三、验证安装 1. **设备状态检查** ```bash npu-smi info ``` 应显示类似信息: ``` +----------------------------------------------------------------------------------------+ | npu-smi 21.0.4 Version: 21.0.4 | +-------------------+-----------------+--------------------------------------------------+ | NPU Name | Health | Power(W) Temp(C) HBM(MB) | | Chip | Bus-Id | AICore(%) Memory-Usage(MB) HBM-Usage(MB) | +===================+=================+==================================================+ | 0 310P3 | OK | 15.8 45 32768 | | 0 | 0000:88:00.0 | 0 785/32768 0/32768 | +===================+=================+==================================================+ ``` 2. **环境变量配置** ```bash echo 'source /usr/local/Ascend/ascend-toolkit/set_env.sh' >> ~/.bashrc source ~/.bashrc ``` ### 四、常见问题处理 1. **报错"not a physical-machine"** - 确认在物理服务器上安装(不支持虚拟机)[^1] - 执行硬件检测: ```bash lspci | grep -i npu ``` 2. **用户权限问题** ```bash sudo groupadd HwHiAiUser sudo usermod -aG HwHiAiUser $USER ``` 3. **驱动版本冲突** ```bash sudo /usr/local/Ascend/driver/tools/upgrade-tool --device_index -1 --component -1 --version ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值