SSH的移植与使用
SSH可以从buildroot获得:
# cd buildroot-2020.05/
# ARCH=arm make menuconfig
# cp .config ./configs/ssd20x_defconfig -f
# make BR2_JLEVEL=4
# cp ./output/images/rootfs.tar ../project/image/rootfs/rootfs.tar -f
# cd ../project/image/rootfs
# rm rootfs/* -rf
# tar -xvf rootfs.tar -C ./rootfs/
# tar -cvf rootfs.tar.gz ./rootfs
# cd ../../../
重新编译固件并更新rootfs:
# ./Release_to_customer.sh -f nand -p ssd201
系统启动后,发现ssh没有自启动:
# ps | grep ssh
手动启动失败:
# /etc/init.d/S50sshd start
修改/var/empty的权限:
# chown root:root /var/empty
# /etc/init.d/S50sshd start
设置一下root的账号密码:
# passwd root
开放root登陆权限:
# vi /etc/ssh/sshd_config
重新开启sshd:
# /etc/init.d/S50sshd restart
验证:
成功登陆后,发现/dev/的一些设备节点不见了:
# ls /dev/mi*
经过检查,是重复执行了/etc/profile的”mount -t tmpfs mdev /dev”导致,因此,我把不希望重复执行的动作放到/etc/init.d/rcS中:
# vi /etc/profile
# vi /etc/init.d/rcS
这样修改后,通过ssh登陆,设备节点还是正常存在:
在SDK中完成以上修改。
首先是profile及rcS相关:
# vi project/image/configs/i2m/rootfs.mk
接着是/var/empty及sshd_config相关:
# vi project/image/configs/i2m/rootfs.mk
+ sed -i 's/\#PermitRootLogin prohibit-password/PermitRootLogin yes/' $(OUTPUTDIR)/rootfs/etc/ssh/sshd_config
# cp project/image/output/rootfs/etc/init.d/S50sshd project/image/rootfs_add_files/etc/init.d/
# vi project/image/rootfs_add_files/etc/init.d/S50sshd
+ chown root:root /var/empty
最后是默认的账号密码,相关文件是/etc/shadow和/etc/passwd,从已经配置好密码的开发板拷贝:
# ls -l project/image/rootfs_add_files/etc/shadow*
# ls -l project/image/rootfs_add_files/etc/passwd*
重新编译固件并更新rootfs:
# ./Release_to_customer.sh -f nand -p ssd201
系统启动后,直接使用root(密码为123456)登陆成功:
我把修改好的相关文件拷贝到V30/about_2D07/ssh/下。
文档更新时间: 2021-08-17 14:45 作者:Aeeditor