一、挂载U盘

SDK默认自动加载USB存储模块,但没有自动挂载,插上U盘后识别sda

mount /dev/sda /mnt/

即可在/mnt查看U盘文件

二、make & make menuconfig提示失败

kernel
make & make menuconfig 提示错误
打开新终端后输入

declare -x ARCH="arm"
declare -x CROSS_COMPILE="arm-linux-gnueabihf-"

三、CH340 USB转串口

→ Device Drivers → USB support → USB Serial Converter support

可找到对应的驱动模块加载编译即可

四、芯片引脚编号

SSD201 HW Checklist V10(1).xlsx
文件可找到芯片引脚编号与驱动序号对照表

用于用户空间操作GPIO

五、SDK默认只有/customer目录可读写,修改为根目录可以读写

在project/configs/current.configs文件中找到IMAGE_CONFIG对应的分区文件

修改ro为rw
六、GPIO复用模式

在有些文档中能找到GPIO复用功能说明,例如I2C的GPIO

七、生成disp_init程序,如需视频显示,在disp_init程序中加入

stDispPubAttr.eIntfType = E_MI_DISP_INTF_LCD;
stDispPubAttr.eIntfSync = E_MI_DISP_OUTPUT_USER;

八、用户空间读写寄存器

/config/riu_w bank reg value
/config/riu_r band reg

九、屏参文件转换


屏厂家提供的屏参文件为右边,需转换为左边的数组格式
DCS_Short_Write_1P 写一个字节
DCS_Short_Write_1P 写两个字节
DCS_Long_Write_FIFO 写一串命令字节流

左边格式,一行为一条指令,第一个为地址,第二个为长度,第三个为需写入数据
在屏初始化命令最后需要结束符
FLAG_END_OF_TABLE, FLAG_END_OF_TABLE,

屏参数主要修改以下几个,可在屏数据手册找到

十、修改各分区大小

我的板子使用spiand.ubifs.p2.partition.config这个文件
/project/image/configs/i2m/spiand.ubifs.p2.partition.config

十一、烧写不成,查看是否支持当前FLASH

project/image/output/images/boot/SPINANDINFO.sni
使用工具打开,查看是否支持当前Flash,没有需添加

十二、添加HY4635触屏驱动

→ System Type → SStar ARM SoCs
找到使用设备树文件

修改设备树,在I2C0下添加的触摸屏节点

修改touchscreen目录下kconfig文件添加配置项

config TOUCHSCREEN_HYCONtristate "HYCON HY46XX Dual touch support capacitive touchscreens"depends on I2ChelpSay Y here if you have a touchscreen using HYCON HY46XX.If unsure, say N.To compile this driver as a module, choose M here: themodule will be called hy46xx_ts.

修改makefile文件

obj-$(CONFIG_TOUCHSCREEN_HYCON)  += hy46xx_ts.o

十三、虽然内核带CH340的驱动,但不是最新,可以从git或者官网下载最新

git clone https://github.com/juliagoda/CH341SER

替换掉Makefile文件

ARCH := arm
CROSS_COMPILE := arm-linux-gnueabihf-
KERNELDIR := /home/dm/ssd201/kernel
CURRENT_PATH := $(shell pwd)obj-m := ch34x.obuild: kernel_moduleskernel_modules:$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KERNELDIR) M=$(CURRENT_PATH) modulesrm *.mod*
clean:$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean

生成驱动模块

make modules

十四、RTL8723 STA及AP驱动编译及调试

参考链接:https://www.cnblogs.com/rain-blog/p/rtl8723bs-driver-test.html
驱动模块放kernel/driver/net/wireless/RT8723目录下,修改父目录的Kconfig及Makefile

修改模块下Makefle添加一个当前平台编译选项,如下

ifeq ($(CONFIG_PLATFORM_SSD20X_ARM), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
SUBARCH := $(shell uname -m )
ARCH := $(SUBARCH)
CROSS_COMPILE := arm-linux-gnueabihf-
KSRC := /home/dm/ssd201/kernel
MODULE_NAME :=wlan
endif

编译成功生成wlan.ko文件

添加WIFI驱动库

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/lib:/config/wifi
//WIFI STA需要建立目录
mkdir -p /tmp/wifi/run
chmod 777 /tmp/wifi/run
//WIFI AP需建立目录
mkdir -p /var/run/hostapd
mkdir -p /var/wifi/misc
mkdir -p /var/lib/misc

十五、RTL8723蓝牙调试

蓝牙menuconfig配置说明

[ 3499.413323] rtk_btusb: Unknown symbol hci_free_dev (err 0)
[ 3499.416122] rtk_btusb: Unknown symbol hci_alloc_dev (err 0)
[ 3499.421573] rtk_btusb: Unknown symbol hci_unregister_dev (err 0)
[ 3499.427601] rtk_btusb: Unknown symbol hci_recv_frame (err 0)
[ 3499.433313] rtk_btusb: Unknown symbol hci_register_dev (err 0)
蓝牙部分以模块编译,insmod bluetooth.ko 可解决
[ 20.092472] rtk_btusb: config filename rtl8723b_config
[ 20.099007] usb 1-1: Direct firmware load for rtl8723b_config failed with error -2
[ 20.105226] rtk_btusb: fw name is rtl8723b_fw
[ 20.109662] usb 1-1: Direct firmware load for rtl8723b_fw failed with error -2
[ 20.116856] rtk_btusb: load firmware failed!
[ 20.121108] rtk_btusb: Rtk patch end -1
[ 20.124973] rtk_btusb: btusb_open failed
将固件文件拷贝到/lib/firmeare目录

可以使用buildroot直接生成以下工具
编译hciattach、hciconfig、hcidump、hcitool蓝牙调试工具

#pragma GCC diagnostic ignored “-Wformat-nonliteral”
就在包含头文件的地方加就行了

编译zlib
./configure --prefix=/home/dm/ssd201/arm-bluez/bluez
修改Makefile
CC=arm-linux-gnueabihf-gcc
LDSHARED=arm-linux-gnueabihf-gcc -shared -Wl,-soname,libz.so.1,–version-script,zlib.map
CPP=arm-linux-gnueabihf-gcc -E
AR=arm-linux-gnueabihf-ar
RANLIB=arm-linux-gnueabihf-ranlib
make
make install

编译libffi
./configure --host=arm-linux-gnueabihf --prefix=/home/dm/ssd201/arm_bluez/bluez
make
make install

编译glib
./configure --host=arm-linux-gnueabihf --prefix=/home/dm/ssd201/arm_bluez/bluez/ PKG_CONFIG_PATH=/home/dm/ssd201/arm-bluez/bluez/lib/pkgconfig glib_cv_stack_grows=no glib_cv_uscore=yes ac_cv_func_posix_getpwuid_r=yes ac_cv_func_posix_getgrgid_r=yes
make
make install
编译glib2.40出错
gdate.c:2497:7: error: format not a string literal, format string not checked [-Werror=format-nonlit

编译expat
./configure --host=arm-linux-gnueabihf --prefix=/home/dm/ssd201/arm_bluez/bluez/
make
make install

编译dbus
export CPPFLAGS=“-I/home/dm/ssd201/arm_bluez/bluez/include/”
export CFLAGS=“-I/home/dm/ssd201/arm_bluez/bluez/include/”
export LDFLAGS=“-L/home/dm/ssd201/arm_bluez/bluez/lib/”
./configure --host=arm-linux-gnueabihf --prefix=/home/dm/ssd201/arm_bluez/bluez/ GLIB_CFLAGS=“-I/home/dm/ssd201/arm-bluez/bluez/include/glib-2.0 -pthread -I/home/dm/ssd201/arm-bluez/bluez/lib/glib-2.0/include/” -disable-tests
make
make install

编译libical
export CC=arm-linux-gnueabihf-gcc
export CXX=arm-linux-gnueabihf-g++
ll /home/dm/ssd201/arm_bluez/bluez
cmake -DCMAKE INSTALL PREFIX=/home/dm/ssd201/arm_bluez/bluez
make
make install

编译ncurses.
wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.2.tar.gz
sudo ln -s /opt/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip /usr/bin/strip
./configure --host=arm-linux-gnueabihf --prefix=/home/dm/ssd201/arm_bluez/bluez CXX=“arm-linux-gnueabihf-g++” CC=“arm-linux-gnueabihf-gcc” --with-shared
make
make install

编译readline
./configure --host=arm-linux-gnueabihf --prefix=/home/dm/ssd201/arm_bluez/bluez bash_cv_wcwidth_broken=yes LDFLAGS=-L/home/dm/ssd201/arm_bluez/bluez/lib
make SHLIB_LIBS=-Incurses
make install

编译bluez-5.18
./configure --host=arm-linux-gnueabihf --prefix=/home/dm/ssd201/arm_bluez/bluez PKG_CONFIG_PATH=/home/dm/ssd201/arm_bluez/bluez/lib/pkgconfig --disable-systemd --disable-udev --disable-cups --disable-obex -enable-library LDFLAGS=“-L/home/dm/ssd201/arm_bluez/bluez/lib -lncurses” CFLAGS=-I/home/dm/ssd201/arm_bluez/bluez/include CPPFLAGS=-I/home/dm/ssd201/arm_bluez/bluez/include
make
make install

将bluez与dbus的bin与lib复制到目标板
将bluez与dbus的share、etc、var复制到目标板
建立运行环境

修改内核打开NFKILL

打开蓝牙

手机连接

第一次添加用户adduser messagebus
insmod rtk_btusb.ko
mkdir /var/run
mount tmpfs /var/run -t tmpfs
ln -s /customer/bluetooth/bluez_build/dbus/var/run/dbus /var/run/dbus
dbus-daemon --system &
bluetoothd -n -C &
bluealsa -p a2dp-source &
hciconifg hci0 up
hciconfig hci0 piscan
hciconfig hci0 leadv


使用nfr connect软件
连接到蓝牙设备

连接蓝牙耳机
bluetoothctl
scan on 扫描设备打开
scan off 找到设备关闭扫描
pair 地址 配对设备
connect 地址 连接设备

十六、更新根文件系统解压与压缩

tar -xvf ./rootfs.tar -C ./rootfs
tar -zcvf rootfs.tar.gz rootfs

打包后文件更新project/image/rootfs/rootfs.tar.gz
make image

十七、添加合宙700E 4G网卡

https://e3zt58hesn.feishu.cn/docx/MGHWdYIg5oWpTox0qaecg483nKn
https://doc.openluat.com/article/419/0
修改内核



修改驱动
1.Add VID add PID
File: [KERNEL]/drivers/usb/serial/option.c

 //+add by airm2m for Air72x{ USB_DEVICE(0x19d1, 0x0001) },//-add by airm2m for Air72x
  1. Add the Zero Packet Mechanism
    File: [KERNEL]/drivers/usb/serial/usb_wwan.c
static struct urb *usb_wwan_setup_urb(struct usb_serial_port *port,int endpoint,                                                              int dir, void *ctx, char *buf, int len,void (*callback) (struct urb *))
{struct usb_serial *serial = port->serial;struct urb *urb;urb = usb_alloc_urb(0, GFP_KERNEL); /* No ISO */if (!urb)return NULL;usb_fill_bulk_urb(urb, serial->dev,usb_sndbulkpipe(serial->dev, endpoint) | dir,buf, len, callback, ctx);//+add by airm2m for Air72xif(dir == USB_DIR_OUT){struct usb_device_descriptor *desc = &serial->dev->descriptor;if(desc->idVendor == cpu_to_le16(0x19d1) && desc->idProduct == cpu_to_le16(0x0001)){urb->transfer_flags |= URB_ZERO_PACKET;}}//-add by airm2m for Air72xreturn urb;
}
  1. Add Reset Resume
    ⦁For linux Kernel Version newer than 3.4:
    File: [KERNEL]/drivers/usb/serial/option.c
static struct usb_serial_driver option_1port_device = {.driver = {                                                                                                  .owner =    THIS_MODULE,.name =     "option1",},   ....
#ifdef CONFIG_PM.suspend           = usb_wwan_suspend,.resume            = usb_wwan_resume,//+add by airm2m for Air720.reset_resume      = usb_wwan_resume,//-add by airm2m for Air720
#endif};

生成4个驱动模块

按顺序加载
insmod usbnet.ko
insmod cdc_ether.ko
insmod rndis_host.ko
insmod rndis_wlan.ko

识别出4G网卡
udhcpc -i eth2

网络连通

十八、编译minicom2.8

ncurses-6.2.tar.gz 试过5.7-6.0版本编译出错,这个版本可以编译通过
minicom-2.8.tar.bz2

先编译ncurse6.2

./configure --host=arm-linux-gnueabihf --prefix=/home/dm/ssd201/debug-toos/install/ncurses-6.2 CXX="arm-linux-gnueabihf-g++" CC="arm-linux-gnueabihf-gcc" --with-shared

编译minicom2.8

./configure CC=arm-linux-gnueabihf-gcc --prefix=/home/dm/ssd201/debug-toos/install/minicom --host=arm --enable-cfg-dir="/tmp"  CPPFLAGS="-I/home/dm/ssd201/debug-toos/install/ncurses-6.2/include" LDFLAGS="-L/home/dm/ssd201/debug-toos/install/ncurses-6.2/lib"

CPPFLAGS 和 LDFLAGS是刚刚编译的ncurses的头文件和库目录
enable-cfg-dir是minicom运行时配置保存的指定路径

移植

export TERMINFO=/tmp
export TERM=vt100

将程序minicom和配置vt100拷贝到开发板/tmp/v 目录。(此目录取决于TERMINFO=/tmp)
最后运行: ./minicom

十九、编译libmodbus库

下载连接:https://github.com/stephane/libmodbus/releases/download/v3.1.10/libmodbus-3.1.10.tar.gz

./configure --host=arm-linux-gnueabihf --prefix=/home/dm/ssd201/LIB/install/libmodbus --enable-shared --enable-static

make & make install

二十、PM_LED0、PM_LED1作普通IO

修改UBOOT
修改boot/drivers/mstar/emac/infinity2m/mhal_emac.c文件中的MHal_EMAC_ClkGen函数注释如下内容:

#if 0
//enable LED //16'0x0e_28[5:4]=01
uRegVal = MHal_EMAC_ReadReg8(REG_BANK_PMSLEEP, 0x50);
uRegVal = (uRegVal&~0x30)|0x10;
MHal_EMAC_WritReg8(REG_BANK_PMSLEEP, 0x50, uRegVal);
#endif

EMAC内核驱动修改\kernel\drivers\sstar\emac\hal\infinity2m\mhal_emac.c,需要注释多个地方

设备树文件中关于PAD_PM_LED0与PAD_PM_LED1的需要注释

二十一、修改为RGB屏

1、修改project/board/i2m/SSC011A-S01A/config/fbdev.ini
2、RGB屏为888,修改设备树文件
3、修改屏参文件
查看riu_r 0x101e 0xd是否有切对TTL mode(value:0x100)/MIPImode(vacdlue:0x1000)
按照步骤操作:
跑点屏的demo,初始化disp和panel;
如果跑的是显示UI的demo,先下cmd:echo GUI_SHOW 0 off >/proc/mi_modules/fb/mi_fb0 关闭UI;
通过reg关闭csc:riu_w 1129 30 bit0写0,riu_w 1129 3c bit0写0;
通过reg打纯色pattern:
SSD20X寄存器如下:
4、测试纯色的pattern:
riu_w 1129 1b 8000
bule:riu_w 1129 1b 801f
green:riu_w 1129 1b 83e0
red: riu_w 1129 1b fc00


显示与实图,有点反色,调整VCOM电压
查看屏参
cat /proc/mi_modules/mi_panel/mi_panel0
修改project/board/i2m/SSC011A-S01A/config/fbdev.ini的分辨率

修改sstardisp.c分辨率

二十二、启动LOGO

修改UBOOT

CONFIG_CMD_BOOTLOGO
CONFIG_SSTAR_DISP
CONFIG_SSTAR_PNL
CONFIG_SSTAR_JPD

修改project/configs/current.configs

复制jpeg到project/board/ini/misc
添加UBOOT屏参文件project/image/makefiletools/src/rawgenerator/pnl
修改添加屏参文件到disp_data_main.c

屏参名称要与DISP_OUT_NAME相同

project/configs/current.configs

make image
启动到uboot修改bootcmd设置背光引脚打开

setenv bootcmd 'bootlogo 0 0 0 0 0; mw 1f001cc0 11; gpio out 12 0; nand read.e 0x22000000 KERNEL 0x26e6d4; gpio out 12 1; bootm 0x22000000;nand read.e 0x22000000 RECOVERY 0x26e6d4; bootm 0x22000000'

上电启动到UI有其它颜色显示,修改背景颜色为黑色
1、指定YUV黑色
#define MAKE_YUYV_VALUE(y,u,v) ((y) << 24) | ((u) << 16) | ((y) << 8) | (v)
#define YUYV_BLACK MAKE_YUYV_VALUE(0,128,128)
2、设定u32BgColor
if (pstDispPubAttr->eIntfType == E_MI_DISP_INTF_LCD)
{
log_debug(“sstar_disp_init 3”);
init_panel_ST7701S();
log_debug(“sstar_disp_init 4”);
pstDispPubAttr->u32BgColor = YUYV_BLACK; // 设置背景色
pstDispPubAttr->stSyncInfo.u16Vact = stPanelParam.u16Height;
pstDispPubAttr->stSyncInfo.u16Vbb = stPanelParam.u16VSyncBackPorch;

}

二十三、工程管理

使用Cmake作工程管理,添加第三方modbus与lvgl库

cmake_minimum_required(VERSION 3.0.0)
project(energy_storage VERSION 0.1.0 LANGUAGES C)include(CTest)
enable_testing()link_directories(/home/dm/ssd201/LIB/install/libmodbus/lib)
link_directories(/home/dm/ssd201/project/release/nvr/i2m/common/glibc/8.2.1/mi_libs/dynamic)add_compile_options(-DLV_CONF_INCLUDE_SIMPLE )add_executable(energy_storage main.c)set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_C_COMPILER   arm-linux-gnueabihf-gcc)
SET(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)
SET(CMAKE_BUILD_TYPE “Debug”)
include(CPack)
include_directories(inc)
include_directories(/home/dm/ssd201/LIB/install/libmodbus/include)
include_directories(/home/dm/ssd201/LIB/install/lvgl8.3/include)
include_directories(/home/dm/ssd201/project/release/include)
include_directories(/home/dm/ssd201/project/kbuild/4.9.84/i2m/include/uapi/mstar)
add_subdirectory(src)
add_subdirectory(ui)add_library(lvgl_demos STATIC IMPORTED)
set_property(TARGET lvgl_demos PROPERTY IMPORTED_LOCATION /home/dm/ssd201/LVGL8.30-SSD202/linux_frame_buffer/lvgl/liblvgl_demos.a)add_library(lvgl_examples STATIC IMPORTED)
set_property(TARGET lvgl_examples PROPERTY IMPORTED_LOCATION /home/dm/ssd201/LVGL8.30-SSD202/linux_frame_buffer/lvgl/liblvgl_examples.a)add_library(lvgl STATIC IMPORTED)
set_property(TARGET lvgl PROPERTY IMPORTED_LOCATION /home/dm/ssd201/LIB/install/lvgl8.3/lib/liblvgl.a)target_link_libraries(energy_storage src libcjson.so  libmi_common.so  libmi_gfx.so    libmi_vdec.so
libmi_ai.so  libmi_disp.so    libmi_panel.so  libmi_venc.so libmi_ao.so  libmi_divp.so    libmi_sys.so
libmi_wlan.so libmodbus.so lvgl lvgl_demos lvgl_examples ui)set(CMAKE_EXE_LINKER_FLAGS    "-lpthread -ldl -Wincompatible-pointer-types")

二十四、编译LVGL库

针对8.3版本
添加编译器选项

/env_support/cmake,选择编译为静态库或动态库

cmake CMakeList.txt
make
make install

二十五、linux查看设备树

针对SPNAND ssd202芯片的设备树文件
RGB屏设备树文件infinity2m-spinand-ssc011a-s01a-display.dts
MIPI屏设备树文件infinity2m-spinand-ssc011a-s01a-display_for_mipi.dts

ls /sys/firmware/devicetree/base
或者
ls /proc/device-tree

二十六、添加GT911触摸驱动

4.9内核已经有GT911驱动,在内核配置打开GT911
原理图查找相应的芯片使用触摸引脚


在设备树文件infinity2m-ssc011a-s01a-display中i2c0节点添加911设备

         goodix_gt911@5D{ //EVB i2c-padmux=2 SSD201_SZ_DEMO_BOARD i2c-padmux=1compatible = "goodix,gt911";reg = <0x5D>;goodix_rst = <PAD_SAR_GPIO2>; //SSD201_SZ_DEMO_BOARD PAD_GPIO1  EVB PAD_GPIO0goodix_int = <PAD_GPIO5>; //SSD201_SZ_DEMO_BOARD PAD_GPIO13  EVB PAD_GPIO1interrupts-extended = <&ms_gpi_intc INT_GPI_FIQ_GPIO5>;interrupt-names = "goodix_int";};

在设备树文件infinity2m-ssc011a-s01a-padmux-display修改GPIO6与GPIO7为I2C

驱动加载成功后建立/dev/input/event0设备,cat /dev/input/evnet0可打印触摸屏数据

二十七、更换芯片为SSD201

修改project/configs/current.configs文件

./setup_config.sh ./configs/nvr/i2m/8.2.1/spinand.glibc.011a.64
make image

二十八、新增Nand Flash芯片

根据芯片手册修改参数

替换project目录下的SPINANDINFO.sni

二十四、RTSP视频流播放

二十四、SIP对讲

二十五、ROS

SSD202 Linux开发日志记录相关推荐

  1. 小明分享|嵌入式LINUX开发日志-错误汇总①

    SSD201 QT移植编译错误解决 book@100ask:~/SSD201/qt-everywhere-src-5.15.0$ ./make.sh mkdir: cannot create dire ...

  2. linux 查看入侵日志,linux入侵日志记录清除

    web服务的访问日志 查看日志路径信息: nginx -t nginx会去测试你的配置文件nginx.conf的语法,并告诉你配置文件是否写的正确,同时也告诉了你配置文件的路径: nginx: the ...

  3. linux启用日志记录功能,Linux下启用Open vSwitch的日志功能以便调试和排障

    问题 我试着为我的Open vSwitch部署排障,鉴于此,我想要检查它的由内建日志机制生成的调试信息.我怎样才能启用Open vSwitch的日志功能,并且修改它的日志等级(如,修改成INFO/DE ...

  4. linux定时任务输出时间日志,linux 定时任务 日志记录

    KVC &amp; KVO KVC和KVO看上去又是两个挺牛的单词简写,KVC是Key-Value Coding的简写,是键值编码的意思.KVO是Key-Value  Observing的简写 ...

  5. 查看linux系统启动日志记录

    背景 正在运行的服务,突然一下子全停止了.问了一下也没有人操作.于是也只能查看日志,看能不能找到点蛛丝马迹. 操作 查看最近系统启动记录 last reboot |head -1 查看一下系统日志记录 ...

  6. linux应用开发:日志记录

    在开发linux应用或者库程序时,有两种方法可以记录程序日志,日志消息可作为分析或调试的一种手段. 1. 使用fprintf()将日志打印到指定文件中,有很高的移植性. int fprintf (FI ...

  7. <Linux开发>--驱动开发-- 字符设备驱动(3) 过程详细记录

    <Linux开发>–驱动开发-- 字符设备驱动(3) 过程详细记录 驱动开发是建立再系统之上的,前面作者也记录了系统移植的过程记录,如果有兴趣,可进入博主的主页查看相关文章,这里就不添加链 ...

  8. linux记录用户命令的日志是,用日志记录Linux用户执行的每一条命令

    用日志记录Linux用户执行的每一条命令 用日志记录Linux用户执行的每一条命令 工作中,需要把用户执行的每一个命令都记录下来,并发送到日志服务器的需求,为此我做了一个简单的解决方案.这个方案会在每 ...

  9. Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录(转)

    文章转自:http://www.osyunwei.com/archives/8998.html 说明: 操作系统:CentOS Mongodb安装目录:/usr/local/mongodb Mongo ...

最新文章

  1. 怎样在项目中使用git以及github管理(图文详解流程讲解)
  2. Flink架构及工作原理
  3. 树莓派安装mysql并设置远程访问
  4. 四年磨一剑:我是如何拿到蚂蚁 Offer 的?
  5. 机械硬盘旋转时间_高端PC真的没有机械盘了么?
  6. 安卓自定义相机录像功能全解(不调用系统相机)
  7. DataTables之TableTools插件
  8. Hadoop1.2.0开发笔记(九)
  9. CentOS7安装dnf
  10. Windows 下 tail 查看日志命令工具
  11. linux语言vim的下载,Vim 从入门到精通 PDF
  12. 星河互联刘玮玮:Echo卖疯了,为什么擅长制造爆款的中国人又没跟上?
  13. android回溯机制,Android事件分发机制全面解析
  14. 五级流水线CPU之低功耗设计 (一) :Bypassing(旁路)
  15. springboot打包-依赖包到单独文件夹并微缩原有jar包体积
  16. 软件设计师-知识的整理
  17. 微信小程序实现地图导航功能
  18. 中国软件测试有多少人,测试全国有多少人重名,查重名(无需安装软件)
  19. win配置pm2开机自启node项目
  20. DoIP(五)—— UDSonIP

热门文章

  1. LeetCode之路:520. Detect Capital
  2. 【Python】08 通用水文年鉴数据提取方法
  3. 2020查找和排序实验题目——1 奥运排行榜 (25分)
  4. Linux 下如何转换文件编码格式
  5. python中噪音是什么意思_噪声数据中的梯度,python
  6. 如何识别和利用用户情绪
  7. C# 访问SafeNet加密锁注意事项
  8. 嵌入式系统的基础知识该如何学习
  9. 硬改无人直播系统-使用小技巧
  10. 无刷直流电机角度、速度闭环控制