This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
0 简介
本文章介绍设计Linux开发所需的工具、环境的搭建。 本文使用的电脑系统是Linux的发行版,使用什么发行版,可以自行选择,本文主要使用Ubuntu发行版。为什么使用Linux系统,是由于在Linux系统开发时,需要使用到交叉编译器(x86_64_arm-linux-gnueabihf),而在Win10和Mac系统,均目前没有交叉编译器,无法进行编译,所以目前只有在Linux系统下才可以开发。 本章推荐使用实体机的Linux系统,以Ubuntu系统为例。许多其他资料均是在Windows系统下安装虚拟机,虚拟机中安装Linux系统。虽然Windows系统软件很丰富,但是在用笔记本开发的时候,性能往往不够,编译时间很长。并且在调试设备通信时,经常会有奇葩问题,使得通信失败,多数与虚拟机相关。为了减少这些不必要的麻烦,本文安装实体Linux系统。 对于Linux系统开发的设计者,在使用Linux系统下的软件,完全够用,在Linux系统下可以安装微信、TIM、KiCAD、WPS、Steam等等。
1 必要工具
本章所安装的所有软件、插件均无安装顺序。
1.1 VScode编译器
在Linux系统中可以使用vim、nano等编译器,但是这些不便于编写代码,并且没有文本高亮等小功能。相对来说VScode较为好用,且较为美观,可以DIY插件,通过插件可以创建自己喜欢的VScode界面。 VScode官网: https://code.visualstudio.com/ 直接下载deb文件,找到下载后的文件夹位置,使用dpkg安装命令安装。sudo dpkg -i code_1.55.2-1618307277_amd64.deb 推荐VScode安装的插件:
- Chinese (Simplified)
- ARM
- C/C++
- One Dark Pro
- Markdown Preview Enhanced
- C/C++ Snippets
- C/C++ Advanced Lint
- Code Runner
- Include AutoComplete
- Rainbow Brackets
- GBKtoUTF8
- vscode-icons
- compareit
- DeviceTree
- TabNine
- Gitee
以上插件建议全部安装上。
1.2 GCC交叉编译器
GCC是以GPL许可证所发行的自由软件,也是GNU计划的关键部分。GCC的初衷是为GNU操作系统专门编写一款编译器,现已被大多数类Unix操作系统(如Linux、BSD、MacOS X等)采纳为标准的编译器,甚至在微软的Windows上也可以使用GCC。GCC支持多种计算机体系结构芯片,如x86、ARM、MIPS等,并已被移植到其他多种硬件平台。——摘自百度百科。 为什么使用GCC交叉编译器,主要就是使用x86的CPU编译处ARM架构的代码,其实也可以使用arm环境编译arm的文件,但是由于我们常用的arm相比与x86架构芯片性能过低,所以还是在x86上安装GCC来编译奥arm代码即可。就目前2021/6/15为止,苹果的M1芯片还是没有对应的Linux内核,虽然官方已经提供公测版,但是bug很多。我个人还是希望M1尽早有Linux的发行版操作系统。 这里使用的是linaro家的gcc交叉编译器,下面图中就是linaro官网,网址:https://www.linaro.org/projects/ 点击download,选着gnu工具链,找到相应的文件。 选择该路径即可gnu-toolchain/10.2-2021.04-1/arm-linux-gnueabihf ,其中二级目录中是gcc版本,主要是对应内的arm-linux-gnueabihf文件夹下的文件,选着对应的文件,注意文件后缀名和文件大小。 接下就是安装gcc工具链。 (1)在usr/local/目录下创建一个arm文件夹。sudo mkdir arm (2)把下载好的gcc工具复制到上面创建的文件夹下。sudo cp gcc-linaro-10.2.1-2021.04-x86_64_arm-linux-gnueabihf.tar.xz /usr/local/arm/ (3)在arm文件夹下将复制过来的文件解压。sudo tar -xvf gcc-linaro-10.2.1-2021.04-x86_64_arm-linux-gnueabihf (4)此时需要添加刚才解压的文件中的bin文件夹绝对地址的环境变量。打开/etc/profile文件sudo nano /etc/profile 。 (5)在profile文件中最后面添加export PATH=$PATH:/usr/local/arm/gcc-linaro-10.2.1-2021.04-x86_64_arm-linux-gnueabihf/bin (6)重启即可系统reboot 或者注销 (7)重启后,打开terminal输入arm-linux-gnueabihf-gcc -v (8)有以下输出即安装成功。
1.3 NFS服务器
网络文件系统( NFS ) 是一种分布式文件系统协议,最初由Sun Microsystems (Sun)于1984年开发,允许客户端计算机上的用户通过计算机网络访问文件,就像访问本地存储一样。NFS与许多其他协议一样,建立在开放网络计算远程过程调用(ONC RPC) 系统之上。NFS是在征求意见稿(RFC)中定义的开放标准,允许任何人实施该协议。——摘自Wikipedia 安装NFS服务器主要就是在开发板上使用NFS挂载根文件系统,开发板上的根文件系统是由NFS挂载的,可以在电脑端直接修改NFS文件夹中相应的文件。NFS挂载该文件系统一般都是用于开发阶段,这样可以不需要反复烧写根文件系统,一般将开发好后的系统再用SD卡等烧写到开发板中。
1.3.1 NFS安装
安装NFS服务器命令,直接在terminal中输入sudo apt-get install nfs-kernel-server rpcbind 创建NFS文件夹,用来共享NFS文件夹中文件,这里在Linux文件夹下创建NFS即可,也可以在其他地方随意,~/linux$ mkdir nfs 修改NFS文件夹权限sudo chmod 777 nfs 配置NFS服务器,在/etc/exports中添加刚才创建的NFS路径和参数。/home/mannix/linux/nfs *(rw,sync,no_root_squash) 添加好配置后重启nfs服务器即可,sudo /etc/init.d/nfs-kernel-server restart
1.4 TFTP服务器
简单文件传输协议也称小型文件传输协议(Trivial File Transfer Protocol, TFTP),是一种于1981年在RFC 783中定义的简化的文件传输协议(FTP)。 小型文件传输协议非常简单,透过少量存储器就能轻松实现——这在当时是很重要的考虑因素。所以TFTP被用于引导计算机,例如没有大容量存储器的路由器。现在它仍然被用于在一个网络上主机之间传输小文件,例如从一台网络主机或服务器引导一个远程X Window System终端或其他的瘦客户端。——摘自Wikipedia 在开发板中使用tftp可以直接从电脑端加载kernel和dtb文件。
1.4.1 TFTP安装
*安装命令:sudo apt install tftp-hpa tftpd-hpa *创建tftp文件夹:mkdir ~/linux/tftp *修改文件权限:sudo chmod 777 ~/linux/tftp *修改配置文件:sudo vim /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/mannix/linux/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"
*重启tftpd-hpa:sudo service tftpd-hpa restart *查看是否安装成功:sudo service tftpd-hpa status
1.5 Minicom终端
Minicom 是一个用于类 Unix 操作系统的基于文本的调制解调器控制和终端仿真程序,最初由 Miquel van Smoorenburg 编写,并模仿流行的 MS-DOS 程序 Telix。 Minicom 包括拨号目录、ANSI 和 VT100 仿真、(外部)脚本语言和其他功能。 Minicom 是一个菜单驱动的通信程序。 它还具有自动 ZMODEM 下载。 Minicom 的一个常见用途是设置远程串行控制台,这可能是 LAN 关闭时访问计算机的最后手段。 只需使用带有 Minicom 软盘发行版(例如 Pitux 或 Serial Terminal Linux)的 386 笔记本电脑即可完成此操作。——摘自Wikipedia
1.5.1 Minicom安装
安装命令:sudo apt-get install minicom 配置minicom参数:sudo minicom -s 选择Serial port setup 配置如下
Serial Device : /dev/ttyUSB0
Hardware Flow Control : No
启动命令:minicom -c on
本章节到此结束,原文章中还有一些涉及到git、vim、ftp、微信、美化等均不介绍了,等着大家自己发掘,发现其中乐趣。 下一个文章主要就是讲解Linux内核移植
此资料为岩环科技的技术资料,本资料不保证内容的有效性,仅供个人或单位需要此资料的人员使用。经过岩环科技书面允许和依照与岩环科技的协议获得授权,否则不得以任何方式进行盈利。资料中含有转自网络文章,如有侵权,请联系岩环科技进行删除。 以上声明的解释权归“岩环科技”所有。 This data is the technical data of Yanhuan Technology. This data does not guarantee the validity of the content, and is only used by individuals or units who need this data. With the written permission of Yanhuan Technology and the authorization obtained in accordance with the agreement with Yanhuan Technology, otherwise no profit shall be made in any way. The data contains articles reposted from the Internet. If there is any infringement, please contact Yanhuan Technology to delete it. The right to interpret the above statement belongs to “Yanhuan Technology”.
|