嵌入式Linux安装Dropbear
开发环境
- 嵌入式Linux平台: ARM 7 (IMX6ULL)
- 嵌入式Linux内核版本:4.1.15
- 宿主系统: Ubuntu 16.04
- LTS SSH程序: dropbear 2017.75
- zlib版本:1.2.11
下载相应软件
- zlib : http://www.zlib.net/
- dropbear : http://matt.ucc.asn.au/dropbear/releases/
- 嵌入式平台的交叉编译器
交叉编译
1. zlib编译
- 1)解压zilb
tar -zxvf zlib1.2.8.tar.gz
- 2)新建存放目录
mkdir zlib
- 3)配置zlib
cd zlib1.2.8
./configure --prefix=/home/user/zilb
- 4)修改Makefile
vi Makefile
CC=arm-linux-gnueabihf-gcc //博主吧交叉编译工具添加进了环境变量,没加的画要使用交叉编译工具的绝对路径
AR=arm-linux-gnueabihf-ar
RANLIB=arm-linux-gnueabihf-gcc-ranlib
LDSHARED=arm-linux-gnueabihf-gcc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map
主要是将原有的gcc编译改成我们的交叉编译工具
- 4)make编译
make
make install
编译完成就会发现在zlib目录下生成的zile可执行文件
2.dropbear编译
- 解压文件
tar -jxvf dropbear-2017.75.tar.bz2
- 新建存放目录
mkdir dropbear
- 配置dropbear
cd dropbear-17.75
./configure --prefix=/home/user/dropbear --with-zlib=/home/user/zlib CC=arm-linux-gnueabihf-gcc --host=arm
根据自己的zlib存放路径和交叉编译工具更改
7. make编译
make
make install
由于没有编译scp所以我们要在编译scp
make scp
cp scp /usr/local/dropbear/bin/
移植到开发板
将编译出来的dropbear/bin/和dropbear/sbin/下的文件全部复制到嵌入式平台上的/usr/sbin
将编译出来的zlib/lib/下的全部文件复制到嵌入式平台上的/usr/lib
(这点非常重要很多移植不成功都行是缺少lib文件)
博主的嵌入式平台根文件系统是通过Ubuntu下nfs挂载上去的,可以直接复制
cp /home/user/dropbear/bin/* /home/user/nfs/rootfs/usr/sbin
cp /home/user/dropbear/sbin/* /home/user/nfs/rootfs/usr/sbin
cp /home/user/zlib/lib/* /home/user/nfs/rootfs/usr/lib
板上生成server key
在板上执行
cd /etc
mkdir dropbear
cd dropbear
dropbearkey -t rsa -f dropbear_rsa_host_key
dropbearkey -t dss -f dropbear_dss_host_key
这个路径和目录名是固定的
嵌入式平台配置
ssh服务要求必须有用户和密码,没有的话自行创建
useradd user0
passwd user0
有些嵌入式平台系统裁剪的比较多,可能连用户和密码管理文件都没有,最好先确认下有可以用密码登上的用户(博主的平台就没有这些所以在这卡了好久),如果不行,自行百度怎么添加
配置开机自启
在嵌入式平台/etc/init.d/rcS文件最后一行添加 /usr/sbin/dropbear
博主跟文件系统是nfs挂在的所以比较简单
vi /home/user/nfs/rootfs/etc/init.d/rcS
然后在最后一行添加
/usr/sbin/dropbear
保存退出重启开发板