海运的博客

ubuntu交叉编译aarch64/arm ssdb

发布时间:September 27, 2020 // 分类: // No Comments

交叉编译环境:

wget https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
tar -Jxf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz 
export PATH=$PATH:"`pwd`/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/"
export CC=aarch64-linux-gnu-gcc
export CXX=aarch64-linux-gnu-g++
export LD=aarch64-linux-gnu-ld
export AR=aarch64-linux-gnu-ar
export RANLIB=aarch64-linux-gnu-ranlib

单独编译jemalloc、leveldb和snappy:

git clone https://github.com/ideawu/ssdb.git
cd ssdb/deps/jemalloc-4.1.0/
./autogen.sh --host=aarch64-linux-gnu && make
cd ../leveldb-1.20/
make
cd ../snappy-1.1.0/
./configure --host=aarch64-linux-gnu && make
cd ../../

编译ssdb:

cat > build_config.mk <<EOF
CFLAGS = -DNDEBUG -D__STDC_FORMAT_MACROS -Wall -O2 -Wno-sign-compare
CFLAGS += -I "`pwd`/deps/leveldb-1.20/include"
CFLAGS += -I "`pwd`/deps/jemalloc-4.1.0/include"
CFLAGS += -DNEW_MAC
CLIBS = "`pwd`/deps/leveldb-1.20/out-static/libleveldb.a"
CLIBS += "`pwd`/deps/snappy-1.1.0/.libs/libsnappy.a"
CLIBS += "`pwd`/deps/jemalloc-4.1.0/lib/libjemalloc.a"
CLIBS += -pthread -lrt
EOF
sed -i 's/\$(shell sh/#\$(shell sh/' Makefile 
sed -i 's/chmod u+x "\${LEVELDB_PATH}/#chmod u+x "\${LEVELDB_PATH}/' Makefile 
sed -i 's/cd "\${LEVELDB_PATH}/#cd "\${LEVELDB_PATH}/' Makefile 
make

systemd管理:

[Unit]
Description=ssdb service
After=network.target

[Service]
LimitNOFILE=65535
Type=simple
User=ssdb
#PIDFile=/var/run/ssdb.pid
ExecStart=/usr/local/ssdb/ssdb-server /usr/local/ssdb/ssdb.conf -s start
ExecStop=/usr/local/ssdb/ssdb-server /usr/local/ssdb/ssdb.conf -s stop
#Restart=always
#RestartSec=5
#StartLimitBurst=3
#StartLimitInterval=60
#StandardOutput=null
#StandardError=null

[Install]
WantedBy=multi-user.target

使用ssdb用户运行,新建用户,数据目录给予权限:

useradd -M -s /usr/sbin/nologin ssdb
chown -R ssdb:ssdb /ssdb-data/

标签:none

发表评论

分类
最新文章
最近回复
  • 海运: 换回了5.3内核,5.8用5.3 dtb虽然能开机且负载正常,但也有其它问题,不建议使用。
  • shangyatsen: 后面的内核高精度计时器的问题使用5.4或者5.3的dtb会正常吗?我也发现有这个日志出现。感觉...
  • 海运: 缺少相应模块?
  • lee: 你好,我执行这条语句 iptables -t mangle -A PREROUTING -m ...
  • 海运: 只更新rootfs,不更新内核,我在用5.3配19.10,懒得再升最新版了,很稳定。 注意:更...
  • lyly168: 这是手动挂载吧,请问自动挂载要怎么弄?
  • swswsw1: 请问升级后,内核更新了吗?听说N1只有在5.0.2的内核下才稳定,怕升级了之后功耗太高
  • 海运: LOG_LEVEL是配置文件变量,本文配置使用systemd启动在EnvironmentFil...
  • 1: 我源碼沒有任何修改,同樣編譯的在X86上可以正常運行。然後原封不動編譯aarch64就提示以上錯誤。
  • 海运: 你配置变量有问题?LOG_LEVEL? https://github.com/dani-gar...