Pure OS for Tinker 2 (RUS)

Результат команды

root@tinker:~# dmesg |grep mmc
[ 0.110737] platform fe330000.mmc: Fixed dependency cycle(s) with /syscon@ff7 70000/phy@f780
[ 2.850519] dwmmc_rockchip fe320000.mmc: IDMAC supports 32-bit address mode.
[ 2.850574] dwmmc_rockchip fe320000.mmc: Using internal DMA controller.
[ 2.850593] dwmmc_rockchip fe320000.mmc: Version ID is 270a
[ 2.850702] dwmmc_rockchip fe320000.mmc: DW MMC controller at irq 59,32 bit h ost data width,256 deep fifo
[ 2.852240] mmc0: CQHCI version 5.10
[ 2.862410] mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[ 2.878361] mmc0: SDHCI controller on fe330000.mmc [fe330000.mmc] using ADMA
[ 2.943919] mmc0: Command Queue Engine enabled
[ 2.943960] mmc0: new HS200 MMC card at address 0001
[ 2.945034] mmcblk0: mmc0:0001 AJTD4R 14.6 GiB
[ 2.948189] mmcblk0: p1
[ 2.949125] mmcblk0boot0: mmc0:0001 AJTD4R 4.00 MiB
[ 2.951782] mmcblk0boot1: mmc0:0001 AJTD4R 4.00 MiB
[ 2.954194] mmcblk0rpmb: mmc0:0001 AJTD4R 4.00 MiB, chardev (243:0)
[ 4.887479] EXT4-fs (mmcblk0p1): mounted filesystem with writeback data mode. Quota mode: none.
[ 7.059258] EXT4-fs (mmcblk0p1): re-mounted. Quota mode: none.
[ 7.059364] EXT4-fs (mmcblk0p1): re-mounted. Quota mode: none.
root@tinker:~#

А если поменять модуль EMMC на другой?

1 лайк

@Saymer спасибо за лог.
в смысле этот сдуть и другой напаять? Это крайний вариант наверное :slight_smile:

Меня смущает, как я писал в изначальном посте, что родной дебиан на eMMC работает без ошибок ввода/вывода, + badblocks не находит никаких ошибок.

1 лайк

вот оно отличие:
на моем тинкере eMMC распознается как HS400

на вашем, как HS200
[ 2.943960] mmc0: new HS200 MMC card at address 0001

я приводил ссылку на баг в ядре диеты:
The workaround appears to be reducing the speed of the eMMC controller from HS400-es to HS200

2 лайка

Только если @ppy Павел что-то сможет сделать с этими чудесами

Этот лог снят с ATH2S, который с завода имел EMMC.

У меня есть ещё ATH2, который не S
И туда EMMC ставил мастер.
Он он выключен, а я не дома.
Смогу только вечером не раньше сделать лог с него снять.

Если не затруднит.

Спасибо!

Снято с другого сейчас

Второй ATH2

root@tinker:~# dmesg |grep mmc
[ 0.110625] platform fe330000.mmc: Fixed dependency cycle(s) with /syscon@ff770000/phy@f780
[ 2.395278] dwmmc_rockchip fe320000.mmc: IDMAC supports 32-bit address mode.
[ 2.395332] dwmmc_rockchip fe320000.mmc: Using internal DMA controller.
[ 2.395351] dwmmc_rockchip fe320000.mmc: Version ID is 270a
[ 2.395465] dwmmc_rockchip fe320000.mmc: DW MMC controller at irq 64,32 bit host data width,256 deep fifo
[ 2.397272] mmc0: CQHCI version 5.10
[ 2.409634] mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[ 2.422242] mmc0: SDHCI controller on fe330000.mmc [fe330000.mmc] using ADMA
[ 2.487412] mmc0: Command Queue Engine enabled
[ 2.487452] mmc0: new HS200 MMC card at address 0001
[ 2.488637] mmcblk0: mmc0:0001 AJTD4R 14.6 GiB
[ 2.491825] mmcblk0: p1
[ 2.492699] mmcblk0boot0: mmc0:0001 AJTD4R 4.00 MiB
[ 2.495477] mmcblk0boot1: mmc0:0001 AJTD4R 4.00 MiB
[ 2.497969] mmcblk0rpmb: mmc0:0001 AJTD4R 4.00 MiB, chardev (243:0)
[ 4.469452] EXT4-fs (mmcblk0p1): mounted filesystem with writeback data mode. Quota mode: none.
[ 6.663928] EXT4-fs (mmcblk0p1): re-mounted. Quota mode: none.
[ 6.674121] EXT4-fs (mmcblk0p1): re-mounted. Quota mode: none.
root@tinker:~#

1 лайк

В общем свою проблему я решил.
Всем спасибо за поддержку, возможно Павел @ppy прольет свет на причину такого поведения, т.к. точно есть экземпляры tinker 2S, на которых все работает сразу “из коробки”.

Надеюсь, кому-то мой опыт будет полезен.

Суть проблемы (подробные симптомы в моем сообщении выше):

  • После установки образа из шапки на встроенную eMMC Tinker 2S сыпется файловая система. Ошибки в dmesg появляются сразу при первом запуске.
  • Контроллер eMMC определяется как HS400. В ядре dietpi отсутствует поддержка этого контроллера, либо в ней баг

Исправление:

  1. загрузится с SD карты с родным Debian 10 в режиме maskrom
  2. прошить на eMMC образ Pure из шапки командой dd
  3. смонтировать eMMC (или перезагрузить тинкер еще раз в режиме maskrom)
  4. заменить в device tree контроллер hs400 на hs200:
  • ‘dtc -I dtb -O dts -f /media/linaro/pure_root/boot/dtb-4.19.232-orig/rockchip/rk3399-tinker-2.dtb -o rk3399-tinker-2.dts’
  • отредактировать rk3399-tinker-2.dts
    ‘- mmc-hs400-1_8v;’
    ‘- mmc-hs400-enhanced-strobe;’
    ‘+ mmc-hs200-1_8v;’
  • ‘dtc -I dts -O dtb -f rk3399-tinker-2.dts -o rk3399-tinker-2.dtb’
  • подменить “оргинальный” device tree - ‘cp rk3399-tinker-2.dtb /media/linaro/pure_root/boot/dtb-4.19.232-orig/rockchip/rk3399-tinker-2.dtb’
  1. Перезагрузиться в нормальном режиме. Убедиться, что в выводе dmesg контроллер правильный:
    “[Mon Jan 20 20:14:48 2025] mmc2: new HS200 MMC card at address 0001”
    и отсутствуют ошибки связанные с mmc

P.S. при штатном обновлении puredsd device tree переписывается на дефолтный с hs400. Так что, в процессе обновления нужно либо восстановить модифицированный файл, либо повторить шаги 1-5.

8 лайков

Только, сейчас, добрался до радио. Спасибо за инструкцию. Все получилось.

Подскажите! Вот такая плата с микро сд будет работать на Тинкере в качестве медиотеки?
Что то необходимо в настройках прошивки дополнительно сделать?

в dietpi можно посмотреть, видит ли менеджер дисков это устройство (SD)
dietpi-drive_manager

2 лайка

Pure увидела карту,Аудирвана тоже видит карту.
Попробую разные карты по обьему ,определю максимально возможный обьем который сможет увидеть система.
от 32 до 512 есть карты.

Как вариант еще определится с файловой системой .
p.s. ext4 не увидела система. (

так ее смонтировать нужно)

3 лайка

Для использования с lms можно ли от дефолтных настроек изменять частоту и тп, чтобы тинкер не грелся?

На моём тоже, но PureOS работает на eMMC нормально:

Спойлер

root@tinker:~# dmesg |grep mmc [ 2.846164] dwmmc_rockchip fe320000.dwmmc: IDMAC supports 32-bit address mode. [ 2.846286] dwmmc_rockchip fe320000.dwmmc: Using internal DMA controller. [ 2.846300] dwmmc_rockchip fe320000.dwmmc: Version ID is 270a [ 2.846355] dwmmc_rockchip fe320000.dwmmc: DW MMC controller at irq 28,32 bit host data width,256 deep fifo [ 2.846375] dwmmc_rockchip fe320000.dwmmc: Looking up vmmc-supply from device tree [ 2.846392] dwmmc_rockchip fe320000.dwmmc: Looking up vqmmc-supply from device tree [ 2.847501] sdhci-arasan fe330000.sdhci: Looking up vmmc-supply from device tree [ 2.847512] sdhci-arasan fe330000.sdhci: Looking up vmmc-supply property in node /sdhci@fe330000 failed [ 2.847527] sdhci-arasan fe330000.sdhci: Looking up vqmmc-supply from device tree [ 2.847536] sdhci-arasan fe330000.sdhci: Looking up vqmmc-supply property in node /sdhci@fe330000 failed [ 2.871190] mmc2: SDHCI controller on fe330000.sdhci [fe330000.sdhci] using ADMA [ 2.903209] mmc2: new HS400 Enhanced strobe MMC card at address 0001 [ 2.904277] mmcblk2: mmc2:0001 AJTD4R 14.6 GiB [ 2.904946] mmcblk2boot0: mmc2:0001 AJTD4R partition 1 4.00 MiB [ 2.905782] mmcblk2boot1: mmc2:0001 AJTD4R partition 2 4.00 MiB [ 2.906140] mmcblk2rpmb: mmc2:0001 AJTD4R partition 3 4.00 MiB, chardev (237:0) [ 2.907726] mmcblk2: p1 [ 3.158637] rockchip-iodomain ff770000.syscon:io-domains: Looking up sdmmc-supply from device tree [ 3.158720] rockchip-iodomain ff770000.syscon:io-domains: sdmmc(3000000 uV) supplied by vcc_sdio [ 3.164814] dwmmc_rockchip fe320000.dwmmc: IDMAC supports 32-bit address mode. [ 3.165037] dwmmc_rockchip fe320000.dwmmc: Using internal DMA controller. [ 3.165051] dwmmc_rockchip fe320000.dwmmc: Version ID is 270a [ 3.165157] dwmmc_rockchip fe320000.dwmmc: DW MMC controller at irq 28,32 bit host data width,256 deep fifo [ 3.165179] dwmmc_rockchip fe320000.dwmmc: Looking up vmmc-supply from device tree [ 3.165207] dwmmc_rockchip fe320000.dwmmc: Looking up vqmmc-supply from device tree [ 3.165286] dwmmc_rockchip fe320000.dwmmc: Linked as a consumer to regulator.36 [ 3.165356] dwmmc_rockchip fe320000.dwmmc: Dropping the link to regulator.36 [ 3.176171] dwmmc_rockchip fe320000.dwmmc: IDMAC supports 32-bit address mode. [ 3.176385] dwmmc_rockchip fe320000.dwmmc: Using internal DMA controller. [ 3.176404] dwmmc_rockchip fe320000.dwmmc: Version ID is 270a [ 3.176437] dwmmc_rockchip fe320000.dwmmc: DW MMC controller at irq 28,32 bit host data width,256 deep fifo [ 3.176459] dwmmc_rockchip fe320000.dwmmc: Looking up vmmc-supply from device tree [ 3.176543] dwmmc_rockchip fe320000.dwmmc: Linked as a consumer to regulator.44 [ 3.176559] dwmmc_rockchip fe320000.dwmmc: Looking up vqmmc-supply from device tree [ 3.176619] dwmmc_rockchip fe320000.dwmmc: Linked as a consumer to regulator.36 [ 3.176715] mmc_host mmc1: card is polling. [ 3.188520] mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0) [ 3.225080] mmc_host mmc1: Bus speed (slot 0) = 300000Hz (slot req 300000Hz, actual 300000HZ div = 0) [ 3.261750] mmc_host mmc1: Bus speed (slot 0) = 200000Hz (slot req 200000Hz, actual 200000HZ div = 0) [ 3.301789] mmc_host mmc1: Bus speed (slot 0) = 100000Hz (slot req 100000Hz, actual 100000HZ div = 0) [ 3.877711] EXT4-fs (mmcblk2p1): mounted filesystem with writeback data mode. Opts: (null) [ 4.706879] EXT4-fs (mmcblk2p1): re-mounted. Opts: (null) root@tinker:~#

Но, видимо, надо перепрошить по Вашей инструкции, на всякий случай.

Интересно, у вас нет ошибок I/O error.
У меня их было очень много, при любой активной операции записи на emmc файловая система rootfs переходила в read-only режим.

А если Гондурас не беспокоит, зачем его теребить :grinning:

Истинная причина мне не известна, с уверенностью могу сказать только то, что в моём случае это помогло.

Так оно. Но, всё же, есть некая странность в поведении моего Тинкера с Pure, забыл о ней, когда писал ответ. Иногда (не знаю сколько из скольки, но бывает) после перезагрузки отключением питания и подачей его через несколько секунд Тинкер не загружается, в сети его нет. А через 10 минут, например, загрузится. Но то было давно, может уже наладилось, хотя, с чего бы. И я не смог запустить с eMMC YoctoAP, после записи образа я могу редактировать apconfig.txt, как на обычной microSD карточке, при загрузке загорается красный диод сетевой карты (он, как я понял, свидетельствует о загрузке ОС), но в сети Тинкер не появляется. С microSD без проблем.

@trakk, если не затруднит, проверьте, пожалуйста, на своем Тинкере YoctoAP с eMMC.

Каким редактором правите. В Windows редактор Блокнот не нужно использовать, он портит файл.
Пользуйтесь редактором Notepad++

2 лайка

Все файлы apconfig.txt для всез одноплатников всегда правил блокнотом Windows 10,а потом и 11, никогда не портил. Windows 7, да, там блокнот другой был, даже структуру файла открывал не столбцом, как Windows 11, а в строчку.
Но не удивлюсь, если в случае с eMMC это важно.

2 лайка