Удалось заставить работать TRIM на внешнем диске WD MyPassport 5Tb (как знаете, сейчас большинство больших HDD стали с черепичной записью, из-за чего они поддерживают TRIM - чтобы не было проблем с быстродействием по мере заполнения диска). По идее это должно работать и на SSD.
Настраивается все через OPKG, сам внешний диск/контроллер должны поддерживать TRIM. Файловая система EXT4.
- Устанавливаем необходимые пакеты
# opkg install fstrim
# opkg install lsblk
Во всех командах прописываете пути до своего диска и точки монтирования, у меня это
/dev/sda
/tmp/mnt/d572541d-d7c9-4540-bef3-8da2d0b4f9c2
- Проверяем, что сейчас TRIM не работает
# fstrim -v /tmp/mnt/d572541d-d7c9-4540-bef3-8da2d0b4f9c2
fstrim: /tmp/mnt/d572541d-d7c9-4540-bef3-8da2d0b4f9c2: the discard operation is not supported
# cat /sys/block/sda/device/scsi_disk/0\:0\:0\:0/provisioning_mode
disabled
# lsblk --discard /dev/sda
NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sda 0 4K 0B 0
sda1 0 4K 0B 0
sda2 0 4K 0B 0
здесь DISC-MAX - по нулям
- Включаем поддержку TRIM
# echo -n unmap > /sys/block/sda/device/scsi_disk/0\:0\:0\:0/provisioning_mode
- Проверяем что включение поддержки сработало
# cat /sys/block/sda/device/scsi_disk/0\:0\:0\:0/provisioning_mode
unmap
Должен сохраниться unmap
# lsblk --discard /dev/sda
NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sda 0 4K 4G 0
sda1 0 4K 4G 0
sda2 0 4K 4G 0
здесь DISC-MAX теперь ненулевой - 4Gb
- Запускаем TRIM
# fstrim -v /tmp/mnt/d572541d-d7c9-4540-bef3-8da2d0b4f9c2
/tmp/mnt/d572541d-d7c9-4540-bef3-8da2d0b4f9c2: 4.5 TiB (4920666669056 bytes) trimmed
По выводу команды видно, что TRIM сработал, после удаления файлов тоже срабатывает как надо:
# fstrim -v /tmp/mnt/d572541d-d7c9-4540-bef3-8da2d0b4f9c2
/tmp/mnt/d572541d-d7c9-4540-bef3-8da2d0b4f9c2: 121.7 MiB (127647744 bytes) trimmed
Кому надо, для автоматизации могут добавить соответствующие команды в cron и т.д.