Автор Тема: Альт на rk3399  (Прочитано 40924 раз)

Оффлайн Merblud

  • Давно тут
  • **
  • Сообщений: 460
Re: Альт на rk3399
« Ответ #30 : 05.09.2019 10:20:12 »
У меня была надежда, что u-boot модуль загрузчика из альтовской регулярки сожет работать с spl модулем, собранным мною на одноплатнике. Но, увы, после того как отработал spl модуль полная тишина. Не факт, что вообще собранные по отдельности из разных дистрибутивов эти модули в принципе могут корректно работать.

В общем действительно надо провести этот эксперимент по подмене модулей загрузчика. Мне надо только разобраться с конфигурацией u-boot. Похоже, что по умолчанию где-то в переменной окружения используется префикс rockchip, и соответствующий fdt-файл не находится по указанному пути.

А когда будет обновление alt-rootfs-installe-а? Я что-то не вижу в нем среди целевых платформ nanopc-t4. Без этого эксперимент не имеет смысла.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: Альт на rk3399
« Ответ #31 : 05.09.2019 14:41:41 »
А когда будет обновление alt-rootfs-installe-а? Я что-то не вижу в нем среди целевых платформ nanopc-t4. Без этого эксперимент не имеет смысла.

Возьмите у меня из git, ветка devel:
http://git.altlinux.org/people/antohami/packages/?p=alt-rootfs-installer.git;a=shortlog;h=refs/heads/devel

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: Альт на rk3399
« Ответ #32 : 15.09.2019 17:37:21 »
А когда будет обновление alt-rootfs-installe-а? Я что-то не вижу в нем среди целевых платформ nanopc-t4. Без этого эксперимент не имеет смысла.

Новая версия уже в Сизифе и p9.

Оффлайн Merblud

  • Давно тут
  • **
  • Сообщений: 460
Re: Альт на rk3399
« Ответ #33 : 13.10.2019 22:48:03 »
На некоторое время пришлось сделать перерыв в тестировании, но теперь я снова вернулся к этой теме.
Попробовал две свежие сборки  20191003 и 20192011. Ядра 4.19.х, 5.2.16, 5.3.х работоспособны, грузятся и работают как с sdcard, так и ssd. Правда есть один нюанс, о котором чуть далее.
Пока что беда с загрузчиком. Последовательно, что делал.
Собрал с git загрузчик (какой там был свежий на 8 октября). Получившиеся модули засунул в место имевшихся в regular-xfce-20191003-aarch64.tar.xz. Сделал с помощью alt-rootfs-installer карточку. Карточка изготовилась, но загрузчик оказался нерабочим. То ли spl модуль до конца не отрабатывал, то ли u-boot модуль не мог нормально стартовать.
Записал на карточку загрузчик, который несколько месяцев назад тоже собирал из git. Он заработал. Но похоже, что через минуту стало виснуть ядро. Появлялся первый экран инсталлятора (или даже не успевал появляться) и через несколько секунд зависание.
Записал на карточку родной альтовский загрузчик из 20192011 сборки. И он смог загрузить систему, но с тем же результатом - то есть зависание на первом экране инсталлятора. Но при этом он еще ничего не выдает через сериальный порт. Соответственно и выбрать какое ядро грузить тоже нельзя.
Тогда я попробовал ядра из указанных сборок с загрузчиком от armbian (там miniloader). Все работает.
Единственное объяснение всего этого, приходящее в голову, что загрузчик некорректно инициализирует железо. Подозреваю, что, например, неверно выставляются тайминги памяти.
Кстати, после всего этого начинаю охотно верить, что собрать работоспособный u-boot - это та еще лотерея. Возможно в Альте долгое время просто собиралась на тот момент поломанная самими разработчиками u-boot версия.
В принципе ядро уже работает и с загрузчиком прогресс тоже есть. Возможно, что это именно для t4 кривой конфиг. А может быть стоит просто использовать загрузчик на базе miniloader, коль скоро с ним нет таких проблем.

Оффлайн Merblud

  • Давно тут
  • **
  • Сообщений: 460
Re: Альт на rk3399
« Ответ #34 : 13.10.2019 22:58:39 »
Еще один интересный момент. Когда систему грузит загрузчик tpl/spl (например тот что собран в Альте, или то, что я сам собирал), то ядра 5.х стартуют сразу. Когда я использую загрузчик на базе rockchip miniloader, то ядра 5.х стартуют с задержкой в 1,5 - 2 минуты (позже выложу лог, чтобы увидеть, на чем там затык происходит).
Корни медленного старта в том, что до определенного момента ядро использует медленные энергоэффективные ядра процессора и еще, похоже, на пониженной частоте. Есть патчи, которые эту проблему пытаются решить. Я пока не успел их проверить. Но как я недавно увидел, tpl/spl u-boot что-то делает по другому. Однако, в итоге, не исключено, что именно это и приводит к плачевным последствиям.

Оффлайн Merblud

  • Давно тут
  • **
  • Сообщений: 460
Re: Альт на rk3399
« Ответ #35 : 13.10.2019 23:13:45 »
Ну и на последок уже позитивная новость. После обновления mesa до версии 19.2 у меня заработал рабочий стол xfce с panfrost. Подробно потестить времени не было. Но вроде бы работало на первый взгляд нормально. Но увы, медленнее, чем через простой фрейм буфер без аппаратного ускорения. Надеюсь, что это пока на первое время, хотя есть подозрения, что сама по себе gpu у ARM то еще чудо в перьях. А вот всем известные шестеренки показали с panfrost больше fps.  А вот без композитинга пользоваться panfrost просто невозможно. Там можно минутами разглядывать, как в открывшемся окне прорисовываются отдельные иконки.

То, что Альт оперативно обновляет библиотеки (в данном случае Mesa), это очень похвально. Мои поздравления и пожеланиям дальнейших успехов в этом деле всем причастным. На платформе ARM такая оперативность весьма кстати. Еще раз спасибо.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: Альт на rk3399
« Ответ #36 : 14.10.2019 04:19:48 »
Подписывайтесь на рассылку для одноплатников: https://forum.altlinux.org/index.php?topic=43107.msg342806#new
Расскажите там о своих экспериментах с nano pc t4.

Записал на карточку родной альтовский загрузчик из 20192011 сборки. И он смог загрузить систему, но с тем же результатом - то есть зависание на первом экране инсталлятора. Но при этом он еще ничего не выдает через сериальный порт. Соответственно и выбрать какое ядро грузить тоже нельзя.

В /boot/extlinux/extlinux.conf пропишите последовательный порт вместо tty1
Может он не завис, а проблема с графикой? Попробуйте:
cat > /etc/X11/xorg.conf.d/99-modesetting-noglamor.conf << 'E_O_F'
Section "Device"
Identifier      "default"
Driver          "modesetting"
Option          "AccelMethod"   "none"
EndSection
E_O_F

Оффлайн Merblud

  • Давно тут
  • **
  • Сообщений: 460
Re: Альт на rk3399
« Ответ #37 : 14.10.2019 12:24:11 »
В /boot/extlinux/extlinux.conf пропишите последовательный порт вместо tty1

Прописывать там надо ttyS2,1500000.
Уж не знаю, это верно только для nanopc-t4, или для всех железок на rk3399, но в alt-rootfs-installer этонадо бы исправить.
Но это параметр, который передается из u-boot в kernel. А до этого в последовательный порт выдаются сообщения от tpl модуля, spl модуля и собственно от u-boot модуля. Я говорил про тишину до старта ядра.

Может он не завис, а проблема с графикой? Попробуйте:
Может конечно это и с графикой проблемы. Но все как бы указывает на аппаратный сбой. Виснет все намертво, даже мышь не двигается, а не тормозит. Иногда зависает на начальной заставке, где какое-то колесико крутится. Иногда чуть позже, можно успеть пару раз потыкать в списке выбора языка, или чего-то там на первом экране установщика. "none" попробую поставить - попытка не пытка.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: Альт на rk3399
« Ответ #38 : 14.10.2019 15:53:43 »
Может конечно это и с графикой проблемы. Но все как бы указывает на аппаратный сбой. Виснет все намертво, даже мышь не двигается, а не тормозит. Иногда зависает на начальной заставке, где какое-то колесико крутится. Иногда чуть позже, можно успеть пару раз потыкать в списке выбора языка, или чего-то там на первом экране установщика. "none" попробую поставить - попытка не пытка.

Можно попробовать regular-jeos-systemd. Будет ли работать нормально без графики.

Оффлайн Merblud

  • Давно тут
  • **
  • Сообщений: 460
Re: Альт на rk3399
« Ответ #39 : 16.10.2019 09:20:15 »
Попробовал "для очистки совести" использовать 99-modesetting-noglamor.conf. Загрузилось и даже какое-то время работает. Но потом все равно непредсказуемо зависает. Может долго проработать, а потом зависнуть. Может зависнуть через минуту после того, как авторизуешься и стартует xfce. Ни разу не удалось запустить firefox. До открытия окна подвисает. Видимо частота по запросу повышается и увеличивается нагрузка на что-то, пока не ясно что.
Пока что неоспоримым фактом остается то, что то же ядро, загруженное u-boot на основе rk miniloader, работает и каши не просит. Хотя дело, возможно не в том, что там miniloader, а может быть другой модуль инициализации ddr-контролера, или еще чего-то.

Вообще, сдается мне, что как только будет найден годный вариант u-boot, лучше его больше не трогать и не обновлять без необходимости.

Оффлайн Merblud

  • Давно тут
  • **
  • Сообщений: 460
Re: Альт на rk3399
« Ответ #40 : 17.10.2019 23:17:26 »
После проб разных вариантов собрался таки у меня загрузчик, который и систему грузит и система работает - не виснет. Часа полтора просидел в инете, ничего не зависло. Не знаю как там с другими одноплатниками на rk3399, но nanopc-t4 работает. И сдается мне, что вся разница в крнфигурациях загрузчика для разных железок на rk3399 состоит в том, что в переменных окружения указывается разное имя dtb файла для подгрузки в ядро.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: Альт на rk3399
« Ответ #41 : 18.10.2019 09:00:20 »
И сдается мне, что вся разница в крнфигурациях загрузчика для разных железок на rk3399 состоит в том, что в переменных окружения указывается разное имя dtb файла для подгрузки в ядро.

Расскажите как собирали u-boot, пожалуйста.

Оффлайн Merblud

  • Давно тут
  • **
  • Сообщений: 460
Re: Альт на rk3399
« Ответ #42 : 18.10.2019 09:48:29 »
Вечером отпишусь. Заодно еще заделаю обещанный патч, решающий проблему со звуком на nanopc-t4. Там еще надо бы накладывать на ядро патч, который обеспечивает отключение питания на некоторых моделях одноплатников на rk3399. Но я пока не успел его испробовать.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: Альт на rk3399
« Ответ #43 : 18.10.2019 10:53:42 »
Вечером отпишусь. Заодно еще заделаю обещанный патч, решающий проблему со звуком на nanopc-t4. Там еще надо бы накладывать на ядро патч, который обеспечивает отключение питания на некоторых моделях одноплатников на rk3399. Но я пока не успел его испробовать.

Буду признателен, если напишете в рассылку devel-sbc.
« Последнее редактирование: 18.10.2019 17:41:35 от Антон Мидюков »

Оффлайн Merblud

  • Давно тут
  • **
  • Сообщений: 460
Re: Альт на rk3399
« Ответ #44 : 31.10.2019 09:53:13 »
2 Антон Мидюков

Попробовал регулярную сборку от 25 октября. Изменений не заметил (есть ли они?). Загрузчик "молча" грузит. Система через какое-то время подвисает. Подвисает именно ядро, а не X, или что-то в интерфейсной части. Проверял.
Собственно новую сборку смотрел по большей части по причине наличия там ядра 5.3.х.
Пробовал наложить патч, который присоветовали на другом форуме. Он должен был решать проблему отсутствия отключения питания по завершении работы на ядрах 5.х на t4. Но оказалось, что в 5.3.х изменения уже внесены.
Однако, результат все равно получился отрицательный - питание не выключается.
Посмотрел исходники ядра от rockchip-а и 5.3.4. Разница, конечно, есть. Но и там и там нашел буквально место, где нужные биты устанавливаются в контроллере питания. Однако ядро от rockchip-а питание отключает, а 5.3.4 нет, мистика какая-то.
Вот патч, который включает звук на T4:
diff -u a/arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi
--- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi 2019-10-17 23:47:33.000000000 +0300
+++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi 2019-10-27 22:34:55.988303874 +0300
@@ -105,6 +105,27 @@
  };
  };
 
+ rt5651-sound {
+ compatible = "simple-audio-card";
+ simple-audio-card,name = "realtek,rt5651-codec";
+ simple-audio-card,format = "i2s";
+ simple-audio-card,mclk-fs = <256>;
+ simple-audio-card,widgets =
+ "Microphone", "Mic Jack",
+ "Headphone", "Headphone Jack";
+ simple-audio-card,routing =
+ "Mic Jack", "MICBIAS1",
+ "IN1P", "Mic Jack",
+ "Headphone Jack", "HPOL",
+ "Headphone Jack", "HPOR";
+ simple-audio-card,cpu {
+ sound-dai = <&i2s0>;
+ };
+ simple-audio-card,codec {
+ sound-dai = <&rt5651>;
+ };
+ };
+
  sdio_pwrseq: sdio-pwrseq {
  compatible = "mmc-pwrseq-simple";
  clocks = <&rk808 1>;
@@ -184,6 +205,10 @@
  status = "okay";
 };
 
+&hdmi_sound {
+ status = "okay";
+};
+
 &i2c0 {
  clock-frequency = <400000>;
  i2c-scl-rising-time-ns = <160>;
@@ -432,6 +457,16 @@
  i2c-scl-rising-time-ns = <150>;
  i2c-scl-falling-time-ns = <30>;
  status = "okay";
+
+ rt5651: rt5651@1a {
+ compatible = "rockchip,rt5651";
+ reg = <0x1a>;
+ clocks = <&cru SCLK_I2S_8CH_OUT>;
+ clock-names = "mclk";
+ hp-det-gpio = <&gpio4 RK_PC4 GPIO_ACTIVE_LOW>;
+ spk-con-gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
+ #sound-dai-cells = <0>;
+ };
 };
 
 &i2c2 {
@@ -459,6 +494,16 @@
  status = "okay";
 };
 
+&i2s0 {
+ rockchip,playback-channels = <8>;
+ rockchip,capture-channels = <8>;
+ status = "okay";
+};
+
+&i2s2 {
+ status = "okay";
+};
+
 &io_domains {
  bt656-supply = <&vcc_1v8>;
  audio-supply = <&vcca1v8_codec>;
@@ -724,3 +769,9 @@
 &vopl_mmu {
  status = "okay";
 };
+
+&spdif {
+ i2c-scl-rising-time-ns = <450>;
+ i2c-scl-falling-time-ns = <15>;
+ status = "okay";
+};
Вывод звука через hdmi работает. spdif мне проверить не чем. Чтобы заработал вывод звука через аналоговый выход, нужно собрать модуль для кодека rt5651. Пока не разобрался, как это сделать. Возможно еще нужен какой-то модуль, который должен рулить этим делом через i2c. На других платах серии nanopc так же должен заработать вывод звука. По этой части в них нет разницы. Но убедиться на практике нет возможности.