【迅为iMX6Q】开发板 u-boot 2020.04 SD卡 启动

news2024/11/20 11:25:32

前言

  • iMX6Q 支持多种启动方式,如 emmc启动、SD 卡启动等,这里简单的记录一下 SD卡启动的流程

下载u-boot

  • 使用 NXP 官方提供的 uboot-imx,代码地址为: https://github.com/nxp-imx/uboot-imx

  • 使用 git 下载 uboot-imx, git clone https://github.com/nxp-imx/uboot-imx

  • 切换到想要的分支,我切换到:imx_v2020.04_5.4.70_2.3.0,也就是 u-boot 2020.04 版本, 支持 Linux 5.4.70 版本,算是当前比较新的版本了

  • git checkout -b imx_v2020.04_5.4.70_2.3.0 origin/imx_v2020.04_5.4.70_2.3.0

  • gcc 交叉编译工具链推荐:gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf,这个可以在 ARM 官方网站下载,较老或较新的gcc 版本,可能编译会报错

  • arm gcc 交叉编译工具链 官方下载:https://developer.arm.com/downloads/-/gnu-a

  • arm-none-linux-gnueabihf-gcc -v

zhangsz@zhangsz-virtual-machine:~/linux/imx6q/uboot/uboot-imx_2020.04/board/freescale/mx6sabresd$ arm-none-linux-gnueabihf-gcc -v
Using built-in specs.
COLLECT_GCC=arm-none-linux-gnueabihf-gcc
COLLECT_LTO_WRAPPER=/home/zhangsz/linux/tools/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/bin/../libexec/gcc/arm-none-linux-gnueabihf/9.2.1/lto-wrapper
Target: arm-none-linux-gnueabihf
Configured with: /tmp/dgboter/bbs/rhev-vm7--rhe6x86_64/buildbot/rhe6x86_64--arm-none-linux-gnueabihf/build/src/gcc/configure --target=arm-none-linux-gnueabihf --prefix= --with-sysroot=/arm-none-linux-gnueabihf/libc --with-build-sysroot=/tmp/dgboter/bbs/rhev-vm7--rhe6x86_64/buildbot/rhe6x86_64--arm-none-linux-gnueabihf/build/build-arm-none-linux-gnueabihf/install//arm-none-linux-gnueabihf/libc --with-bugurl=https://bugs.linaro.org/ --enable-gnu-indirect-function --enable-shared --disable-libssp --disable-libmudflap --enable-checking=release --enable-languages=c,c++,fortran --with-gmp=/tmp/dgboter/bbs/rhev-vm7--rhe6x86_64/buildbot/rhe6x86_64--arm-none-linux-gnueabihf/build/build-arm-none-linux-gnueabihf/host-tools --with-mpfr=/tmp/dgboter/bbs/rhev-vm7--rhe6x86_64/buildbot/rhe6x86_64--arm-none-linux-gnueabihf/build/build-arm-none-linux-gnueabihf/host-tools --with-mpc=/tmp/dgboter/bbs/rhev-vm7--rhe6x86_64/buildbot/rhe6x86_64--arm-none-linux-gnueabihf/build/build-arm-none-linux-gnueabihf/host-tools --with-isl=/tmp/dgboter/bbs/rhev-vm7--rhe6x86_64/buildbot/rhe6x86_64--arm-none-linux-gnueabihf/build/build-arm-none-linux-gnueabihf/host-tools --with-arch=armv7-a --with-fpu=neon --with-float=hard --with-mode=thumb --with-arch=armv7-a --with-pkgversion='GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)'
Thread model: posix
gcc version 9.2.1 20191025 (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10))

编译 u-boot

  • 使用 uboot-imx 里面的 mx6qsabresd_defconfig,CPU : IMX6Q, SD 卡启动

  • board 对应:uboot-imx_2020.04/board/freescale/mx6sabresd

zhangsz@zhangsz-virtual-machine:~/linux/imx6q/uboot/uboot-imx_2020.04/board/freescale/mx6sabresd$ ls -la
total 116
drwxrwxr-x   2 zhangsz zhangsz  4096 1228 16:59 .
drwxrwxr-x 126 zhangsz zhangsz  4096 1228 09:49 ..
-rw-rw-r--   1 zhangsz zhangsz   227 1228 09:42 Kconfig
-rw-rw-r--   1 zhangsz zhangsz   167 1228 09:42 MAINTAINERS
-rw-rw-r--   1 zhangsz zhangsz   172 1228 09:42 Makefile
-rw-rw-r--   1 zhangsz zhangsz  3920 1228 09:42 mx6dlsabresd.cfg
-rw-rw-r--   1 zhangsz zhangsz  4221 1228 09:43 mx6q_4x_mt41j128.cfg
-rw-rw-r--   1 zhangsz zhangsz  4539 1228 09:42 mx6qp.cfg
-rw-rw-r--   1 zhangsz zhangsz  4495 1228 09:42 mx6qp_optee.cfg
-rw-rw-r--   1 zhangsz zhangsz 43993 1228 09:43 mx6sabresd.c
-rw-rw-r--   1 zhangsz zhangsz  3418 1228 09:42 mx6solo_4x_mt41j128.cfg
-rw-rw-r--   1 zhangsz zhangsz 12799 1228 09:42 plugin.S
-rw-rw-r--   1 zhangsz zhangsz  2548 1228 09:42 README

  • 迅为imx6q 开发板,2G RAM,所以需要更改 mx6sabresd 中的 DDR 配置文件:mx6q_4x_mt41j128.cfg,这个文件可以从 迅为imx6q 开发板提供的 android 源码中的 u-boot 代码中提取,也可以使用 NXP 的工具配置生成

  • u-boot 编译方法

$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- mx6qsabresd_defconfig
$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- -j4

u-boot 产物

  • uboot-2020.04 分支,uboot 是基于【设备树】的,产物是 u-boot-dtb.imx,这个可以用于烧写到 SD卡或者 emmc 中, imx 后缀,是对 u-boot.bin 做了处理,用于 imx6q 的 ROM 启动引导 u-boot,直接烧写 u-boot.bin 到 emmc 中,默认无法正常启动

u-boot 烧写

  • 编译环境是: VMWare 虚拟机中的 ubuntu 22.04

  • SD卡 烧写 u-boot-dtb.imx,并不是直接把文件复制到 SD卡中,而是通过 Linux dd 烧写命令写入到SD 卡指定的位置,此时 SD 卡可以不分区

  • 把 SD 卡插入读卡器,然后连接到 ubuntu 中,通过 sudo df -l 命令查看,找到 SD卡设备,如 /dev/sdd1

  • /dev/sdd1 代表 SD 卡 设备 /dev/sdd 的分区一,如果没有分区,可以使用 sudo fdisk -l 查看SD 卡设备

  • 烧写命令: sudo dd if=u-boot-dtb.imx of=/dev/sdd bs=512 seek=2 && sync

zhangsz@zhangsz-virtual-machine:~/linux/imx6q/uboot/uboot-imx_2020.04$ sudo dd if=u-boot-dtb.imx of=/dev/sdd bs=512 seek=2 && sync
[sudo] password for zhangsz:
1166+0 records in
1166+0 records out
596992 bytes (597 kB, 583 KiB) copied, 0.0877795 s, 6.8 MB/s

if=u-boot-dtb.imx 表示输入,u-boot-dtb.imx 是当前路径下的 u-boot 编译的产物
of=/dev/sdd , /dev/sdd,而不是 /dev/sdd1,表示 SD 卡设备,这里直接烧写到 SD卡指定位置,不是分区
sync 表示 同步,刷到 SD卡中

适配修改

  • mx6sabresd 需要简单的修改,才能适配到 【迅为iMX6Q】开发板

一、关闭 [ ] Enable the LDO bypass checking and setting 选项

→ ARM architecture
	[ ] Enable the LDO bypass checking and setting

在这里插入图片描述

二、关闭 :[ ] Enable Driver Model for PMIC PFUZE100

→ Device Drivers
	→ Power
   		[ ] Enable Driver Model for PMIC PFUZE100 

在这里插入图片描述

在这里插入图片描述

三、修改 SD 卡 cd GPIO 引脚

  • 这里需要修改设备树文件 arch/arm/dts/imx6qdl-sabresd.dtsi

在这里插入图片描述

四、DDR RAM 改为 2G

  • 修改文件:board/freescale/mx6sabresd/mx6q_4x_mt41j128.cfg

  • 如下为 2G DDR mx6q_4x_mt41j128.cfg 文件内容

/*
 * Copyright (C) 2011-2016 Freescale Semiconductor, Inc.
 * Jason Liu <r64343@freescale.com>
 *
 * SPDX-License-Identifier:	GPL-2.0+
 *
 * Refer doc/README.imximage for more details about how-to configure
 * and create imximage boot image
 *
 * The syntax is taken as close as possible with the kwbimage
 */

#define __ASSEMBLY__
#include <config.h>

/* image version */
IMAGE_VERSION 2

/*
 * Boot Device : one of
 * spi, sd (the board has no nand neither onenand)
 */
BOOT_FROM      sd

#ifdef CONFIG_USE_IMXIMG_PLUGIN
/*PLUGIN    plugin-binary-file    IRAM_FREE_START_ADDR*/
PLUGIN board/freescale/mx6q_topeet/plugin.bin 0x00907000
#else

#ifdef CONFIG_SECURE_BOOT
CSF CONFIG_CSF_SIZE
#endif

/*
 * Device Configuration Data (DCD)
 *
 * Each entry must have the format:
 * Addr-type           Address        Value
 *
 * where:
 *      Addr-type register length (1,2 or 4 bytes)
 *      Address   absolute address of the register
 *      value     value to be stored in the register
 */
#ifdef CONFIG_IMX_OPTEE
SET_BIT 4 0x20c4070 0x3c00000
DATA 4 0x20e0024 0x00000003
CHECK_BITS_SET 4 0x20e0024 0x3
#endif

DATA 4 0x020e0798 0x000C0000
DATA 4 0x020e0758 0x00000000
DATA 4 0x020e0588 0x00000030
DATA 4 0x020e0594 0x00000030
DATA 4 0x020e056c 0x00000030
DATA 4 0x020e0578 0x00000030
DATA 4 0x020e074c 0x00000030
DATA 4 0x020e057c 0x00000030
DATA 4 0x020e058c 0x00000000
DATA 4 0x020e059c 0x00000030
DATA 4 0x020e05a0 0x00000030
DATA 4 0x020e078c 0x00000030
DATA 4 0x020e0750 0x00020000
DATA 4 0x020e05a8 0x00000018
DATA 4 0x020e05b0 0x00000018
DATA 4 0x020e0524 0x00000018
DATA 4 0x020e051c 0x00000018
DATA 4 0x020e0518 0x00000018
DATA 4 0x020e050c 0x00000018
DATA 4 0x020e05b8 0x00000018
DATA 4 0x020e05c0 0x00000018
DATA 4 0x020e0774 0x00020000
DATA 4 0x020e0784 0x00000018
DATA 4 0x020e0788 0x00000018
DATA 4 0x020e0794 0x00000018
DATA 4 0x020e079c 0x00000018
DATA 4 0x020e07a0 0x00000018
DATA 4 0x020e07a4 0x00000018
DATA 4 0x020e07a8 0x00000018
DATA 4 0x020e0748 0x00000018
DATA 4 0x020e05ac 0x00000018
DATA 4 0x020e05b4 0x00000018
DATA 4 0x020e0528 0x00000018
DATA 4 0x020e0520 0x00000018
DATA 4 0x020e0514 0x00000018
DATA 4 0x020e0510 0x00000018
DATA 4 0x020e05bc 0x00000018
DATA 4 0x020e05c4 0x00000018
DATA 4 0x021b0800 0xa1390003
DATA 4 0x021b080c 0x001F001F
DATA 4 0x021b0810 0x001F001F
DATA 4 0x021b480c 0x001F001F
DATA 4 0x021b4810 0x001F001F
DATA 4 0x021b083c 0x43180330
DATA 4 0x021b0840 0x03180310
DATA 4 0x021b483c 0x43200330
DATA 4 0x021b4840 0x0320025C
DATA 4 0x021b0848 0x40363838
DATA 4 0x021b4848 0x38362E3C
DATA 4 0x021b0850 0x3E3C4840
DATA 4 0x021b4850 0x44364640
DATA 4 0x021b081c 0x33333333
DATA 4 0x021b0820 0x33333333
DATA 4 0x021b0824 0x33333333
DATA 4 0x021b0828 0x33333333
DATA 4 0x021b481c 0x33333333
DATA 4 0x021b4820 0x33333333
DATA 4 0x021b4824 0x33333333
DATA 4 0x021b4828 0x33333333
DATA 4 0x021b08b8 0x00000800
DATA 4 0x021b48b8 0x00000800
DATA 4 0x021b0004 0x00020036
DATA 4 0x021b0008 0x09444040
DATA 4 0x021b000c 0x8A8F7955
DATA 4 0x021b0010 0xFF328F64
DATA 4 0x021b0014 0x01FF00DB
DATA 4 0x021b0018 0x00001740
DATA 4 0x021b001c 0x00008000
DATA 4 0x021b002c 0x000026D2
DATA 4 0x021b0030 0x008F1023
DATA 4 0x021b0040 0x00000047
DATA 4 0x021b0000 0x841A0000
DATA 4 0x021b001c 0x04088032
DATA 4 0x021b001c 0x00008033
DATA 4 0x021b001c 0x00048031
DATA 4 0x021b001c 0x09408030
DATA 4 0x021b001c 0x04008040
DATA 4 0x021b0020 0x00005800
DATA 4 0x021b0818 0x00011117
DATA 4 0x021b4818 0x00011117
DATA 4 0x021b0004 0x00025576
DATA 4 0x021b0404 0x00011006
DATA 4 0x021b001c 0x00000000

/* set the default clock gate to save power */
DATA 4 0x020c4068 0x00C03F3F
DATA 4 0x020c406c 0x0030FC03
DATA 4 0x020c4070 0x0FFFC000
DATA 4 0x020c4074 0x3FF00000
DATA 4 0x020c4078 0x00FFF300
DATA 4 0x020c407c 0x0F0000C3
DATA 4 0x020c4080 0x000003FF

/* enable AXI cache for VDOA/VPU/IPU */
DATA 4 0x020e0010 0xF00000CF
/* set IPU AXI-id0 Qos=0xf(bypass) AXI-id1 Qos=0x7 */
DATA 4 0x020e0018 0x007F007F
DATA 4 0x020e001c 0x007F007F

/*
 * Setup CCM_CCOSR register as follows:
 *
 * cko1_en  = 1	   --> CKO1 enabled
 * cko1_div = 111  --> divide by 8
 * cko1_sel = 1011 --> ahb_clk_root
 *
 * This sets CKO1 at ahb_clk_root/8 = 132/8 = 16.5 MHz
 */
DATA 4 0x020c4060 0x000000fb
#endif

启动信息

  • 【迅为iMX6Q】开发板,通过拨码开关,设置为 SD卡启动方式,插入 SD 卡

  • 重新上电或者按下【RESET】复位按钮,查看串口输出信息

  • u-boot 启动信息如下:

U-Boot 2020.04-00016-g637954f1b9-dirty (Dec 29 2022 - 21:11:58 +0800)

CPU:   i.MX6Q rev1.3 996 MHz (running at 792 MHz)
CPU:   Extended Commercial temperature grade (-20C to 105C) at 25C
Reset cause: POR
Model: i.MX6 Quad SABRE Smart Device Board
Board: MX6-SabreSD
DRAM:  2 GiB
MMC:   FSL_SDHC: 1, FSL_SDHC: 2, FSL_SDHC: 3
Loading Environment from MMC... *** Warning - bad CRC, using default environment

No panel detected: default to Hannstar-XGA
Display: Hannstar-XGA (1024x768)
In:    serial
Out:   serial
Err:   serial
switch to partitions #0, OK
mmc1 is current device
flash target is MMC:1
Net:   Could not get PHY for FEC0: addr -19
Could not get PHY for FEC0: addr -19
No ethernet found.

Fastboot: Normal
Normal Boot
Hit any key to stop autoboot:  0
=>
=>
=> version
U-Boot 2020.04-00016-g637954f1b9-dirty (Dec 29 2022 - 21:11:58 +0800)

arm-none-linux-gnueabihf-gcc (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 9.2.1 20191025
GNU ld (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 2.33.1.20191209
=>

小结

  • 本篇主要记录 imx6q 的 u-boot 2020.04 编译方法与 SD 卡启动方法

  • 可以基于 mx6sabresd,通过新增一个 board 的方式,适配 迅为imx6q 开发板

  • 当前 u-boot 2020.04 初步适配并运行在 迅为 imx6q 开发板上,网络PHY还需要适配

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/127788.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自动驾驶接力赛,还在继续奔跑的Apollo带来哪些改变?

自动驾驶&#xff0c;被看作人工智能技术落地最快、范围最广、引发商业效应最显著的场景之一。从人人好奇的无人车&#xff0c;到满大街司空见惯的无人配送&#xff0c;自动驾驶在过去几年里快速成熟&#xff0c;成为城市交通系统的重要组成部分。数据显示&#xff0c;2020-203…

融云 CEO 董晗:国产化进程加速,助推政企数智办公平台深化发展

完整报告关注公众号&#xff0c;限免下载 政策催化加疫情助推下&#xff0c;办公线上化迅速完成着市场教育已经成为当前的主流趋势。而随着“国产化”成为各行业数字化发展道路上的关键词&#xff0c;政企办公领域国产替代的发展确定性更加凸显。关注【融云 RongCloud】&#x…

hnu计网实验四-网络层与链路层协议分析(PacketTracer)

一、实验目的&#xff1a; 通过本实验&#xff0c;进一步熟悉PacketTracer的使用&#xff0c;学习路由器与交换机的基本配置&#xff0c;加深对网络层与链路层协议的理解。 二、实验内容&#xff1a; 4.1 路由器交换机的基本配置 打开下面的实验文件&#xff0c;按提示完成实…

Java 集合框架

目录 1. 简介 2. 概览 3. 实现类 3.1 List 3.2 Queue 3.3 Set 3.4 Map 1. 简介 容器&#xff0c;就是可以容纳其他Java对象的对象。*Java Collections Framework(JCF)*为Java开发者提供了通用的容器&#xff0c;其始于JDK 1.2&#xff0c;优点是: 降低编程难度提高程序…

成为用友ISV优选伙伴,迈丹科技8个月经历了一次脱胎换骨

12月9日&#xff0c;用友第四届企业云服务开发者大赛鸣金收兵&#xff0c;第一次参赛&#xff0c;第一次与用友正式合作的厦门市迈丹科技开发有限公司&#xff08;以下简称迈丹科技&#xff09;&#xff0c;便凭借SPC企业质量管理解决方案第一次获奖&#xff0c;而且还是企业赛…

Unity模型

1、Unity中使用的模型 Unity支持很多模型格式&#xff0c;比如&#xff1a;.fbx&#xff0c;.dae&#xff0c;.3ds&#xff0c;.dxf&#xff0c;.obj等等 大部分模型都不是在Unity中制作的&#xff0c;都是美术人员在建模软件中制作&#xff0c;如 3DMax、Maya等等 当他们制作…

VueJs中的ref函数

前言在Vue2.0里面,与页面相关显示的数据是挂载在data下,而在vue3.0里,想要一个数据具备响应式,那么需要引入响应式API函数,通过API函数加工处理后,才具备响应式,两者之间在底层实现数据的响应式上也存在着差异01ref可将数据变成响应式在setup里面使用let定义的变量不是响应式的…

【XR】VR手柄定位技术

rvy competitive analyse Y1的手柄使用了基于红外光的主动式光学定位追踪方案&#xff0c;主要是通过头显的摄像头在短曝光图像上观测到手柄上红外光电发射的红外光&#xff0c;通过检测光点并根据多视图几何原理计算初步的位姿&#xff0c;然后融合产生于手柄IMU&#xff08;…

深度优先搜索和广度优先搜索的java代码实现过程详解

深度优先搜索和广度优先搜索 在很多情况下&#xff0c;我们需要遍历图&#xff0c;得到图的一些性质&#xff0c;例如&#xff0c;找出图中与指定的顶点相连的所有顶点&#xff0c;或者判定某个顶点与指定顶点是否相通&#xff0c;是非常常见的需求。 有关图的搜索&#xff0c;…

Spring Security怎么自定义登录页? 怎么注销?

本章内容 怎么自定义登录页底层都怎么实现如何注销?注销底层源码简单分析 开干 去网上找个好看的前端, 改改改改spring security配置启动几个红框框的地方注意下 Configuration public class SecurityConfig {Beanpublic SecurityFilterChain securityFilterChain(HttpSecu…

【决策树】简单介绍+个人理解(二)

1、ID3(Iterative Dichotomizer) ID3是Quinlan于1986年提出的, 它的提出开创了决策树算 法的先河, 而且是国际上最早的决策树方法, 在该算法中, 引入了信息论中熵的概念, 利用分割前后的熵来计算信息 增益, 作为判别能力的度量。ID3 算法的核心是在决策树各个结点上应用信息增…

T-SQL程序练习04

目录 一、写一个存储过程 &#x1d439;&#x1d456;&#x1d44f;&#x1d45c;&#x1d45b;&#x1d44e;&#x1d450;&#x1d450; 1. 具体要求 2. T-SQL程序代码 3. 结果显示 二、建立存储过程 &#x1d446;&#x1d44e;&#x1d45b;&#x1d43a;&#x1d462;…

万向区块链肖风:元宇宙的十大经济规则

本文为万向区块链董事长兼总经理肖风为华泰证券研究所科技及电子行业首席分析师黄乐平、万向区块链首席经济学家邹传伟联合撰写的《元宇宙经济学》所作序言。 元宇宙是什么&#xff1f;按照我的理解&#xff0c;元宇宙是一个由分布式网络技术、分布式账本和分布式社会/商业构成…

消息中间件介绍

一般&#xff0c;我们认为消息中间件是指支持与保障分布式应用程序之间同步/异步收发消息的中间件。消息是分布式应用之间进行数据交换的基本信息单位&#xff0c;分布式应用程序之间的通信接口由消息中间件提供。其中&#xff0c;异步方式指消息发送方在发送消息时不必知道接收…

奇遇MIX体验:加入全彩VST透视,开创消费级VR一体机新时代

前不久在奇遇MIX发布会上我们知道&#xff0c;面临着国内复杂的竞争环境&#xff0c;奇遇VR将选择差异化运营模式&#xff0c;一是硬件上停产单一VR模式设备&#xff0c;专注于支持VST的VR设备&#xff1b;二是内容层面&#xff0c;通过提供三年影视或游戏权益的模式&#xff0…

【openGauss实战1】openGauss基于CentOS8的部署

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&#x1f61…

写出更优雅和稳健的 TS 代码的几个 tips

写出更优雅和稳健的 TS 代码的几个 tips 本来想放优雅 太优雅了.jpg&#xff0c;后来还是好懒啊…… 使用 unknown 代替 any any 的问题在于它直接关闭了 TS 的类型检查&#xff0c;因此一旦使用了 any&#xff0c;那就代表任何事情都会发生。使用 unknown 则告诉 TS&#x…

LIS源码 医院检验科LIS系统源码 .net检验系统源码 实验室信息管理系统源码全开源,价值百万

LIS系统即实验室信息管理系统。LIS系统能实现临床检验信息化&#xff0c;检验科信息管理自动化。其主要功能是将检验科的实验仪器传出的检验数据经数据分析后&#xff0c;自动生成打印报告&#xff0c;通过网络存储在数据库中&#xff0c;使医生能够通过医生工作站方便、及时地…

PXE+Kickstart 自动化部署系统

PXE 预启动执行环境是由Intel开发的技术,可以让计算机通过网络来启动操作系统(前提是计算机上安装的网卡支持PXE技术),主要用于在无人值守安装系统中引导客户端主机安装Linux操作系统. Kickstart是一种无人值守的安装方式,其工作原理是预先把原本需要运维人员手工填写的参数保…

谷粒商城之高级篇(2)

2.6 购物车服务 2.6.1 环境搭建 ①域名配置 ②创建 微服务 暂时需要的插件 此外&#xff0c;导入 公共包的依赖 <dependency><groupId>com.atguigu.gulimall</groupId><artifactId>gulimall-common</artifactId><version>0.0.1-SNAPSHOT…