Record a widora sdk compile ipk actual combat compile redis

 

 

Because of business needs, I need to use redis to store some simple data, because redis has a good hashing mechanism, which can perfectly meet some of my needs, but the ipk officially provided by openwrt memcached does not provide redis, there is no way, only myself Compiled, compiled redis version 3.2.1
1. Download redis: http://download.redis.io/releases/redis-3.2.1.tar.gz
2. Create a redis directory in the package directory of openwrt-widora, Put the decompressed redis directory mv into this directory, rename it to src, and create a Makefile in the flat directory (the redis directory just created under the openwrt-widora package)

 


The content is as follows:

include $(TOPDIR)/rules.mk
# Name and release number of this package
PKG_NAME:=redis
PKG_RELEASE:=1

PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
PKG_KCONFIG:=RALINK_MT7620 RALINK_MT7628
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/kernel.mk

define Package/redis
        SECTION:=Diy pack
        CATEGORY:=Diy pack
        TITLE:=redis
        DEPENDS:= +libpthread
endef

# Uncomment portion below for Kamikaze and delete DESCRIPTION variable above
define Package/redis/description
        redis for server
endef

# Specify what needs to be done to prepare for building the package.
# In our case, we need to copy the source files to the build directory.
# This is NOT the default.  The default uses the PKG_SOURCE_URL and the
# PKG_SOURCE which is not defined here to download the source from the web.
# In order to just build a simple program that we have just written, it is
# much easier to do it this way.
define Build/Prepare
        mkdir -p $(PKG_BUILD_DIR)
        $(CP) ./src/* $(PKG_BUILD_DIR)/
endef

# We do not need to define Build/Configure or Build/Compile directives
# The defaults are appropriate for compiling a simple program such as this one
        $(foreach c, $(PKG_KCONFIG),$(if $(CONFIG_$c),-DCONFIG_$(c)=$(CONFIG_$c)))

define Build/Compile
        $(MAKE) MALLOC=libc -C $(PKG_BUILD_DIR) \
        $(TARGET_CONFIGURE_OPTS) CFLAGS="$(TARGET_CFLAGS)  -I$(LINUX_DIR)/include"
endef


# Specify where and how to install the program. Since we only have one file,
# the helloworld executable, install it by copying it to the /bin directory on
# the router. The $(1) variable represents the root directory on the router running
# OpenWrt. The $(INSTALL_DIR) variable contains a command to prepare the install
# directory if it does not already exist.  Likewise $(INSTALL_BIN) contains the
# command to copy the binary file from its current location (in our case the build
# directory) to the install directory.
#$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/redis-server $(1)/bin/
define Package/redis/install
        $(INSTALL_DIR) $(1)/bin
        $(INSTALL_BIN) $(PKG_BUILD_DIR) /src/redis-server $( 1 )/bin/ ($(INSTALL_BIN) $(PKG_BUILD_DIR)/src/redis-cli $( 1 )/bin/ )
endef
# This line executes the necessary commands to compile our program.
# The above define directives specify all the information needed, but this
# line calls BuildPackage which in turn actually uses this information to
# build a package.

$(eval $(call BuildPackage,redis))

 


-------------------******************************** Makefile end ********************************************
Modify src in src The config.h file (that is, the config.h file in the redis directory)
vim src/src/config.h
Note out #define HAVE_BACKTRACE 1, as shown below

 


Then go back to widora's sdk directory, make menuconfig, find Diy pack to enter, select redis (if it is ipk, mark it as M, if it is compiled into firmware, it is *)
and then make -j4 normally. If everything goes well, in the bin of sdk The ipk file prefixed with redis can be found in /ramips/packages/base/,
download the corresponding ipk and upload it to neo or bit3, bit4, opkg install redis_xxx.ipk

 


Create a redis.conf file with the following content

bind 127.0.0.1
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /tmp/redis_6379.pid
loglevel notice
logfile ""
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes

 


Then redis-server your path/redis.conf to start redis
running effect

 


Client (the package required for client compilation is redis-cli, and the Makefile should be modified accordingly. The Makefile I gave above has a comment section) Measured connection:

 


ok, done

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324812465&siteId=291194637