本篇文档介绍如何在 LKD3588 平台的 Ubuntu 22.04 系统上,基于硬件接口绑定方式(不依赖 UUID),实现双 SATA 硬盘的自动识别与挂载。
1. 说明
LKD3588 默认仅支持 单 SATA 接口,LKD3588默认硬件接口
若需启用双 SATA,需要在硬件上焊接第二个 SATA 接口,如下图所示:

并在 SDK 中使用定制设备树:rk3588-neardi-linux-double-sata.dtsi
2.查询硬件绑定路径
辅助脚本:列出 SATA 设备的硬件路径
#!/bin/bash
for dev in /sys/block/sd*; do
echo -n "${dev##*/}: "
readlink -f "$dev/device"
done
执行后输出:
$ ./readlink.sh
sda: /sys/devices/platform/fe210000.sata/ata1/host0/target0:0:0/0:0:0:0
sdb: /sys/devices/platform/fe230000.sata/ata2/host1/target1:0:0/1:0:0:0
sdc: /sys/devices/platform/usbdrd3_1/... (为 USB 接口)
fe210000.sata:表示第一个 SATA 控制器接口(SATA1);fe230000.sata:表示第二个 SATA 控制器接口(SATA2)
3. 编写 Udev 规则为 SATA 分配固定别名
创建 udev 规则文件 /etc/udev/rules.d/71-sata-alias.rules
:
# 为 fe210000.sata 创建 /dev/sata1
KERNEL=="sd*", SUBSYSTEM=="block", KERNELS=="fe210000.sata", SYMLINK+="sata1"
# 为 fe230000.sata 创建 /dev/sata2
KERNEL=="sd*", SUBSYSTEM=="block", KERNELS=="fe230000.sata", SYMLINK+="sata2"
应用规则:
sudo udevadm control --reload-rules
sudo udevadm trigger
4. 自动挂载脚本实现
由于设备名 /dev/sata1、/dev/sata2 不是系统原生命名,不建议直接写入 /etc/fstab,可能导致无法启动,推荐使用启动脚本挂载。
创建启动脚本 /etc/rc.local
#!/bin/bash
mkdir -p /mnt/sata1 /mnt/sata2
mount /dev/sata1 /mnt/sata1
mount /dev/sata2 /mnt/sata2
exit 0
设置执行权限:
sudo chmod +x /etc/rc.local
5. 添加 Systemd 服务以启用 rc.local
创建文件 /etc/systemd/system/rc-local.service
:
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
After=network.target
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=journal+console
RemainAfterExit=yes
GuessMainPID=no
[Install]
WantedBy=multi-user.target
启用并启动服务:
sudo systemctl enable rc-local
sudo systemctl start rc-local
systemctl status rc-local
6. 验证挂载
neardi@LKD3588:/mnt$ tree
.
├── sata1
│ ├── 1
│ └── test_video
│ ├── 720p.mp4
│ └── ch-test.wav
├── sata2
│ └── test-APP
│ ├── 1_ucenter_6.apk
│ ├── android.audiorecorder.apk
│ ├── com.neardi.signaltest.apk
│ ├── DoubleCamTestActivity.apk
│ ├── GPS工具箱.apk
│ ├── Hardware Info 1.10.apk
│ ├── iPerf for Android 2.06.apk
│ ├── MySerialPort-串口测试.apk
│ ├── Neardi调试助手-1.0.1.apk
│ ├── Neardi调试助手-1.0.2.apk
│ ├── NeedForSpeedMostWantedpojie.apk
│ ├── NenaMark2-v2.3.apk
│ ├── no.nordicsemi.android.mcp_4.19.0_96.apk
│ ├── NPU_test-v1.2.apk
│ ├── QQ音乐 7.9.1.7.apk
│ ├── QtScrcpy-win64-v1.0.3.zip
│ ├── RK3399Pro SSD Demo.apk
│ ├── rootservice_for_android10
│ └── 虾米音乐 6.6.0.apk
├── sdcard
│ └── sdcard -> mnt/sdcard
└── usb0
验证 df -h
是否显示两个 SATA 设备均已挂载。