vm 安装ubuntu20.04 编译泰山派sdk buildroot系统

本文详细介绍了如何在PC端配置虚拟机,包括硬盘空间、内存、Ubuntu镜像的获取和安装,以及桥接和NAT网络模式的选择。后续步骤涉及网络配置、SSH服务、Samba共享文件、ARM架构的SDK编译和烧录验证,以及使用串口助手进行代码传输和运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

演示pc端的硬件资源

剩余硬盘空间200G

运行内存16G

操作系统win10

获取ubuntu镜像可以通过国内镜像

ubuntu-releases安装包下载_开源镜像站-阿里云 (aliyun.com)icon-default.png?t=N7T8https://mirrors.aliyun.com/ubuntu-releases/

选择框中的文件下载

创建虚拟机

下载完成就打开vm,ctrl+N 新建虚拟机

 

        编辑虚拟机的名称,以及将要存放的位置,就是我们预留200G以上的磁盘

这里内存我给8G

选桥接,后面可以用独立的ip

这里只要150-200都可以,不够再扩容

        全部下一步最后点击完成

设置印象文件,就是前面下载的 4.1G iso文件

开启进入安装引导

下拉左侧语言选中简体,然后选安装

键盘选us

分辨率有点难受,显示界面不全设置一下,ctrl+alt+T打开终端 输入 xrandr命令回车

根据支持的分辨率设置一个可以看完整界面的

选择continue

默认位置就行

账户密码也根据个人设置继续就可以了。

安装完重启就可以进ubuntu了,接下来就需要

网络配置

桥接模式

nat模式

两种方式都可以我们看自己情况设置vm的网络链接模式,我选了nat  window会作为路由分配ip给ubuntu 

设置网络连接了现在ifconfig是找不到命令的,无法使用 apt install net tools,需要更换更新源。思路参考下面的文章

执行sudo apt-get update失败的解决方案-优快云博客icon-default.png?t=N7T8https://blog.youkuaiyun.com/jane_sl/article/details/106621900

操作:

        执行这个命令 sudo vi /etc/apt/sources.list 进入vi编辑界面,按 i 进入编辑模式,将下载源复制进来 虚拟机提供了编辑工具条可以粘贴,按esc进入正常模式,然后按 :进入命令模式 按wq回车保存退出

执行命令sudo apt-get update     

这里dns解析失败我们可以设置一下这个域名解析

执行这个命令sudo vi  /etc/systemd/resolved.conf 添加一下解析服务ip 保存退出

在执行 ping www.baidu.com 可以看到ping通 再执行sudo apt-get updata可以更新

网络zhenchan

有了下载源就安装net-tools工具用来获取我们网络信息,常用的ifconfig也是接下来samba要用的

执行命令 

sudo apt-get install net-tools

ssh服务安装,scp ftp传输 vscode编辑工具都依赖这个服务

sudo apt-get update

sudo apt-get install openssh-client
sudo apt-get install openssh-server
//启动ssh
/etc/init.d/ssh start
//查看是否监听固定端口22
netstat -na |grep 22 

回到主线 安装samba用来window和Ubuntu操作系统之间传输文件

sudo apt install samba

sudo vi /etc/samba/smb.conf

# 在上述配置文件末尾追加:
# [share_dir] 是 Windows 主机看到的samba文件夹的名称,可以任意修改
# path 是 Ubuntu 主机通过 samba 共享出去的路径

[share_dir]
path=/home/zls/tspi
browseable=yes
writable=yes
public=yes
available=yes

创建分享目录 mkdir /home/zls/tspi

重启samba

sudo service smbd reload
sudo service smbd restart

使用ifconfig查看ubuntu当前的ip

在window界面 使用win+r打开命令框输入 \\+ip 找到映射的文件夹 此处我就是share_dir文件夹

右键选项选择磁盘映射

到这操作系统环境就完成了。后面就是导入sdk以及编译相关了。

编译sdk

在window把下载好的sdk拖入我们映射的Z盘

在ubuntu就可以看到了

校验

大文件下载容易出错官方也提供了校验的工具直接使用,对比两个结果,一致就是传输无误

//计算校验值
md5sum tspi_linux_sdk_repo_20240131.tar.gz
//官方值
cat tspi_linux_sdk_repo_20240131_md5sum.txt

这里可以先去做个快照,ubuntu后面玩坏了可以重新从这里开始

解压

使用tar命令解压.gz文件

tar -xvzf tspi_linux_sdk_repo_20240131.tar.gz

解压是repo版本的我们需要同步代码

sudo apt-get update
//安装git
sudo apt-get install git -y
//安装repo
sudo apt install repo -y
//安装python2
sudo apt-get install python2.7
//安装python3
sudo apt-get install python3
//同步代码 -j为线程数
.repo/repo/repo sync -l -j88

编译环境

sudo apt-get install git ssh make gcc libssl-dev liblz4-tool expect g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support qemu-user-static live-build bison flex fakeroot cmake gcc-multilib g++-multilib unzip device-tree-compiler ncurses-dev

使用脚本全编译

./build.sh all

编译成功

烧录验证

在串口终端打开可以看已经可以正常操作

代码编译

     现在主控上的操作系统已经烧录好了,还需要一个编译器。用来专门编译在这个主控上运行的代码。

安装交叉编译工具

//安装交叉编译器
sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
//查看c编译器版本
aarch64-linux-gnu-gcc --version
//c++编译器版本
aarch64-linux-gnu-g++ --version

前面安装了ssh可以使用vscode连接ubuntu来给终端指令,以及写代码

编译.c

aarch64-linux-gnu-gcc xxx.c

可以看到arm架构的程序已经编译出来,把这个程序发送给泰山主控就可以试着运行了

传输程序到泰山派

用串口助手secureCRT 的rx命令发送bash提示没有该指令 用apt在泰山派安装一下这个服务

输入指令后就把共享磁盘中编译好的 a.out 拖入串口助手的界面选择xmode 协议中的任意一个自动发送了。这个速度有限后面换ftp好一点。

运行

直接运行提示权限不够 chmod 777 + demoname 改一下权限

再运行可以看到测试代码回显了两个字节对齐与四字节对齐的一个内存占用差异

### TSPI in Linux Environment In the context of secure computing within a Linux environment, the Trusted Service Provider Interface (TSPI) plays an essential role as part of the Trusted Computing Group's standards to facilitate security operations and management. The interface allows applications to interact with trusted platform modules (TPMs), which are hardware-based security tokens embedded into computers[^1]. The primary function of TSPI is enabling communication between software components that require cryptographic services or other trust-related functions provided by TPMs. This includes tasks such as key generation, storage protection, attestation processes, sealing/unsealing data based on specific conditions set forth during encryption/decryption activities. For developers working under GNU/Linux distributions who wish to leverage these capabilities through programming interfaces like C/C++, Python libraries exist specifically designed around interfacing directly with TPM chips via TSPI calls[^2]. ```c #include <tspi.h> // Example code snippet showing initialization process using TSS API. TSS_RESULT rc; TSS_HCONTEXT hContext; rc = Tspi_Context_Create(&hContext); if (rc != TSS_SUCCESS){ printf("Error creating context\n"); } ``` To work effectively with TSPI on Linux systems, one must ensure proper installation and configuration of relevant packages including `trousers`, which serves as middleware implementing much-needed functionality required when dealing with TPM devices at lower levels while abstracting away complex details from higher-level application logic[^3].
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值