为基于busybox根文件系统的ARM嵌入式Linux交叉编译dropbear使能SSH
原创作品,允许转载,转载时请务必以超链接形式标明文章、作者信息和本声明,否则将追究法律责任。
最近使用busybox为基于ARM的板卡定制了一个极简单的根文件系统,由于busybox仅支持telnet而不支持ssh,本文将详细描述如何交叉编译dropbear并将其移植到目标板卡上使能dropbear。
目标环境:
CPU:ARM
内核版本:4.X
工具下载:
第一步:编译zlib-1.2.8
下载zlib-1.2.8.tar.gz,笔者将其放在/home/liangwode/test目录下。
mkdir -pv build/zlib build/dropbear
tar xvzf zlib-1.2.8.tar.gz
cd zlib-1.2.8
进入解压缩后的zlib目录,配置zlib
./configure --prefix=/home/liangwode/test/build/zlib
修改生成的Makefile
CC=arm-linux-gnueabi-gcc(根据所使用的交叉工具链修改)
AR=arm-linux-gnueabi-ar
RANLIB=arm-linux-gnueabi-ranlib
LDCONFIG=arm-linux-gnueabi-ldconfig
LDSHARED=$(CC) -shared -Wl,-soname,libz.so.1,--version-script,zlib.map
CPP=$(CC) -E
编译并安装
make && make install
在/home/liangwode/test/build/zlib下就生成了zlib库的相关文件
第二步:编译dropbear
回到/home/liangwode/test,解压缩dropbear
bzip2 -d dropbear-2016.74.tar.bz2
tar xvf dropbear-2016.74.tar
进入dropbear目录,配置dropbear
cd dropbear-2016.74
./configure --prefix=/home/liangwode/test/build/dropbear --with-zlib=/home/liangwode/test/build/zlib CC=arm-linux-gnueabi-gcc --host=arm
编译并安装
make
make scp
make install
拷贝scp到安装目录
cp scp /home/liangwode/test/build/dropbear/bin
第三步:移植到目标板
先挂载目标板的根文件系统,笔者使用TF卡,分了两个区,一个是boot,一个是sysroot
mount /dev/sdc2 /mnt/sysroot
拷贝库及可执行文件到目标系统
cp -frP /home/liangwode/test/build/zlib/lib/* /mnt/sysroot/usr/lib
cp -fP /home/liangwode/test/build/dropbear/bin/* /mnt/sysroot/usr/sbin
cp -fP /home/liangwode/test/build/dropbear/sbin/* /mnt/sysroot/usr/sbin
sync
卸载SD卡,并启动目标板
umount /mnt/sysroot
创建dropbear配置目录,并生成密钥
mkdir /etc/dropbear
cd /etc/dropbear
dropbearkey -t rsa -f dropbear_rsa_host_key
dropbearkey -t dss -f dropbear_dss_host_key
添加系统启动服务
vi /etc/init.d/rcS
添加
/usr/sbin/dropbear
重启目标板,用PC通过ssh远程登录即可(用已有的账号密码)。
为基于busybox根文件系统的ARM嵌入式Linux交叉编译dropbear使能SSH的更多相关文章
- 交叉编译VIM并移植到ARM嵌入式Linux系统
原创作品,允许转载,转载时请务必以超链接形式标明文章.作者信息和本声明,否则将追究法律责任. 众所周知,vim是vi的增强版本,实际体验要比vi好用很多,由于笔者为ARM系统制作的基于busybo ...
- 调试exynos4412—ARM嵌入式Linux—LEDS/GPIO驱动之二
/** ****************************************************************************** * @author 暴走的小 ...
- 调试exynos4412—ARM嵌入式Linux—LEDS/GPIO驱动之一
/** ****************************************************************************** * @author 暴走的小 ...
- 调试exynos4412—ARM嵌入式Linux—LEDS/GPIO驱动之三
/** ****************************************************************************** * @author 暴走的小 ...
- Holer实现外网访问ARM嵌入式Linux系统
公网访问ARM嵌入式Linux系统 实验室里的ARM嵌入式Linux系统,只能在局域网内访问,怎样从公网也能访问内网ARM嵌入式Linux系统? 本文将介绍使用holer实现的具体步骤. 1. 准备工 ...
- 外网访问ARM嵌入式Linux系统
外网访问ARM嵌入式Linux系统 实验室里的ARM嵌入式Linux系统,只能在局域网内访问,怎样从外网也能访问ARM嵌入式Linux系统? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并 ...
- busybox根文件系统使用记录
1.DHCP功能配置 1.1.配置Linux内核使能DHCP相关选项: [*]Networking support --> Networking support Networking optio ...
- 交叉编译HTOP并移植到ARM嵌入式Linux系统
原创作品,允许转载,转载时请务必以超链接形式标明文章.作者信息和本声明,否则将追究法律责任. 最近一直在完善基于Busybox做的ARM Linux的根文件系统,由于busybox是一个精简的指令集组 ...
- 【转】基于Qt, TUIO和TSLIB的嵌入式Linux下的多点触摸设计
这个教程描述了在嵌入式linux下使用Qt如何设置一个支持多点触摸和单点触摸的输入系统.这里假定你已经有了对应的驱动程序,驱动可以从触摸屏的厂商那里获得或者使用一个linux 内核源码中已经存在的驱动 ...
随机推荐
- 牛客小白月赛2 H 武 【Dijkstra】
链接:https://www.nowcoder.com/acm/contest/86/H来源:牛客网 题目描述 其次,Sεlιнα(Selina) 要进行体力比武竞赛. 在 Sεlιнα 所在的城市, ...
- 用python写一个类似于linux中的tree
import os filePath = 'g:/File' j = 0 # 查找的深度计数 def tree(filePath,j): dir_now = os.listdir(filePath) ...
- 【Python3】操作文件,目录和路径
1.遍历文件夹和文件 Python代码 import os import os.path rootdir = "d:/test" for parent,dirnames,fi ...
- auto用法
在C++11中,如果编译器在定义一个变量的时候可以推断出变量的类型,不用写变量的类型,你只需写auto即可. 第一种用法:自动推到内置类型 int x = 100; //C++ 11 auto x = ...
- BZOJ 1441: Min(裴蜀定理)
BZOJ 1441:Min Description 给出n个数(A1...An)现求一组整数序列(X1...Xn)使得S=A1*X1+...An*Xn>0,且S的值最小 Input 第一行给出数 ...
- Pandas 索引和切片
Series和Datafram索引的原理一样,我们以Dataframe的索引为主来学习 列索引:df['列名'] (Series不存在列索引) 行索引:df.loc[].df.iloc[] 选择列 / ...
- python基础之生成器、三元表达式、列表生成式、生成器表达式
生成器 生成器函数:函数体内包含有yield关键字,该函数执行的结果是生成器,生成器在本质上就是迭代器. def foo(): print('first------>') yield 1 pri ...
- TouTiao开源项目 分析笔记5
1.深入理解RxJava 1.1.基本上现在的APP都会有请求网络,然后处理回调的业务吧. 如果请求的数据很多,业务越来越复杂,怎么处理呢? 这里我用到了RxJava来帮我处理业务. RxJava主要 ...
- 3,Python常用库之三:Matplotlib
一.Matplotlib基础知识 Matplotlib中的基本图表包括的元素 x轴和y轴 axis水平和垂直的轴线 x轴和y轴刻度 tick刻度标示坐标轴的分隔,包括最小刻度和最大刻度 x轴和y轴刻度 ...
- FastJson 打Release 包解析失败
debug 的时候,fastJson 解析数据正常.但是打了release 的时候,解析的List 总是null. 找了半天,发现,是fastJson 是对泛型有问题. 解决办法: -keepattr ...