1.本文说明2.基本工具3.基本思想4.操作流程4.1 第一步ubuntu上安装tfp4.2 Windows上VS Code的操作5. 测试与使用6.总结
1.本文说明
嵌入式Linux开发往往都会面临一个问题,就是查看代码与编写代码在Windows操作系统上比较方便,同时相关的工具也比较的齐全,用起来也比较的顺手。但是往往嵌入式的编译却需要在宿主机上进行,这样就会带来很多不方便。开发效率也比较低,下面分享一下我是如何搭建嵌入式开发环境的。
2.基本工具
1.虚拟机工具VMware Workstation 12 Player
在虚拟机上运行一个Ubuntu16.04作为宿主机,该工具使用免费版本即可,无需破解。
2.SSH远程连接工具MobaXterm
之前采用xshell,由于MobaXterm直接集成了sftp,所以不需要xftp。这个工具作为连接宿主机的工具是极好不过的。
3.串口调试工具xshell
xshell的强大之处在于可以同时开几个终端,而且稳定可靠,连接开发板,打印出来的信息看起来很整洁。
4.代码编辑工具Visual Studio Code
强大的文字编辑工具,浏览内核代码,写程序,效果就不用介绍了。
5.vscode插件ftp-sync
有了这个工具,在Windows上编辑的代码就能够及时的同步到Linux平台下。
3.基本思想
之前采用过nfs同步文件,Windows上直接挂在nfs目录。发现代码量大了之后会导致电脑卡顿或者有时会出现蓝屏的问题,所以采用ftp直接传文件,修改一个传一个这样效率又很低,所以看到了vscode上有个ftp-sync插件,只需要两端的文件结构一样,vscode保存文件后就可以自动上传修改的代码,使用起来十分的方便。下面详细介绍一下使用方法。
4.操作流程
4.1 第一步ubuntu上安装tfp
查看是否已经安装
代码语言:javascript复制vsftpd -v
没有安装,提示信息如下
输入sudo apt-get install vsftpd
进行安装
接着修改配置文件
代码语言:javascript复制sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.bat
sudo vim /etc/vsftpd.conf
其中vsftpd.con的文件内容如下所示
代码语言:javascript复制# 禁止匿名用户登录
anonymous_enable=NO
# 允许系统用户登录
local_enable=YES
# 启用可以修改文件的 FTP 命令
write_enable=YES
# 本地用户创建文件的 umask 值
local_umask=022
# 允许为目录配置显示信息,显示每个目录下面的message_file文件的内容
dirmessage_enable=YES
# 开启日记功能
xferlog_enable=YES
# 使用标准的20端口来连接ftp
connect_from_port_20=YES
# 使用标准日志格式
xferlog_std_format=YES
# 如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录
chroot_list_enable=YES
# 指定限制的用户文件
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
# ftp服务器将处于独立启动模式
listen=YES
# 设置一个本地用户登录后进入到的目录
local_root=/home/bigmagic/code
# 设置PAM认证服务的配置文件名称,该文件保存在“/etc/pam.d/”目录下
pam_service_name=vsftpd
# ftp将检查userlist_file设置文件中指定的用户是否可以访问vsftpd服务器
userlist_enable=YES
# 只允许user_list文件中记录的ftp用户能登录vsftp服务,其他的ftp用户都不可以登录。
userlist_deny=NO
# 定义限制/允许用户登录的文件
userlist_file=/etc/vsftpd/allowed_users
# ftp服务器将使用tcp_wrappers作为主机访问控制模式
tcp_wrappers=YES
# 连接ftp服务费使用的端口
listen_port=21
allow_writeable_chroot=YES
其中需要自己修改的是local_root=/home/xxx
,注意可以访问的目录的权限
然后添加ftp服务可以访问的用户
代码语言:javascript复制sudo vim /etc/vsftpd/allowed_users
sudo vim /etc/vsftpd/vsftpd.chroot_list
新增用户或者自己创建用户,里面一行代表一个用户
启动并验证
代码语言:javascript复制sudo service vsftpd start
sudo service vsftpd stauts
看到以下信息表示启动成功
代码语言:javascript复制bigmagic@ubuntu:~$ /etc/init.d/vsftpd status
● vsftpd.service - vsftpd FTP server
Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
Active: active (running) since 日 2019-02-17 23:16:08 CST; 9min ago
Main PID: 2042 (vsftpd)
CGroup: /system.slice/vsftpd.service
└─2042 /usr/sbin/vsftpd /etc/vsftpd.conf
2月 17 23:16:08 ubuntu systemd[1]: Starting vsftpd FTP server...
2月 17 23:16:08 ubuntu systemd[1]: Started vsftpd FTP server.
2月 17 23:25:11 ubuntu systemd[1]: Started vsftpd FTP server.
bigmagic@ubuntu:~$
在Windows的浏览器上访问,IP地址取决于宿主机的IP地址。
代码语言:javascript复制ftp:192.168.1.8
如果浏览器窗口可以正常的看到ubuntu上的文件表示启动成功
4.2 Windows上VS Code的操作
Windows操作系统作为主要开发系统,利用VS Code进行代码编写,搜索扩展功能的tfp-sync插件
安装完成后可以按照下面的步骤进行操作
新建一个工作目录,并用VS Code打开
快捷键Ctrl Shift P,输入Ftp-sync:Init回车用于初始化目录
5. 测试与使用
环境搭建完成,可以进行测试工作。首先要保证两点:
1.打开的目录用Ftp-sync:Init初始化过,会生成一个ftp-sync.json文件
2.宿主机指定的目录中需要和remotePath指定的目录一致,比如设置的remote目录为/.,那么宿主机配置的ftp的目录为/home/bigmagic/code,所以在/home/bigmagic/code目录下是同步的。
3.文件夹的权限,如果不确定,可以设置为777权限
代码语言:javascript复制chmod -R code/
Windows上创建一个文件
然后在vscode上选择右键同步即可
也可以在ubuntu上创建,远程拉取文件下来。
并且有最大的好处是在Windows上保存代码后,会自动上传。
6.总结
环境搭建是提高嵌入式开发效率的很好的手段,所以在做开发之前,先用好工具,再有了好工具之后也会提高开发的效率和开发的水平,节省时间。