精华内容
下载资源
问答
  • 近日工作中又涉及到了DSP28335的应用,看来TI的芯片还是得到了公司领导的认可,也直接丢了一份DSP28335的FOC程序给我理解。以前读书阶段较为简单的接触过...首先从系统的初始化开始,系统初始化主要是系统时钟、看门狗

    近日工作中又涉及到了DSP28335的应用,看来TI的芯片还是得到了公司领导的认可,也直接丢了一份DSP28335的FOC程序给我理解。以前读书阶段较为简单的接触过一段时间,对DSP28335的基础功能部分有了一些浅显的了解,现在工作中要实际开始用了,开始发现之前学习的程度还是不够,因此要更加深入的探究一遍。可能非常基础,希望大家也不要见笑,人真是年龄越大忘东西越快。

    系统初始化

    首先从系统的初始化开始,系统初始化主要是系统时钟、看门狗等功能模块的基础配置,TI官方配置的系统初始化函数如下:

    void InitSysCtrl(void)
    {
    
       // Disable the watchdog
       DisableDog();
    
       // Initialize the PLL control: PLLCR and DIVSEL
       // DSP28_PLLCR and DSP28_DIVSEL are defined in DSP2833x_Examples.h
       InitPll(DSP28_PLLCR,DSP28_DIVSEL);
    
       // Initialize the peripheral clocks
       InitPeripheralClocks();
    }

    上面代码主要由3个子函数构成,分别为 DisableDog();、InitPll(DSP28_PLLCR,DSP28_DIVSEL);、 InitPeripheralClocks();这三个子函数的功能我们也来一一分析。

    看门狗配置函数DisableDog()

    首先是开门狗初始化函数DisableDog(),函数代码如下:

    void DisableDog(void)
    {
        EALLOW;
        SysCtrlRegs.WDCR= 0x0068;
        EDIS;
    }

    代码解释:

    1、EALLOW /EDIS 打开/关闭状态寄存器保护EALLOW/EDIS 是DSP为了防止杂散代码或指针破坏关键寄存器的状态宏定义指令,关键寄存器包括ePWM、Flash、器件仿真寄存器、FLASH寄存器、CSM寄存器、PIE矢量表、系统控制寄存器、GPIOMux寄存器等,这些寄存器的状态决定DSP是否稳定运行,因此需要修改之前应用EALLOW打开保护,修改完后必须用EDIS关闭。

    2、配置SysCtrlRegs.WDCR寄存器为0x0068。关闭看门狗,也可以戏称为把狗杀了,好残忍,看门狗的实际作用就是防止CPU跑飞或者其他故障导致系统出现不可挽回的故障,如果一段时间收不到CPU稳定运行的信号就会复位CPU,从而保证CPU的稳定性。打开WDCR寄存器表可知,寄存器后8位起到实际作用,0x0068 = 0110 1000 ,第7位置0看门狗不满足复位条件,第6位置1禁止看门狗模块,第5~3位写101强制写,第2~0位写000配置看门狗时钟。关键为第6位置1禁止看门狗模块。

    锁相环初始化函数 InitPll(DSP28_PLLCR,DSP28_DIVSEL)

    其次是锁相环初始化函数,在DSP中锁相环函数主要是用在时钟的分频上,将晶振产生的震荡进行分频和倍频操作,是整个芯片心脏——时钟能够起作用的关键之处,因此必须在程序开头对其进行配置。其代码如下:

    void InitPll(Uint16 val, Uint16 divsel)
    {
    
       // Make sure the PLL is not running in limp mode  确保PLL没有运行在故障状态
       if (SysCtrlRegs.PLLSTS.bit.MCLKSTS != 0)
       {
          // Missing external clock has been detected
          // Replace this line with a call to an appropriate
          // SystemShutdown(); function.
    	   // 若检测到系统失去外部时钟,则关闭系统
          asm("        ESTOP0");
       }
    
       // DIVSEL MUST be 0 before PLLCR can be changed from 在PLLCR可以从更改前,DIVSEL必须为0
       // 0x0000. It is set to 0 by an external reset XRSn 通过外部重置XRSn将其设置为0
       // This puts us in 1/4
       if (SysCtrlRegs.PLLSTS.bit.DIVSEL != 0)
       {
           EALLOW;
           SysCtrlRegs.PLLSTS.bit.DIVSEL = 0;
           EDIS;
       }
    
       // Change the PLLCR  更改PLLCR
       if (SysCtrlRegs.PLLCR.bit.DIV != val)
       {
    
          EALLOW;
          // Before setting PLLCR turn off missing clock detect logic 在设置PLLCR之前,关闭缺失时钟检测逻辑
          SysCtrlRegs.PLLSTS.bit.MCLKOFF = 1;
          SysCtrlRegs.PLLCR.bit.DIV = val;
          EDIS;
    
          DisableDog();
    
          while(SysCtrlRegs.PLLSTS.bit.PLLLOCKS != 1)
          {
    	      // Uncomment to service the watchdog
              // ServiceDog();
          }
    
          EALLOW;
          SysCtrlRegs.PLLSTS.bit.MCLKOFF = 0;
          EDIS;
        }
    
        // If switching to 1/2 如果切换至1/2
    	if((divsel == 1)||(divsel == 2))
    	{
    		EALLOW;
    	    SysCtrlRegs.PLLSTS.bit.DIVSEL = divsel;
    	    EDIS;
    	}
    
    	// NOTE: ONLY USE THIS SETTING IF PLL IS BYPASSED (I.E. PLLCR = 0) OR OFF
    	// If switching to 1/1  如果切换至 1/1 
    	// * First go to 1/2 and let the power settle
    	//   The time required will depend on the system, this is only an example
    	// * Then switch to 1/1
    	if(divsel == 3)
    	{
    		EALLOW;
    	    SysCtrlRegs.PLLSTS.bit.DIVSEL = 2;
    	    DELAY_US(50L);
    	    SysCtrlRegs.PLLSTS.bit.DIVSEL = 3;
    	    EDIS;
        }
    }
    
    void InitPll(Uint16 val, Uint16 divsel)
    {
    
       // Make sure the PLL is not running in limp mode
       if (SysCtrlRegs.PLLSTS.bit.MCLKSTS != 0)
       {
          // Missing external clock has been detected
          // Replace this line with a call to an appropriate
          // SystemShutdown(); function.
          asm("        ESTOP0");
       }
    
       // DIVSEL MUST be 0 before PLLCR can be changed from
       // 0x0000. It is set to 0 by an external reset XRSn
       // This puts us in 1/4
       if (SysCtrlRegs.PLLSTS.bit.DIVSEL != 0)
       {
           EALLOW;
           SysCtrlRegs.PLLSTS.bit.DIVSEL = 0;
           EDIS;
       }
    
       // Change the PLLCR
       if (SysCtrlRegs.PLLCR.bit.DIV != val)
       {
    
          EALLOW;
          // Before setting PLLCR turn off missing clock detect logic
          SysCtrlRegs.PLLSTS.bit.MCLKOFF = 1;
          SysCtrlRegs.PLLCR.bit.DIV = val;
          EDIS;
    
          DisableDog();
    
          while(SysCtrlRegs.PLLSTS.bit.PLLLOCKS != 1)
          {
    	      // Uncomment to service the watchdog
              // ServiceDog();
          }
    
          EALLOW;
          SysCtrlRegs.PLLSTS.bit.MCLKOFF = 0;
          EDIS;
        }
    
        // If switching to 1/2
    	if((divsel == 1)||(divsel == 2))
    	{
    		EALLOW;
    	    SysCtrlRegs.PLLSTS.bit.DIVSEL = divsel;
    	    EDIS;
    	}
    
    	// NOTE: ONLY USE THIS SETTING IF PLL IS BYPASSED (I.E. PLLCR = 0) OR OFF
    	// If switching to 1/1
    	// * First go to 1/2 and let the power settle
    	//   The time required will depend on the system, this is only an example
    	// * Then switch to 1/1
    	if(divsel == 3)
    	{
    		EALLOW;
    	    SysCtrlRegs.PLLSTS.bit.DIVSEL = 2;
    	    DELAY_US(50L);
    	    SysCtrlRegs.PLLSTS.bit.DIVSEL = 3;
    	    EDIS;
        }

    代码解释:

    1、if (SysCtrlRegs.PLLSTS.bit.MCLKSTS != 0),检测外部时钟是否存在,保证在外部时钟正常的情况下运行系统。

    2、  if (SysCtrlRegs.PLLSTS.bit.DIVSEL != 0),如果8~7位不等于0,则强制置为0。

    3、if (SysCtrlRegs.PLLCR.bit.DIV != val),如果锁相环控制寄存器PLLCR的3~0位不等于10实现10倍频,则使得锁相环状态寄存器MCLKOFF标志位为1,并强制置锁相环控制寄存器PLLCR的3~0位等于10。并且锁定锁相环,然后打开时钟丢失检测功能。

     4、if((divsel == 1)||(divsel == 2)) 与 if(divsel == 3) ,配置锁相环的分频。通过查询头文件可以看到这两个值。证明系统默认的倍频数位10倍频,系统默认的分频数为2分频。

    由于目前的生产工艺,晶振频率为30Mhz的晶振性能更优,配置外部晶振为30Mhz成为主流,因此选择的倍频数为10,分频数为2,30*10/2 = 150 Mhz ,这也是DSP28335主频为150M的由来。

    3、初始化外设时钟函数InitPeripheralClocks();

    在进行了外部晶振的倍频和分频后,芯片就要将自己的动力分配给各个外设,驱动各个外设进行工作,这个动力的分配就是初始化外设时钟函数的作用,函数代码如下:

    void InitPeripheralClocks(void)
    {
       EALLOW;
    
    // HISPCP/LOSPCP prescale register settings, normally it will be set to default values
       SysCtrlRegs.HISPCP.all = 0x0001;
       SysCtrlRegs.LOSPCP.all = 0x0002;
    
    // XCLKOUT to SYSCLKOUT ratio.  By default XCLKOUT = 1/4 SYSCLKOUT
       // XTIMCLK = SYSCLKOUT/2
       XintfRegs.XINTCNF2.bit.XTIMCLK = 1;
       // XCLKOUT = XTIMCLK/2
       XintfRegs.XINTCNF2.bit.CLKMODE = 1;
       // Enable XCLKOUT
       XintfRegs.XINTCNF2.bit.CLKOFF = 0;
    
    // Peripheral clock enables set for the selected peripherals.
    // If you are not using a peripheral leave the clock off
    // to save on power.
    //
    // Note: not all peripherals are available on all 2833x derivates.
    // Refer to the datasheet for your particular device.
    //
    // This function is not written to be an example of efficient code.
    
       SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1;    // ADC
    
       // *IMPORTANT*
       // The ADC_cal function, which  copies the ADC calibration values from TI reserved
       // OTP into the ADCREFSEL and ADCOFFTRIM registers, occurs automatically in the
       // Boot ROM. If the boot ROM code is bypassed during the debug process, the
       // following function MUST be called for the ADC to function according
       // to specification. The clocks to the ADC MUST be enabled before calling this
       // function.
       // See the device data manual and/or the ADC Reference
       // Manual for more information.
    
       ADC_cal();
    
    
       SysCtrlRegs.PCLKCR0.bit.I2CAENCLK = 1;   // I2C
       SysCtrlRegs.PCLKCR0.bit.SCIAENCLK = 1;   // SCI-A
       SysCtrlRegs.PCLKCR0.bit.SCIBENCLK = 1;   // SCI-B
       SysCtrlRegs.PCLKCR0.bit.SCICENCLK = 1;   // SCI-C
       SysCtrlRegs.PCLKCR0.bit.SPIAENCLK = 1;   // SPI-A
       SysCtrlRegs.PCLKCR0.bit.MCBSPAENCLK = 1; // McBSP-A
       SysCtrlRegs.PCLKCR0.bit.MCBSPBENCLK = 1; // McBSP-B
       SysCtrlRegs.PCLKCR0.bit.ECANAENCLK=1;    // eCAN-A
       SysCtrlRegs.PCLKCR0.bit.ECANBENCLK=1;    // eCAN-B
    
       SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;   // Disable TBCLK within the ePWM
       SysCtrlRegs.PCLKCR1.bit.EPWM1ENCLK = 1;  // ePWM1
       SysCtrlRegs.PCLKCR1.bit.EPWM2ENCLK = 1;  // ePWM2
       SysCtrlRegs.PCLKCR1.bit.EPWM3ENCLK = 1;  // ePWM3
       SysCtrlRegs.PCLKCR1.bit.EPWM4ENCLK = 1;  // ePWM4
       SysCtrlRegs.PCLKCR1.bit.EPWM5ENCLK = 1;  // ePWM5
       SysCtrlRegs.PCLKCR1.bit.EPWM6ENCLK = 1;  // ePWM6
      // SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;   // Enable TBCLK within the ePWM
    
       SysCtrlRegs.PCLKCR1.bit.ECAP3ENCLK = 1;  // eCAP3
       SysCtrlRegs.PCLKCR1.bit.ECAP4ENCLK = 1;  // eCAP4
       SysCtrlRegs.PCLKCR1.bit.ECAP5ENCLK = 1;  // eCAP5
       SysCtrlRegs.PCLKCR1.bit.ECAP6ENCLK = 1;  // eCAP6
       SysCtrlRegs.PCLKCR1.bit.ECAP1ENCLK = 1;  // eCAP1
       SysCtrlRegs.PCLKCR1.bit.ECAP2ENCLK = 1;  // eCAP2
       SysCtrlRegs.PCLKCR1.bit.EQEP1ENCLK = 1;  // eQEP1
       SysCtrlRegs.PCLKCR1.bit.EQEP2ENCLK = 1;  // eQEP2
    
       SysCtrlRegs.PCLKCR3.bit.CPUTIMER0ENCLK = 1; // CPU Timer 0
       SysCtrlRegs.PCLKCR3.bit.CPUTIMER1ENCLK = 1; // CPU Timer 1
       SysCtrlRegs.PCLKCR3.bit.CPUTIMER2ENCLK = 1; // CPU Timer 2
    
       SysCtrlRegs.PCLKCR3.bit.DMAENCLK = 1;       // DMA Clock
       SysCtrlRegs.PCLKCR3.bit.XINTFENCLK = 1;     // XTIMCLK
       SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1;    // GPIO input clock
    
       EDIS;
    }

     代码解释:

    1、SysCtrlRegs.HISPCP.all = 0x0001;  设置高速外设时钟分频 = sysclk / 2。


     2、SysCtrlRegs.LOSPCP.all = 0x0002;设置低速外设时钟低速外设时钟分频 = sysclk / 2,这里命名稍微有点出入,但是查询头文件后确实是这个功能。只不过换了一种方式表示。本来我以为我很细,但是发现是我很粗,错过前一句的命名风格,实际就是这么命名的。

    3、XintfRegs.XINTCNF2.bit.XTIMCLK = 1;配置外部存储器的时钟为默认状态。

    4、XintfRegs.XINTCNF2.bit.CLKMODE = 1;外设时钟频率控制位,并配置为默认。

    5、SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1等; 外设时钟使能,这里的外设时钟控制寄存器PCLKCR0控制片上各种外设时钟的工作状态,使能或者禁止,也就是说这里控制着外设的各个时钟的关闭和开通。

    小结:

    通过这个系统初始化函数,我们能够得到几个关键的信息:

    1、外部晶振为30Mhz,经过锁相环PLL的倍频和分频操作可以得到DSP28335的主频150Mhz。

    2、在初始化函数中,能够选择打开或者关闭各个外设时钟,并且可以配置频率大小。

    说实话,在梳理这个初始化程序的过程中,其实好多次想撤退,心里想着反正这些都是固定好的,也不会更改其中的参数,我为什么要花这么多时间去看这个呢,但是咬着牙看下来了。看完之后其实我觉得收获还是挺大的,特别是DSP的主频150Mhz是怎么来的这个点。说来惭愧,用了DSP好久,只知道主频是150Mhz,还真不知道是经过PLL分频又倍频来的,有不有用?我感觉其实还是有用的,我们对需要从事的工作有了更一份的了解,这就有用,也希望自己在日后的学习过程中,刨根究底,不偷懒不粗略,细不细?不够细啊!忍不忍得住,那必须忍得住啊。

    展开全文
  • 系统初始化状态编写

    千次阅读 2021-11-12 14:59:05
    系统初始化状态编写 系统安装完以后需要做的事:(用脚本的方式一键部署) 设置IP 修改主机名 网卡回归传统命令 免密登录 系统初始化时要做的事:(针对所有主机 运维) 安装常用软件 YUM源配置 关闭防火墙 关闭...

    系统初始化状态编写

    系统安装完以后需要做的事:(用脚本的方式一键部署)

    设置IP
    修改主机名
    网卡回归传统命令
    免密登录
    

    系统初始化时要做的事:(针对所有主机 运维)

    安装常用软件
    YUM源配置
    关闭防火墙
    关闭SELINUX
    部署agent(zabbix-agent、salt-manion)
    时间同步
    通用账户创建
    配置SSHD的端口号
    设置终端超时时间
    

    系统初始化sls包括:

    cabbler装机
    zabbix监控
    系统初始化
    服务部署:
    	redis主从
    	mysql主从
    	apache+php
    	haproxy+keepalived
    监控
    业务
    	有的需要开发部署些东西
    其他
    

    系统初始化sls中的系统初始化步骤如下:

    在这里插入图片描述

    下面进行下测试

    环境说明:

    [root@master ~]# cd /srv/salt/base/
    [root@master base]# ls
    [root@master base]# mkdir init
    [root@master base]# ls
    init
    
    将在init里面进行测试
    

    关闭SELINUX

    [root@master init]# tree
    .
    └── selinux
        ├── files
        │   └── config
        └── main.sls
    
    2 directories, 2 files
    
    [root@master init]# cat selinux/files/config 
    
    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #     enforcing - SELinux security policy is enforced.
    #     permissive - SELinux prints warnings instead of enforcing.
    #     disabled - No SELinux policy is loaded.
    SELINUX=disabled
    # SELINUXTYPE= can take one of these three values:
    #     targeted - Targeted processes are protected,
    #     minimum - Modification of targeted policy. Only selected processes are protected. 
    #     mls - Multi Level Security protection.
    SELINUXTYPE=targeted
    
    [root@master init]# cat selinux/main.sls 
    /etc/selinux/config:
      file.managed:
        - source: salt://init/selinux/files/config
        - user: root
        - group: root
        - mode: '0644'
    
    [root@master selinux]# salt 'minion' state.sls init.selinux.main
    minion:
    ----------
              ID: /etc/selinux/config
        Function: file.managed
          Result: True
         Comment: File /etc/selinux/config is in the correct state
         Started: 21:16:44.774206
        Duration: 185.791 ms
         Changes:   
    
    Summary for minion
    ------------
    Succeeded: 1
    Failed:    0
    ------------
    Total states run:     1
    Total run time: 185.791 ms
    
    

    关闭防火墙

    [root@master init]# ls
    selinux
    [root@master init]# mkdir firewall
    [root@master init]# cd firewall/
    [root@master firewall]# vim firewall.sls
    [root@master firewall]# cat firewall.sls 
    firewalld.service:
      service.dead:
        - enable: false
    [root@master firewall]# salt 'minion' test.ping
    minion:
        True
    [root@master firewall]# salt 'minion' state.sls init.firewall.firewall
    minion:
    ----------
              ID: firewalld.service
        Function: service.dead
          Result: True
         Comment: Service firewalld.service has been disabled, and is dead
         Started: 21:31:02.084277
        Duration: 1232.255 ms
         Changes:   
                  ----------
                  firewalld.service:
                      True
    
    Summary for minion
    ------------
    Succeeded: 1 (changed=1)
    Failed:    0
    ------------
    Total states run:     1
    Total run time:   1.232 s
    
    [root@master firewall]# ls
    firewall.sls
    [root@master firewall]# mv firewall.sls main.sls
    [root@master firewall]# ls
    main.sls
    这里我改个名字,方便后期管理
    
    #查看下是否成功
    [root@minion ~]# systemctl status firewalld
    ● firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor >
       Active: inactive (dead)
         Docs: man:firewalld(1)
    
    1112 21:25:31 minion systemd[1]: Starting firewalld - dynamic firewall daemo>
    1112 21:25:32 minion systemd[1]: Started firewalld - dynamic firewall daemon.
    1112 21:25:32 minion firewalld[59096]: WARNING: AllowZoneDrifting is enabled>
    1112 21:31:02 minion systemd[1]: Stopping firewalld - dynamic firewall daemo>
    1112 21:31:02 minion systemd[1]: firewalld.service: Succeeded.
    1112 21:31:02 minion systemd[1]: Stopped firewalld - dynamic firewall daemon.
    

    时间同步

    时间同步需要chrony和

    [root@master chrony]# yum list all|grep chrony
    chrony.x86_64                                                     4.1-1.el8                                              baseos           
    collectd-chrony.x86_64                                            5.9.0-5.el8                                            epel             
    
    [root@master chrony]# yum -y install chrony.x86_64
    
    [root@master chrony]# cp /etc/chrony.conf files/
    [root@master chrony]# ls files/
    chrony.conf
    
    [root@master chrony]# vim files/chrony.conf 
    # Please consider joining the pool (http://www.pool.ntp.org/join.html).
    pool time1.aliyun.com iburst      #改成aliyun的地址,之前是国外的地址,替换掉
    
    # Record the rate at which the system clock gains/losses time.
    
    [root@master init]# cat chrony/main.sls 
    include:
      - init.yum.main   #此处是写完yum源后添加的
    chrony:
      pkg.installed
    
    /etc/chrony.conf:
      file.managed:
        - source: salt://init/chrony/files/chrony.conf
        - user: root
        - group: root
        - mode: '0644'
    
    chronyd.service:
      service.running:
        - enable: true
    
    [root@master chrony]# salt 'minion' state.sls init.chrony.main
    minion:
    ----------
              ID: chrony
        Function: pkg.installed
          Result: True
         Comment: The following packages were installed/updated: chrony
         Started: 21:46:35.062296
        Duration: 42611.78 ms
         Changes:   
                  ----------
                  chrony:
                      ----------
                      new:
                          4.1-1.el8
                      old:
                  timedatex:
                      ----------
                      new:
                          0.5-3.el8
                      old:
    ----------
              ID: /etc/chrony.conf
        Function: file.managed
          Result: True
         Comment: File /etc/chrony.conf updated
         Started: 21:47:17.691523
        Duration: 101.894 ms
         Changes:   
                  ----------
                  diff:
                      --- 
                      +++ 
                      @@ -1,6 +1,6 @@
                       # Use public servers from the pool.ntp.org project.
                       # Please consider joining the pool (http://www.pool.ntp.org/join.html).
                      -pool 2.centos.pool.ntp.org iburst
                      +pool time1.aliyun.com iburst
                       
                       # Record the rate at which the system clock gains/losses time.
                       driftfile /var/lib/chrony/drift
    ----------
              ID: chronyd.service
        Function: service.running
          Result: True
         Comment: Service chronyd.service is already enabled, and is running
         Started: 21:47:17.845073
        Duration: 392.174 ms
         Changes:   
                  ----------
                  chronyd.service:
                      True
    
    Summary for minion
    ------------
    Succeeded: 3 (changed=3)
    Failed:    0
    ------------
    Total states run:     3
    Total run time:  43.106 s
    
    

    文件描述符和内核优化

    [root@master init]# ls
    chrony  firewall  selinux
    [root@master init]# mkdir kernel
    [root@master init]# cd kernel/
    [root@master kernel]# mkdir files
    [root@master kernel]# ls
    files
    [root@master kernel]# cp /etc/security/limits.conf files/
    [root@master kernel]# cp /etc/sysctl.conf files/
    [root@master kernel]# vim files/limits.conf 
    
    #*               soft    core            0
    #*               hard    rss             10000
    #@student        hard    nproc           20
    #@faculty        soft    nproc           20
    #@faculty        hard    nproc           50
    #ftp             hard    nproc           0
    #@student        -       maxlogins       4
    *               soft    nofile          65535     #添加这两行
    *               hard    nofile          65535
    
    # End of file
    
    [root@master kernel]# vim files/sysctl.conf 
    net.ipv4.ip_forward = 1     #末尾添加这句
    
    这些都是添加内核的参数
    
    [root@master kernel]# vim main.sls
    [root@master kernel]# cat main.sls 
    /etc/security/limits.conf:
      file.managed:
        - source: salt://init/kernel/files/limits.conf
        - user: root
        - group: root
        - mode: '0644'
    
    /etc/sysctl.conf:
      file.managed:
        - source: salt://init/kernel/files/sysctl.conf
        - user: root
        - group: root
        - mode: '0644'
      cmd.run:
        - name: sysctl -p
    
    [root@master init]# salt 'minion' state.sls init.kernel.main
    minion:
    ----------
              ID: /etc/security/limits.conf
        Function: file.managed
          Result: True
         Comment: File /etc/security/limits.conf updated
         Started: 22:04:41.689337
        Duration: 129.063 ms
         Changes:   
                  ----------
                  diff:
                      --- 
                      +++ 
                      @@ -57,5 +57,7 @@
                       #@faculty        hard    nproc           50
                       #ftp             hard    nproc           0
                       #@student        -       maxlogins       4
                      +*            soft    nofile          65535
                      +*               hard    nofile          65535
                       
                       # End of file
    ----------
              ID: /etc/sysctl.conf
        Function: file.managed
          Result: True
         Comment: File /etc/sysctl.conf updated
         Started: 22:04:41.818739
        Duration: 49.958 ms
         Changes:   
                  ----------
                  diff:
                      --- 
                      +++ 
                      @@ -8,3 +8,4 @@
                       # name in /etc/sysctl.d/ and put new settings there.
                       #
                       # For more information, see sysctl.conf(5) and sysctl.d(5).
                      +net.ipv4.ip_forward = 1
    ----------
              ID: /etc/sysctl.conf
        Function: cmd.run
            Name: sysctl -p
          Result: True
         Comment: Command "sysctl -p" run
         Started: 22:04:41.872423
        Duration: 21.631 ms
         Changes:   
                  ----------
                  pid:
                      121655
                  retcode:
                      0
                  stderr:
                  stdout:
                      net.ipv4.ip_forward = 1
    
    Summary for minion
    ------------
    Succeeded: 3 (changed=3)
    Failed:    0
    ------------
    Total states run:     3
    Total run time: 200.652 ms
    
    #测试查看
    [root@minion ~]# sysctl -p
    [root@minion ~]# sysctl -p
    net.ipv4.ip_forward = 1
    
    

    SSH服务优化

    在这里插入图片描述

    DNS解析

    [root@master init]# mkdir history
    [root@master init]# cd history/
    [root@master history]# vim main.sls
    [root@master history]# cat main.sls 
    /etc/profile:
      file.append:
        - text: 'export HISTTIMEFORMAT="%F %T `whoami` "'
    
    [root@master init]# salt 'minion' state.sls init.history.main
    minion:
    ----------
              ID: /etc/profile
        Function: file.append
          Result: True
         Comment: Appended 1 lines
         Started: 23:07:10.165779
        Duration: 20.179 ms
         Changes:   
                  ----------
                  diff:
                      --- 
                      
                      +++ 
                      
                      @@ -83,3 +83,4 @@
                      
                                       . /etc/bashrc
                              fi
                       fi
                      +export HISTTIMEFORMAT="%F %T `whoami` "
    
    Summary for minion
    ------------
    Succeeded: 1 (changed=1)
    Failed:    0
    ------------
    Total states run:     1
    Total run time:  20.179 ms
    
    [root@minion ~]# tail /etc/profile
    
    if [ -n "${BASH_VERSION-}" ] ; then
            if [ -f /etc/bashrc ] ; then
                    # Bash login shells run only /etc/profile
                    # Bash non-login shells run only /etc/bashrc
                    # Check for double sourcing is done in /etc/bashrc.
                    . /etc/bashrc
           fi
    fi
    export HISTTIMEFORMAT="%F %T `whoami` "
    
    
    

    设置终端超时时间

    由于和DNS解析类似,我这边直接进行cp编写了
    
    [root@master init]# cp -r history timeout
    [root@master init]# cd timeout/
    [root@master timeout]# vim main.sls 
    [root@master timeout]# cat main.sls 
    /etc/profile:
      file.append:
        - text: 'export TMOUT=300'
    
    [root@master init]# salt 'minion' state.sls init.timeout.main
    minion:
    ----------
              ID: /etc/profile
        Function: file.append
          Result: True
         Comment: Appended 1 lines
         Started: 23:10:15.516752
        Duration: 21.45 ms
         Changes:   
                  ----------
                  diff:
                      --- 
                      
                      +++ 
                      
                      @@ -84,3 +84,4 @@
                      
                              fi
                       fi
                       export HISTTIMEFORMAT="%F %T `whoami` "
                      +export TMOUT=300
    
    Summary for minion
    ------------
    Succeeded: 1 (changed=1)
    Failed:    0
    ------------
    Total states run:     1
    Total run time:  21.450 ms
    
    #查看测试
    [root@minion ~]# tail /etc/profile
    if [ -n "${BASH_VERSION-}" ] ; then
            if [ -f /etc/bashrc ] ; then
                    # Bash login shells run only /etc/profile
                    # Bash non-login shells run only /etc/bashrc
                    # Check for double sourcing is done in /etc/bashrc.
                    . /etc/bashrc
           fi
    fi
    export HISTTIMEFORMAT="%F %T `whoami` "
    export TMOUT=300
    
    

    yum源配置

    每个系统的源都不一样,所以都添加了

    [root@master init]# mkdir yum
    [root@master init]# cd yum/
    [root@master yum]# mkdir files
    [root@master yum]# ls
    files
    [root@master yum]# cd files/
    [root@master files]# wget https://mirrors.aliyun.com/repo/Centos-7.repo
    --2021-11-12 23:16:21--  https://mirrors.aliyun.com/repo/Centos-7.repo
    正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 111.48.183.229, 111.48.183.227, 111.48.184.227, ...
    正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|111.48.183.229|:443... 已连接。
    已发出 HTTP 请求,正在等待回应... 200 OK
    长度:2523 (2.5K) [application/octet-stream]
    正在保存至: “Centos-7.repo”
    
    Centos-7.repo       100%[===================>]   2.46K  --.-KB/s  用时 0s      
    
    2021-11-12 23:16:21 (83.7 MB/s) - 已保存 “Centos-7.repo” [2523/2523])
    
    [root@master files]# ls
    Centos-7.repo
    [root@master files]# mv Centos-7.repo centos-7.repo
    [root@master files]# ls
    centos-7.repo
    [root@master files]# wget -O centos-8.repo https://mirrors.aliyun.com/repo/Centos-8.repo
    --2021-11-12 23:17:33--  https://mirrors.aliyun.com/repo/Centos-8.repo
    正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 111.48.184.226, 223.76.171.225, 111.48.32.239, ...
    正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|111.48.184.226|:443... 已连接。
    已发出 HTTP 请求,正在等待回应... 200 OK
    长度:2595 (2.5K) [application/octet-stream]
    正在保存至: “centos-8.repo”
    
    centos-8.repo       100%[===================>]   2.53K  --.-KB/s  用时 0s      
    
    2021-11-12 23:17:34 (52.2 MB/s) - 已保存 “centos-8.repo” [2595/2595])
    
    [root@master files]# ls
    centos-7.repo  centos-8.repo
    [root@master files]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' *.repo
    
    [root@master files]# ls /etc/yum.repos.d/    #查看这边是没有epel的
    CentOS-Base.repo              CentOS-Stream-HighAvailability.repo
    CentOS-Stream-AppStream.repo  CentOS-Stream-Media.repo
    CentOS-Stream-BaseOS.repo     CentOS-Stream-PowerTools.repo
    CentOS-Stream-Debuginfo.repo  CentOS-Stream-RealTime.repo
    CentOS-Stream-Extras.repo     salt.repo
    
    #安装epel源
    [root@master files]# yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm     #每个版本不一样,可以去阿里巴巴里面查看
    [root@master files]# ls /etc/yum.repos.d/
    CentOS-Base.repo                     CentOS-Stream-Media.repo
    CentOS-Stream-AppStream.repo         CentOS-Stream-PowerTools.repo
    CentOS-Stream-BaseOS.repo            CentOS-Stream-RealTime.repo
    CentOS-Stream-Debuginfo.repo         epel.repo
    CentOS-Stream-Extras.repo            salt.repo
    CentOS-Stream-HighAvailability.repo
    
    [root@master files]# cp /etc/yum.repos.d/epel.repo .
    [root@master files]# ls
    centos-7.repo  centos-8.repo  epel.repo
    #添加注释
    [root@master files]# sed -i 's|^metalink|#metalink|' epel.repo 
    [root@master files]# sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' epel.repo 
    [root@master files]# mv epel.repo epel-8.repo 
    [root@master files]# ls
    centos-7.repo  centos-8.repo  epel-8.repo
    [root@master files]# wget http://mirrors.aliyun.com/repo/epel-7.repo
    [root@master files]# ls
    centos-7.repo  centos-8.repo  epel-7.repo  epel-8.repo
    
    [root@master files]# curl -fsSL https://repo.saltproject.io/py3/redhat/7/x86_64/latest.repo | sudo tee salt-7.repo
    [root@master files]# curl -fsSL https://repo.saltproject.io/py3/redhat/8/x86_64/latest.repo | sudo tee salt-8.repo
    [root@master files]# ls
    centos-7.repo  epel-7.repo  salt-7.repo
    centos-8.repo  epel-8.repo  salt-8.repo
    
    #我的minion是os系统,不是红帽系统,所以执行中选项是不会执行的
    [root@master yum]# cat main.sls 
    {% if grains['os'] == 'RedHat' %}
    /etc/yum.repos.d/centos-{{ grains['osrelease'] }}.repo:
      file.managed:
        - source: salt://init/yum/files/centos-{{ grains['osrelease'] }}.repo
        - user: root
        - group: root
        - mode: '0644'
    {% endif %}
    #执行起来就是如下
    [root@master init]# salt 'minion' state.sls init.yum.main
    minion:
    
    Summary for minion
    -----------
    Succeeded: 0
    Failed:   0
    -----------
    Total states run:    0
    Total run time:  0.000 ms
    ERROR: Minions returned with non-zero exit code
    #如果取消判断是否是红帽的就可以执行
    [root@master yum]# vim main.sls
    [root@master yum]# cat main.sls 
    /etc/yum.repos.d/centos-{{ grains['osrelease'] }}.repo:
      file.managed:
        - source: salt://init/yum/files/centos-{{ grains['osrelease'] }}.repo
        - user: root
        - group: root
        - mode: '0644'
    [root@master init]# salt 'minion' state.sls init.yum.main
    minion:
    ----------
              ID: /etc/yum.repos.d/centos-8.repo
        Function: file.managed
          Result: True
         Comment: File /etc/yum.repos.d/centos-8.repo updated
         Started: 23:48:00.845050
        Duration: 61.337 ms
         Changes:   
                  ----------
                  diff:
                      New file
                  mode:
                      0644
    
    Summary for minion
    ------------
    Succeeded: 1 (changed=1)
    Failed:    0
    ------------
    Total states run:     1
    Total run time:  61.337 ms
    
    #测试后去查看是否成功
    [root@minion ~]# ls /etc/yum.repos.d/
    centos-8.repo                        epel-modular.repo
    CentOS-Stream-AppStream.repo         epel-next.repo
    CentOS-Stream-BaseOS.repo            epel-next-testing.repo
    CentOS-Stream-Debuginfo.repo         epel-playground.repo
    CentOS-Stream-Extras.repo            CentOS-Stream-RealTime.repo
    CentOS-Stream-HighAvailability.repo  epel-testing-modular.repo
    CentOS-Stream-Media.repo             epel-testing.repo
    CentOS-Stream-PowerTools.repo        
    #添加epel源和salt源命令一致
    [root@master yum]# cat main.sls 
    {% if grains['os'] == 'RedHat' %}
    /etc/yum.repos.d/centos-{{ grains['osrelease'] }}.repo:
      file.managed:
        - source: salt://init/yum/files/centos-{{ grains['osrelease'] }}.repo
        - user: root
        - group: root
        - mode: '0644'
    {% endif %}
    
    /etc/yum.repos.d/epel-{{ grains['osrelease'] }}.repo:
      file.managed:
        - source: salt://init/yum/files/epel-{{ grains['osrelease'] }}.repo
        - user: root
        - group: root
        - mode: '0644'
    
    /etc/yum.repos.d/salt-{{ grains['osrelease'] }}.repo:
      file.managed:
        - source: salt://init/yum/files/salt-{{ grains['osrelease'] }}.repo
        - user: root
        - group: root
        - mode: '0644'
    
    [root@master init]# salt 'minion' state.sls init.yum.main
    minion:
    ----------
              ID: /etc/yum.repos.d/epel-8.repo
        Function: file.managed
          Result: True
         Comment: File /etc/yum.repos.d/epel-8.repo updated
         Started: 23:53:49.574246
        Duration: 67.985 ms
         Changes:   
                  ----------
                  diff:
                      New file
                  mode:
                      0644
    ----------
              ID: /etc/yum.repos.d/salt-8.repo
        Function: file.managed
          Result: True
         Comment: File /etc/yum.repos.d/salt-8.repo updated
         Started: 23:53:49.642682
        Duration: 28.981 ms
         Changes:   
                  ----------
                  diff:
                      New file
                  mode:
                      0644
    
    Summary for minion
    ------------
    Succeeded: 2 (changed=2)
    Failed:    0
    ------------
    Total states run:     2
    Total run time:  96.966 ms
    
    #测试
    [root@minion ~]# ls /etc/yum.repos.d/
    centos-8.repo                        epel-modular.repo
    CentOS-Stream-AppStream.repo         epel-next.repo
    CentOS-Stream-BaseOS.repo            epel-next-testing.repo
    CentOS-Stream-Debuginfo.repo         epel-playground.repo
    CentOS-Stream-Extras.repo            epel.repo
    CentOS-Stream-HighAvailability.repo  epel-testing-modular.repo
    CentOS-Stream-Media.repo             epel-testing.repo
    CentOS-Stream-PowerTools.repo        salt.repo
    CentOS-Stream-RealTime.repo
    
    [root@minion ~]# dnf clean all
    Repository extras is listed more than once in the configuration
    Repository epel is listed more than once in the configuration
    Repository epel-debuginfo is listed more than once in the configuration
    Repository epel-source is listed more than once in the configuration
    Repository salt-latest-repo is listed more than once in the configuration
    57 文件已删除
    [root@minion ~]# dnf makecache
    CentOS Stream 8 - AppStream                     1.0 MB/s |  16 MB     00:15    
    CentOS Stream 8 - BaseOS                        662 kB/s |  14 MB     00:22    
    CentOS Stream 8 - Extras                         20 kB/s |  16 kB     00:00    
    CentOS-8 - Base - mirrors.aliyun.com            3.6 MB/s | 8.5 MB     00:02    
    CentOS-8 - AppStream - mirrors.aliyun.com       3.5 MB/s | 9.6 MB     00:02    
    Extra Packages for Enterprise Linux 8 - x86_64  4.2 MB/s |  11 MB     00:02    
    Extra Packages for Enterprise Linux Modular 8 - 137 kB/s | 958 kB     00:06    
    Extra Packages for Enterprise Linux 8 - Next -  822 kB/s | 1.3 MB     00:01    
    Salt repo for RHEL/CentOS 8 PY3                  98 kB/s | 245 kB     00:02    
    元数据缓存已建立。
    
    

    安装salt-minion

    [root@master init]# mkdir salt-minion
    [root@master init]# cd salt-minion/
    [root@master salt-minion]# mkdir files
    [root@master salt-minion]# touch main.sls
    [root@master salt-minion]# cp /etc/salt/minion files/
    [root@master salt-minion]# vim files/minion
    
    #master: salt
    master: {{ pillar['master_ip'] }}     #设置变量
    
    # Set http proxy information for the minion when doing requests
    
    [root@master salt-minion]# cd /srv/salt/base/
    [root@master base]# vim salt-minion.sls
    [root@master base]# cat salt-minion.sls 
    master_ip: 192.168.230.131
    [root@master base]# cd init/salt-minion/
    [root@master salt-minion]# ls
    files  main.sls
    [root@master salt-minion]# cd files/
    [root@master files]# ls
    minion
    [root@master files]# mv minion{,.j2}
    [root@master files]# ls
    minion.j2
    [root@master files]# cd ..
    [root@master salt-minion]# ls
    files  main.sls
    [root@master salt-minion]# vim main.sls 
    [root@master salt-minion]# cat main.sls 
    include:
      - init.yum.main
    
    salt-minion:
      pkg.installed
    
    /etc/salt/minion:
      file.managed:
        - source: salt://init/salt-minion/files/minion.j2
        - user: root
        - group: root
        - mode: '0644'
    
    salt-minion.service:
      serevice.running:
        - enable: true
    
    

    常用基础命令

    [root@master init]# ls
    chrony  firewall  history  kernel  salt-minion  selinux  timeout  yum
    [root@master init]# mkdir basepkg
    [root@master init]# cd basepkg/
    [root@master basepkg]# vim main.sls
    [root@master basepkg]# cat main.sls 
    include:
      - init.yum.main
    
    install-base-packages:
      pkg.installed:
        - pkgs:
          - screen
          - tree
          - psmisc
          - openssl
          - openssl-devel
          - telnet
          - iftop
          - iotop
          - sysstat
          - wget
          - dos2unix
          - unix2dos
          - lsof
          - net-tools
          - vim-enhanced
          - zip
          - unzip
          - bzip2
          - bind-utils
          - gcc
          - gcc-c++
          - glibc
          - make
          - autoconf
    
    

    全部执行

    创建main.sls文件包含里面全部命令,顺序自定就好
    [root@master init]# vim main.sls
    [root@master init]# ls
    basepkg  firewall  kernel    salt-minion  timeout
    chrony   history   main.sls  selinux      yum
    
    
    展开全文
  • k8s 二进制部署之系统初始化配置

    千次阅读 2021-08-12 22:13:25
    前一篇: k8s 二进制部署之部署集群规划 后一篇:k8s 二进制部署之部署 Etcd 集群 在部署 k8s 集群前,需要对系统进行初始化,否则在安装的过程中会遇到各种阻碍。 没有指明特定服务器的初始化命令,需要在集群中每...

    前一篇: k8s 二进制部署之部署集群规划
    后一篇:k8s 二进制部署之部署 Etcd 集群

    在部署 k8s 集群前,需要对系统进行初始化,否则在安装的过程中会遇到各种阻碍。

    没有指明特定服务器的初始化命令,需要在集群中每台服务器执行。

    1 、 关闭防火墙

    systemctl stop firewalld
    
    systemctl disable firewalld
    

    1)内网,如果集群属于内外环境,这样设置不会有什么安全问题
    2)外网,如果集群 处于外网环境,是不可以关闭防火墙的,只需开放 k8s 集群使用的端口,或者配置访问规则,指定服务器直接可进行通讯
    3)测试,应为是演示环境,所有可以关闭防火墙

    2 、关闭 selinux

    sed -i 's/enforcing/disabled/' /etc/selinux/config  # 永久
    

    3 、关闭swap

    sed -ri 's/.*swap.*/#&/' /etc/fstab  # 永久
    

    4 、根据规划设置主机名

    hostnamectl set-hostname <hostname> 
    

    5 、在 master 添加 hosts

    vi /etc/hosts 
    
    192.168.91.130 k8s-master1 
    192.168.91.131 k8s-node1 
    192.168.91.132 k8s-node2 
    
    sysctl --system  # 生效
    

    6 、 时间同步

    yum install ntpdate -y 
    
    ntpdate time.windows.com
    

    集群中的服务器时间要同步,否则在证书方面会报问题

    展开全文
  • k8s部署-系统初始化

    千次阅读 2020-12-21 10:52:38
    设置系统主机名以及 Host 文件的相互解析 hostnamectl set-hostname k8s-master01 cat >> /etc/hosts << EOF 172.18.8.9 k8s-lau-master01 172.18.8.30 k8s-lau-node1 172.18.8.31 k8s-lau-node2 EOF ...
    1. 设置系统主机名以及 Host 文件的相互解析
    hostnamectl set-hostname k8s-master01
    
    cat >> /etc/hosts << EOF
    172.18.8.9 k8s-lau-master01
    172.18.8.30 k8s-lau-node1
    172.18.8.31 k8s-lau-node2
    EOF
    
    1. 安装依赖包
    yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget  vim net-tools git
    
    1. #设置防火墙为 Iptables 并设置空规则
    systemctl  stop firewalld  &&  systemctl  disable firewalld
    yum -y install iptables-services  &&  systemctl  start iptables  &&  systemctl  enable iptables
    &&  iptables -F  &&  service iptables save
    
    1. 关闭 SELINUX
    swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
    setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
    
    1. 调整内核参数,对于 K8S
    cat > kubernetes.conf <<EOF
    net.bridge.bridge-nf-call-iptables=1
    net.bridge.bridge-nf-call-ip6tables=1
    net.ipv4.ip_forward=1
    net.ipv4.tcp_tw_recycle=0
    vm.swappiness=0 # 禁止使用 swap 空间,只有当系统 OOM 时才允许使用它
    vm.overcommit_memory=1 # 不检查物理内存是否够用
    vm.panic_on_oom=0 # 开启 OOM
    fs.inotify.max_user_instances=8192
    fs.inotify.max_user_watches=1048576 
    fs.file-max=52706963
    fs.nr_open=52706963
    net.ipv6.conf.all.disable_ipv6=1
    net.netfilter.nf_conntrack_max=2310720
    EOF
    cp kubernetes.conf  /etc/sysctl.d/kubernetes.conf
    sysctl -p /etc/sysctl.d/kubernetes.conf
    
    
    1. 调整系统时区
     # 设置系统时区为 中国/上海
    timedatectl set-timezone Asia/Shanghai 
    # 将当前的 UTC 时间写入硬件时钟 
    timedatectl set-local-rtc 0
    # 重启依赖于系统时间的服务
    systemctl restart rsyslog
    systemctl restart crond
    
    1. 关闭系统不需要服务
       systemctl stop postfix && systemctl disable postfix
    

    设置 rsyslogd 和 systemd journald

    mkdir /var/log/journal # 持久化保存日志的目录
    mkdir /etc/systemd/journald.conf.d
    
    cat > /etc/systemd/journald.conf.d/99-prophet.conf <<EOF 
    [Journal]
    # 持久化保存到磁盘
    Storage=persistent
    # 压缩历史日志 
    Compress=yes
    SyncIntervalSec=5m
    RateLimitInterval=30s
    RateLimitBurst=1000
    # 最大占用空间 10G 
    SystemMaxUse=10G
    # 单日志文件最大 200M 
    SystemMaxFileSize=200M
    # 日志保存时间 2 周 
    MaxRetentionSec=2week
    # 不将日志转发到 syslog 
    ForwardToSyslog=no
    EOF
    
    systemctl restart systemd-journald
    
    1. 升级系统内核为 4.44

        CentOS 7.x 系统自带的 3.10.x 内核存在一些 Bugs,导致运行的 Docker、Kubernetes 不稳定,例如: rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

    rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
    
    # 安装完成后检查 /boot/grub2/grub.cfg 中对应内核 menuentry 中是否包含 initrd16 配置,如果没有,再安装 一次!
    yum --enablerepo=elrepo-kernel install -y kernel-lt
    # 设置开机从新内核启动
    grub2-set-default 'CentOS Linux (4.4.189-1.el7.elrepo.x86_64) 7 (Core)'
    #检查内核
    uname -r
    
    展开全文
  • CentOS 8 安装后的系统初始化

    千次阅读 2020-12-19 10:42:56
    前言服务器安装完 CentOS(Minimal Install)操作系统后,需要对其进行初始化的配置,以增强服务器的安全性和可用性,本文介绍几个基本的步骤。跟以前的 CentOS 7 安装后的初始化配置 基本相同。环境说明CentOS 8...
  • 大家几乎每天都会用到电脑进行娱乐工作,特别是办公人员...电脑初始化系统方法/步骤:1.打开win7系统中的控制面板界面,直接选择“系统和安全”选项进入。2.电脑会打开相应的界面,大家直接选择“操作中心”进入,如...
  • 1、Armbian5.77(Debian 9)系统初始化设置

    千次阅读 2020-12-30 15:26:06
    Enter确认 Ctrl+X退出 sudo locale-gen #生成locale文件 sudo locale-gen zh_CN.UTF-8  #可不执行(重启后在登录界面可切换中文) sudo reboot #重启系统 三、设置WiFi联网 输入命令(启用图形选择WiFi连接):...
  • 如果自家电脑遇到了问题,你可以尝试初始化还还原系统初始化是可以选择是保留文件还是删除文件,然后重新安装Windows7。有些电脑小白不太明白win7怎么初始化电脑?所以今天小编手把手教你初始化win7电脑,感兴趣的...
  • 一、怎么备份win10? 1、下载本文上面提供的onekey ghostV13.5....(系统默认是“确认”按钮) 7、然后就是等待了,系统会自动重启开机,以后电脑系统如果出现问题,你只要重复“1~7”步骤,就可以重装系统。 取消 评论
  • linux 内核优化&系统初始化

    千次阅读 2021-11-19 11:21:37
    整理资料,发现只记录了参数,没有备注,故重新整理下: 1、首先贴出一个常用 net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 ...kernel.sysrq = 0 kernel.core_uses_pid = 1 net.ipv4.tcp_syncook
  • 服务器初始化失败

    2021-08-14 01:47:52
    服务器初始化失败 内容精选换一换专属分布式存储的基本操作流程如入门流程所示。使用专属分布式存储服务前,需要先申请存储池,请参见申请存储池。专属分布式存储服务的存储能力由磁盘实现,存储池申请成功后,需要...
  • 此文章为创造符合本人使用习惯的win10系统环境而编写的安装与初始化教程,仅供自用和他人参考。 电脑型号为:联想小新PRO13-2019 i5版 重装系统之前务必进行文件备份,数据无价!!! 1.使用启动盘重装并进入win10...
  • 我的电脑系统还原一直初始化!!“我在电脑无法打开开始菜单这种‘严重错误’时,决定将Windows 10还原到还原点,然而尴尬的是,电脑一直在系统还原正在初始化,我等了接近两个小时还是没好,系统还原正在初始化需要...
  • 浅谈C语言的初始化

    千次阅读 2021-05-19 18:17:55
    可能以前写的代码太少了,现在突然发现其实C语言变量的初始化也是一门不小的学问。其实很早之前我都天真的以为C语言会将变量自动初始化为0或'0'或NULL,但是在以后的编程我愈发发现,我真是太天真了。跟大家啰嗦一句...
  • 1.初始化启动:执行初始化启动时,会删除所有程序,所有设定返回标准值。2. 控制启动:执行控制启动时,控制启动菜单这一简易系统启动。虽然不能通过控制启动来进行机器人的操作,但是可以进行通常无法更改的系统...
  • 有时你即使是正常安装或重装系统也是会出现问题的,比如就有用户遇到“登陆进程初始化失败”错误,从而无法登录系统。那么登陆进程初始化失败是什么原因呢?以及登陆进程初始化失败有什么解决办法呢?下面小编就来跟...
  • linux mysql初始化

    2021-01-18 22:58:07
    一、mysql_install_db说明当MySQL的系统库(mysql系统库)发生故障或需要新加一个mysql实例时,需要初始化mysql数据库。需要使用的命令:/usr/local/mysql/bin/mysql_install_db#/usr/local/mysql/bin/mysql_install_...
  • 本文是UFS子系统初始化部分。 如何发现有哪些场景?主要可以从如下几个角度: 1.初始化和退出; 2.线程处理函数; 3.调用中间层导出函数的流程; 4.调用底层回调函数的; 5.顶层使用者的动作 ufs的
  • saltstack编写系统初始化状态文件 文章目录saltstack编写系统初始化状态文件整体结构关闭防火墙关闭selinux添加yum仓库优化开机启动项优化系统内核优化history命令添加终端超时时间安装基础包安装salt-minion安装...
  • stm32初始化流程图解析

    千次阅读 2020-12-28 19:28:19
    tm32系统初始化流程: 调试模式:串行调试(SWD)和JTAG接口。 DMA:12通道DMA控制器。支持的外设:定时器,ADC,DAC,SPI,IIC和UART。 3个12位的us级的A/D转换器(16通道):A/D测量范围:0-3.6V。双采样和保持...
  • 初始化(启动)代码

    2020-12-22 14:32:33
    初始化(启动)代码使处理器从复位状态进入到操作系统能够运行的状态。它通常须配置存储器控制器、处理器cache和初始化一些设备。 初始化代码在把控制权交给操作系统之前,须处理许多管理任务。可以把这些不同的任务...
  • 对象的创建和初始化

    千次阅读 多人点赞 2020-12-26 12:28:05
    文章目录前言一、类和对象的关系二、如何创建和初始化对象1.使用new关键字创建对象2.对象初始化三、构造器 前言 本文主要讲解类和对象的关系,以及如何创建和初始化对象,对构造器的详解 一、类和对象的关系 类...
  • qt中初始化界面的几种方法

    千次阅读 2021-05-01 19:42:05
    //界面最大 setWindowState(Qt::WindowMaximized);//1. this->showMaximized();// 2. //自定义最大最小值 setMinmumSize(600,400);//设置最小尺寸,数字可以随情况更改 setMaximumSize(600,400;//设置...
  • 初始化 - deepin Wiki

    千次阅读 2020-12-30 09:41:11
    简介初始化英文简称:init(initialization)是 Unix 和 类Unix 系统启动过程中的第一道程序,用来产生其它所有进程的程序。它以守护进程的方式存在,其进程号为1,它将继续运行直到系统关闭。它是所有其他进程的直接或...
  • 这里写自定义目录标题Ubuntu下初始化Mysql的root密码问题描述解决方法 Ubuntu下初始化Mysql的root密码 问题描述 在Ubuntu服务器上安装了Mysql5.7后,想要在本机登录数据库,总是报如下错误: ERROR 1045 (28000): ...
  • Vmware安装linux后一些初始化配置

    千次阅读 2021-01-14 17:22:49
    网络配置vmware配置虚拟网络编辑器虚拟机配置系统配置:编辑网络配置文件,onboot=yes重启网络服务关闭iptablescentos6Service iptables stop #临时关闭chkconfig --list|grep iptables #关闭开机自启动centos7...
  • 若在Linux系统(服务器)上,环境安装出错,可通过云服务器上初始化云盘,回归硬盘初始化状态,进行重新安装。 一、前言 作为小白的我们,第一次在服务器中下载安装软件,并部署环境,难免万般出错,然而想要...
  • 有些学设计的用户,在Win10系统上安装SQL2000失败,出现了初始化错误的问题,不知道要怎么解决好,因此有不少用户来本站求助,关于Win10系统安装SQL2000,初始化错误的问题,可以说是SQL2000常见的问题了,所以有...
  • 主机的初始化方法初始化是指,将主机内的数据删除,恢复到购入时的状态。Nintendo Switch可以仅将一部分数据进行初始化初始化缓存与账号关联或发布截图和视频至社交平台时,将在主机中打开网页。初始化缓存将清除...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,855,860
精华内容 742,344
关键字:

系统初始化

友情链接: AD2BS_Release_0.9a.rar