基于立创泰山派的Linux驱动开发笔记
资料汇总
硬件设计
文档资料
视频资料
开发环境搭建
在虚拟机上安装 Ubuntu18
虚拟机介绍
虚拟机(Virtual Machine,简称VM)是一种计算机软件模拟的计算机系统。它模拟了足够多的硬件,以实现一个完整的、独立的计算环境,可以在一个物理机器(宿主机)上同时运行多个独立的操作系统(客户机操作系统)。
虚拟机的关键特性包括:
- 隔离性:每个虚拟机都运行在自己的环境中,与其他虚拟机和宿主机操作系统隔离,这意味着一个虚拟机的崩溃或故障不会影响到其他虚拟机或宿主机。
- 封装性:虚拟机通常以文件形式存在,可以很容易地备份、复制、迁移或恢复。
- 硬件无关性:虚拟机可以在不同的物理硬件上运行,只要该硬件上安装了相应的虚拟化软件。
- 资源分配:虚拟机可以指定分配给它的CPU、内存、存储和网络资源,允许用户根据需要调整资源分配。
虚拟机通常由以下几部分组成:
- 虚拟化层(Hypervisor):这是运行在物理硬件上的软件层,负责创建和管理虚拟机。根据虚拟化层实现方式和运行位置的不同,可以分为Type 1(裸机虚拟化,如VMware ESXi)和Type 2(宿主型虚拟化,如Oracle VirtualBox)。
- 客户机操作系统(Guest OS):这是在虚拟机内部运行的操作系统,可以是Windows、Linux、macOS等。
- 虚拟硬件:虚拟机模拟的硬件,包括CPU、内存、硬盘、网络接口等,供客户机操作系统使用。
虚拟机的使用场景非常广泛,包括服务器虚拟化、桌面虚拟化、软件开发和测试、教育和研究、云服务等。通过虚拟化技术,用户可以在一台物理服务器上运行多个独立的操作系统和应用程序,从而提高资源利用率,降低成本,并简化IT管理和维护工作。
常用的虚拟机软件包括以下几种:
- VMware vSphere/VMware Workstation:
- VMware vSphere 是企业级的虚拟化平台,包括ESXi和vCenter Server等组件,适用于大型数据中心和云计算环境。
- VMware Workstation 是一款桌面虚拟化软件,适合个人和小型企业使用,支持多种操作系统。
- Microsoft Hyper-V:
- Hyper-V 是微软提供的虚拟化解决方案,集成在Windows Server中,也可以在带有专业版或企业版的Windows 10上使用。
- Oracle VirtualBox:
- VirtualBox 是一款开源的虚拟机软件,支持Windows、Mac OS X、Linux和Solaris主机操作系统,以及多种客户机操作系统。
- Citrix XenServer:
- XenServer 是Citrix推出的企业级虚拟化平台,基于Xen开源项目,适用于服务器虚拟化。
- KVM (Kernel-based Virtual Machine):
- KVM 是Linux内核的一部分,提供了一个开源的虚拟化基础设施。它可以作为独立的产品使用,也可以作为更广泛解决方案的一部分,如oVirt和OpenStack。
- Parallels Desktop:
- Parallels Desktop 是一款专为Mac OS X设计的虚拟机软件,允许用户在Mac上运行Windows和其他操作系统。
- VMware Fusion:
- VMware Fusion 是VMware为Mac OS X提供的桌面虚拟化软件,类似于VMware Workstation,但专为Mac用户设计。
这些虚拟机软件各有特点,适用于不同的使用场景和需求。选择合适的虚拟机软件时,需要考虑支持的操作系统、性能要求、管理功能、成本以及用户的具体需求。
- VMware Fusion 是VMware为Mac OS X提供的桌面虚拟化软件,类似于VMware Workstation,但专为Mac用户设计。
安装 VMware Workstation
版本:VMware Workstation 17 Pro
下载地址:Download VMware Workstation Pro
VMware Workstation 17 Pro 目前支持个人开发者免费使用,去官网注册一个账号登录就行了。
如果懒得注册,也可以直接使用密钥进行激活。百度到的一个密钥:MC60H-DWHD5-H80U9-6V85M-8280D
Ubuntu下载
版本:ubuntu-18.04.6-desktop-amd64
下载地址:
中科大源:Index of /ubuntu-releases/ (ustc.edu.cn)
阿里云源:ubuntu-releases安装包下载_开源镜像站-阿里云 (aliyun.com)
官方(很慢不推荐):Get Ubuntu | Download | Ubuntu
安装 Ubuntu18
略,请参考:基于VMware和Unbuntu18.04编译 嘉立创·泰山派 Linux SDK
开发环境搭建
更换软件源
待写
安装SSH
在开发Linux系统时,安装SSH(Secure Shell)是非常常见的,原因如下:
- 远程访问:SSH允许用户从远程位置安全地访问Linux服务器或计算机。这对于需要在任何地点管理服务器或开发环境的开发人员来说非常重要。
- 安全性:SSH通过加密通信来保护传输的数据,防止中间人攻击和窃听。这对于确保代码和数据的机密性和完整性至关重要。
- 命令行访问:SSH提供了一种高效的命令行界面(CLI)访问方式,这对于需要执行系统管理和自动化任务的开发人员来说非常方便。
- 文件传输:SSH还包括SCP(Secure Copy)和SFTP(Secure File Transfer Protocol)等工具,这些工具允许用户安全地通过网络在本地和远程系统之间传输文件。
- 端口转发:SSH支持端口转发,允许用户将本地端口转发到远程服务器上的端口,或者将远程端口转发到本地机器上,这对于调试网络服务非常有用。
- 集成和自动化:SSH可以与许多开发工具和自动化脚本集成,如Makefiles、CI/CD管道(如Jenkins、GitLab CI)等,以便于自动化部署和测试。
- 跨平台兼容性:SSH客户端和服务端广泛支持多种操作系统,包括Linux、Unix、Windows和macOS,这使得在不同系统之间进行开发和协作变得容易。
- 无客户端依赖:SSH服务端通常不需要在客户端安装任何特殊软件,只需要一个SSH客户端,这在很多操作系统上都是默认安装的。
因此,安装SSH对于Linux开发来说是一个基本要求,它为开发人员提供了一种安全、灵活且功能强大的远程管理和服务访问方式。
安装ssh服务
1 | sudo apt-get update |
启动ssh服务
1 | /etc/init.d/ssh start |
查看是否安装成功
1 | sudo ps -e | grep ssh |
安装samba
samba 可以把虚拟机 ubuntu 中的文件目录映射到 windows 盘符下,这样你就可以和访问 windows 盘符目录一样去访问 ubuntu 系统里面的内容。
1 | 安装samba |
配置 samba
1 | sudo vi /etc/samba/smb.conf |
写入配置(修改为自己的用户名和文件路径)
1 | [EX_DISK_A] |
设置用户远程访问密码(cokode替换成自己的用户名)
1 | sudo smbpasswd -a cokode |
重启
1 | sudo /etc/init.d/samba restart |
Windows 下快捷键 Win + R
输入 \\
加ip地址即可连接到 Ubuntu。
编译环境搭建
docker环境安装
卸载旧版本
1 | sudo apt-get remove docker docker-engine docker.io containerd runc |
阿里云源安装 Docker
更新软件包索引: 对于基于 Debian 的系统(如 Ubuntu),首先需要更新软件包索引:
1
sudo apt-get update
安装依赖软件: 安装一些必要的软件包,这些软件包允许通过 HTTPS 使用仓库:
1
2
3
4
5sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common添加 Docker 的官方 GPG 密钥:
1
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
添加 Docker 的阿里云镜像源: 执行以下命令添加 Docker 的阿里云镜像源:
1
2
3
4sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"再次更新软件包索引:
1
sudo apt-get update
安装 Docker CE(社区版):
1
sudo apt-get install docker-ce
验证 Docker 安装: 通过运行以下命令来验证 Docker 是否成功安装:
1
sudo docker --version
启动 Docker: 安装完成后,需要启动 Docker:
1
sudo systemctl start docker
设置 Docker 开机自启:
1
sudo systemctl enable docker
三、驱动开发
待写
四、练手项目
待写