Заливаем прошивку. Задача может и простая, но у меня возникли трудности. Дело в том, что я не стал покупать SD-карту. У меня уже была карта на 4ГБ.
А разработчик предлагает записать образ на 8ГБ SD, загрузится с неё запустить eflasher, который скопирует образ на eMMC.
И кабеля hdmi-hdmi у меня тоже нет. Благо этот кабель на первых порах заменяет uart, а потом мы подключимся через ssh к виртуальному экрану нано-компьютера
В комплекте с eMMC идёт адаптер sd но с ним у меня ничего не получилось. Проблема с u-boot, который по разному распознает sd и eMMC.
root=/dev/mmcblk0p7
root=/dev/mmcblk1p7
Для того чтобы всё заработало надо поправить parameter.txt, который неизвестно где лежит в образе. А китайский софт настолько китайский, что хочется его переписать. Одно меня останавливает эта старая мудрость: лучшая программа должна состоять из 0 строк кода!
Всё же разработчик платы вернее чипа предусмотрел ещё один метод прошивки через USB.
Пришлось использовать метод установки через typeC. С завода eMMC идут с андроидом. который нормально стартует. И на плате моргает зеленый огонек питания. Так вот андроид вернее u-boot запускает USB.
Далее нам надо поставить драйвера для андроида ADB (android debug) и воспользоваться программой AndroidTool. Как выяснялось, эта программа умеет только писать образы и не умеет их читать.
u-boot поддерживает минимальный набор команд ADB. Для входа достаточно набрать
$sudo reboot bootloader
И мы окажемся в консоли u-boot.
Но с начало по порядку AndroidTool по умолчанию язык китайский поэтому в конфигурационном файле правим номер язык с 1 на 2.
Далее я долго тупил, так как эта очередная китайская поделка, которая не работает и без исходников. По началу она ругалось, что нет устройство и тогда я понял, что надо поставить драйвер ADB. Потом она ругалось на несовпадение устройств. Перерыв весь интернет нашёл, что нажатием кнопки switch в программе можно перевести плату в режим заливки прошивки. Если верить интернету, то эта магическая кнопка перезагружает SOC в режим доверенной загрузки(trust.img), а от туда в MASKROM. MASKROM – это код начальной загрузки вытравленный на кристалле чипа. Этот код запускается в случае отсутствия других загрузочных устройств. А так же если закоротить контакты на sd и eMMC тем самым с имитировав их отсутствие. Кратковременное закорачивание с одновременным нажатием кнопки reset используется для входа в режим MASKROM с целью дальнейшей перепрошивки карт памяти и ПЗУ. Мне закорачевать не нужно, так как у меня работает U-Boot, который проделывает данный трюк программным путём. А те кто испортил u-boot могут воспользоваться следующей ссылкой. http://opensource.rock-chips.com/wiki_Rockusb#Maskrom_mode
После нажатия кнопки switch открываем файл parameter.txt откуда копируем имена разделов и их начальные адреса. Указываем образы для всех файлов.
Или можно нажать правой кнопкой и загрузить конфиг. RK_cfg.txt (6.0 КБ)
Ставя Ubuntu среди образов не хватила одного это misc, разделы нельзя пропускать иначе их порядковые номера не совпадут оставляем место под образ пустым и заливаем прошивку при помощи кнопки RUN.
Программа не дружит с моим хабом и нужно воткнуть кабель напрямую в компьютер. А ещё походу и перевод кривой “download”.
Плата стартует, цепляемся по uart перезагружаем плату и смотрим, что всё нормально запустилось.
Так как чип сильно греется, прикрепил нано компьютер к подставке она же очень большой радиатор. Греться от этого не перестала. Но до настройки ещё не скоро вначале надо залить годную прошивку.
Дальше надо поднять и настроить wi-fi: Сделать из консоли не трудно, но руководства расходятся.
Да и шифрование у меня WPA2. А в wpa_supplicant это сделано через одно место. При этом что делать тем у кого WPA3 вопрос открытый. А для WPA2 следует сделать следующие настройки
• в proto указываем версию WPA2
• pairwise — Для WPA2 укажите CCMP, а для WPA — TKIP.
• key_mgmt — Протоколы аутентификации. WPA-PSK для WPA-Personal
• psk — Хэш пароля.
Создаем хэш пароля для psk:
wpa_passphrase <<имя сети>> <<пароль>>
$ wpa_passphrase MYSSID password
Все готово, чтобы создать конфиг сети /etc/wpa_supplicant/wpa_supplicant.conf. Итоговый файл должен выглядеть как-то так.
ctrl_interface_group=0
ap_scan=1
ctrl_interface=/var/run/wpa_supplicant
network={
proto=WPA2
pairwise=CCMP
key_mgmt=WPA-PSK
ssid="MYSSID"
psk=ce55977186ae1df2dffeb571acee8dacd92f49edddbdef53623132e3c24567ae
}
Далее нужно остановить процесс wpa_supplicant:
wpa_cli terminate
И настроить его запуск с нашим конфигом.
$ wpa_supplicant -B -i wlan0 -Dnl80211 -c /etc/wpa_supplicant.conf
И настроить DHCP на интерфейсе.
В Ubuntu добавляют запись в файл /etc/network/interfaces.
auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Для buildroot
auto wlan0
iface wlan0 inet dhcp
pre-up wpa_supplicant -B -Dnl80211 -iwlan0 -c/etc/wpa_supplicant.conf
post-down killall -q wpa_supplicant
Теперь, когда доступен WI-FI можно поднять SSH сменить пароль и получить дистанционный экран без кабеля hdmi-hdmi.
Дополнительные ссылки:
https://habr.com/ru/post/315960/
http://touch-max.ru/android/proshivki/proshivka-beelink-r89-tronsmart-orion-r28
http://rockchip.wikidot.com/fastboot
https://github.com/siemens/u-boot/blob/master/doc/README.android-fastboot-protocol
http://opensource.rock-chips.com/wiki_Boot_option