#### 一、版本准备

代码下载、工具链配置和编译说明路径：

https://gitee.com/thead-yocto/Misc/blob/master/riscv%20yocto%20%E4%BB%93%E5%BA%93%E6%9E%84%E5%BB%BA%E8%AF%B4%E6%98%8E.md

以`sato`映像为例，进入到`yocto`项目代码根目录，编译方法如下：

```
source openembedded-core/oe-init-build-env thead-build/ice-xfce/
bitbake core-image-sato
```

#### 二、Debian包制作

通过`bitbake`命令编译完成后，需要将映像制作成`ext4`的文件系统。

下面以`sato`映像为例，介绍映像制作方法：

```
## 进入ice-xfce编译目录下
cd thead-build/ice-xfce/tmp-glibc/deploy/images/ice
mkdir debian_rootfs
mkdir tmp_rootfs

## 选择core-image-sato映像制作
mount core-image-sato-ice.ext4 debian_rootfs/
du -sm debian_rootfs/
## -s后面参数大于debian_rootfs/的大小,根据实际大小修改
truncate -s 270M debian-rootfs.ext4

## debian-rootfs.ext4即为可烧录映像
mkfs.ext4 debian-rootfs.ext4
mount debian-rootfs.ext4 tmp_rootfs
cp -rf debian_rootfs/* tmp_rootfs/

umount tmp_rootfs
umount debian_rootfs
```

#### 三、映像烧录

单板在已经烧录`U-Boot`和内核的情况下，只需要更新文件系统即可。单板上电，在串口终端输入任意键，进入`U-Boot`命令行模式。

**1、单板侧**

1）设置环境变量

```
setenv ipaddr 10.20.16.14        ## BOARD IP     
setenv serverip 10.20.16.12      ## PC IP
saveenv
```

2）进入`fastboot`模式

```
fastboot udp
```

**2、PC侧**

将需要烧录的映像`debian-rootfs.ext4`拷贝到PC的某个存储位置，在`cmd`窗口输入：

```
fastboot -s udp:10.20.16.14 flash root debian-rootfs-buildroot.ext4
```

烧录完成后，重启单板。登录密码：`root`，此时可以进行该映像的相关测试。

注：IP地址根据实际情况设置。

参考：ice_evb_book_20210110_v0.1.pdf

#### 四、服务器搭建

如果想使用`apt-get`命令进行命令包在线安装，可以简单搭建一个`Apache2`服务器。

搭建环境：WIN7+Ubuntu18.04虚拟机。

1、虚拟机配置

1）安装Apache2

```
apt-get install apache2
```

2）制作`deb`包源

```
cd /var/www/html/
## 新建文件夹，必须和后面win的访问地址、单板source.list的配置一致
mkdir deb
cd deb/
cp -rf (yocto代码路径)/thead-build/ice-xfce/tmp-glibc/deploy/deb/riscv64/* .

## 使用无签名验证deb包安装
dpkg-scanpackages ./ /dev/null | gzip > Packages.gz
```

注：使用虚拟机时，需要配置桥接模式，否则单板和虚拟机之间无法`ping`通。

2、WIN系统配置

在WIN系统的浏览器输入虚拟机地址，可以看到相关的`deb`文件，如：

```
http://10.20.16.116:80/deb
```

地址格式：

```
http://[ubuntu ip]:[port]/deb
```

3、单板配置

在系统启动后，按照如下配置：

```
## 调整分区大小，只需要在烧录映像后调整一次即可
resize2fs /dev/mmcblk0p3

## 设置当前时间，每次系统重启都要按当前时间设置
date -s "2021-03-09 15:30:00"

## 设置source.list，注意IP地址和deb和虚拟机IP，文件夹名保存一致
cd /etc/apt/
vi source.list
deb http://10.20.16.116/deb /

## 由于是无签名源，需要使用--allow-insecure-repositories
apt-get update --allow-insecure-repositories

## 安装deb，例：vim
apt-get install vim
```

上面环境配置完成后，即可进行测试，具体参考测试表格。

