原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章、作者信息和本聲明。否則將追究法律責任。 最近使用busybox為基於ARM的板卡定製了一個極簡單的根文件系統,由於busybox僅支持telnet而不支持ssh,本文將詳細描述如何交叉編譯dropbear並將其移植到目標板卡上使能dropbear ...
原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章、作者信息和本聲明。否則將追究法律責任。
最近使用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遠程登錄即可(用已有的賬號密碼)。