凌云实验室推出的ARM Linux物联网网关开发板IGKBoard(IoT Gateway Kit Board)项目源码
guowenxue
2021-12-26 df8b7cb3178dd71312d415b07007d6987e901c25
update yocto project uboot patch and readme file
1 files modified
1 files deleted
1 files added
218 ■■■■ changed files
yocto/meta-igkboard/README 41 ●●●●● patch | view | raw | blame | history
yocto/meta-igkboard/README.md 131 ●●●●● patch | view | raw | blame | history
yocto/meta-igkboard/recipes-bsp/u-boot/files/uboot-imx-igkboard.patch 46 ●●●●● patch | view | raw | blame | history
yocto/meta-igkboard/README
File was deleted
yocto/meta-igkboard/README.md
New file
@@ -0,0 +1,131 @@
本目录为凌云实验室针对IGKBoard开发板移植的Yocto Hardknott (Yocto 3.3) 项目源码,关于Yocto系统的详细使用,大家可以参考NXP官方的用户手册文档,[点此链接下载](https://www.nxp.com/docs/en/user-guide/IMX_YOCTO_PROJECT_USERS_GUIDE.pdf) 。
如果想源码编译Yocto系统的话,则系统需要满足:
* 推荐使用 Ubuntu 20.04 系统;
* 推荐使用 4核以上CPU;
* 硬盘空间至少要求 200GB+;
### 1. 下载Yocto源码
如果没有 ***git*** 命令,则首先安装 **git** 命令并配置 **git** 的账号信息:
```
guowenxue@ubuntu20:~$ sudo apt install git
guowenxue@ubuntu20:~$ git config --global user.name guowenxue
guowenxue@ubuntu20:~$ git config --global user.email "guowenxue@gmail.com"
```
首先下载并安装 google 的 ***repo*** 命令:
```
guowenxue@ubuntu20:~$ curl https://storage.googleapis.com/git-repo-downloads/repo -o repo
guowenxue@ubuntu20:~$ chmod a+x repo
guowenxue@ubuntu20:~$ sudo mv repo /usr/bin/
```
使用 **git** 命令克隆下载该项目源码:
```
guowenxue@ubuntu20:~$ mkdir -p ~/workspace
guowenxue@ubuntu20:~$ cd ~/workspace
guowenxue@ubuntu20:~/workspace$ git clone git://weike-iot.com/imx6ull.git
Cloning into 'imx6ull'...
remote: Counting objects: 330, done
remote: Finding sources: 100% (330/330)
remote: Getting sizes: 100% (179/179)
remote: Total 330 (delta 98), reused 330 (delta 98)
Receiving objects: 100% (330/330), 110.55 KiB | 884.00 KiB/s, done.
Resolving deltas: 100% (98/98), done.
```
使用 ***repo*** 命令下载 **Yocto Hardknott** 源码:
```
guowenxue@ubuntu20:~$ mkdir -p ~/workspace/imx-yocto-bsp/
guowenxue@ubuntu20:~$ cd ~/workspace/imx-yocto-bsp/
guowenxue@ubuntu20:~/workspace/imx-yocto-bsp$ repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-hardknott -m imx-5.10.52-2.1.0.xml
guowenxue@ubuntu20:~/workspace/imx-yocto-bsp$ repo sync
guowenxue@ubuntu20:~/workspace/imx-yocto-bsp$ ls
imx-setup-release.sh  README  README-IMXBSP  setup-environment  sources
```
### 2. 编译Yocto系统
首先将该本文件夹Yocto针对IGKBoard的移植源码拷贝到 Yocto 系统中。
```
guowenxue@ubuntu20:~/workspace/imx-yocto-bsp$ cp -rf ~/workspace/imx6ull/yocto/meta-igkboard/ sources/
```
接下来执行下面命令,初始化 IGKBoard 开发板的 Yocto 编译环境:
```
guowenxue@ubuntu20:~/workspace/imx-yocto-bsp$ MACHINE=igkboard source sources/meta-igkboard/tools/igkboard-setup.sh -b igkboard
 Build directory is  igkboard
/home/guowenxue/workspace/imx-yocto-bsp
    Welcome LingYun IoT Gateway Kit Board Yocto BSP
    The Yocto Project has extensive documentation about OE including a
    reference manual which can be found at:
        http://yoctoproject.org/documentation
    You can now run 'bitbake <target>'
    Common targets are:
        linuxsys-image
        core-image-minimal
        imx-image-full
```
接下来使用下面命令,开始Yocto系统的源码编译,这个系统编译时间较长,如果编译的过程中出现错误,再重新开始编译即可。也可以使用 ***-k*** 选项先跳过编译出错的软件包。
```
guowenxue@ubuntu20:/workspace/imx-yocto-bsp/igkboard$ bitbake linuxsys-image
```
### 3. Yocto编译输出
编译过程中下载的软件包存放在 ***~/workspace/hardknott_packets/*** 路径下:
```
guowenxue@ubuntu20:/workspace/imx-yocto-bsp/igkboard$ ls ~/workspace/hardknott_packets/
```
编译完成输出的系统镜像及文件系统存放在下面路径下:
```
guowenxue@ubuntu20:~/workspace/imx-yocto-bsp/igkboard$ ls ls tmp/deploy/images/igkboard/
linuxsys-image-igkboard-*.rootfs.tar.bz2   --Yocto根文件系统压缩包
linuxsys-image-igkboard-*.rootfs.wic.bz2   --Yocto烧录系统镜像文件
```
yocto/meta-igkboard/recipes-bsp/u-boot/files/uboot-imx-igkboard.patch
@@ -1,6 +1,6 @@
diff -Nuar uboot-imx/arch/arm/dts/imx6ul-14x14-evk.dtsi uboot-imx-igkboard/arch/arm/dts/imx6ul-14x14-evk.dtsi
--- uboot-imx/arch/arm/dts/imx6ul-14x14-evk.dtsi    2021-09-06 16:48:23.000000000 +0800
+++ uboot-imx-igkboard/arch/arm/dts/imx6ul-14x14-evk.dtsi    2021-12-16 17:12:11.714490021 +0800
+++ uboot-imx-igkboard/arch/arm/dts/imx6ul-14x14-evk.dtsi    2021-12-18 19:24:57.848022011 +0800
@@ -21,7 +21,6 @@
         regulator-name = "VSD_3V3";
         regulator-min-microvolt = <3300000>;
@@ -117,7 +117,7 @@
 
diff -Nuar uboot-imx/configs/igkboard_defconfig uboot-imx-igkboard/configs/igkboard_defconfig
--- uboot-imx/configs/igkboard_defconfig    1970-01-01 08:00:00.000000000 +0800
+++ uboot-imx-igkboard/configs/igkboard_defconfig    2021-12-16 17:25:11.551447847 +0800
+++ uboot-imx-igkboard/configs/igkboard_defconfig    2021-12-26 19:59:10.026382816 +0800
@@ -0,0 +1,96 @@
+CONFIG_ARM=y
+CONFIG_ARCH_MX6=y
@@ -215,9 +215,23 @@
+CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_SPLASH_SCREEN=y
+CONFIG_SPLASH_SCREEN_ALIGN=y
diff -Nuar uboot-imx/drivers/fastboot/fb_fsl/fb_fsl_partitions.c uboot-imx-igkboard/drivers/fastboot/fb_fsl/fb_fsl_partitions.c
--- uboot-imx/drivers/fastboot/fb_fsl/fb_fsl_partitions.c    2021-09-06 16:48:23.000000000 +0800
+++ uboot-imx-igkboard/drivers/fastboot/fb_fsl/fb_fsl_partitions.c    2021-12-26 19:34:18.512291074 +0800
@@ -185,6 +185,10 @@
             boot_partition = FASTBOOT_MMC_BOOT_PARTITION_ID;
             user_partition = FASTBOOT_MMC_USER_PARTITION_ID;
         }
+
+        /* add by guowenxue to export mmc_no env */
+        env_set_ulong("mmc_no", mmc_no);
+        env_set_ulong("mmcdev", mmc_no);
     } else {
         printf("Can't setup partition table on this device %d\n",
             fastboot_devinfo.type);
diff -Nuar uboot-imx/drivers/net/phy/phy.c uboot-imx-igkboard/drivers/net/phy/phy.c
--- uboot-imx/drivers/net/phy/phy.c    2021-09-06 16:48:23.000000000 +0800
+++ uboot-imx-igkboard/drivers/net/phy/phy.c    2021-12-16 17:12:11.714490021 +0800
+++ uboot-imx-igkboard/drivers/net/phy/phy.c    2021-12-18 19:24:57.848022011 +0800
@@ -182,6 +182,9 @@
 {
     int result;
@@ -230,15 +244,15 @@
 
diff -Nuar uboot-imx/include/configs/mx6ullevk.h uboot-imx-igkboard/include/configs/mx6ullevk.h
--- uboot-imx/include/configs/mx6ullevk.h    2021-09-06 16:48:23.000000000 +0800
+++ uboot-imx-igkboard/include/configs/mx6ullevk.h    2021-12-16 17:12:11.714490021 +0800
@@ -100,124 +100,39 @@
+++ uboot-imx-igkboard/include/configs/mx6ullevk.h    2021-12-26 19:43:02.601118471 +0800
@@ -100,124 +100,38 @@
 
 #else
 #define CONFIG_EXTRA_ENV_SETTINGS \
-    CONFIG_MFG_ENV_SETTINGS \
-    TEE_ENV \
+    "emmc_dev=1\0"\
+    "emmc_ack=1\0"\
+    "emmc_dev=${mmc_no}\0"\
+    "emmc_ack=${mmc_no}\0"\
     "script=boot.scr\0" \
     "image=zImage\0" \
     "console=ttymxc0\0" \
@@ -252,11 +266,9 @@
-    "boot_fdt=try\0" \
-    "ip_dyn=yes\0" \
     "splashimage=0x8c000000\0" \
+    "ipaddr=192.168.2.22\0" \
+    "serverip=192.168.2.2\0" \
     "mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \
     "mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \
     "mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \
-    "mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \
-    "mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \
-    "mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \
-    "mmcautodetect=yes\0" \
-    "mmcargs=setenv bootargs console=${console},${baudrate} " \
-        BOOTARGS_CMA_SIZE \
@@ -265,7 +277,10 @@
-        "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
-    "bootscript=echo Running bootscript from mmc ...; " \
-        "source\0" \
+    "mmcargs=setenv bootargs console=${console},${baudrate} root=${mmcroot}\0" \
+    "ipaddr=192.168.2.22\0" \
+    "serverip=192.168.2.2\0" \
+    "mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \
+    "mmcargs=setenv bootargs console=${console},${baudrate} root=/dev/mmcblk${mmc_no}p2 rootwait rw\0" \
+    "loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
+    "bootscript=echo Running bootscript from mmc ...; source\0" \
     "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
@@ -373,11 +388,12 @@
+        "run mmcargs; " \
+        "bootz ${loadaddr} - ${fdt_addr}\0" \
+    "bootcmd=run mmcboot\0" \
+    "upmode=fastboot 0\0" \
+    "bbl=tftp ${loadaddr} u-boot-igkboard-emmc.imx && mmc dev ${mmcdev} 1 && mmc write ${loadaddr} 2 0x500\0"
 #endif
 
 /* Miscellaneous configurable options */
@@ -238,7 +153,9 @@
@@ -238,7 +152,9 @@
     (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
 
 /* environment organization */
@@ -389,7 +405,7 @@
 #define CONFIG_IOMUX_LPSR
diff -Nuar uboot-imx/Makefile uboot-imx-igkboard/Makefile
--- uboot-imx/Makefile    2021-09-06 16:48:23.000000000 +0800
+++ uboot-imx-igkboard/Makefile    2021-12-16 17:23:36.221057260 +0800
+++ uboot-imx-igkboard/Makefile    2021-12-26 19:58:58.142407641 +0800
@@ -263,6 +263,9 @@
 CROSS_COMPILE ?=
 endif