linux
文章平均质量分 50
Nyiragongo
脚踩西瓜皮滑到哪里是哪里!Only dead fish go with the
flow
展开
-
利用udev 修改 网卡名称 的方法和规则文件不生效 可能的查找方法
为什么要修改?服务器通常有多块网卡,有板载集成的,同时也有插在PCIe插槽的。Linux系统的命名原来是eth0,eth1这样的形式,但是这个编号往往不一定准确对应网卡接口的物理顺序。我们也希望能跟设备外部的丝印对的上。原创 2023-12-06 14:45:04 · 833 阅读 · 0 评论 -
RK3568/RK3588 + YT 9215交换机芯片,MAC TO MAC 调试记录
原来的方案是rk3568 gmac 直接接phy,phy 接 switch 芯片,只是把交换芯片当交换用,驱动方面基本不用开发,但是要做vlan 那么必须涉及交换芯片的开发。选择裕太微有两个方面的原因:1.国产化替代2.可获得原厂技术支持3.目前已经完成 两个gmac 口交换芯片的配置,实现vlan,内部交换,两个光口可正常通信。原创 2023-11-16 17:26:05 · 5673 阅读 · 22 评论 -
zynqmp 5个裸机核和一个Linux核共同运行的时候注意的问题 (黑金动力 3eg)
zynq 裸机 + linux的 那些坑原创 2022-12-30 16:41:39 · 916 阅读 · 0 评论 -
在黑金zynqmp 上用emmc 启动的那些坑
缘由:由于硬件设计可能存在问题,导致sd 开启动失败,高速的时候,在建立VFS 时就会引起kernel 崩溃,官方的板子就正常,自己的板子第一版硬件可以,第二版就不行。思路:从emmc 启动 替代sd卡启动,在官方板子上用sd卡启动,挂载emmc ,把文件系统和 内核,uboot 复制进emmc 分区,然后通过拨码开关启动。在rc.local 里 配置网络ip 和 网关 就可以 ,注意 rc.local 里 xxgui 程序找不到需要屏蔽。5.网络不能启动,eth 无法识别。原创 2022-12-28 17:41:54 · 2696 阅读 · 3 评论 -
RK3568 + 国产 PHY YT8531 调试
2.测试芯片外围,TX 和 RX 发现 rx clk 时钟 125M 而 tx clk 是25M,咨询官方phy 芯片 在 1000M 速率下 TX 和 RX 时钟都应为 125M,所以确定是 rk3568 gmac 发出的时钟存在问题,那么去查找设备树,看时钟配置的是否有问题。改完,重新编译,生成boot,烧写,灯的闪烁跟异常的时候有差异,ping 网关,ok,搞定,用iperf 测试速度----我的情况是ping 不通外网,时钟从表象看起来比较正常,比如 125M ,25M,2.5M。原创 2022-09-19 14:26:07 · 12848 阅读 · 12 评论 -
zynqmp Linux + 裸机 (A53-0 Linux,A53-1 2 3 裸机大数据量实时处理,R5-0 协议处理,R5-1 屏幕显示逻辑等)开发笔记
挣扎:fpga 和arm 采用预留内存的方式,采用neon 协处理器只能做到 250M/S 的速度,预留内存采用mmap的方式,当读取内存页的时候采用缺页中断的方式,导致速度拖沓而且预留内存没有进行Linux系统的内存管理(在系统内 memcpy的速度 可以到 5G/S),自己写DMA驱动,虽然可以用Linux 本身的框架,但是结果不确定,4.2个R5 核虽然是实时核,但是主频只有 500M ,且只是 32bit cpu ,经测试算法处理比较拉跨,只能做协议处理,屏幕驱动显示,同步相关的工作。原创 2022-09-07 14:39:12 · 3889 阅读 · 10 评论 -
Ubuntu 下 CPU 负载测试
在嵌入式系统开发的时候,我们要评估系统散热情况需要满载测试或者测试系统调度情况需要让 cpu 满载运行的软件:stress 堪称利器。这个不算原创,只是自己偶尔用,经常忘记命令,所以记录一下,以后好找。原创 2022-09-07 10:26:56 · 1775 阅读 · 0 评论 -
dangerous relocation: unsupported relocation 解决方案
在编译过程中出先如下 error logusr/bin/ld: CMakeFiles/Atlas.dir///host/des_engine.cpp.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `_ZTV9DesEngine’ which may bind externally can not be used when making a shared object; recompile with -fPICdangerous reloc原创 2022-01-12 11:31:15 · 7057 阅读 · 0 评论 -
nginx开发
$ apt-get install libcrypto+±dev libcrypto+±doc libcrypto+±utils安装包原创 2021-11-24 18:08:35 · 1810 阅读 · 0 评论 -
解决Ubuntu 找不到ARM64 的源的问题(转)
Ubuntu 安装了NVIDIA的驱动还有DriveWokrs之后,好像把系统添加了arm64的架构,因此,在源更新的时候,也会更新arm64相关的源,但是问题在于,用sudo apt-get update的时候,找不到源,会报错Err:28 http://us.archive.ubuntu.com/ubuntu xenial/main arm64 PackagesErr:54 http://us.archive.ubuntu.com/ubuntu xenial-原创 2021-11-12 09:52:53 · 3877 阅读 · 0 评论 -
关于文件系统不能完全升级的说明
不能用emmc启动来更新emmc分区里的文件系统。应该要使用sd卡启动来更新emmc的文件系统。一个正在运行的系统不能把自己格式化。(更新文件系统时会把这个文件系统分区里的所有东西删除)...原创 2020-02-24 21:53:50 · 294 阅读 · 0 评论 -
module_param的介绍
一般用户态传递参数是通过main函数,第一个参数表示args个数,即argc,第二个参数表示具体的参数。在kernel态,无法通过这样的方式传递参数,一般使用module_param的方式,步骤如下:1.使用module_param指定模块的参数2.加载driver时给模块传递参数source code如下:#include <linux/module.h>#include...转载 2020-01-07 21:00:36 · 906 阅读 · 0 评论 -
linux内核中likely与unlikely
前言 内核版本:linux 4.13 在linux内核中,经常可以看见if( likely(x))或if( unlikely(x))语句,那么likely和unlikely是什么意思呢?本文将对likely和unlikely进行一些讨论。likely和unlikely参考/include/linux/compiler.h */define likely(x) __builtin_e...转载 2019-12-31 14:23:18 · 439 阅读 · 0 评论 -
C语言双感叹号作用!!
两个!是为了把非0值转换成1,而0值还是0。在C语言中,所以非0值都表示真。所以!非0值 = 0,而!0 = 1。所以!!非0值 = 1,而!!0 = 0。转载 2019-12-31 13:48:35 · 1297 阅读 · 0 评论 -
linux 驱动probe 被调用流程分析 理解2
原文链接:https://blog.csdn.net/gchww/article/details/7367718驱动注册的probe函数probe函数在设备驱动注册最后收尾工作,当设备的device 和其对应的driver 在总线上完成配对之后,系统就调用platform设备的probe函数完成驱动注册最后工作。资源、中断调用函数以及其他相关工作。下面是probe被调用的一些程序流程。从dr...原创 2019-10-30 18:01:26 · 848 阅读 · 0 评论 -
linux 驱动probe 被调用流程分析 理解1
前言: 对于linux platform device 和driver,一个driver可对应多个device,通过名字进行匹配,调用驱动里边实现的probe函数,本文以一个i2c设备为例,从驱动的i2c_add_driver()开始看源码以及用比较笨的打log的方式分析如何一步一步调用的probe()函数。分析的代码基于linux kernel 4.15/******************...原创 2019-10-30 15:58:02 · 1385 阅读 · 0 评论 -
cmake使用
cmake 简介CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。CMake 使用方法CMake的所有的语句都写在一个叫:CMakeLists.txt的文件中。当CMakeLists.txt文件确定后,可以用ccmake命令对...原创 2019-10-23 17:18:32 · 499 阅读 · 0 评论 -
RK3399pro rock-x 开发(人脸,姿态,目标追踪,车牌识别)笔记
笔记分为:1.环境搭建2.编译,运行例子3.根据自己的需求进行开发1.环境搭建原创 2019-10-29 15:35:38 · 5882 阅读 · 0 评论 -
Ubuntu报错,无法获取锁 E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily...
背景我在Ubuntu虚拟机上运行命令sudo apt-get install subversion下载svn时报错:错误信息提示大概是说无法获取位置/var/lib/dpkg/的某个锁。E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)E: Unable to lock...转载 2019-10-18 11:16:14 · 394 阅读 · 0 评论 -
关于linux 下使用libevent 断网重连的实现
以前的项目使用libevent 做服务器端 只是等待客户端重连,但是新需要需要做客户端 ,那么涉及到如果服务端断开或者网络异常,需要客户端重新发起连接的问题,在libevent下 如何实现折腾了一天半才实现,所以记录下来,供后来者避免掉坑。主函数如下:初始化等其他部分省略。 涉及到共享变量 base需要设置为全局变量。 很多程序都是 在主函数中调用如果失败 直接return 了那重连就没法实...原创 2019-06-14 14:48:52 · 3963 阅读 · 3 评论 -
libevent——bufferevent的使用与实现
bufferevent简单介绍一般通过libevent进行网络编程,都是将一个socket的fd与一个event进行绑定,并自行维护一个buffer用于存储从socket上接收的数据,同时可能也用于待发送数据的缓存。然后通过可读可写事件从socket上收取数据写入缓存并进行相应处理,或者将缓存中的数据通过socket发送。libevent为这种带缓存的IO模式提供了一种通用的机制,那就是b...转载 2019-06-14 23:07:11 · 1854 阅读 · 0 评论 -
Centos 7 可以ping通网关,但是不能连接外网的解决方法
今天安装虚拟机配置好了桥接模式,关闭防火墙,可以ping通网关但是死活连接不了外网,纠结了半天原来问题出在这里!下图为 virtual box的网络配置:如果跟你的主机不在一个网段请先用ifconfig 配置 虚拟机地址,确保跟主机在一个网段。然后ping 主机或者网关 。 我的是可以ping 通就是连接不了外网,突然想到应该是dns的问题呀,搞晕了,dns 就是域名解析,正因为无...原创 2018-05-09 18:07:18 · 15469 阅读 · 1 评论 -
Linux 性能调优(1)
读书笔记--- linux 性能调优指南 (首先建议对内核又足够的了解,尤其内存管理,不然很多概念很难理解)1.理解linux 操作系统2.监控和检测工具3.分析性能瓶颈4.优化操作系统处理器指标处理器指标如下:CPU利用率( CPU utilization)这个可能是最直接的指标,它全面展示了每个处理器的利用率。在IBM System x架构中,如果CPU利用率持续高...原创 2019-06-15 13:52:25 · 301 阅读 · 0 评论 -
关于 iconv 库使用问题记录
问题1:iconv 移植后已iconv_open(“utf-8”, “gb2312”) 打开失败 ,不可用,解决方式运行指令:export LD_PRELOAD=/lib/preloadable_libiconv.so // 设置库环境问题2:由于重启后 上面的指令产生的结果会失效,但是不想改动系统文件,所以在启动脚本里添加 上述命令,遇到的问题是上电自动启动后iconv库运行正常,如...原创 2019-06-21 16:24:13 · 744 阅读 · 0 评论 -
uboot 常用汇编指令 解析
转载 http://www.cnblogs.com/hnrainll/archive/2011/06/14/2080241.html一、ldr作为加载指令(1)格式为:LDR{条件} 目的寄存器,<存储器地址>(2)LDR指令用于从存储器中将一个32位的字数据传送到目的寄存器中。(3)指令示例:LDR R0,[R1] ;将存储器地址为R1的字数据读入寄存器R...转载 2019-06-17 21:26:01 · 343 阅读 · 0 评论 -
strtok的bug和解决方式(strsep)
缘由:接了别人一个烂摊子,里面用了strtok 分割字符串,原来简单测试没有问题但是当报文出现两个连续的分隔符的时候就会出现错误,导致分割错位,以前的解决方式是:用一个程序处理字符串,遇到连续两个分隔符那么在它中间填入非常规字符占位,那么strtok 使用就没有问题。这样使用老感觉别扭,如鲠在喉。讲个故事:一天有两只小蜜蜂去花园采蜜,他们飞呀飞,飞的高的近视眼 看不清飞的低的蜜蜂是谁,它就大喊一...原创 2019-06-28 10:35:54 · 1800 阅读 · 0 评论 -
linux 内核解析(内存管理)
先填坑原创 2019-06-06 15:45:28 · 448 阅读 · 0 评论