文档章节

记录一次widora sdk编译ipk 实战编译redis

o
 osc_z1hvg4cu
发布于 2018/04/24 20:05
字数 817
阅读 7
收藏 0

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>

 

 

因为业务需求,需要用到redis存储一点简单的数据,因为redis有良好的哈希机制,可以完美实现我的某些需求,但openwrt官方提供memcached的ipk并没有提供redis,没办法,只能自己编译了,编译的redis版本3.2.1
1.下载redis:http://download.redis.io/releases/redis-3.2.1.tar.gz
2.在openwrt-widora的package目录下创建redis目录,把解压出来的redis目录mv到此目录下,改名为src,在平级目录(openwrt-widora的package下刚刚创建的redis目录)下创建Makefile

 


内容如下:

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 *******************************************
修改src里的src下的config.h文件(也就是redis目录下的config.h文件)
vim src/src/config.h
把#define HAVE_BACKTRACE 1 注掉 ,如下图

 


然后回到widora 的sdk目录下,make menuconfig,找到Diy pack进入,选择redis(如果是ipk则标注为M,如果编译进固件则是*)
然后正常make -j4 如果一切顺利的话,在sdk的bin/ramips/packages/base/中可以找到前缀为redis的ipk文件
将对应ipk下载下来上传到neo或bit3、bit4中,opkg install redis_xxx.ipk即可

 


创建redis.conf文件,内容如下

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

 


然后 redis-server 您的路径/redis.conf 启动redis
运行效果

 


客户端(客户端编译需要的包为redis-cli,Makefile要对应修改一下,上边我给出的Makefile有注释这部分)实测连接:

 


ok,完工

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
OpenWrt-SDK-编译生成ipk软件包

版本:Barrier Breaker 类型:brcm2708 下载SDK:http://downloads.openwrt.org/barrierbreaker/14.07/brcm2708/generic/OpenWrt-SDK-brcm2708-for-linux-x8664-gcc-4.8-linaro_uClibc-0.9.3......

caoxin4813
2015/11/08
727
0
创建openwrt软件包

方法一 1、生成SDK make menuconfig选上“Build the OpenWRT SDK”,然后 Save,退出。再make一次。 make 完成之后,在 bin/ramips/ 目录下会生成SDK的压缩文件: OpenWrt-SDK-ramips-rt305...

Kent_0628
2015/12/12
106
0
Transmission在Pandorabox(Openwrt)下的交叉编译

本文主要讲述Transmission在Pandorabox(Openwrt)下的交叉编译(基于mipsel架构),编译方式原始,非生成ipk安装包而是直接可运行的二进制执行文件,需要自己手动去链接。 不生成ipk安装包是...

osc_ft59t5i9
2018/06/16
5
0
OpenWRT平台搭建及简单应用[转帖]+华为HG255D编译实践(20190323更新)

转自:http://www.cnblogs.com/zmkeil/archive/2013/04/17/3027385.html 对于HG255D参照这里:http://www.right.com.cn/forum/forum.php?mod=viewthread&tid=131349 这里也可以参考:http://......

osc_b1y21l0d
2019/02/21
5
0
openwrt框架分析

这次讲讲openwrt的结构. 1. 代码上来看有几个重要目录package, target, build_root, bin, dl.... ---build_dir/host目录是建立工具链时的临时目录 ---build_dir/toolchain-<arch>是对应硬件的...

DB_Terrill
2015/01/30
213
0

没有更多内容

加载失败,请刷新页面

加载更多

VB语言基础重要知识点12

我们课程,我们做一些针对于考试的简要讲解。 一、有关考试的几个问题 首先,提问:考试最重要的是什么? 答案其实很简单:得分!!!!! 想要得分,就要做到基本的保存。 保存哪些文件呢?...

刘金玉编程
2019/10/30
5
0
全网最全JAVA、Python电子书!限时领取,过时不候!

给大家整理了最全的入门+进阶书籍!!! 免费领取,无套路! 加微信发送“电子书” 秒通过,秒发资源! 本文分享自微信公众号 - Python进击者(JAVAandPythonJun)。 如有侵权,请联系 supp...

kuls
01/16
18
0
原创356--免费还是付费

最近得有一个星期,被一个录屏软件(record it)烦到了,本来免费版可以无限制录制,只能720p,GIF不支持,高清不支持,没有剪辑功能。 之前调研了好几种,用起来还是这个方便,就一直用了。...

八音弦
04/24
14
0
数字IC技术讨论群,设计和验证、前端和后端,总有你感兴趣的话题。快满了,需要的抓紧加入。

本文分享自微信公众号 - 白山头讲IC(gray_mount)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。...

白山头
04/29
5
0
how to install mongodb in centos7

[root@xtwj88 ~]# cat /etc/yum.repos.d/mongodb-org-4.2.repo [mongodb-org-4.2]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86......

qwfys
55分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部