为基于busybox根文件系统的ARM嵌入式Linux交叉编译dropbear使能SSH

2019-07-13 08:51发布

最近使用busybox为基于ARM的板卡定制了一个极简单的根文件系统,由于busybox仅支持telnet而不支持ssh,本文将详细描述如何交叉编译dropbear并将其移植到目标板卡上使能dropbear。 目标环境:CPU:ARM内核版本:4.X工具下载:    zlib-1.2.8    dropbear-2016.74.tar.bz2 第一步:编译zlib-1.2.8    下载zlib-1.2.8.tar.gz,笔者将其放在/home/liangwode/test目录下。    ?123mkdir -pv build/zlib build/dropbeartar xvzf zlib-1.2.8.tar.gzcd zlib-1.2.8  进入解压缩后的zlib目录,配置zlib?1./configure --prefix=/home/liangwode/test/build/zlib  修改生成的Makefile?123456CC=arm-linux-gnueabi-gcc(根据所使用的交叉工具链修改)AR=arm-linux-gnueabi-arRANLIB=arm-linux-gnueabi-ranlibLDCONFIG=arm-linux-gnueabi-ldconfigLDSHARED=$(CC) -shared -Wl,-soname,libz.so.1,--version-script,zlib.mapCPP=$(CC) -E  编译并安装?1make && make install  在/home/liangwode/test/build/zlib下就生成了zlib库的相关文件 第二步:编译dropbear  回到/home/liangwode/test,解压缩dropbear?12bzip2 -d dropbear-2016.74.tar.bz2tar xvf dropbear-2016.74.tar  进入dropbear目录,配置dropbear?12cd dropbear-2016.74./configure --prefix=/home/liangwode/test/build/dropbear --with-zlib=/home/liangwode/test/build/zlib CC=arm-linux-gnueabi-gcc --host=arm  编译并安装 ?123makemake scpmake install  拷贝scp到安装目录?1cp scp /home/liangwode/test/build/dropbear/bin  第三步:移植到目标板  先挂载目标板的根文件系统,笔者使用TF卡,分了两个区,一个是boot,一个是sysroot?1mount /dev/sdc2 /mnt/sysroot  拷贝库及可执行文件到目标系统?1234cp -frP /home/liangwode/test/build/zlib/lib/* /mnt/sysroot/usr/libcp -fP /home/liangwode/test/build/dropbear/bin/* /mnt/sysroot/usr/sbincp -fP /home/liangwode/test/build/dropbear/sbin/* /mnt/sysroot/usr/sbinsync  卸载SD卡,并启动目标板?1umount /mnt/sysroot  创建dropbear配置目录,并生成密钥?1234mkdir /etc/dropbearcd /etc/dropbeardropbearkey -t rsa -f dropbear_rsa_host_keydropbearkey -t dss -f dropbear_dss_host_key  添加系统启动服务?123vi /etc/init.d/rcS添加/usr/sbin/dropbear    重启目标板,用PC通过ssh远程登录即可(用已有的账号密码)。