Наш первый опыт работы с NanoPi R6S, связанный с установкой и запуском образа FriendlyWrt/OpenWrt 22.03, был весьма удачным, но совсем иначе дела обстояли при тестировании Ubuntu или Debian, поскольку, после перепрошивки образов с помощью eFlasher, мини-ПК вообще не загружался.
Мы провели почти четыре часа, пробуя различные образы, а затем утилиту Rockchip для Windows, но все гаши попытки не увенчались успехом, а FriendlyElec не слишком помог. Поэтому мы решили подключить последовательную консоль, чтобы посмотреть, что происходит. NanoPi R6S поставляется с 3-контактным разъемом для последовательной консоли, но он не припаян.
Мы припаяли один, но не вверху, а внизу, так как это позволило бы нам использовать металлический корпус для охлаждения процессора.
Некоторые читатели, как минимум один, жалуются на отсутствие внешнего доступа к последовательной консоли в маршрутизаторах для устранения неполадок без необходимости отключать устройство и открывать его. Но с NanoPi R6S довольно легко добавить внешний последовательный консольный порт, припаяв разъем на нижней стороне платы, а затем проделав отверстие в нижней пластине.
Мы использовали электродрель и напильник, и результат нас устроил, но получилось не совсем аккуратно. Если у вас больше навыков или есть станок с ЧПУ, то это должно получиться более аккуратно.
Мы сделаем вид, что специально не центрировали отверстие, чтобы увидеть маркировку (GND, Tx, Rx).
Все работает, и теперь мы можем получить доступ к последовательной консоли, не разбирая маршрутизатор, просто подключив Tx, Rx и GND к отладочной плате USB-TTL с помощью перемычек. Нам пришлось обрезать разъемы примерно на 1 мм, чтобы они не касались стола, когда мы не используем последовательную консоль. Пластиковая крышка оказалась бы уместна, поэтому мы поискали в нашем офисе, пластиковые кусочки, закрывающие кабели HDMI, которые кажутся вполне подходящими для этой цели, при условии, что мы проделаем отверстие нужного размера.
Это работает в утилите eFlasher или когда мы загружаем образ FrienlyWrt/OpenWrt, используя скорость передачи 1 500 000 бит/с, указанную в Wiki:
jaufranc@cnx-laptop-4:~$ bt -b 1500000
No port specified, using ttyUSB0 (last registered). Use -l to list ports.
Trying port ttyUSB0... Connected to ttyUSB0 at 1500000 bps.
Escape character is 'Ctrl-]'. Use escape followed by '?' for help.
DDR Version V1.08 20220617
LPDDR4X, 2112MHz
channel[0] BW=16 Col=10 Bk=8 CS0 Row=16 CS1 Row=16 CS=2 Die BW=16 Size=2048MB
channel[1] BW=16 Col=10 Bk=8 CS0 Row=16 CS1 Row=16 CS=2 Die BW=16 Size=2048MB
channel[2] BW=16 Col=10 Bk=8 CS0 Row=16 CS1 Row=16 CS=2 Die BW=16 Size=2048MB
channel[3] BW=16 Col=10 Bk=8 CS0 Row=16 CS1 Row=16 CS=2 Die BW=16 Size=2048MB
Manufacturer ID:0x1 Samsung
CH0 RX Vref:31.7%, TX Vref:20.8%,19.8%
CH1 RX Vref:32.7%, TX Vref:18.8%,18.8%
CH2 RX Vref:30.7%, TX Vref:20.8%,20.8%
CH3 RX Vref:31.7%, TX Vref:20.8%,20.8%
change to F1: 528MHz
change to F2: 1068MHz
change to F3: 1560MHz
change to F0: 2112MHz
out
U-Boot SPL board init
U-Boot SPL 2017.09-g70503fb4d6-220928 #root (Oct 13 2022 - 18:11:22)
unknown raw ID 0 0 0
unrecognized JEDEC id bytes: 00, 00, 00
Trying to boot from MMC2
Trying fit image at 0x4000 sector
## Verified-boot: 0
## Checking atf-1 0x00040000 ... sha256(806278dba1...) + OK
## Checking uboot 0x00200000 ... sha256(2972509ab3...) + OK
## Checking fdt 0x0032ca68 ... sha256(e936f08b25...) + OK
## Checking atf-2 0x000f0000 ... sha256(c00c7fd75b...) + OK
## Checking atf-3 0xff100000 ... sha256(71c3a5841b...) + OK
## Checking atf-4 0xff001000 ... sha256(2301cf73be...) + OK
## Checking optee 0x08400000 ... sha256(fde0860845...) + OK
Jumping to U-Boot(0x00200000) via ARM Trusted Firmware(0x00040000)
Total: 280.498 ms
INFO: Preloader serial: 2
NOTICE: BL31: v2.3():v2.3-405-gb52c2eadd:derrick.huang
NOTICE: BL31: Built : 11:23:47, Aug 15 2022
INFO: spec: 0x13
INFO: ext 32k is valid
INFO: GICv3 without legacy support detected.
INFO: ARM GICv3 driver initialized in EL3
INFO: system boots from cpu-hwid-0
INFO: idle_st=0x21fff, pd_st=0x11fff9, repair_st=0xfff70001
INFO: dfs DDR fsp_params[0].freq_mhz= 2112MHz
INFO: dfs DDR fsp_params[1].freq_mhz= 528MHz
INFO: dfs DDR fsp_params[2].freq_mhz= 1068MHz
INFO: dfs DDR fsp_params[3].freq_mhz= 1560MHz
INFO: BL31: Initialising Exception Handling Framework
INFO: BL31: Initializing runtime services
INFO: BL31: Initializing BL32
INFO: hdmirx_handler: dma not on, ret
I/TC:
I/TC: OP-TEE version: 3.13.0-652-g4542e1efd #derrick.huang (gcc version 10.2.1 20201103 (GNU Toolchain for the A-profile Architecture 10.2-2020.11 (arm-10.16))) #5 2022年 09月 20日 星期二 09:41:09 CST aarch64
Но с Ubuntu или Debian вообще ничего не выходит. Возможно что-то не так при прошивке образа внутри утилиты eFlasher, тем более, что для завершения «обновления прошивки» требуется всего одна или две секунды, мы предполагаем, что какие-то проблемы с картой MicroSD (ошибки ввода-вывода или слишком маленький размер), но искать причину будем в другой раз.
Мы надеемся, что FriendlyElec рассмотрит возможность обеспечения легкого доступа к последовательной консоли в своих будущих маршрутизаторах, поскольку реализация решения, описанного выше, практически ничего не стоит.
[Обновление: Pastrav придумал более удобный способ добавить последовательный порт в NanoPi R6S, используя 2,5-мм аудио-разъем, прикрепленный к отверстию, предназначенному для антенны. Подробности смотрите в комментариях.
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.