1. 程式人生 > >mtk lcd屏 除錯步驟詳解

mtk lcd屏 除錯步驟詳解

平臺:mt65852 + Android 4.4 :HX8389B


那麼首先來看的是如何配置lcd(在mtk中叫做lcm)。
1. ProjectConfig.mk中配置

  1. CUSTOM_LK_LCM = hx8389b_qhd_dsi_vdo  
  2. CUSTOM_KERNEL_LCM = hx8389b_qhd_dsi_vdo  
  3. LCM_HEIGHT = 960  
  4. LCM_WIDTH = 540  
那麼相應的開機logo也要做相應的修改:
  1. BOOT_LOGO = cu_qhd  

2. 修改mt65xx_lcm_list.c
那麼先在mediatek/custom/common/kernel/lcm目錄中建立一個目錄hx8389b_qhd_dsi_vdo(注意,目錄的名字要和ProjectConfig.mk中的lcm配置相對應),然後在該目錄下建立一個檔案hx8389b_qhd_dsi_vdo.c,至於這個檔案裡面應該填些什麼內容,我們稍後來看。

然後修改mt65xx_lcm_list.c,依照已有的格式在lcm_driver_list這個數組裡面新增下面的內容:

  1. #if defined(HX8389B_QHD_DSI_VDO)
  2.     &hx8389b_qhd_dsi_vdo_drv,  
  3. #endif
那麼在這個陣列的上面肯定還需要宣告一下hx8389b_qhd_dsi_vdo_drv。
  1. extern LCM_DRIVER hx8389b_qhd_dsi_vdo_drv;  

3. 編寫hx8389b_qhd_dsi_vdo.c
根據前面步驟可以看到,肯定需要一個hx8389b_qhd_dsi_vdo_drv這個結構,它的型別是LCM_DRIVER,來看一下應該怎麼定義:
  1. LCM_DRIVER hx8389b_qhd_dsi_vdo_drv = {  
  2.     .name       = "hx8389b_qhd_dsi_vdo",  
  3.     .set_util_funcs = lcm_set_util_funcs,  
  4.     .get_params = lcm_get_params,  
  5.     .init       = lcm_init,  
  6.     .suspend    = lcm_suspend,  
  7.     .resume     = lcm_resume,  
  8.     .compare_id = lcm_compare_id,  
  9. };  

那麼hx8389b_qhd_dsi_vdo_drv這個結構是定義好了,那麼接下來是要實現結構體中定義的介面函數了。

先來看lcm_set_util_funcs這個函式:
  1. static
     LCM_UTIL_FUNCS lcm_util;  
  2. staticvoid lcm_set_util_funcs(const LCM_UTIL_FUNCS *util)  
  3. {  
  4.     memcpy(&lcm_util, util, sizeof(LCM_UTIL_FUNCS));  
  5. }  
在lcm_set_util_funcs這個函式中將util的內容複製給了lcm_util。那麼在LCM_UTIL_FUNCS這個型別中,主要定義了一些介面函式,這些介面函式是mtk提供給lcm驅動開發者使用的,所以說不管是哪一款lcm驅動,都需要這麼一個介面,而且需要實現set_util_funcs介面,然後在mtk lcm核心部分自然會調用這個介面函式,這樣我們就可以使用其中的介面函數了。

再來看lcm_get_params。
lcm_get_params函式中主要是一些引數定義,例如的解析度,的介面型別等等:

  1. #define FRAME_WIDTH 540
  2. #define FRAME_HEIGHT    960
  3. staticvoid lcm_get_params(LCM_PARAMS *params)  
  4. {  
  5.     memset(params, 0, sizeof(LCM_PARAMS));  
  6.     params->type             = LCM_TYPE_DSI;         /* lcm的介面型別 */
  7.     params->width                = FRAME_WIDTH;          /* lcm解析度 */
  8.     params->height               = FRAME_HEIGHT;  
  9.     params->dsi.mode         = SYNC_PULSE_VDO_MODE;      /* video mode */
  10.     params->dsi.LANE_NUM         = LCM_THREE_LANE;       /* lanes */
  11.     params->dsi.data_format.format       = LCM_DSI_FORMAT_RGB888;    /* 資料格式 */
  12.     params->dsi.PS               = LCM_PACKED_PS_24BIT_RGB888;  
  13.     params->dsi.vertical_sync_active = 0x02;             /* video mode需要配置的一些引數 */
  14.     params->dsi.vertical_backporch       = 0x0e;  
  15.     params->dsi.vertical_frontporch      = 0x09;  
  16.     params->dsi.vertical_active_line = FRAME_HEIGHT;  
  17.     params->dsi.horizontal_sync_active   = 0x21;  
  18.     params->dsi.horizontal_backporch = 0x21;  
  19.     params->dsi.horizontal_frontporch    = 0x15;  
  20.     params->dsi.horizontal_active_pixel  = FRAME_WIDTH;  
  21.     params->dsi.PLL_CLOCK            = 180;              /* clock(MHz) */
  22. }  

再來看lcm_init:
  1. #define SET_RESET_PIN(v) (lcm_util.set_reset_pin((v)))
  2. #define UDELAY(n) (lcm_util.udelay(n))
  3. #define MDELAY(n) (lcm_util.mdelay(n))
  4. #define dsi_set_cmdq_V3(para_tbl, size, force_update)       lcm_util.dsi_set_cmdq_V3(para_tbl, size, force_update)
  5. #define dsi_set_cmdq_V2(cmd, count ppara, force_update)     lcm_util.dsi_set_cmdq_V2(cmd, count, ppare, force_update)
  6. #define dsi_set_cmdq(pdata, queue_size, force_update)       lcm_util.dsi_set_cmdq(pdata, queue_size, force_update)
  7. #define write_cmd(cmd)                      lcm_util.dsi_write_cmd(cmd)
  8. #define write_regs(addr, pdata, byte_nums)          lcm_util.dsi_write_regs(addr, pdata, bytes_nums)
  9. #define read_reg(cmd)                       lcm_util.dsi_dcs_read_lcm_reg(cmd)
  10. #define read_reg_v2(cmd, buffer, buffer_size)           lcm_util.dsi_dcs_read_lcm_reg_v2(cmd, buffer, buffer_size)
  11. static LCM_setting_table_V3 lcm_initialization_setting[] = {  
  12.     {0x39, 0xF0, 5, {0x55, 0xAA, 0x52, 0x08, 0x03}},  
  13.     {0x39, 0x90, 9, {0x05, 0x14, 0x05, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00}},  
  14.     {0x39, 0x91, 9, {0x05, 0x14, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00}},  
  15.     {0x39, 0x92, 11, {0x40, 0x09, 0x0A, 0x0B, 0x0C, 0x00, 0x54, 0x00, 0x00, 0x05, 0x08}},  
  16.     {0x39, 0x94, 8, {0x00, 0x08, 0x05, 0x03, 0xCE, 0x03, 0xD0, 0x0C}},  
  17.     {0x39, 0x95, 16, {0x40, 0x0D, 0x00, 0x0E, 0x00, 0x0F, 0x00, 0x10, 0x00, 0x54, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08}},  
  18.     {0x39, 0x99, 2, {0x00, 0x00}},  
  19.     {0x39, 0x9A, 11, {0x80, 0x0D, 0x03, 0xD2, 0x03, 0xD4, 0x00, 0x00, 0x00, 0x00, 0x50}},  
  20.     {0x39, 0x9B, 6, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},  
  21.     {0x39, 0x9C, 2, {0x00, 0x00}},  
  22.     {0x39, 0x9D, 8, {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00}},  
  23.     {0x39, 0x9E, 2, {0x00, 0x00}},  
  24.     {0x39, 0xA0, 10, {0x95, 0x14, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x0B, 0x1F}},  
  25.     {0x39, 0xA1, 10, {0x1F, 0x1F, 0x09, 0x1F, 0x1F, 0x1F, 0x0F, 0x1F, 0x1F, 0x1F}},  
  26.     {0x39, 0xA2, 10, {0x0D, 0x1F, 0x01, 0x1F, 0x03, 0x1F, 0x1F, 0x1F, 0x05, 0x1F}},  
  27.     {0x39, 0xA3, 10, {0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F}},  
  28.     {0x39, 0xA4, 10, {0x1F, 0x04, 0x1F, 0x1F, 0x1F, 0x02, 0x1F, 0x00, 0x1F, 0x0C}},  
  29.     {0x39, 0xA5, 10, {0x1F, 0x1F, 0x1F, 0x0E, 0x1F, 0x1F, 0x1F, 0x08, 0x1F, 0x1F}},  
  30.     {0x39, 0xA6, 10, {0x1F, 0x0A, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x14, 0x15}},  
  31.     {0x39, 0xA7, 10, {0x14, 0x15, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x0C, 0x1F}},  
  32.     {0x39, 0xA8, 10, {0x1F, 0x1F, 0x0E, 0x1F, 0x1F, 0x1F, 0x08, 0x1F, 0x1F, 0x1F}},  
  33.     {0x39, 0xA9, 10, {0x0A, 0x1F, 0x02, 0x1F, 0x00, 0x1F, 0x1F, 0x1F, 0x1F, 0x04}},  
  34.     {0x39, 0xAA, 10, {0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F}},  
  35.     {0x39, 0xAB, 10, {0x1F, 0x05, 0x1F, 0x1F, 0x1F, 0x01, 0x1F, 0x03, 0x1F, 0x0B}},  
  36.     {0x39, 0xAC, 10, {0x1F, 0x1F, 0x1F, 0x09, 0x1F, 0x1F, 0x1F, 0x0F, 0x1F, 0x1F}},  
  37.     {0x39, 0xAD, 10, {0x1F, 0x0D, 0x1F, 0x1F, 0x1F, 0x02, 0x1F, 0x1F, 0x15, 0x14}},  
  38.     {0x39, 0xF0, 5, {0x55, 0xAA, 0x52, 0x08, 0x00}},  
  39.     {0x15, 0xFC, 1, {0x00}},  
  40.     {0x39, 0xBC, 3, {0x00, 0x00, 0x00}},  
  41.     {0x39, 0xB8, 4, {0x01, 0x8F, 0xBF, 0x80}},  
  42.     {0x39, 0xF0, 5, {0x55, 0xAA, 0x52, 0x08, 0x01}},  
  43.     {0x39, 0xD1, 16, {0x00, 0x17, 0x00, 0x58, 0x00, 0x8D, 0x00, 0xB0, 0x00, 0xCA, 0x00, 0xF2, 0x01, 0x12, 0x01, 0x45}},  
  44.     {0x39, 0xD2, 16, {0x01, 0x6D, 0x01, 0xAC, 0x01, 0xDD, 0x02, 0x29, 0x02, 0x67, 0x02, 0x69, 0x02, 0xA3, 0x02, 0xE0}},  
  45.     {0x39, 0xD3, 16, {0x03, 0x05, 0x03, 0x34, 0x03, 0x53, 0x03, 0x7C, 0x03, 0x94, 0x03, 0xB7, 0x03, 0xC9, 0x03, 0xD9}},  
  46.     {0x39, 0xD4, 4, {0x03, 0xEE, 0x03, 0xFF}},  
  47.     {0x39, 0xD5, 16, {0x00, 0x17, 0x00, 0x58, 0x00, 0x8D, 0x00, 0xB0, 0x00, 0xCA, 0x00, 0xF2, 0x01, 0x12, 0x01, 0x45}},  
  48.     {0x39, 0xD6, 16, {0x01, 0x6D, 0x01, 0xAC, 0x01, 0xDD, 0x02, 0x29, 0x02, 0x67, 0x02, 0x69, 0x02, 0xA3, 0x02, 0xE0}},  
  49.     {0x39, 0xD7, 16, {0x03, 0x05, 0x03, 0x34, 0x03, 0x53, 0x03, 0x7C, 0x03, 0x94, 0x03, 0xB7, 0x03, 0xC9, 0x03, 0xD9}},  
  50.     {0x39, 0xD8, 4, {0x03, 0xEE, 0x03, 0xFF}},  
  51.     {0x39, 0xD9, 16, {0x00, 0x17, 0x00, 0x58, 0x00, 0x8D, 0x00, 0xB0, 0x00, 0xCA, 0x00, 0xF2, 0x01, 0x12, 0x01, 0x45}},  
  52.     {0x39, 0xDD, 16, {0x01, 0x6D, 0x01, 0xAC, 0x01, 0xDD, 0x02, 0x29, 0x02, 0x67, 0x02, 0x69, 0x02, 0xA3, 0x02, 0xE0}},  
  53.     {0x39, 0xDE, 16, {0x03, 0x05, 0x03, 0x34, 0x03, 0x53, 0x03, 0x7C, 0x03, 0x94, 0x03, 0xB7, 0x03, 0xC9, 0x03, 0xD9}},  
  54.     {0x39, 0xDF, 4, {0x03, 0xEE, 0x03, 0xFF}},  
  55.     {0x39, 0xE0, 16, {0x00, 0x17, 0x00, 0x58, 0x00, 0x8D, 0x00, 0xB0, 0x00, 0xCA, 0x00, 0xF2, 0x01, 0x12, 0x01, 0x45}},  
  56.     {0x39, 0xE1, 16, {0x01, 0x6D, 0x01, 0xAC, 0x01, 0xDD, 0x02, 0x29, 0x02, 0x67, 0x02, 0x69, 0x02, 0xA3, 0x02, 0xE0}},  
  57.     {0x39, 0xE2, 16, {0x03, 0x05, 0x03, 0x34, 0x03, 0x53, 0x03, 0x7C, 0x03, 0x94, 0x03, 0xB7, 0x03, 0xC9, 0x03, 0xD9}},  
  58.     {0x39, 0xE3, 4, {0x03, 0xEE, 0x03, 0xFF}},  
  59.     {0x39, 0xE4, 16, {0x00, 0x17, 0x00, 0x58, 0x00, 0x8D, 0x00, 0xB0, 0x00, 0xCA, 0x00, 0xF2, 0x01, 0x12, 0x01, 0x45}},  
  60.     {0x39, 0xE5, 16, {0x01, 0x6D, 0x01, 0xAC, 0x01, 0xDD, 0x02, 0x29, 0x02, 0x67, 0x02, 0x69, 0x02, 0xA3, 0x02, 0xE0}},  
  61.     {0x39, 0xE6, 16, {0x03, 0x05, 0x03, 0x34, 0x03, 0x53, 0x03, 0x7C, 0x03, 0x94, 0x03, 0xB7, 0x03, 0xC9, 0x03, 0xD9}},  
  62.     {0x39, 0xE7, 4, {0x03, 0xEE, 0x03, 0xFF}},  
  63.     {0x39, 0xE8, 16, {0x00, 0x17, 0x00, 0x58, 0x00, 0x8D, 0x00, 0xB0, 0x00, 0xCA, 0x00, 0xF2, 0x01, 0x12, 0x01, 0x45}},  
  64.     {0x39, 0xE9, 16, {0x01, 0x6D, 0x01, 0xAC, 0x01, 0xDD, 0x02, 0x29, 0x02, 0x67, 0x02, 0x69, 0x02, 0xA3, 0x02, 0xE0}},  
  65.     {0x39, 0xEA, 16, {0x03, 0x05, 0x03, 0x34, 0x03, 0x53, 0x03, 0x7C, 0x03, 0x94, 0x03, 0xB7, 0x03, 0xC9, 0x03, 0xD9}},  
  66.     {0x39, 0xEB, 4, {0x03, 0xEE, 0x03, 0xFF}},  
  67.     {0x39, 0xB0, 3, {0x05, 0x05, 0x05}},  
  68.     {0x39, 0xB1, 3, {0x05, 0x05, 0x05}},  
  69.     {0x39, 0xB6, 3, {0x44, 0x44, 0x44}},  
  70.     {0x39, 0xB7, 3, {0x34, 0x34, 0x34}},  
  71.     {0x39, 0xB3, 3, {0x12, 0x12, 0x12}},  
  72.     {0x39, 0xB9, 3, {0x34, 0x34, 0x34}},  
  73.     {0x39, 0xB4, 3, {0x06, 0x06, 0x06}},  
  74.     {0x39, 0xBA, 3, {0x14, 0x14, 0x14}},  
  75.     {0x39, 0xBC, 3, {0x00, 0x98, 0x00}},  
  76.     {0x39, 0xBD, 3, {0x00, 0x98, 0x00}},  
  77.     {0x15, 0xBE, 1, {0x5A}},//60
  78.     {0x39, 0xF0, 5, {0x55, 0xAA, 0x52, 0x08, 0x02}},  
  79.     {0x39, 0xF6, 2, {0xCA, 0x69}},  
  80.     {0x39, 0xFB, 3, {0x09, 0x03, 0x08}},  
  81.     {0x39, 0xF1, 3, {0x22, 0x22, 0x32}},  
  82.     {0x15, 0x35, 1, {0x00}},  
  83.     {0x05, 0x11,0,{0x00}},  
  84.     {REGFLAG_ESCAPE_ID, REGFLAG_DELAY_MS_V3, 200, {}},  
  85.     {0x05, 0x29,0,{0x00}},  
  86.     {REGFLAG_ESCAPE_ID, REGFLAG_DELAY_MS_V3, 10, {}},  
  87. };  
  88. staticvoid lcm_init(void)  
  89. {  
  90.     SET_RESET_PIN(0);  
  91.     MDELAY(20);  
  92.     SET_RESET_PIN(1);  
  93.     MDELAY(120);  
  94.     dsi_set_cmdq_V3(lcm_initialization_setting, sizeof(lcm_initialization_setting)/sizeof(lcm_initialization_setting[0]), 1);  
  95. }  
要理解這部分程式碼,需要稍微瞭解一下mipi dsi協議。
mipi dsi協議中主要有兩種packet,long packet和short packet。short packet長度為固定的4個位元組,而long packet長度為6~65541(4+(0~65535)+2)位元組。
short packet格式如下:

long packet格式如下:


不管是long packet還是short packet,都有個DATA ID欄位,高兩位我們先忽略,而低六位為Data Type,mipi dsi協議中有專門定義,這裡暫時用到的有:

0x05Short WRITE,無引數
0x15Short WRITE,帶一個引數
0x39Long WRITE

詳細的Data Type可以參見mipi dsi手冊。

我們看在lcm_initialization_setting陣列中,第一個值就是這裡的Data Type,而第二個值則是hx8389b暫存器的地址,而第三個引數則是引數的個數,而最後才是引數值。

hx8389b的datasheet也給出了兩個例子,例如:

05h CMD 0   ECC05h 29h 00  1Ch (display on(29h))
15h CMD Par ECC15h 36h 08h 11h (MADCTL(36h)-BGR bit=1)
我們可以看出lcm_init同它的名字一樣,主要是對做初始化操作。

再來看lcm_suspend和lcm_resume。
  1. staticvoid lcm_suspend(void)  
  2. {  
  3.     unsigned int data_array[16];  
  4.     data_array[0] = 0x00100500;  
  5.     dsi_set_cmdq(data_array, 1, 1);  
  6.     MDELAY(120);  
  7.     SET_RESET_PIN(1);  
  8.     SET_RESET_PIN(0);  
  9.     MDELAY(20);  
  10.     SET_RESET_PIN(1);  
  11.     MDELAY(120);  
  12. }  
  13. staticvoid lcm_resume(void)  
  14. {  
  15.     lcm_init();  
  16. }  
在lcm_suspend函式中,我們主要來看dsi_set_cmdq這部分。
如果是short packet,那麼陣列的第一個元素定義如下:
bits8~1516~2324~31
DATA_IDDATA_0DATA_1

所以,前面data_array[0] = 0x00100500對應的是一個不帶引數的short packet,暫存器地址是0x10,下發的指令意思是進入sleep模式(可以參見hx8389b的資料手冊)。

如果是long packet,那麼陣列的第一個元素定義如下:

bits8~1516~23
DATA_IDDATA_0

注意,在long packet中,DATA_0表示的是Word Count的低8位。

最後來看那個lcm_compare_id函式。
compare_id函式對於lcm驅動來說不是必須的,但最好加上。這個函式主要是用於相容lcm時,lcm核心會調用該函式來匹配lcm驅動和

  1. #define LCM_ID_HX8389B 0x89
  2. static unsigned int lcm_compare_id(void)  
  3. {  
  4.     unsigned int id = 0;  
  5.     unsigned char buffer[2];  
  6.     unsigned int array[16];  
  7.     SET_RESET_PIN(1);  
  8.     SET_RESET_PIN(0);  
  9.     MDELAY(1);  
  10.     SET_RESET_PIN(1);  
  11.     MDELAY(10);  
  12.     array[0] = 0x00023700;  
  13.     dsi_set_cmdq(array, 1, 1);  
  14.     MDELAY(10);  
  15.     read_reg_v2(0x04, buffer, 2);  
  16.     id = buffer[1];  
  17.     return (id == LCM_ID_HX8389B) ? 1 : 0;  
  18. }  
這裡也涉及到了mipi dsi協議:
0x37Set Maximum Return Packet Size
0x06DCS READ, no parameters

read_reg_v2第一個引數為讀暫存器的地址。

參考文件:
1. MIPI_DSI_Specification_V1.02.00.pdf
2. HX8389-B_DS_Temporary_General_v00_20120109.pdf
3. MT6582_LCM_Porting_Guide_DSI_V1.0.pptx.pdf

// 2016-03-17 add

Command and Video Modes

相容MIPI DSI協議的外設都支援Command Mode和Video Mode兩種操作模式,具體使用哪一種操作模式由具體的外設架構決定,那麼這兩種操作模式它們有什麼區別呢。

Video Mode:
這種操作模式同傳統的RGB介面類似,主控制器需要實時的往顯示上重新整理畫素資料,因為資料流一般比較大,這種模式只能工作在高速率模式下。這種模式是不需要帶有視訊記憶體的。

Video Mode同樣也包含一些簡單的命令操作,例如的初始化、的開啟、關閉等等,這個時候是工作在低速模式下的。

Video Mode主要又有三種模式:
1. Non-burst Mode Sync pulses
2. Non-burst Mode Sync event
3. Burst mode

Command Mode:
MIPI主控制器通過命令集往顯示器傳送畫素資料流,所以這種模式必須要有一個視訊記憶體(frame buffer)用來儲存畫素資料。

參考:MIPI_DSI_Specification_V1.02.00.pdf

相關推薦

mtk lcd 除錯步驟

平臺:mt65852 + Android 4.4 屏:HX8389B 那麼首先來看的是如何配置lcd屏(在mtk中叫做lcm)。 1. ProjectConfig.mk中配置 CUSTOM_LK_LCM = hx8389b_qhd_dsi_vdo  CUSTOM_KERNEL_LCM = hx838

CentOS7最小化源碼安裝LAMP-步驟

apache httpd mysql CentOS7最小化源碼安裝LAMP-步驟詳解系統:CentOS 7.3.1611(最小化安裝)軟件:httpd-2.4.27 mysql-5.7.18 php-5.6.3一、配置系統環境1.1. 查看系統版本# cat /etc/cent

安裝MACOS操作步驟

中文 相同 sudo 否則 一次 install -1 感謝 重啟                           安裝MACOS操作步驟詳解                                               作者:尹正傑 版權聲明:原創作品,

CentOS7安裝步驟

con 選項 htm a13 圖形化 per -h esc b2c 準備環境 1.虛擬機 VMware Workstation 2.Centos7-64位安裝包 ( CentOS-6.7-x86_64-bin-DVD1.iso ) 開始安裝 進入安裝初

oracle創建用戶、表空間、臨時表空間、分配權限步驟

分配權限 use 表數據 依次 log auto create 過程 limit 首先登陸管理員賬號,或者有DBA權限的用戶,接下來依次: --查詢所有用戶select * from dba_users;--創建新用戶create user gpmgt identified

Centos 6.5搭建SVN服務步驟

svnCentos 6.5搭建SVN服務步驟詳解一:SVN的運行方式SVN服務器有2種運行方式, 本文介紹獨立服務器的安裝方法。1. 獨立服務器 (例如:svn://xxx.com/xxx);2. 借助apache(例如:http://svn.xxx.com/xxx);二:安裝SVN1.用yum安

使用阿裏雲主機離線部署CDH步驟

require 系統初始 grant 內網ip 初始 cli dir 雲主機 rhel4 一、Linux文件系統準備 1. 拍攝快照 登錄阿裏雲控制臺,拍攝快照,註意有幾個關鍵點盡量拍攝快照,系統初始狀態、CM環境準備完成、CM安裝完成、CDH安裝完成。

linux Mysql 主從復制 原理介紹和步驟

linux Mysql 主從復制 大家好,我是霸王卸甲,今天我給大家帶來的是linux數據庫中的主從復制的簡單介紹和步驟詳解。 主從復制 mysql主從復制 靈活 一主一從 主主復制 一主多從---擴展系統讀取的性能,因為讀是在從庫讀取的; 多主一從---5.7開始支持 聯級

虛擬機 CentOS 7安裝步驟

CentOS 7VMware workstation 14 安裝步驟詳解1、下載VMware workstation 14(本人使用的此軟件目前最新版本VMware workstation 14版本) 附下載地址:http://rj

rsync+inotify實現文件實時同步-步驟

rsync inotify實驗拓撲(centos7下):192.168.80.181 服務器端(主機名www.aa.com)192.168.80.182 客戶端(主機名www.ab.com)1、使用SSH源:安裝rsync,服務端和客戶端同時安裝,只使用客戶端命令就OK了。systemctl stop fir

Mac系統安裝和配置tomcat步驟

roles 應用 lan ref out size let watermark local https://www.jianshu.com/p/53afed9941e9 一:下載 打開Apache Tomcat官網,選擇需要的版本下載: 二:存放到本地 文件夾重名民為Ap

Linux系統中安裝SSH2擴展步驟 linux技能學習

Linux運維 Linux入門 Linux學習 Linux基礎 Linux雲計算 在Linux服務器環境中部署SSH2擴展以編譯PHP文件中的SSH腳本命令,具體配置方法如下,如果是在正式環境中直接運行,建議做好備份。1.安裝支持的庫文件命令:yum install php-devel

Tomcat 項目代碼上線步驟

Tomcat 項目代碼上線步驟詳解Tomcat 項目代碼上線步驟詳解 1、上線內容(JSP代碼,圖片,包文件(jar|war|ear)) 2、上線內容來源  a.開發人員提供(郵件形式).tar.gz 壓縮包(包文件開發負責編譯 編譯命令jar或者winrar工具)  b.運維負責編譯(利用jenkins的打

java基礎之JDBC一:概述及步驟

etx fileread 操作 [] 全路徑 api mysql edi lean 1. JDBC的簡介 概述: 就是Java用來操作不同數據庫(DBMS)的類庫(技術), 本質就是一些類和接口. /* 類: Dri

react-native模擬機調試步驟 ——親測有效!!!!

setting div 目的 post 127.0.0.1 med 我沒 -a RF 步驟 1 下載安裝夜神模擬器,去夜神官網下載即可!然後安裝完成!進入到初始化項目的目錄,打開cmd命令,運行adb connect 127.0.0.1:62001 鏈接模擬器

jQuery插件編寫步驟

成員函數 keyword TE 函數轉換 his orm option obj red 如今做web開發,jquery 幾乎是必不可少的,就連vs神器在2010版本開始將Jquery 及ui 內置web項目裏了。至於使用jquery好處這裏就不再贅述了,用過的都知道。今天我

歸並排序的思想及遞歸運行步驟

運行 info 圖片 src 排序 mage com ima 遞歸 歸並排序的思想及遞歸運行步驟詳解

rsync+ Notify配置解析及步驟

echo ystemd 文件同步 會有 表示 inux 連接數 工具 觸發 rsync步驟配置 Rsync介紹 什麽是rsync rsync是一款開源,快速,多功能的可實現增量的本地或遠程的數據鏡像同步備份的優秀工具。適用於多個平臺。從軟件名稱可以看出來是遠程同步的意思(r

安裝Cloudera manager agent步驟

安裝包 記錄 style 繼續 作者 manage gen -s png              安裝Cloudera manager agent步驟詳解                                         作者:尹正傑 版權聲明:原創作品,謝

SNAT實驗步驟

環境是三臺虛擬機器,其中一臺需要兩塊網絡卡,我們稱其為閘道器,另兩臺分別為內網和外網 配置網絡卡 第一塊網絡卡 網絡卡第二塊 內網 閘道器值使用閘道器的閘道器值 外網閘道器值使用閘道器的閘道器值 三臺虛擬機器都要重啟服務 關閉防火牆和沙盒 在閘道器上開啟路由轉發0改為1