009——服务器开发环境搭建及开发方法(上)

目录

一、环境搭建

1.1网络环境

1.2 文件传输环境搭建

1.2.1 nfs环境

1.2.2 tftp环境

1.3 源码环境搭建

1.4 代码托管

1.5 配置交叉编译工具链

二、 开发方式

2.1 内核、设备树、驱动

make mrproper

make 100ask_imx6ull_mini_defconfig​编辑

make zImage -j4

make dtbs

cp 内核和设备树到nfs

make modules

make ARCH=arm INSTALL_MOD_PATH=/home/book/nfs_rootfs modules_install​编辑

运行中替换内核、设备树和驱动


一、环境搭建

1.1网络环境

        由于基于liteos-a内核可能遇到的问题比较多,我们基于linux内核做服务器开发。

        先验证一下网络

没ip强制指定一下

给虚拟机添加双网卡,桥接网卡桥接到我的USB转网口上

然后ping一下windows不通,关闭防火墙再试一下

都通了

        那个dhcp自动分配ip要把网线接到路由器器上才行。咱们这面现在是直接连电脑

1.2 文件传输环境搭建

windows: 192.168.5.100

ubuntu :  192.168.5.10

板子:       192.168.5.110

1.2.1 nfs环境

mount -t nfs -o nolock,vers=3 192.168.5.10:/home/book/nfs_rootfs /mnt

 

1.2.2 tftp环境

        ubuntu的环境就不再说了,今天说说windows环境

设置目录和网卡的ip

具体什么样后面用的时候在展示。

1.3 源码环境搭建

这条长的不太容易打出来我复制到了下面。

repo init -u https://gitee.com/weidongshan/manifests.git -b linux-sdk -m imx6ull/100ask_imx6ull_mini_linux4.9.88_release.xml --no-repo-verify

下完了

太大了,linux的平台代码还是太多了,估计后面鸿蒙也会这样。

1.4 代码托管

给我们的项目搞个目录放到码云上托管

1.5 配置交叉编译工具链

export ARCH=arm
export CROSS_COMPILE=arm-buildroot-linux-gnueabihfexport PATH=$PATH:/home/book/100ask_imx6ull_mini-sdk/ToolChain/arm-buildroot-linux-g
nueabihf_sdk-buildroot/bin

这样就okl

sudo chmod -R go+rwx /home/book

        然后vscode垃圾我再也不用了,根本就无法跳转,阅读源码很不方便,弃v投s了好吧

        同步一下文件,完美

二、 开发方式

2.1 内核、设备树、驱动

make mrproper

  make mrproper 是 Linux 内核源代码树中的一个命令,用于清理内核构建目录。这个命令会删除所有编译生成的文件、配置缓存以及其他临时文件,确保下一次构建是从一个完全干净的状态开始的。

具体来说,make mrproper 会执行以下操作:

  1. 删除所有编译生成的对象文件、模块文件等。
  2. 删除 .config 文件(这是内核配置文件,记录了内核配置选项)。
  3. 删除 .config.old 文件(这是上一次的内核配置文件,用于比较配置变更)。
  4. 删除 .version 和 Module.symvers 文件(这些文件记录了内核版本和模块符号信息)。
  5. 删除各种临时文件和目录。

相当于是强化版的make clean

make 100ask_imx6ull_mini_defconfig

会直接报错,估计环境变量哪里没配置好

这个配置文件在arm下

但是老师的长这样 

book@100ask:~/100ask imx6ull mini-sdk/Linux-4.9.88$ make 100ask imx6ull mini defconfig
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/zconf.lex.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
configuration written to .config

我们没有这些打印不知道会不会有问题

我对比了一下这里的.config和存在配置库里的内容一样,我就当他没问题先编译内核了

make zImage -j4

GG真坎坷,为什么会默认x86架构啊

用ARM编译还会报错离谱

        我真是麻瓜啊,被一个问题痛击了两次,之前就遇到过这个情况,在另一个shell设置环境变量,不关闭的话一个更早开启的shell是没有对应的环境变量的。

还是不行,找不到gcc命令

 

        坑爹啊,那到底是哪里的问题呢。

问题出现了,多打了个export

make dtbs

cp 内核和设备树到nfs

不知道为什么ls不好用了

把这些没用的删了也不行。

make modules
 

我丢啊,编译到一半虚拟机噶了

重启后没ip了,用ifconfig还配置不了,神奇。

sudo ip addr add 192.168.5.10/24 dev ens36  
sudo ip link set ens36 up

我又重启了下开发板现在ls好啦

编译也没问题了

make ARCH=arm INSTALL_MOD_PATH=/home/book/nfs_rootfs modules_install

把驱动模块都cp到nfs

        又卡死了,不知道为什么每次在开发板启动时去给nfs目录放东西开发板都会卡死。可能nfs卡住了。有可能是防火墙的问题,因为需要window做路由。防火墙关掉后果然好啦

运行中替换内核、设备树和驱动

cp /mnt/zImage /boot
cp /mnt/100ask_imx6ull_mini.dtb /root
cp /mnt/lib/modules /lib -rfd
sync

sync是写磁盘操作,防止要写入外存的数据没写入。

内核的编译时间是24年没问题了,但是时间不太对,仔细一看没改时区,我们改成上海就欧克了。

为什么是上海呢,大家在注册新虚拟机的时候有个选择时区,这里北京时间的话只能选上海。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/496495.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Kubernetes Gateway API 介绍

Kubernetes Gateway API 诞生背景 在 kubernetes 中,流量的治理主要分为两个部分: 南北向流量东西向流量 南北向流量(NORTH-SOUTH traffic) 在计算机网络中,南北向流量通常指数据流量从一个**内部网络(…

结构数列演化中的分枝

假设一个6*6的平面,这个平面的行和列可以自由的变换。 已知一个4点的结构数列顺序为 9 1 10 6 16 14 5 15 8 12 11 13 7 2 4 3 让这个数列按照4-5-4的方式演化 得到顺序为 1 9 1 10 6 16 14 5 15 8 12 11 13 7 2 4 3 2 16 6 9…

无需插件就能实现异构数据库的互联互通?(powershell妙用)

前两天在DBA群里有大佬分享了利用Oracle Database Gateway(透明网关)实现sqlserver和oracle 的数据交互,这里让我想到前些年写的一些powershell脚本用来做sqlserver和oracle的数据交互,powershell是windows自带的一个脚本工具&…

红队笔记8-CTF5打靶流程-CMS漏洞-多用户信息泄露(vulnhub)

目录 开头: 1.主机发现和端口扫描: 2.80端口-NanoCMS哈希密码信息泄露-后台getshell 3.提权-用户过多信息泄露 4.总结: 开头: 学习的视频是哔哩哔哩红队笔记: 「红队笔记」靶机精讲:LAMPSecurityCTF5 - 标准攻击链&#xff…

图论-最短路

一、不存在负权边-dijkstra算法 dijkstra算法适用于这样一类问题: 从起点 start 到所有其他节点的最短路径。 其实求解最短路径最暴力的方法就是使用bfs广搜一下,但是要一次求得所有点的最短距离我们不可能循环n次,这样复杂度太高&#xf…

vue.js——学习计划表

1&#xff09;准备工作 ①打开D:\vue\chapter02\ learning_schedule 目录&#xff0c;找到 index.html 文件。 在文件中引 入BootStrap 样式文件&#xff0c;具体代码如下 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8&qu…

vivado 手动布线

手动路由 手动路由允许您为网络选择特定的路由资源。这给了你对信号将要采用的路由路径的完全控制。手动路由不调用route_design。路线在路线数据库中直接更新。当您想精确控制网络的延迟时&#xff0c;可能需要使用手动路由。对于例如&#xff0c;假设有一个源同步接口&#…

面试题--3.18

1. http与https的区别&#xff0c;以及https的认证过程及加密算法 &#xff1f; 区别&#xff1a; https协议需要到CA申请证书&#xff0c;一般免费证书较少&#xff0c;因而需要一定费用。 http是超文本传输协议&#xff0c;信息是明文传输&#xff0c;https则是具有安全性…

大型语言模型:技术回顾

公众号&#xff1a;Halo 咯咯&#xff0c;欢迎关注~ 简介 很难说自然语言处理&#xff08;NLP&#xff09;的旅程是什么时候开始的。根据维基百科的文章《自然语言处理的历史》[1]&#xff0c;它可能始于 17 世纪&#xff0c;当时莱布尼茨和笛卡尔试图理解不同语言中单词之间的…

让人担心的软件生态

shigen坚持更新文章的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长&#xff0c;分享认知&#xff0c;留住感动。 个人IP&#xff1a;shigen 其实很久之前shigen就想写这样的一篇文章&#xff0c;思考现在的软件生态和我们…

c语言数据结构(9)——插入排序、希尔排序

欢迎来到博主的专栏——C语言数据结构 博主ID&#xff1a;代码小豪 文章目录 排序插入排序希尔排序 排序 现在有N个数据的序列&#xff0c;其对应的序列号为[r1 ,r2 ……rn];将该序列对应的数据[k1 ,k2 ……kn]排成满足递减或递减的序列的操作称为排序 插入排序 玩过斗地主…

tomcat配置静态资源后无法正常访问

目录 一、场景二、配置三、访问异常四、排查五、原因六、解决 一、场景 1、将前端文件存在到指定目录 2、在tomcat配置静态资源 3、配置后无法正常访问到前端文件 二、配置 1、tomcat配置 2、静态资源 三、访问异常 四、排查 可以ping通&#xff0c;但是访问不了3080端口 …

探究WordPress受欢迎的原因及其org和com的区别

在当今互联网时代&#xff0c;WordPress已经成为了建立网站的首选工具之一&#xff0c;其受欢迎程度远远超出了其他竞争对手。那么&#xff0c;为什么WordPress如此受欢迎呢&#xff1f;让我们一起探究一下。 首先&#xff0c;WordPress是一个开源项目&#xff0c;这意味着任何…

【UEditorPlus】后端配置项没有正常加载,上传插件不能正常使用

解决办法&#xff1a; 1、找到UEditorPlus的根目录&#xff0c;修改 ueditor.all.js 文件 搜索&#xff1a;isJsonp utils.isCrossDomainUrl(configUrl); 更改为&#xff1a;isJsonp false; 2、重新运行前端即可正常使用 如果出现依旧不行&#xff0c;请关闭服务&#xff…

如何选择适合自己的办公空间

说到办公地点的选择&#xff0c;其实就跟挑衣服似的&#xff0c;得看场合、看需求&#xff0c;还得看个人喜好。有的人喜欢自由自在&#xff0c;有的人则需要稳定和私密。所以&#xff0c;咱们来看看哪些朋友更适合哪种办公环境。 适合共享办公室的&#xff1a; 刚起步的小公司…

教师的晋升通道:走向专业成长的阶梯

教师是一项需要不断学习、不断进步的职业。随着教育改革的不断深入&#xff0c;教师的晋升通道也越来越受到关注。本文将从教师的晋升通道、晋升标准和未来发展方向等方面进行探讨&#xff0c;旨在帮助广大教师了解自己的职业成长路径&#xff0c;促进个人发展。 一、教师的晋升…

rtph264depay插件分析笔记

1、rtp协议头 2、rtp可以基于TCP或者UDP 其中基于TCP需要加4个字节的RTP标志 3、rtph264depay定义解析函数gst_rtp_h264_depay_process&#xff0c;通过RFC 3984文档实现。 static void gst_rtp_h264_depay_class_init (GstRtpH264DepayClass * klass) {GObjectClass *gobject…

RTSP应用:实现视频流的实时推送

在实现实时视频流推送的项目中&#xff0c;RTSP&#xff08;Real Time Streaming Protocol&#xff09;协议扮演着核心角色。本文将指导你通过安装FFmpeg软件&#xff0c;下载并编译live555&#xff0c;以及配置ffmpeg进行视频流推送&#xff0c;来实现一个基本的RTSP流媒体服务…

WIN使用LPD协议来共享打印机含统信UOS

打开“控制面板”&#xff0c;“程序和功能”&#xff0c;“启动或关闭Windows功能”&#xff0c;下拉找到“打印和文件服务”&#xff0c;勾选“LPD打印服务”和“LPR端口监视器”。确定之后重启电脑&#xff0c;共享主机和其它需要添加共享打印机的都开启功能和重启。 一、启…

SpringMVC设置全局异常处理器

文章目录 背景分析使用ControllerAdvice&#xff08;RestControllerAdvice&#xff09;ExceptionHandler实现全局异常全局异常处理-多个处理器匹配顺序存在一个类中存在不同的类中 对于过滤器和拦截器中的异常&#xff0c;有两种思路可以考虑 背景 在项目中我们有需求做一个全…
最新文章