Wednesday, April 13, 2022

Lychee RV 86

Just for the heck of it, I am test-driving a RISCV Linux SBC called the Sipeed Lychee RV 86.

When I plugged it in, nothing happened. No console ouput on the USB tty, nothing on the screen. It turns out there is no software loaded on it: the flash memory slot is empty. So you need to provide your own storage, and own OS.

First attempt is with a "debian-minimal" install.

# dd if=debian-minimal-licheerv.img of=/dev/sdb bs=32K
134272+0 records in
134272+0 records out
4399824896 bytes (4.4 GB, 4.1 GiB) copied, 248.155 s, 17.7 MB/s

Those were the write speeds to my "Sandisk Extreme PLUS." Hmm... that does not seem to be an extreme speed, to me. It has a U3 designation. Oh well. UPDATE: Lexar x1000 was even worse: 15.7 MB/s and the write speed slows down, as you write more. Remind me never to buy Lexar SD cards again.

And it works! With the card inserted, I now get a login prompt on ttyUSB0 in 32 seconds. Not bad at all.

Somehow, it takes a long time for the Ethernet device to show up with ifconfig command? When it does, ifup usb0 is not working: ifup: unknown interface usb0

When I make usb0 interface known, the dhcp client will receive no offers, unfortunately. Despite the Ethernet light blinking, so there is network activity.


I have been able to work around the need for a proprietary MSWindows tool to use the Lichee RV disk images. With the OpenixCard tool, you can extract a normal image, that you can write with dd to an SDCARD.

$ file ~/Downloads/LicheeRV_Debian_86_480p.img   
/home/bram/Downloads/LicheeRV_Debian_86_480p.img: data
./OpenixCard -i ~/Downloads/LicheeRV_Debian_86_480p.img -d
$ file /home/bram/Downloads/LicheeRV_Debian_86_480p.img.dump.out/LicheeRV_Debian_86_480p.img 
/home/bram/Downloads/LicheeRV_Debian_86_480p.img.dump.out/LicheeRV_Debian_86_480p.img: DOS/MBR boot sector; partition 1 : ID=0xc, start-CHS (0x2,35,2), end-CHS (0x2,163,1), startsector 34336, 8064 sectors; partition 2 : ID=0xee, start-CHS (0x0,0,2), end-CHS (0x0,33,1), startsector 1, 2079 sectors
$ sudo dd if=/home/bram/Downloads/LicheeRV_Debian_86_480p.img.dump.out/LicheeRV_Debian_86_480p.img of=/dev/sdb bs=1M
8237+1 records in
8237+1 records out
8637726720 bytes (8.6 GB, 8.0 GiB) copied, 435.776 s, 19.8 MB/s


The Debian image works great. I removed all X11 stuff, and will just use fb0.

I noticed that eth0 mac address is randomized at each boot, so I had to create an entry in /etc/network/if-pre-up file:



if [ ! -x $IFCONFIG ]; then
        exit 0

if [ "$IFACE" = eth0 ]; then
        $IFCONFIG $IFACE hw ether XX:XX:XX:XX:XX:XX


To set the timezone: $ timedatectl set-timezone America/Vancouver

If not using wifi, it is probably a good idea to remove xr829 from /etc/modules file.

I have been removing a lot of packages, trying to get a minimal install. To aide this effort, I decided to graph the dependencies, to see which cuts I can make in the dependency chains.


The D1 CPU is RV64IMAFDCVU which means it does: INTEGER MUL/DIV, Atomic, SP FP, DP FP, Compressed Instructions, Vector Operations, User.

Sadly, it has no conditional move operations.


Tyring to build a new kernel for this, using these instructions. Oof! getting the linux kernel source with git history... 5.2GByte. These sizes of these things are getting out of hand.

No comments:

Post a Comment