凌云实验室IGKBoard开发板BSP开发相关文件
guowenxue
2023-11-06 65093d0377383cd039b40b3bf4e38e3cdfdc2250
README.md
@@ -5,7 +5,7 @@
从实验室 git 仓库下载相应版本的 BSP(Board Support Package) 文件.
```
guowenxue@ubuntu22:~$ git clone -b lf-5.15.71-2.2.0 http://guowenxue@main.iot-yun.club:8088/r/bsp-imx.git igkboard-imx6ull
guowenxue@ubuntu22:~$ git clone http://main.iot-yun.club:8088/r/bsp-imx.git igkboard-imx6ull
guowenxue@ubuntu22:~$ cd igkboard-imx6ull && ls
bootloader  config.json  images  kernel  tools  yocto
@@ -32,8 +32,10 @@
│       ├── gen_patch.sh        生成补丁文件的Shell脚本
│       └── igkboard-6ull       IGKBoard-6ULL开发板补丁文件存放目录
├── tools                   编译系统工具脚本存放目录
    ├── imgmnt                挂载系统镜像的工具脚本
    └── setup_tools.sh        编译环境安装的脚本
|   ├── imgmnt                挂载系统镜像的工具脚本
|    └── setup_tools.sh        编译环境安装的脚本
├── yocto                   Yocto源码编译的工作目录
    └── build.sh                Yocto源码一键编译脚本
```
@@ -128,25 +130,33 @@
下面是当前各发行版本支持的版本:
下面是IGKBoard当前支持BSP版本及它与Yocto/Android的对应版本关系:
| 发行版本(distro) | 版本号(version)                |
| ---------------- | ------------------------------ |
| yocto            | hardknott、honister、kirkstone |
| buildroot        | v2023.02                       |
| debian           |                                |
| IMX BSP Version  | Yocto Version      | Android Version |
| ---------------- | ------------------ | --------------- |
| lf-6.1.22-2.0.0  | Langdale(4.1)  EOL |                 |
| lf-5.15.71-2.2.0 | Kirkstone(4.0) LTS | 13.0.0_1.2.0    |
## 3.3 编译Bootloader
下面是IGKBoard当前支持的发行版本及相应版本号:
| 发行版本(distro) | 版本号(version)                   |
| ---------------- | --------------------------------- |
| **Yocto**        | *kirkstone(4.0)*、*langdale(4.1)* |
| **Buildroot**    | *v2023.02*                        |
| **Debian**       | *bullseye(11)*、*bookworm(12)*    |
## 2.3 编译Bootloader
到 **bootloader** 文件夹下执行 ***build.sh*** 脚本,它将会自动下载源码文件、打补丁、编译,并将编译生成的相关文件拷贝到 **install** 文件夹下。
```
guowenxue@ubuntu22:~/igkboard-imx6ull$ cd bootloader/
guowenxue@ubuntu22:~/igkboard-imx6ull/bootloader$ ls
guowenxue@ubuntu22:~/igkboard-imx6ull$ cd bootloader && ls
build.sh  patches
guowenxue@ubuntu22:~/igkboard-imx6ull/bootloader$ ./build.sh
@@ -159,15 +169,14 @@
## 3.4 编译Linux内核
## 2.4 编译Linux内核
到 **kernel** 文件夹下执行 ***build.sh*** 脚本,它将会自动下载源码文件、打补丁、编译,并将编译生成的相关文件拷贝到 **install** 文件夹下。
```
guowenxue@ubuntu22:~/igkboard-imx6ull$ cd kernel/
guowenxue@ubuntu22:~/igkboard-imx6ull/kernel$ ls
guowenxue@ubuntu22:~/igkboard-imx6ull$ cd kernel && ls
build.sh  patches
guowenxue@ubuntu22:~/igkboard-imx6ull/kernel$ ./build.sh
@@ -180,15 +189,14 @@
## 3.5 制作系统镜像
## 2.5 制作系统镜像
到 **images** 文件夹下执行 ***build.sh*** 脚本,它将会自动下载相应发行版本的根文件系统源码,并将编译生成的镜像文件拷贝到 **install** 文件夹下。需要注意的是,该脚本必须以 root 权限来执行。
```
guowenxue@ubuntu22:~/igkboard-imx6ull$ cd images/
guowenxue@ubuntu22:~/igkboard-imx6ull/images$ ls
guowenxue@ubuntu22:~/igkboard-imx6ull$ cd images && ls
build.sh
guowenxue@ubuntu22:~/igkboard-imx6ull/images$ sudo ./build.sh
@@ -202,5 +210,47 @@
# 3. Yocto源码编译
## 2.6 编译Yocto源码
如果想要源码编译Yocto系统的话,则Linux主机服务器需满足如下条件:
* 系统能够代理翻墙访问 github;
* 推荐使用 8核以上CPU、16GB以上内存;
* 硬盘空闲空间至少要求 200GB+;
* 推荐使用 Ubuntu 20.04 系统及以上;
首先运行 ***`proxy`*** 命令使能代理翻墙访问 github,因为编译的过程中会从 github 上下载大量的源代码.
```
guowenxue@ubuntu22:~$ proxy
```
注:该命令并不是标准的Linux系统命令,而是我们服务器上翻墙访问 github 的命令.
到 **yocto** 文件夹下执行 ***build.sh*** 脚本,它将会自动下载Yocto源码并编译生成系统镜像,相关文件将会安装到  **install** 文件夹下。
```
guowenxue@ubuntu22:~/igkboard-imx6ull$ cd yocto && ls
build.sh
guowenxue@ubuntu22:~/igkboard-imx6ull/yocto$ ./build.sh
 start build Yocto kirkstone for igkboard-6ull
 start fetch Yocto kirkstone source code
 start fetch  source code
... ...
 Yocto(kirkstone) installed to '/home/guowenxue/igkboard-imx6ull/yocto/install'
rootfs-yocto-kirkstone.tar.zst  u-boot-igkboard-6ull.imx  yocto-image-kirkstone.wic.zst
```
* **u-boot-igkboard-6ull.imx**             U-boot镜像文件
* **yocto-image-kirkstone.wic.zst**    烧录到 eMMC或TF 卡上的系统镜像压缩文件
* **rootfs-yocto-kirkstone.tar.zst**     根文件系统树源码压缩包