From df8b7cb3178dd71312d415b07007d6987e901c25 Mon Sep 17 00:00:00 2001 From: guowenxue <guowenxue@gmail.com> Date: Sun, 26 Dec 2021 20:20:47 +0800 Subject: [PATCH] update yocto project uboot patch and readme file --- yocto/meta-igkboard/README.md | 131 ++++++++++++++++++++++++++++++++ /dev/null | 41 ---------- yocto/meta-igkboard/recipes-bsp/u-boot/files/uboot-imx-igkboard.patch | 46 +++++++--- 3 files changed, 162 insertions(+), 56 deletions(-) diff --git a/yocto/meta-igkboard/README b/yocto/meta-igkboard/README deleted file mode 100644 index 62bd791..0000000 --- a/yocto/meta-igkboard/README +++ /dev/null @@ -1,41 +0,0 @@ -This README file contains information on the contents of the meta-igkboard layer. - -Please see the corresponding sections below for details. - -Dependencies -============ - - URI: <first dependency> - branch: <branch name> - - URI: <second dependency> - branch: <branch name> - - . - . - . - -Patches -======= - -Please submit any patches against the meta-igkboard layer to the xxxx mailing list (xxxx@zzzz.org) -and cc: the maintainer: - -Maintainer: XXX YYYYYY <xxx.yyyyyy@zzzzz.com> - -Table of Contents -================= - - I. Adding the meta-igkboard layer to your build - II. Misc - - -I. Adding the meta-igkboard layer to your build -================================================= - -Run 'bitbake-layers add-layer meta-igkboard' - -II. Misc -======== - ---- replace with specific information about the meta-igkboard layer --- diff --git a/yocto/meta-igkboard/README.md b/yocto/meta-igkboard/README.md new file mode 100644 index 0000000..033ebbe --- /dev/null +++ b/yocto/meta-igkboard/README.md @@ -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烧录系统镜像文件 +``` + + + diff --git a/yocto/meta-igkboard/recipes-bsp/u-boot/files/uboot-imx-igkboard.patch b/yocto/meta-igkboard/recipes-bsp/u-boot/files/uboot-imx-igkboard.patch index 451bb3c..3c02384 100644 --- a/yocto/meta-igkboard/recipes-bsp/u-boot/files/uboot-imx-igkboard.patch +++ b/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 -- Gitblit v1.9.1