LoginSignup
0
1

More than 1 year has passed since last update.

Lichee RVでubuntu20.04を動かす

Last updated at Posted at 2022-01-11

1.Lichee RVとは

Lichee RVとは、Sipeed社の超小型SBCです。CPUにはD1chipというRISK Vプロセッサを搭載しています。少し前に同じCPUを搭載したNezhaという比較的リッチなSBCが発売されましたが、Lichee RVは最小限の構成でSBC化し、dockパーツに搭載して機能拡張するという思想のようです。(合体ギミックはロマン)
image.png
この小さなボード単体か、1.14inch 135x240dotの液晶ディスプレイとのセットで購入できます。

まだ入手できていませんが、480×480のタッチパネルディスプレイ付きの「Panel」か、HDMI出力可能のディスプレイ無し「Dock」が発売されていて、機能拡張できるようです。
Panelは、IoTのコントローラーの様な使い方を想定している様です。DockはHDMI出力とGPIOがついていて、RasPiに近い使い方ができそうです。PanelやDockへは、M.2 B-key X 2という見慣れない方法で接続します。
image.png
image.png

2.起動用MicroSD作成

liche RVはRaspberry Piなどと同様、MicroSD Card(TF Card)から起動します。
目の前にRPiがあるのでこれを使って起動用SDを作りますが、linuxマシンならなんでもいけるはずです。

OSのイメージはこちらで配布されています。いくつかのOSイメージがありますが、今回使用するのは「licheerv_d1_1.14lcd_ub2004.tgz」です。
適当なフォルダでファイルを解凍します。

$ tar zxvf licheerv_d1_1.14lcd_ub2004.tgz
licheerv_d1_ub2004_20220104a/
licheerv_d1_ub2004_20220104a/readme
licheerv_d1_ub2004_20220104a/ub2004_rootfs.img
licheerv_d1_ub2004_20220104a/d1-kernel.toc1
licheerv_d1_ub2004_20220104a/boot0_sdcard_sun20iw1p1.bin

解凍先のフォルダに移動して作業を続けます。

$ cd licheerv_d1_ub2004_20220104a

基本的な起動用SDカードの作り方はreadmeに書かれている通りです。

1. A tf size sd/mmc card (/dev/mmcblk0 here)

2. clean up old disk information
    - umount all partition if needed
    $ sudo wipefs -a /dev/mmcblk0

3. create a primary partition using fdisk (/dev/mmcblk0p1)
    - /dev/mmcblk0p1 for rootfs, used as command line parameter compiled to kernel by now.
    - /dev/mmcblk0p1 should be start from sector 81920 (40MB reserved for spl and kernel)

4. write data to sd/mmc
    - $ sudo dd if=boot0_sdcard_sun20iw1p1.bin of=/dev/mmcblk0 bs=512 seek=16
    - $ sudo dd if=d1-kernel.toc1 of=/dev/mmcblk0 bs=512 seek=32800 status=progress
    - $ sudo dd if=ub2004_rootfs.img of=/dev/mmcblk0p1 bs=1M status=progress

このREADMEの内容に沿って作業を進めます。
最初の行はTFサイズのカード(MicroSD)を使えとあります。手元に16GBのMicroSDがありますのでこれを使います。
この作業ではMicroSDへのデータを書き込みを行いますが、RPi自体のOSもMicroSDにインストールされています。間違えて消してしまうと大参事ですので、先にデバイスの状況を確認しておきます。

lsblkコマンドでデバイスを確認すると次の通りでした。mmcblk0というのがRPiの起動用MicroSDで、二つのパーティションに分かれている様です。

$ lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
mmcblk0     179:0    0 29.8G  0 disk 
├─mmcblk0p1 179:1    0  256M  0 part /boot
└─mmcblk0p2 179:2    0 29.5G  0 part /

続いて、USBカードリーダーに空のMicroSDをセットしてRPiに挿入して同様に確認すると、

NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    1 14.8G  0 disk 
└─sda1        8:1    1 14.8G  0 part /media/pi/BOOT
mmcblk0     179:0    0 29.8G  0 disk 
├─mmcblk0p1 179:1    0  256M  0 part /boot
└─mmcblk0p2 179:2    0 29.5G  0 part /

とあります。「sda」というのが新たに挿入したMicroSDで、「sda1」というパーティションがマウントされていることがわかりました。

マウントされているとパーティションを消せないので先にアンマウントします。

$ sudo umount /dev/sda1

パーティションをクリアします。

$ sudo wipefs -a /dev/sda
/dev/sda: 2 bytes were erased at offset 0x000001fe (dos): 55 aa
/dev/sda: calling ioctl to re-read partition table: 成功です

続いてパーティションを作成します。

$ sudo fdisk /dev/sda

Welcome to fdisk (util-linux 2.36.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xcc24c714.

Command (m for help): n    <==新しいパーティションを作成する場合は「n」
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p      <==プライマリーを作成するので「p」
Partition number (1-4, default 1): 1
First sector (2048-31207423, default 2048): 163840     <==推奨の81920では動かない様なので倍の16340
Last sector, +/-sectors or +/-size{K,M,G,T,P} (163840-31207423, default 31207423):    <==今回は起動させるだけなので残りの領域全部を一つのパーティションにします。

Created a new partition 1 of type 'Linux' and of size 14.8 GiB.

Command (m for help): w     <==書き込んで終了するので「w」
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

パーティションが作成できたか確認してみましょう。

blk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    1 14.8G  0 disk 
└─sda1        8:1    1 14.8G  0 part 
mmcblk0     179:0    0 29.8G  0 disk 
├─mmcblk0p1 179:1    0  256M  0 part /boot
└─mmcblk0p2 179:2    0 29.5G  0 part /

パーティションが作成できていたらOSに必要なファイルを書き込みます。

$ sudo dd if=boot0_sdcard_sun20iw1p1.bin of=/dev/sda bs=512 seek=16
96+0 レコード入力
96+0 レコード出力
49152 bytes (49 kB, 48 KiB) copied, 0.0239097 s, 2.1 MB/s
$ sudo dd if=d1-kernel.toc1 of=/dev/sda bs=512 seek=32800 status=progress
27058688 bytes (27 MB, 26 MiB) copied, 8 s, 3.4 MB/s 
59194+0 レコード入力
59194+0 レコード出力
30307328 bytes (30 MB, 29 MiB) copied, 9.07536 s, 3.3 MB/s
$ sudo dd if=ub2004_rootfs.img of=/dev/sda1 bs=1M status=progress
507510784 bytes (508 MB, 484 MiB) copied, 11 s, 46.1 MB/s
496+1 レコード入力
496+1 レコード出力
520318976 bytes (520 MB, 496 MiB) copied, 14.2932 s, 36.4 MB/s

MicroSDをlicheeRVに挿して、USBから電源を供給したら・・・・動きました(^^)

3.ログインして様子を見てみる

デフォルトのuser/passはroot/2183abc
https://twitter.com/SipeedIO/status/1478538364915650563

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1