Форум проекта PuppyRus Linux

Обсуждения операционных систем => Rockchip (RK) => Железо ARM => Процессоры ARM архитектуры => RK3328 => Тема начата: dimats от 16 Март 2019, 21:45:54

Название: Beelink A1 (RK3328)
Отправлено: dimats от 16 Март 2019, 21:45:54
Есть такое устройство
Beelink A1 TV Box - RK3328 Android 7.1 4/16GB Gig Lan Dual WiFi BT4
https://forum.freaktab.com/forum/tv-player-support/rockchip-based-tv-players/rk3328-devices/672808-beelink-a1-tv-box-rk3328-android-7-1-4-16gb-gig-lan-dual-wifi-bt4


Armbian-ы на нем запускаются, но не видят сеть и USB3.0 порт.

В лучшем случае через USB3 (прямо или через хаб на GL3520) работают простые устройства , вроде USB1 клавиатуры, да и то не на всех dtb, а вот  1Gbit USB3 сеть на основе RTL8153 не завелась ни на обном dtb при подключении к боксу через USB3 порт.

Через USB2 порт бокса все работает, USB3 hub, USB сетевая, клавиатуры, на всеx армбиановских dtb, что вообще загрузились.

Встроенная в бокс сетевая - нигде не поднялась, ни при каких dtb.

lshw, dmesg и кое что еще посохранял... где работало, красного и проблемного много...


"Родной" dtb из андроида я вытянул (был в 5, 7, 8 блоках emmc, одинаковые) и получил dts.  Они в атаче.

Но я чтото не нахожу никого из dts похожего из
https://github.com/rockchip-linux/kernel/tree/release-4.4/arch/arm64/boot/dts/rockchip
https://github.com/150balbes/rockchip-kernel/tree/le/arch/arm64/boot/dts/rockchip

Слишком вытащенный из андроида dts  отличается от выложенных на гитхабе...

Особенно смущает cплошное rk322xh  вместо rk3328 в коде деревьев...

Куда копать ? как в таком случае сделать корректный для armbian dts из андроидного ?
Название: Re: Beelink A1 (RK3328)
Отправлено: krasnyh от 16 Март 2019, 22:36:32
 То что я читал в теме arm от balbes150 - это совет пробовать разные dtb.
Т.е. все начинающееся с  rk3328-
https://github.com/150balbes/rockchip-kernel/tree/le/arch/arm64/boot/dts/rockchip

 По неработающей гигабитной сети есть похожая тема со статусом 'решено' http://forum.puppyrus.org/index.php?topic=21245.0
В данном же случае проверить секцию phy-mode = "rgmii"; должен быть status = "okay";
и секцию phy-mode = "rmii"; должен быть status = "disabled";

"Родной" dtb из андроида я вытянул (был в 5, 7, 8 блоках emmc, одинаковые).  В атаче.
Куда копать ? как в таком случае сделать dts ?
Как объяснял balbes150, самостоятельно адаптировать родной андроидный dtb под линукс пользователю не по силам.  :(


upd.
В данном же случае проверить секцию phy-mode = "rgmii"; должен быть status = "okay";
Если там конечно реальные 1Gb, а не 100mb сеть.
Название: Re: Beelink A1 (RK3328)
Отправлено: sfs от 17 Март 2019, 13:00:49
самостоятельно адаптировать родной андроидный dtb под линукс пользователю не по силам
Как распаковать\запаковать написано (http://forum.puppyrus.org/index.php?topic=21237.0)
Остальное правится в текстовом редакторе

Для каких целей нужен линукс?
Название: Re: Beelink A1 (RK3328)
Отправлено: dimats от 17 Март 2019, 13:07:41
Как распаковать\запаковать написано
Остальное правится в текстовом редакторе

Я легко получил dts, а в атаче в архиве распакованный dts из андроида приложен.
Вот только он существенно отличается от доступных для армбиана dts-ов. Непонятно как их совсмещать.

А бокс нужен в качестве микросервера для сетевых служб. графический ускоритель не нужен. В отличие от сетевой карты и USB3

PS : я подредактировал текст 1го сообщения, акцентировал вопрос
Название: Re: Beelink A1 (RK3328)
Отправлено: krasnyh от 17 Март 2019, 13:38:40
Как распаковать\запаковать написано
Остальное правится в текстовом редакторе
  Если все так просто, то почему DdShurick, обладающий большим багажом практических знаний, отошел от темы линукс-сборок для тв боксов? Может потому что нет еще производительных dtb (линукс) для rk33**, а адаптировать родной dtb собственными силами невозможно?

Добавлю здесь мое сообщение и ответ balbes150.
Я бы попробовал вытащит родной dtb из андройда и его попробовать собрать под используемое ядро.
  Похоже это первый совет, который может привести к 'механизму создания производительных линукс-сборок' (слишком заумно :)) для любых тв боксов . А то предыдущий совет - покупайте только то железо которым пользуется сам разработчик, если не хотите проблем - загоняет в узкие рамки.


который может привести к 'механизму создания производительных линукс-сборок' (слишком заумно :)) для любых тв боксов .
Увы, не приведёт, то, что вы получите, это "сырой" материал для последующего анализа и интеграции в систему сборки ядра Linux, а это уже требует определённой квалификации (знаний).
Название: Re: Beelink A1 (RK3328)
Отправлено: krasnyh от 17 Март 2019, 14:09:49
 Добавлю цитату для TC, для вдохновения.)
Цитата
Наконец нашёл время и вытащил родной dtb из MX10.

Запустил Armbian, скопировал через dd раздел boot в файл
Скачал распаковщик
https://github.com/PabloCastellano/extract-dtb
используя его, вытащил dtb из образа в отдельный файл
Преобразовал полученный бинарник (dtb) утилитой DTC в dts формат.
После этого началось самое интересное - попытка получить из этого исходника рабочий dtb для системы.  :D
После нескольких правок - есть рабочий dtb (теперь он входит в состав последних образов Armbian).

С этим dtb у меня скорость памяти возросла до 629 и появились зачатки WiFi на чипе sv6051
Название: Re: Beelink A1 (RK3328)
Отправлено: sfs от 18 Март 2019, 09:17:06
в архиве распакованный dts из андроида приложен
Уверены, что он из вашего бокса? Как его получили?
Если все так просто, то почему DdShurick, обладающий большим багажом практических знаний, отошел от темы линукс-сборок для тв боксов?
Просто только распаковать-запаковать. Правильно поправить сложно
DdShurick отошел, вероятно, потому, что старый опыт тут не особо поможет. А новичком себя чувствовать ему не комфортно
бокс нужен в качестве микросервера для сетевых служб
Брать непроверенную модель под линукс - плохая идея
Название: Re: Beelink A1 (RK3328)
Отправлено: dimats от 18 Март 2019, 09:27:11
Уверены, что он из вашего бокса? Как его получили?

уверен. 2мя разными методиками, вручную поискав в бут блоке "d0 0d fe ed" и упоминаемыми здесь утилитами вроде extract-dtb.py. содержимое раскодированного dts везде было идентично.