前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >树莓派环境配置,并在Ubuntu18.04上配置交叉编译环境

树莓派环境配置,并在Ubuntu18.04上配置交叉编译环境

原创
作者头像
AnieaLanie
修改2022-06-19 11:44:55
9080
修改2022-06-19 11:44:55
举报
文章被收录于专栏:铁子的专栏铁子的专栏

树莓派无显示器,无网线配置ssh和WIFI

WIFI配置预先写入SD卡,树莓派开机后自动搜索WIFI并连接

创建 wpa_supplicant_conf 文件,写入以下配置:

代码语言:javascript
复制
country=CN
​
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
​
update_config=1
​
network={
  scan_ssid=1
  ssid="m_ssid"
  psk="m_password"
  proto=RSN
  key_mgmt=WPA-PSK
  pairwise=CCMP
  auth_alg=OPEN
}

SSH配置预先写入SD卡

根目录创建名为“ssh”的文件,开机即可自动开启ssh。

使用ssh登陆了树莓派后,可使用sudo raspi-config打开命令行配置菜单,选择Interface Options->VNC ,从而打开VNC。

树莓派用户与权限配置

添加用户 sudo useradd usr1

修改密码 sudo passwd usr1

由于权限问题,此时登录usr1用户后使用sudo命令会提示该用户不在sudoers文件中

代码语言:javascript
复制
usr1 is not in the sudoers file.  This incident will be reported.

给用户添加到sudoer用户,让他能够执行sudo命令

1.sudo passwd root:给root用户授予密码

2.su:登录root用户

3.sudo adduser usr1 sudo:添加到sudoers文件

SCP命令使用

scp命令可用于跨主机传输文件

代码语言:javascript
复制
scp localPath user@host:/path #复制到远程机器
scp user@host:/path localPath #从远程机器下载到本机

Ubuntu宿主机交叉编译到目标树莓派

使用交叉编译

交叉编译是指从一台宿主机上,编译出其它不同平台的机器上的可执行程序的过程,需要使用到交叉工具链。

根据宿主机平台和树莓派平台的系统架构选择(使用arch命令判断系统架构):https://developer.arm.com/downloads/-/gnu-a

树莓派为aarch64架构,而宿主机Ubuntu18是X86_64架构

解压工具链后,用CMake指定交叉编译链

示例程序:

代码语言:javascript
复制
cmake_minimum_required(VERSION 3.5) 
​
project(crosspro1)
​
add_executable(crosspro1
    main.cpp
)
代码语言:javascript
复制
#include "include.h"
​
int main()
{
    std::cout << "Cross compile." << std::endl;
}

system指定Linux,processer指定arm

C和C++分别制定工具链里的/bin/-gcc和-g++工具

最后的Target root指定工具链的根目录

generate,然后configure即可

在指定的build目录下使用make命令即可编译出可执行文件:make

将可执行文件上传到树莓派上,授权并执行

代码语言:javascript
复制
chmod 777 execfile
./execfile

即可完成交叉编译

断言assert

定义在 assert.h 头文件内,用于在Debug模式下进行诊断程序错误

用法

代码语言:javascript
复制
assert(真值表达式); // 若表达式为真,则中断程序。
代码语言:javascript
复制
#include "include.h"
​
int main()
{
    FILE *fp = fopen("f.txt","r");
    assert(fp);
​
    char *str=NULL;
    ssize_t read;
    size_t len=0;
    while( (read=getline(&str,&len,fp)) !=-1)
    {
        printf("%s\n",str);
    }
​
    if(str)
        free(str);
​
    fclose(fp);
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 树莓派无显示器,无网线配置ssh和WIFI
    • WIFI配置预先写入SD卡,树莓派开机后自动搜索WIFI并连接
      • SSH配置预先写入SD卡
        • 使用ssh登陆了树莓派后,可使用sudo raspi-config打开命令行配置菜单,选择Interface Options->VNC ,从而打开VNC。
          • 树莓派用户与权限配置
            • SCP命令使用
            • Ubuntu宿主机交叉编译到目标树莓派
              • 使用交叉编译
                • 解压工具链后,用CMake指定交叉编译链
                  • 将可执行文件上传到树莓派上,授权并执行
                  • 断言assert
                    • 用法
                    相关产品与服务
                    专用宿主机
                    专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档