為基於busybox根文件系統的ARM嵌入式Linux交叉編譯dropbear使能SSH


原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章、作者信息和本聲明,否則將追究法律責任。

 

  最近使用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目錄下。

    

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遠程登錄即可(用已有的賬號密碼)。

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM