嵌入式 Linux 应用开发
一、发行版 Linux 介绍
Linux 发行版(英语:Linux distribution,也被叫做 GNU/Linux 发行版),为一般用户预先集成好的Linux 操作系统及各种应用软件。一般用户不需要重新编译,在直接安装之后,只需要小幅度更改设置就可以使用,通常以软件包管理系统来进行应用软件的管理。Linux 发行版通常包含了包括桌面环境、办公包、媒体播放器、数据库等应用软件。这些操作系统通常由 Linux 内核、以及来自 GNU 计划的大量的函数库,和基于 X Window 的图形界面。有些发行版考虑到容量大小而没有预装 X Window,而使用更加轻量级的软件,如:busybox,UClibc 或 dietlibc。现在有超过 300 个 Linux 发行版(Linux 发行版列表)。大部分都正处于活跃的开发中,不断地改进。
由于大多数软件包是自由软件和开源软件,所以 Linux 发行版的形式多种多样——从功能齐全的桌
面系统以及服务器系统到小型系统(通常在嵌入式设备,或者启动软盘)。除了一些定制软件(如安装和配置工具),发行版通常只是将特定的应用软件安装在一堆函数库和内核上,以满足特定用户的需求。
这些发行版可以分为商业发行版,比如 Ubuntu(Canonical 公司)、Fedora(Red Hat)、openSUSE(Novell)和 Mandriva Linux;和社区发行版,它们由自由软件社区提供支持,如 Debian 和 Gentoo。
二、常用工具
建议用xshell等软件连接虚拟机后安装这些工具,因为虚拟机的粘贴板与本机的粘贴板是不共用的,安装需要大量的cv操作,不能复制粘贴就很烦
net-tools
从 ubuntu18.04 版本开始,在系统中默认不支持 ifconfig 命令进行网络状态查看。需要安装 net-tools方可使用。
安装命令
linux@ubuntu:$ sudo apt-get update
linux@ubuntu:$ sudo apt install net-tools
vim
系统安装完成后自带的文本编辑器是 vi 编辑器,推荐使用 vim 编辑器进行文本编辑
安装命令
linux@ubuntu:$ sudo apt-get update
linux@ubuntu:$ sudo apt-get install vim
为了后续开发方便可以为 vim 安装一些辅助插件
将jeffy-vim-read.tar.gz 压缩包导入到虚拟机中
解压缩
linux@ubuntu:$ tar -xvf jeffy-vim-read.tar.gz
解压成功后会得到 jeffy-vim-read 文件夹,进入该文件夹下进行插件安装。
linux@ubuntu:$ ./install.sh
这里讲下如何将Windows下的文件传入虚拟机,我使用了finalshell,与虚拟机建立ssh连接,finalshell自带文件传输功能,当然用其他工具也可以,自行查阅下传输方法
这里的用户名及密码填写你对应虚拟机的用户名和密码
遇到一个问题:
虚拟机ifconfig后没有ip地址显示,或者是在Windows命令行下ip ping不通
问题解决:
linux终端输入命令sudo dhclient ens33(ens33相对应你的网卡,我的是ens33)获得ip地址
再次输入ifconfig就可以看到ip地址了
Windows命令行下如果能ping通此ip,即可ssh连接
ctags
安装命令
linux@ubuntu:$ sudo apt-get install ctags
openssh
安装命令
linux@ubuntu:$ sudo apt-get update
linux@ubuntu:$ sudo apt-get install openssh-server
TFTP 服务器
linux@ubuntu:$ sudo apt-get update
linux@ubuntu:$ sudo apt-get install tftp-hpa tftpd-hpa
在根目录下建立 tftp 工作目录
linux@ubuntu:$ sudo mkdir /tftpboot
修改 tftpboot 文件夹权限
linux@ubuntu:$ sudo chown linux:linux /tftpboot/
linux@ubuntu:$ sudo vi /etc/default/tftpd-hpa
将 TFTP_DIRECTORY="/var/lib/tftpboot"修改为 TFTP_DIRECTORY="/tftpboot"
重启 tftp 服务
linux@ubuntu:$ sudo service tftpd-hpa restart
NFS 服务
linux@ubuntu:$ sudo apt-get update
安装 NFS 服务器端
linux@ubuntu:$ sudo apt-get install nfs-kernel-server
安装 NFS 客户端
linux@ubuntu:$ sudo apt-get install nfs-common
建立 NFS 共享目录
linux@ubuntu:$ sudo mkdir /source
linux@ubuntu:$ sudo chown linux:linux /source
linux@ubuntu:$ mkdir /source/rootfs
添加共享目录
linux@ubuntu:$ sudo vi /etc/exports
若需要把 “/source/rootfs” 目录设置为 NFS 共享目录,在该文件末尾添加下面的一行
/source/rootfs *(rw,sync,no_root_squash,no_subtree_check)
注意这里不要打错字了,如果后续restart(重启)命令执行fail(失败),大概率是这里写错了
使能 NFS V2 版本
linux@ubuntu:$ sudo vi /etc/default/nfs-kernel-server
在文件的最后添加下面的配置
RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog"
重启 NFS
linux@ubuntu:$ sudo /etc/init.d/nfs-kernel-server restart
开发工具安装
linux@ubuntu:$ sudo apt-get update
linux@ubuntu:$ sudo apt-get install gawk wget git diffstat unzip texinfo gcc-multilib chrpath socat cpio
python python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping build-essential
linux@ubuntu:$ sudo apt-get install libsdl1.2-dev xterm
linux@ubuntu:$ sudo apt-get install make xsltproc docbook-utils fop dblatex xmlto
linux@ubuntu:$ sudo apt-get install python-git-doc
linux@ubuntu:$ sudo apt-get install ncurses-dev libncurses5-dev libncursesw5-dev lib32ncurses5 libssl-
dev linux-headers-generic u-boot-tools device-tree-compiler bison flex g++ libyaml-dev
linux@ubuntu:$ sudo apt-get install python-crypto
linux@ubuntu:$ sudo apt-get install coreutils bsdmainutils sed curl bc lrzsz corkscrew cvs subversion
mercurial nfs-common nfs-kernel-server libarchive-zip-perl dos2unix texi2html diffstat libxml2-utils
linux@ubuntu:$ sudo apt-get install default-jre
linux@ubuntu:$ sudo apt-get install libyaml-dev libpython2.7-dev
linux@ubuntu:$ sudo apt install python3-pyelftools