retro98boy/tn3399-v3-linux

写入EMMC之后不能启动

Closed this issue · 24 comments

你好,通过数据线,在MaskRom下把img写入到tn3399_v3这个板子的EMMC中,但启动之后一直黑屏,不知道我是不是操作有误?我的操作是

  1. 按着Recovery键上电,数据线连接电脑,输入rkdeveltool ld,确认板子已经进入MaskRom模式
  2. 运行 rkdeveloptool db ./rk3399_loader_v1.24.126.bin 刷入BootLoader
  3. 运行 rkdeveloptool wl 0x0 ./Manjaro-ARM-minimal-tn3399_v3-22.02.img 刷入ROM
  4. 重启,一直黑屏

你好,通过数据线,在MaskRom下把img写入到tn3399_v3这个板子的EMMC中,但启动之后一直黑屏,不知道我是不是操作有误?我的操作是

  1. 按着Recovery键上电,数据线连接电脑,输入rkdeveltool ld,确认板子已经进入MaskRom模式
  2. 运行 rkdeveloptool db ./rk3399_loader_v1.24.126.bin 刷入BootLoader
  3. 运行 rkdeveloptool wl 0x0 ./Manjaro-ARM-minimal-tn3399_v3-22.02.img 刷入ROM
  4. 重启,一直黑屏

有usb转uart线吗?能不能看下串口的打印消息?

测试了一下,发现只要一开机,就自动进入MaskRom模式,进入MaskRom模式的话,串口是没有消息显示的。是不是rk3399_loader_v1.24.126.bin这个文件不合适?

测试了一下,发现只要一开机,就自动进入MaskRom模式,进入MaskRom模式的话,串口是没有消息显示的。是不是rk3399_loader_v1.24.126.bin这个文件不合适?

测试了一下,发现只要一开机,就自动进入MaskRom模式,进入MaskRom模式的话,串口是没有消息显示的。是不是rk3399_loader_v1.24.126.bin这个文件不合适?

应该不会,不过我上传了我用的mini loader blob,你可以试试。
开机就maskrom,那说明cpu没从eMMC或TF卡找到u-boot,难不成上传的镜像没烧录u-boot?你可以去我另一个库下载编译好的u-boot,再烧录到manjaro的img试试,sudo dd if=xxxx of=xxxx seek=64 conv=notrunc

测试了一下,发现只要一开机,就自动进入MaskRom模式,进入MaskRom模式的话,串口是没有消息显示的。是不是rk3399_loader_v1.24.126.bin这个文件不合适?

手上有TF卡没,有的话,直接把img刻录到TF卡上,插上板子开机看看?

用etcher刻录了tf卡,然后插到板子上开机,依然是进入MaskRom模式

用etcher刻录了tf卡,然后插到板子上开机,依然是进入MaskRom模式

被隔离中没板子无法测试镜像,你把u-boot刻录到TF卡上,再插上开机试试?看还会不会直接进maskrom模式。https://github.com/retro98boy/u-boot-bin-tn3399_v3

测试了一下,发现只要一开机,就自动进入MaskRom模式,进入MaskRom模式的话,串口是没有消息显示的。是不是rk3399_loader_v1.24.126.bin这个文件不合适?

测试了一下,发现只要一开机,就自动进入MaskRom模式,进入MaskRom模式的话,串口是没有消息显示的。是不是rk3399_loader_v1.24.126.bin这个文件不合适?

应该不会,不过我上传了我用的mini loader blob,你可以试试。 开机就maskrom,那说明cpu没从eMMC或TF卡找到u-boot,难不成上传的镜像没烧录u-boot?你可以去我另一个库下载编译好的u-boot,再烧录到manjaro的img试试,sudo dd if=xxxx of=xxxx seek=64 conv=notrunc

上传你的mini loader blob的时候,出现 Error: failed to stat config.ini, err=2 这个错误,上传rk3399_loader_v1.24.126.bin的时候也有,只是之前没有留意。估计还是BootLoader的问题

用etcher刻录了tf卡,然后插到板子上开机,依然是进入MaskRom模式

被隔离中没板子无法测试镜像,你把u-boot刻录到TF卡上,再插上开机试试?看还会不会直接进maskrom模式。https://github.com/retro98boy/u-boot-bin-tn3399_v3
你在上海是吧?Me too

那个rk3399_loaderxxxx只是maskrom模式下临时用来升级固件的,不是bootloader。刷好系统后每次开机执行的不是它,u-boot才是每次开机执行的bootloader

测试了一下,发现只要一开机,就自动进入MaskRom模式,进入MaskRom模式的话,串口是没有消息显示的。是不是rk3399_loader_v1.24.126.bin这个文件不合适?

测试了一下,发现只要一开机,就自动进入MaskRom模式,进入MaskRom模式的话,串口是没有消息显示的。是不是rk3399_loader_v1.24.126.bin这个文件不合适?

应该不会,不过我上传了我用的mini loader blob,你可以试试。 开机就maskrom,那说明cpu没从eMMC或TF卡找到u-boot,难不成上传的镜像没烧录u-boot?你可以去我另一个库下载编译好的u-boot,再烧录到manjaro的img试试,sudo dd if=xxxx of=xxxx seek=64 conv=notrunc

上传你的mini loader blob的时候,出现 Error: failed to stat config.ini, err=2 这个错误,上传rk3399_loader_v1.24.126.bin的时候也有,只是之前没有留意。估计还是BootLoader的问题

那个rk3399_loaderxxxx只是maskrom模式下临时用来升级固件的,不是bootloader。刷好系统后每次开机执行的不是它,u-boot才是每次开机执行的bootloader

用etcher刻录了tf卡,然后插到板子上开机,依然是进入MaskRom模式

被隔离中没板子无法测试镜像,你把u-boot刻录到TF卡上,再插上开机试试?看还会不会直接进maskrom模式。https://github.com/retro98boy/u-boot-bin-tn3399_v3

只是单独把这个u-boot刻录到tf卡上再插上去开机,还是会直接进入MaskRom模式。。

????刻录命令?

用etcher刻录了tf卡,然后插到板子上开机,依然是进入MaskRom模式

被隔离中没板子无法测试镜像,你把u-boot刻录到TF卡上,再插上开机试试?看还会不会直接进maskrom模式。https://github.com/retro98boy/u-boot-bin-tn3399_v3

只是单独把这个u-boot刻录到tf卡上再插上去开机,还是会直接进入MaskRom模式。。

????刻录命令?

用etcher刻录了tf卡,然后插到板子上开机,依然是进入MaskRom模式

被隔离中没板子无法测试镜像,你把u-boot刻录到TF卡上,再插上开机试试?看还会不会直接进maskrom模式。https://github.com/retro98boy/u-boot-bin-tn3399_v3

只是单独把这个u-boot刻录到tf卡上再插上去开机,还是会直接进入MaskRom模式。。

????刻录命令?

我用etcher直接把 u-boot-tn3399_v3.bin 刻录到tf卡的。。我不清楚怎么把这个u-boot烧录到Manjaro-ARM-minimal-tn3399_v3-22.02.img文件里边

用etcher刻录了tf卡,然后插到板子上开机,依然是进入MaskRom模式

被隔离中没板子无法测试镜像,你把u-boot刻录到TF卡上,再插上开机试试?看还会不会直接进maskrom模式。https://github.com/retro98boy/u-boot-bin-tn3399_v3

只是单独把这个u-boot刻录到tf卡上再插上去开机,还是会直接进入MaskRom模式。。

????刻录命令?

我用etcher直接把 u-boot-tn3399_v3.bin 刻录到tf卡的。。我不清楚怎么把这个u-boot烧录到Manjaro-ARM-minimal-tn3399_v3-22.02.img文件里边

那当然不行了,cpu会在emmc或者tf卡的32k偏移处寻找uboot,先不管那个img文件,先把uboot直接烧录到tf卡上看会不会被加载试试,把tf卡用读卡器查到电脑上
sudo dd if=./u-boot-tn3399_v3.bin of=/dev/sdb bs=1k seek=32 这里if后面接的是uboot的位置,of后面是tf卡的设备节点

如果真的是img镜像没带uboot的话,修复img镜像也很简单,img镜像就是硬盘的克隆,把img镜像当做一个虚拟的存储设备就行了,甚至还能用parted给img分区的。
sudo dd if=./u-boot-tn3399_v3.bin of=img镜像的位置 bs=1k seek=32 conv=notrunc,这样就把uboot烧录到img镜像中了,后面可以用etcher把img烧录到tf卡上开机,也能直接maskrom下载到emmc开机

把 u-boot 刻录进 img 之后,再通过 rkdeveloptool 把 img 刻录进 emmc,就可以开机。但还是黑屏,串口输出一堆错误如下:
U-Boot 2022.01 (Feb 16 2022 - 15:58:47 +0800)

SoC: Rockchip rk3399
Reset cause: POR
Model: TN3399_V3 Board
DRAM: 3.9 GiB
PMIC: RK808
MMC: mmc@fe310000: 2, mmc@fe320000: 1, mmc@fe330000: 0
Loading Environment from MMC... *** Warning - bad CRC, using default environment

In: serial@ff1a0000
Out: serial@ff1a0000
Err: serial@ff1a0000
Model: TN3399_V3 Board
Net: eth0: ethernet@fe300000
Hit any key to stop autoboot: 2 ... 1 ... 0
Card did not respond to voltage select! : -110
Card did not respond to voltage select! : -110

Device 0: unknown device
starting USB...
Bus usb@fe380000: ehci_generic usb@fe380000: failed to get usb phy
Port not available.
Bus usb@fe3c0000: ehci_generic usb@fe3c0000: failed to get usb phy
Port not available.
Bus usb@fe800000: Failed to get PHY0 for usb@fe800000
Port not available.
Bus usb@fe900000: Failed to get PHY0 for usb@fe900000
Port not available.
USB is stopped. Please issue 'usb start' first.
starting USB...
Bus usb@fe380000: ehci_generic usb@fe380000: failed to get usb phy
Port not available.
Bus usb@fe3c0000: ehci_generic usb@fe3c0000: failed to get usb phy
Port not available.
Bus usb@fe800000: Failed to get PHY0 for usb@fe800000
Port not available.
Bus usb@fe900000: Failed to get PHY0 for usb@fe900000
Port not available.
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
missing environment variable: pxeuuid
Retrieving file: pxelinux.cfg/01-ca-0d-79-a9-85-6b
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Retrieving file: pxelinux.cfg/00000000
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Retrieving file: pxelinux.cfg/0000000
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Retrieving file: pxelinux.cfg/000000
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Retrieving file: pxelinux.cfg/00000
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Retrieving file: pxelinux.cfg/0000
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Retrieving file: pxelinux.cfg/000
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Retrieving file: pxelinux.cfg/00
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Retrieving file: pxelinux.cfg/0
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Retrieving file: pxelinux.cfg/default-arm-rk3399-evb_rk3399
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Retrieving file: pxelinux.cfg/default-arm-rk3399
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Retrieving file: pxelinux.cfg/default-arm
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Retrieving file: pxelinux.cfg/default
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Config file not found
starting USB...
Bus usb@fe380000: ehci_generic usb@fe380000: failed to get usb phy
Port not available.
Bus usb@fe3c0000: ehci_generic usb@fe3c0000: failed to get usb phy
Port not available.
Bus usb@fe800000: Failed to get PHY0 for usb@fe800000
Port not available.
Bus usb@fe900000: Failed to get PHY0 for usb@fe900000
Port not available.
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@fe300000
Invalid bus 0 (err=-19)
Failed to initialize SPI flash at 0:0 (error -19)
=>

先睡,明天再研究。感谢这么晚还在指导!我也在上海,解封之后请你喝酒

把 u-boot 刻录进 img 之后,再通过 rkdeveloptool 把 img 刻录进 emmc,就可以开机。但还是黑屏,串口输出一堆错误如下: U-Boot 2022.01 (Feb 16 2022 - 15:58:47 +0800)

SoC: Rockchip rk3399 Reset cause: POR Model: TN3399_V3 Board DRAM: 3.9 GiB PMIC: RK808 MMC: mmc@fe310000: 2, mmc@fe320000: 1, mmc@fe330000: 0 Loading Environment from MMC... *** Warning - bad CRC, using default environment

In: serial@ff1a0000 Out: serial@ff1a0000 Err: serial@ff1a0000 Model: TN3399_V3 Board Net: eth0: ethernet@fe300000 Hit any key to stop autoboot: 2 ... 1 ... 0 Card did not respond to voltage select! : -110 Card did not respond to voltage select! : -110

Device 0: unknown device starting USB... Bus usb@fe380000: ehci_generic usb@fe380000: failed to get usb phy Port not available. Bus usb@fe3c0000: ehci_generic usb@fe3c0000: failed to get usb phy Port not available. Bus usb@fe800000: Failed to get PHY0 for usb@fe800000 Port not available. Bus usb@fe900000: Failed to get PHY0 for usb@fe900000 Port not available. USB is stopped. Please issue 'usb start' first. starting USB... Bus usb@fe380000: ehci_generic usb@fe380000: failed to get usb phy Port not available. Bus usb@fe3c0000: ehci_generic usb@fe3c0000: failed to get usb phy Port not available. Bus usb@fe800000: Failed to get PHY0 for usb@fe800000 Port not available. Bus usb@fe900000: Failed to get PHY0 for usb@fe900000 Port not available. ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT ! Could not initialize PHY ethernet@fe300000 missing environment variable: pxeuuid Retrieving file: pxelinux.cfg/01-ca-0d-79-a9-85-6b ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT ! Could not initialize PHY ethernet@fe300000 Retrieving file: pxelinux.cfg/00000000 ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT ! Could not initialize PHY ethernet@fe300000 Retrieving file: pxelinux.cfg/0000000 ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT ! Could not initialize PHY ethernet@fe300000 Retrieving file: pxelinux.cfg/000000 ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT ! Could not initialize PHY ethernet@fe300000 Retrieving file: pxelinux.cfg/00000 ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT ! Could not initialize PHY ethernet@fe300000 Retrieving file: pxelinux.cfg/0000 ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT ! Could not initialize PHY ethernet@fe300000 Retrieving file: pxelinux.cfg/000 ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT ! Could not initialize PHY ethernet@fe300000 Retrieving file: pxelinux.cfg/00 ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT ! Could not initialize PHY ethernet@fe300000 Retrieving file: pxelinux.cfg/0 ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT ! Could not initialize PHY ethernet@fe300000 Retrieving file: pxelinux.cfg/default-arm-rk3399-evb_rk3399 ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT ! Could not initialize PHY ethernet@fe300000 Retrieving file: pxelinux.cfg/default-arm-rk3399 ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT ! Could not initialize PHY ethernet@fe300000 Retrieving file: pxelinux.cfg/default-arm ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT ! Could not initialize PHY ethernet@fe300000 Retrieving file: pxelinux.cfg/default ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT ! Could not initialize PHY ethernet@fe300000 Config file not found starting USB... Bus usb@fe380000: ehci_generic usb@fe380000: failed to get usb phy Port not available. Bus usb@fe3c0000: ehci_generic usb@fe3c0000: failed to get usb phy Port not available. Bus usb@fe800000: Failed to get PHY0 for usb@fe800000 Port not available. Bus usb@fe900000: Failed to get PHY0 for usb@fe900000 Port not available. ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT ! Could not initialize PHY ethernet@fe300000 ethernet@fe300000 Waiting for PHY auto negotiation to complete......... TIMEOUT ! Could not initialize PHY ethernet@fe300000 Invalid bus 0 (err=-19) Failed to initialize SPI flash at 0:0 (error -19) =>

先睡,明天再研究。感谢这么晚还在指导!我也在上海,解封之后请你喝酒

这个板子是tn3399 v3吗?tn3399好像有几个版本
要不你刷下我适配的另一个库里的batocera模拟器游戏系统?那个镜像是绝对可以用的
把那个img用etcher刻录到tf卡上就可以。
为了保证cpu从tf卡启动,而不是emmc,可以在不插tf卡的前提下开机,串口按enter进入uboot命令行,输入
mmc erase 0 100
reset
把emmc上的uboot破坏掉

使用 batocera 模拟器是可以正常进入系统,并正常使用

我使用的是tn3399_v3, 4G RAM + 16G EMMC

我使用的是tn3399_v3, 4G RAM + 16G EMMC

用的是emmc还是tf卡?要不把那个manjaro的镜像刻录到tf卡上,不下到emmc试试?

我使用的是tn3399_v3, 4G RAM + 16G EMMC

我把镜像下载下来重新打包下看看

我使用的是tn3399_v3, 4G RAM + 16G EMMC

用的是emmc还是tf卡?要不把那个manjaro的镜像刻录到tf卡上,不下到emmc试试?

把 manjaro 镜像刻录到tf卡上的话,是可以正常进入的,难不成是我写入emmc的方法不对?
我是这么操作的
rkdeveloptool db ./rk3399_loader_v1.24.126.bin
rkdeveloptool wl 0x0 ./Manjaro-ARM-minimal-tn3399_v3-22.02.img

我使用的是tn3399_v3, 4G RAM + 16G EMMC

用的是emmc还是tf卡?要不把那个manjaro的镜像刻录到tf卡上,不下到emmc试试?

把 manjaro 镜像刻录到tf卡上的话,是可以正常进入的,难不成是我写入emmc的方法不对? 我是这么操作的 rkdeveloptool db ./rk3399_loader_v1.24.126.bin rkdeveloptool wl 0x0 ./Manjaro-ARM-minimal-tn3399_v3-22.02.img

rkdeveloptool我没用过,我用的是windows平台下的androidtool,我等会把androidtool,maskrom驱动和androidtool下载时的分区cfg文件传上去,你用windows试试?
估计和rkdeveloptool没关系,好像是我编译的uboot有问题,在emmc上就不能使用,之前好像解决了这个问题,现在也没法调试。
你去这里下载lanseyujie编译的uboot
https://github.com/lanseyujie/tn3399_v3/releases
tar.gz压缩包里有三个文件idbloader trust uboot,把他刻录到img上,再下载到emmc试试
dd if=idbloader.img of=manjaroimg seek=64 conv=notrunc
dd if=uboot.img of=manjaroimg seek=16384 conv=notrunc
dd if=trust.img of=manjaroimg seek=24576 conv=notrunc

我使用的是tn3399_v3, 4G RAM + 16G EMMC

用的是emmc还是tf卡?要不把那个manjaro的镜像刻录到tf卡上,不下到emmc试试?

把 manjaro 镜像刻录到tf卡上的话,是可以正常进入的,难不成是我写入emmc的方法不对? 我是这么操作的 rkdeveloptool db ./rk3399_loader_v1.24.126.bin rkdeveloptool wl 0x0 ./Manjaro-ARM-minimal-tn3399_v3-22.02.img

rkdeveloptool我没用过,我用的是windows平台下的androidtool,我等会把androidtool,maskrom驱动和androidtool下载时的分区cfg文件传上去,你用windows试试? 估计和rkdeveloptool没关系,好像是我编译的uboot有问题,在emmc上就不能使用,之前好像解决了这个问题,现在也没法调试。 你去这里下载lanseyujie编译的uboot https://github.com/lanseyujie/tn3399_v3/releases tar.gz压缩包里有三个文件idbloader trust uboot,把他刻录到img上,再下载到emmc试试 dd if=idbloader.img of=manjaroimg seek=64 conv=notrunc dd if=uboot.img of=manjaroimg seek=16384 conv=notrunc dd if=trust.img of=manjaroimg seek=24576 conv=notrunc

这样就可以了~感谢
还有另外一个关于AX210驱动的问题,我另开一个issue