贝壳云P1 刷机指南

1字数 1500阅读 28708

目录

  • 基本情况
  • 刷机方法
  • 特别事项
  • 已知问题
  • 参考资料

CI自动发布的固件:
https://github.com/hanwckf/build-beikeyun/releases/latest

固件更新日志:
https://www.jianshu.com/p/b10f82529126


基本情况

贝壳云P1是一款矿难机,配置如下:

  • RK3328 四核A53 1.5Ghz
  • 1G DDR3
  • 8G emmc
  • USB3.0 x4 (GL3520)
  • RTL8211F 千兆phy
  • HDMI

掀开屏蔽罩后可以看到主板全貌,主板正面有一个USB焊盘,一个微动开关和一个TTL接口,需要自行焊接排针引出,此外还留有一个SPI FLASH焊盘;背面有DDR3空焊盘。

beikeyun-1
beikeyun-2

此机器的配置与 Pine64 rock64 、Firefly ROC-RK3328等开发板相似,不过贝壳云没有使用rk805作为pmu,而且外围接口也少很多。

可以使用rock64的dts为基础进行修改,目前可用的dts及其配套的内核源码请参考以下repo:

rock64可以使用诸多Linux发行版,下面的刷机教程采用armbian作为演示


刷机方法

目前暂无免拆机刷机法,必须要拆机引出USB进行线刷

刷机工具:https://pan.baidu.com/s/1aOAIZ3vyG8mgipj726Bhgg 提取码: 7eee
固件发布:https://github.com/hanwckf/build-beikeyun/releases/latest

  • 准备工作
  1. 去Github Release下载你喜欢的固件,解压xz包得到img镜像

  2. 剪一根废旧的USB线,焊接到USB焊盘上,注意线序(可以从背面焊接,VCC可以不焊)

USB
  1. 进入maskrom模式
  • 对于已经刷过第三方固件的机器,可按照本文后面的方法快速进入maskrom模式
  • 对于从未刷机的原厂固件,按照以下步骤操作以进入maskrom模式:
    将USB线连接到电脑,然后用镊子短接主板背面的maskrom触点,最后再接入12V电源,等待两秒钟后松开镊子
maskrom
  • Windows
  1. 下载安装线刷驱动 (DriverAssitant_v4.5.zip)和AndroidTool,然后运行AndroidTool,如果没有出现"发现一个MASKROM设备"的提示,请重新进行准备工作

  2. 选择img镜像刷入即可(loader已经预先设置无需更改)

AndroidTool
  • Linux
  1. 首先安装rkdeveloptool,安装教程请参考:
    http://wiki.t-firefly.com/zh_CN/ROC-RK3328-CC/flash_emmc.html#rkdeveloptool

  2. 下载网盘里的loader/rk3328_loader_v1.14.249.bin

  3. 运行

rkdeveloptool ld

可以看到有maskrom设备,如果没有,请重新进行准备工作

  1. 依次执行以下命令(注意路径!)
rkdeveloptool db rk3328_loader_v1.14.249.bin
rkdeveloptool wl 0x0 Armbian_5.75_beikeyun_Ubuntu_bionic_default_4.4.174.img
rkdeveloptool rd

设备会自动重启进入新系统

armbian默认root密码为1234,第一次登陆后会让你设置新密码

LibreELEC和Lakka首次启动后会自动重启调整分区


特别事项

  • 由于armbian官方系统有自动更新功能,而更新后的dtb目录不包含我们自己添加的dtb,因此在刷完系统之后需要禁用armbian系统更新。
    禁用方法:运行armbian-config,进入System菜单,选择Freeze即可

    最新上传的armbian镜像在boot.cmdarmbianEnv.txt中强行指定了dtb路径,可以启用自动更新。

  • LED控制
    固件默认为红灯关闭白灯点亮,手动控制方法如下:

#点亮红灯
echo 1 > /sys/class/leds/red_led/brightness
#熄灭白灯
echo 0 > /sys/class/leds/white_led/brightness
  • 如果USB3.0不能正常工作,请观察USB插座附近的焊盘是否有下图中的磁珠,如果有,用小号的一字螺丝批撬掉即可:
有问题的主板
正常的主板-1
正常的主板-2
  • 部分USB3.0移动硬盘在uasp模式下工作异常(斐讯H1盒子的jms576没有问题),此时需要按照以下方法禁用uasp(仅适用于armbian):
    首先插入移动硬盘,输入lsusb -t,确认移动硬盘工作在uas模式,然后执行lsusb记录下移动硬盘的vid和pid,例如2537:1081,最后修改/boot/armbianEnv.txt,在usbstoragequirks项目里按照原有格式(逗号分隔符,16进制的vid/pid)追加你的vid:pid,重启机器即可

  • 已经刷入Rock64的armbian固件后,可以在上电时长按主板正面的微动开关进入maskrom模式而无需短接触点,此时ttl输出如下(波特率:1500000):

DDR version 1.13 20180428
ID:0xFFF
In
SRX
DDR3
786MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=16 Size=1024MB
ddrconfig:1
OUT
Boot1 Release Time: Feb  2 2018 15:41:39, version: 2.46
ChipType = 0x11, 209
SdmmcInit=2 0
BootCapSize=2000
UserCapSize=7456MB
FwPartOffset=2000 , 2000
SdmmcInit=0 2
StorageInit ok = 19161
Raw SecureMode = 0
SecureInit read PBA: 0x4
SecureInit read PBA: 0x404
SecureInit read PBA: 0x804
SecureInit read PBA: 0xc04
SecureInit read PBA: 0x1004
SecureInit ret = 0, SecureMode = 0
LoadTrustBL
No find bl30.bin
No find bl32.bin
Load uboot, ReadLba = 2000
Load OK, addr=0x200000, size=0xa4e00
RunBL31 0x10000
NOTICE:  BL31: v1.3(debug):f947c7e
NOTICE:  BL31: Built : 20:41:40, Nov 26 2018
NOTICE:  BL31:Rockchip release version: v1.3
INFO:    ARM GICv2 driver initialized
INFO:    Using rkfiq sec cpu_context!
INFO:    boot cpu mask: 1
INFO:    plat_rockchip_pmu_init: pd status 0xe
INFO:    BL31: Initializing runtime services
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0x200000
INFO:    SPSR = 0x3c9


U-Boot 2017.09-armbian (Feb 08 2019 - 11:49:32 +0100)

Model: Pine64 Rock64
DRAM:  1022 MiB
MMC:   rksdmmc@ff520000: 0, rksdmmc@ff500000: 1
SF: unrecognized JEDEC id bytes: ff, ff, ff
*** Warning - spi_flash_probe_bus_cs() failed, using default environment

In:    serial@ff130000
Out:   serial@ff130000
Err:   serial@ff130000
Model: Pine64 Rock64
misc_init_r
cpuid=55524b50303930323200000000192205
serial=433a170c2728fd1
rockchip_dnl_mode = 1 mode
LED 'power' operation failed (err=-121)
LED 'power' operation failed (err=-121)
rockchip_dnl_mode = 2 mode
LED 'power' operation failed (err=-121)
LED 'power' operation failed (err=-121)
LED 'power' operation failed (err=-121)
LED 'power' operation failed (err=-121)
rockchip_dnl_mode = 3 mode
LED 'power' operation failed (err=-121)
LED 'power' operation failed (err=-121)
LED 'power' operation failed (err=-121)
LED 'power' operation failed (err=-121)
LED 'power' operation failed (err=-121)
LED 'power' operation failed (err=-121)
rockchip_dnl_mode = 4 mode
LED 'power' operation failed (err=-121)
LED 'power' operation failed (err=-121)
LED 'power' operation failed (err=-121)
LED 'power' operation failed (err=-121)
LED 'power' operation failed (err=-121)
LED 'power' operation failed (err=-121)
LED 'power' operation failed (err=-121)
LED 'power' operation failed (err=-121)
LED 'power' operation failed (err=-121)
LED 'standby' operation failed (err=-121)
entering maskrom mode...
  • 对于已经刷入任一第三方固件的机器,可以采用以下方法进入maskrom模式:
    接好TTL(波特率:1500000),上电后在U-boot倒计时结束前按任意键进入U-boot命令行,输入以下指令擦除emmc前面的内容:
mmc erase 0 100

然后复位

reset

复位后就进入maskrom模式了

  • LibreELEC 8.90默认未开启IPv6支持,通过以下方法可以打开:
    ssh或者ttl进入终端,运行connmanctl进入交互配置,首先输入services查看当前网络连接:
connmanctl> services 
*AO Wired                ethernet_0a9aae88e7aa_cable

然后输入

config ethernet_0a9aae88e7aa_cable --ipv6 auto preferred

这里的ethernet_0a9aae88e7aa_cable替换成你自己的services,可以使用Tab补全操作
最后输入quit退出

  • 禁用armbian的ramlog与zram
    修改/etc/default/armbian-ramlog/etc/default/armbian-zram-config,注释ENABLED=true即可

  • RK3328体质测试
    使用StabilityTester在不同频率下运行hpl基准测试

    1. 克隆源码:git clone https://github.com/hanwckf/StabilityTester.git && cd StabilityTester
    2. 构建hpl:sudo bash build_hpl.sh
    3. 进行10轮测试:./runbench.sh 10

已知问题

  • poweroff关机后的功率比待机还高

参考资料