当前位置: 首页 > news >正文

全志T113-S3开发板遇到的问题

1.静态网络问题

在/etc/config/network文件下,没有添加dns,还有ula_prefix没有修改可能会导致ping不上电脑的情况

config interface 'loopback'option ifname 'lo'option proto 'static'option ipaddr '127.0.0.1'option netmask '255.0.0.0'config globals 'globals'option ula_prefix 'fd78:2a29:f6e0::/48'config interface 'wan'option ifname 'eth0'option proto 'static'option ipaddr '192.168.10.50'option netmask '255.255.255.0'option gateway '192.168.10.1'option dns '192.168.10.1 8.8.8.8'option ip6assign '60'

dns相关的视频:

发现更多精彩视频 - 抖音搜索

2.scp传输问题

调试的时候发现目标设备能够ping通,但是老是有Connection refused的现象,于是尝试了一下的步骤:

1.查看是否存在sshd的进程

ps | grep sshd

发现是有的

2.关闭防火墙重新scp连接,发现还是不行

iptables -F

3.接着手动启动ssh服务的时候发现输出了几行数据

/usr/sbin/sshd  # 手动启动

数据如下

root@TinaLinux:/# /usr/sbin/sshd # 手动启动 Unable to load host key "/etc/ssh/ssh_host_rsa_key": invalid format Unable to load host key "/etc/ssh/ssh_host_rsa_key": invalid format Unable to load host key: /etc/ssh/ssh_host_rsa_key Unable to load host key "/etc/ssh/ssh_host_ecdsa_key": invalid format Unable to load host key "/etc/ssh/ssh_host_ecdsa_key": invalid format Unable to load host key: /etc/ssh/ssh_host_ecdsa_key Unable to load host key "/etc/ssh/ssh_host_ed25519_key": invalid format Unable to load host key "/etc/ssh/ssh_host_ed25519_key": invalid format Unable to load host key: /etc/ssh/ssh_host_ed25519_key sshd: no hostkeys available -- exiting.

交给ai发现一条关键信息:

Unable to load host key "/etc/ssh/ssh_host_rsa_key": invalid format
...
sshd: no hostkeys available -- exiting.

表示​​SSH 服务无法启动,因为缺少有效的主机密钥文件​​。

解决办法:

# 1. 删除无效的密钥文件
rm -f /etc/ssh/ssh_host_*# 2. 重新生成所有必需的密钥
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ""
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ""
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ""# 3. 确认密钥已生成
ls -l /etc/ssh/ssh_host_*# 4. 启动 SSH 服务
/usr/sbin/sshd

接着再一次scp指令,主机会出现:

于是在终端输入

ssh-keygen -f ~/.ssh/known_hosts -R 192.168.10.50

之后便可以重新和开发板进行ssh服务并且可以使用scp传输了

scp <传输文件> root@192.168.10.50:/mnt/UDISK

另外插一嘴,关于不知道开发板密码的重置方法:

1 在目标板子的终端中执行:

# 设置 root 密码passwd root

然后输入你想要设置的新密码(比如 root或 123456)。

3.scp能连接,但是遇到密码的问题

首先在开发板上修改

# 设置 root 密码passwd root

检查但是/etc/shadow 中root的第三个数字0表示最后一次修改的时间和1970开始的时间搓一样,表明修改一直没有提交上

于是修改为设置空密码

vi /etc/ssh/sshd_config

编辑文件

将这两个变量前的#号去除。发现,可以免密码了,但是任然不行

最后找到原因了:是因为

vi /etc/shadow

下的root行中的第3个字段为0表示的,失败的是0表示从1970年从未修改过

root::1000:0:99999:7:::  # 第3个字段改为1000,第8个字段保持空

将其修改成1000天即可

更多的字段修改可以参考:

用户名:密码哈希:最后修改时间:最小修改间隔:最大有效期:警告时间:不活动时间:过期时间:标志

4.应用工程需要的setenv环境变量文件

PATH=$PATH:/home/gary/linux/T113S3/Tina-Linux/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/bin
export STAGING_DIR=/home/gary/linux/T113S3/Tina-Linux/out/t113-zqboard/staging_dir/target

5.应用工程启动脚本

#!/bin/sh. ./setenvarm-openwrt-linux-gcc <目标源文件名>.c -o <目标程序名字>

6.编译sdk前记得配置环境变量并载入配置

source build/envsetup.sh
lunch 8

7.重新清理工程并menuconfig

rm -rf tmp/ build_dir/ .config  # 彻底清理旧配置
make defconfig  # 重新扫描所有包
make menuconfig  # 打开菜单配置

8.检查makefile TAB键的新方法

cat -t package/HelloWorld/Makefile

9.检查打包的pack是否存在于工程

grep "包名" tmp/.config-package.in

10.修改pack的menuconfig

一个正常的makefile如下

# 确保TOPDIR正确
TOPDIR?=.$(info TOPDIR is set to: $(TOPDIR))include $(TOPDIR)/rules.mk# 尝试多个可能的路径
ifneq ("$(wildcard $(TOPDIR)/include/package.mk)","")include $(TOPDIR)/include/package.mk
else ifneq ("$(wildcard $(TOPDIR)/build/package.mk)","")include $(TOPDIR)/build/package.mk
else ifneq ("$(wildcard $(TOPDIR)/package/package.mk)","")include $(TOPDIR)/package/package.mk
else$(error Cannot find package.mk! Please check your Tina-Linux installation)
endifPKG_NAME:=helloworld
PKG_VERSION:=1.0
PKG_RELEASE:=1
PKG_MAINTAINER:=Your Name <your.email@example.com>
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)define Package/helloworldSECTION:=utilsCATEGORY:=UtilitiesTITLE:=Hello WorldDEPENDS:= +libncnn +libstdcppARCH:=armCPU:=cortex-a7
endefdefine Package/helloworld/descriptionSimple Hello World program.
endefdefine Build/Preparemkdir -p $(PKG_BUILD_DIR)$(CP) ./src/* $(PKG_BUILD_DIR)/
endefdefine Build/Compile$(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) -o $(PKG_BUILD_DIR)/helloworld $(PKG_BUILD_DIR)/helloworld.c
endefdefine Package/helloworld/install$(INSTALL_DIR) $(1)/usr/bin$(INSTALL_BIN) $(PKG_BUILD_DIR)/helloworld $(1)/usr/bin/
endef$(eval $(call BuildPackage,helloworld))

讲解:

1. Makefile 结构解析

1.1 基础设置部分

TOPDIR?=. 
$(info TOPDIR is set to: $(TOPDIR)) 
include $(TOPDIR)/rules.mk
  • ​作用​​:设置构建系统的顶层目录

  • ​说明​​:

    • TOPDIR?=.:如果未定义 TOPDIR,则设为当前目录

    • $(info ...):打印调试信息,帮助定位问题

    • include $(TOPDIR)/rules.mk:包含构建系统核心规则文件

1.2 包含 package.mk

ifneq ("$(wildcard $(TOPDIR)/include/package.mk)","") 
include $(TOPDIR)/include/package.mk 
else ifneq ("$(wildcard $(TOPDIR)/build/package.mk)","") 
include $(TOPDIR)/build/package.mk
else ifneq ("$(wildcard $(TOPDIR)/package/package.mk)","")
include $(TOPDIR)/package/package.mk else 
$(error Cannot find package.mk! 
Please check your Tina-Linux installation) endif
  • ​作用​​:包含包管理文件

  • ​说明​​:

    • 尝试多个可能的路径查找 package.mk

    • 如果都找不到,抛出错误信息

    • 这是必要的,因为 package.mk 包含构建包的关键宏定义

1.3 包基本信息

PKG_NAME:=helloworld 
PKG_VERSION:=1.0 
PKG_RELEASE:=1 
PKG_MAINTAINER:=Your Name <your.email@example.com> 
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
  • ​作用​​:定义包的基本信息

  • ​说明​​:

    • PKG_NAME:包名称(在系统中唯一标识)

    • PKG_VERSION:软件版本号

    • PKG_RELEASE:包发布版本(用于区分同一版本的不同构建)

    • PKG_MAINTAINER:维护者信息(可选但推荐)

    • PKG_BUILD_DIR:构建目录路径

1.4 包定义

define Package/helloworld 
SECTION:=utils 
CATEGORY:=Utilities 
TITLE:=Hello World 
DEPENDS:= +libncnn +libstdcpp 
ARCH:=arm CPU:=cortex-a7 endef
  • ​作用​​:定义包的属性和依赖

  • ​说明​​:

    • SECTION:包所属的节(通常与 CATEGORY 相同)

    • CATEGORY:在 menuconfig 中的分类位置

    • TITLE:包的简短描述

    • DEPENDS:包的依赖项

    • ARCH:目标架构

    • CPU:目标 CPU 类型

1.5 包描述

define Package/helloworld/descriptionSimple Hello World program. 
endef
  • ​作用​​:提供包的详细描述

  • ​说明​​:在 menuconfig 中显示,帮助用户了解包的功能

1.6 构建准备

define Build/Prepare 
mkdir -p $(PKG_BUILD_DIR) 
$(CP) ./src/* $(PKG_BUILD_DIR)/ 
endef
  • ​作用​​:准备构建环境

  • ​说明​​:

    • 创建构建目录

    • 将源代码复制到构建目录

1.7 编译过程

define Build/Compile 
$(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) -o $(PKG_BUILD_DIR)/helloworld $(PKG_BUILD_DIR)/helloworld.c 
endef
  • ​作用​​:编译源代码

  • ​说明​​:

    • TARGET_CC:目标平台的 C 编译器

    • TARGET_CFLAGS:C 编译标志

    • TARGET_LDFLAGS:链接器标志

    • 将源文件编译为可执行文件

1.8 安装定义

define Package/helloworld/install 
$(INSTALL_DIR) $(1)/usr/bin 
$(INSTALL_BIN) $(PKG_BUILD_DIR)/helloworld $(1)/usr/bin/endef
  • ​作用​​:定义如何安装包

  • ​说明​​:

    • $(1):表示目标根文件系统目录

    • 创建安装目录 /usr/bin

    • 将可执行文件复制到目标位置

1.9 注册包

$(eval $(call BuildPackage,helloworld))
  • ​作用​​:调用宏注册包

  • ​说明​​:这是构建系统的关键步骤,使构建系统知道如何处理这个包

http://www.dtcms.com/a/439195.html

相关文章:

  • 神卓云监控 K900:异地监控技术落地与方案优化实践
  • 东莞企业网站排名wordpress重置后密码是多少
  • 设计网站建设网站美化教程下载
  • 队列算法精讲:从栈与队列互实现到循环队列(待补充)
  • 蝴蝶优化算法:原理、改进与应用
  • 你会怎么做外国的网站建一个购物网站多少钱
  • 数据驱动下的集成学习实战:从算法选型到业务落地的完整方法论
  • dw旅游网站模板下载物流网站如何设计
  • 建网站能挣钱吗WordPress老文章提示
  • 类中特殊成员(Num018)
  • 网站策划书市场分析商场设计案例分析
  • 比利时网站后缀做漫画封面的网站
  • [创业之路-666]:第四次工业革命(智能革命)未来将创造大量的财富,普通人通过哪些方式参与这些财富的创造与分享?
  • 力扣2653. 滑动子数组的美丽值
  • 网站开发的常见编程语言有哪些成都广告公司招聘信息
  • 给网站做引流多少钱网站sem怎么做
  • 辽宁省水利建设市场信用信息平台网站营销推广策划
  • 欢迎进入河南国安建设集团有限公司网站十大不收费看盘软件排名下载
  • 淘宝上面建设网站安全么夜猫直播视频下载
  • 宝应网站设计17做网站 一件代发
  • DBCA静默创建Oracle CDB与PDB:两种实战方法详解
  • ARM内核
  • 佛山网站建设哪个wordpress主题汉化版
  • 乐山网站制作设计公司网页设计规范图标设计
  • Kubernetes中配置NGINX仅支持TLSv1.3全攻略
  • 国外直播做游戏视频网站有哪些开个网站卖机器怎么做
  • c 网站开发架构多用户商城app
  • 【面板数据】华政ESG评级年度中位数年度均值(2009-2024年)
  • ORB_SLAM2原理及代码解析:ORBmatcher::SearchForInitialization() 函数
  • 国家城乡和建设厅特殊工种网站网站建设需求多少钱大概