自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

光明顶魔教工程师

业精于勤,荒于嬉

  • 博客(64)
  • 收藏
  • 关注

原创 一些比较少用但比较有用的linux命令备忘

网络相关ssh 反向代理ssh -fCNR 10000:localhost:22 [email protected]是一个外网机器B的IPssh -p 10000 userA@localhost在机器B,ssh到机器A硬件相关的iici2cdetect -l 列出系统中有的i2c总线i2cdetect -y 1 扫描i2c 1号总线上的设备i2cdump -y 1 0x50 dump出1号总线上地址为0x50设备的寄存器内容pcilspci 查看有那些设备lsp

2021-02-22 17:39:53 218

原创 AMD ROCM软件栈 -clr项目分析

项目层级结构fill:#333;color:#333;color:#333;fill:none;AMD CLR:Comgr 库提供用于编译和检查 AMDGPU 代码对象的应用程序接口CLR项目目录结构。

2024-04-18 10:38:29 769

原创 bthome协议分析及esp32上的实现

最近自己搞了些智能家居的小节点,但由于wifi入网方式功耗太高,于是关注起了蓝牙bthome是一种灵活的低功耗BLE数据格式协议,用于广播传感器数据,此协议支持数据加密,目前最新为v2版本。在home assistant中也支持协议,这意味着自己DIY的传感器采集节点,通过BLE广播数据时只要遵守此协议,该节点就能被HA探测到并解析传感器数据。

2023-04-19 16:16:33 887

原创 ubuntu蓝牙设备重连接慢

描述我使用蓝牙鼠标和键盘连接到主机,操作系统是ubuntu 22在使用过程中发现在主机或键盘休眠后 重连接速度很慢解决方案ubuntu 22vim /etc/bluetooth/main.confFastConnectable = true

2022-05-27 11:07:27 565

原创 bits/libc-header-start.h: No such file or directory

问题描述最近需要在debian 安装下arm和riscv的交叉工具链sudo apt install gcc-10-riscv64-linux-gnu在安装完后使用交叉工具链编译东西时报错orangepi@orangepi4-lts:~/float-test$ riscv64-linux-gnu-gcc-10 float-cmov3.c -O2 -SIn file included from float-cmov3.c:1:/usr/include/stdio.h:27:10: fatal e

2022-05-25 09:29:33 803

原创 设置git协议clone代理

0x0最近在clone yaffs2仓库时发现clone的异常缓慢,就算开了代理也是,搜索一番发现网上大多都是将设置http、https、ssh协议的代理,对于git协定的代理讲的很少,下面分享下如何让git协议走socks代理以下内容前提是里已经在电脑上系统用了代理0x1yaffs2 代码仓库是git协议的,并且没有提供http协议的地址,ssh格式的需要注册后才能使用git clone git://www.aleph1.co.uk/yaffs2安装环境sudo apt-get ins

2021-07-30 15:03:42 667 1

原创 在centos8 stream启用 Extra Packages

前言最近把一台机器装了centos8 stream,centos8 的维护周期将会在2021-12-31结束而centos8 stream和centos8有什么区别呢?我参考官方的描述简单总结下由下游变更到上游centos8是RHEL的rebuild版本,所以是处在下游的,意思是收到的都是稳定的更新centos8 stream是处在上游的,是从RHEL的公共开发分支构建的,centos8 stream 经过一段时间(测试、踩坑)后会变成RHEKL的下一个小版本centos8 stream的测试

2021-07-30 10:18:24 555

原创 meson构建系统

简明使用本部分针对那些基于meson build的项目,记录一些meson的基础命令编译项目setup 1使用meson build的项目在源码根目录都能看到一个名为“meson.build”的文件,此文件规定了构建项目的规则在meson下要求要指定一个单独的build目录,这样在编译过程中产生的中间文件不会污染源代码目录,使用以下命令创建build目录并初始化编译meson build命令执行后会自动探测环境、探测编译器,创建一个名为“build”的构建目录,并生成后续compil

2021-04-27 14:50:24 5103 1

原创 MIPS内联汇编

0X0近几天由于项目需求需要使用内联汇编来完成部分功能,下面总结下基础知识点语法基本结构 __asm__ __volatile__( "汇编语句\n\t" "汇编语句\n\t" :输出寄存器 :输入寄存器 :寄存器破坏表 );**????*把内联汇编分割为了4个部分第一部分如上的第二、第三行,这里可以填写若干条汇编指令第二部分如上的第四行,在这里对输出寄存器进行描述第三部分如上的第五行,在这里对输入寄存器进行描述第四部分如上的第六行,第

2021-04-26 20:32:11 461

原创 极路由4刷机

准备工作https://www.right.com.cn/forum/thread-161906-1-1.htmlhttps://breed.hackpascal.net/在第二个链接里下载路由器对应的breed固件,固件的说明见第一个链接,下文以极路由4为例演示由于极路由官方挂了,无法进行root,但最近有大佬做了个网站可以进行root步骤复位先对极路由进行复位操作,一直按着路由器的reset按钮,直到指示灯变红闪烁,然后自动重启这样就复位完毕root路由器网站链接点

2021-04-26 11:35:32 3819

原创 radare2 常用操作总结

radare2 简介radare2是一个用C语言编写的跨平台的二进制分析工具,支持ARM、MIPS、X86等平台,支持分析多种格式的二进制文件如ELF、Mach-O、Fatmach-O, PE、PE+、 MZ、 COFF等,同时也支持多种操作系统如Windows (since XP)、GNU/Linux、GNU/Darwin、GNU/Hurd、Apple’s 等等,总之就是巨屌。核心功能:16进制编辑器调试器,可对源来自于磁盘、网络连接、内核驱动程序、正在运行的进程进行调试汇编、反汇编程序模拟

2021-04-07 17:38:05 2111 2

原创 stmmac描述符的结构和初始化

stmmac 描述符(Descriptors)stmmac的描述符有两个个模式,分别是ring模式和chain模式,根据特性的不同支持,描述符又有以下3个形式norm、Alternate 、 Enhanced。下面主要讲下ring模式下的Enhanced描述符结构,以及比较重要的位。stmmac的收发的描述符相同位的含义有些差别,所以我们分开分析下描述符的初始化​ 0.描述符几个关键要素OWN,用来表示描述符的状态,相当于Intel网卡里的DD位buf地址,指明网卡将收到的数据包放到哪里

2021-04-01 14:53:19 1432

原创 龙芯3a4000 交叉编译链接错误

0x0交叉编译平台: amd + ubuntu20交叉编译目标平台:LOONGSON 3A4000交叉编译器:7.3.1在编译时出现如下报错:mips-linux-gnu-ld -r -Lmips-loongson3a-app-gcc/lib -o octeontx_fpavf.o.o octeontx_fpavf.o.pmd.o octeontx_fpavf.omips-linux-gnu-ld: octeontx_fpavf.o.pmd.o: compiled for a little

2021-03-08 15:44:48 986 5

原创 解决crontab 定时任务加载失败

0x0系统:centos7内核:3.10.0-1160.15.2.el7.x86_64今天用crontab创建定时任务,在测试时发现任务并没有按预期执行,使用systemctl status crond 查看crond的状态> # systemctl status crond ● crond.service - C

2021-03-08 09:46:32 2794

原创 ubuntu下网易云音乐适配高分辨率屏幕

0x0环境 ubuntu20处理器 AMD我主流工作环境是Ubuntu20,而且很依赖音乐,网易云音乐适配了Ubuntu,而最近我换了个4K屏幕开机启动网易云音乐后发现界面文字变得很小完全没法看,如下图分析发现网易云音乐是通过 /opt/netease/netease-cloud-music/netease-cloud-music.bash 脚本启动的,先看看脚本#!/bin/shHERE="$(dirname "$(readlink -f "${0}")")"export LD_LI

2021-03-03 17:29:03 2576 6

原创 linux下使用网易邮箱发邮件

0x0最近要写个脚本监视系统运行情况,有异常及时通过邮件通知我。本次测试中使用网易的邮箱作为邮件发送服务器(邮箱账号需要开启smtp服务如下图),由于网易邮箱验证比较严格,需要进行一些额外操作才可以正常发送邮件,特此记录安装软件yum -y install sendmailyum -y install mailx获取证书mkdir -p /root/.certs/echo -n | openssl s_client -connect smtp.126.com:465 | sed -ne

2021-03-01 20:38:02 995 1

原创 Linux stmac网卡代码分析 -- open

Openstmmac_open是在stmmac_netdev_ops结构体里的,这个ops在probe时就已经注册到了net_device结构体里,在网卡对于stmmac_open函数调用的时间我还不确定是否是在网卡link up时下面看看stmmac_open函数,文件位置: drivers/net/ethernet/stmicro/stmmac/stmmac_main.c在open函数中主要完成了以下操作连接到PHY,设置好合适的速率申请、初始化dma 描述符资源和队列,在后面初始化

2021-02-26 17:00:36 3945 4

原创 dpdk18.11 收发包流程分析

pci probeRTE_PMD_REGISTER_PCI(net_ixgbe, rte_ixgbe_pmd); 宏注册了net_ixgbe driver到pci busrte_ixgbe_pmd 的定义如下static struct rte_pci_driver rte_ixgbe_pmd = { .id_table = pci_id_ixgbe_map, .drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,

2021-02-25 11:48:10 875

原创 龙芯派2亚克力外壳

0x0龙芯派自带的亚克力顶板没有风扇的空位,在长时间运行时亚克力板很烫,因此我设计了个待风扇孔位的亚克力顶板效果如下:风扇规格4X4风扇供电由龙芯派的GPIO上的5V管脚供电使用方法1.某宝搜索亚克力板定制2. 将本文件发送给店家,1:1制作3. 付款4. 购买4cm*4cm的风扇(注意是否送固定螺丝) 5. star 并follow me 》.《文件地址...

2021-02-22 19:07:39 186

原创 Linux stmac网卡代码分析----probe

probe主要分析一下驱动的主要框架,必要地方细致分析下drivers/net/ethernet/stmicro/stmmac/stmmac_pci.cmodule_pci_driver(stmmac_pci_driver);stmmac_pci_driver结构体如下,里面包含了id_table、probe、remove。id_table里包含了支持设备的vender id、device id,当扫描到支持的pcie设备时(把venderid 和device id 和table里的对比)就调用

2021-02-22 11:20:21 2501 2

原创 ubuntu20 编译dpdk错误 -Werror=address-of-packed-member

0x0在ubuntu20上编译dpdk 18.11报错,gcc 版本为9.3.0,报错如下:error: converting a packed ‘const struct ether_addr’ pointer (alignment 1) to a ‘unaligned_uint16_t’ {aka ‘const short unsigned int’} pointer (alignment 2) may result in an unaligned pointer value [-Werror=ad

2021-01-29 16:31:54 6457

原创 centos上使用高版本gcc、g++

0x0在centos7上gcc版本是4.85,在编译一些代码时需要使用g++的一些新特性,而网上大多教程都是重新编译gcc,太麻烦了,在centos 7上默认是yum search不到高版本的gcc的安装sclscl 是Software collections 的缩写,安装它后就可以安装一些比较新的软件,比如高版本的gccyum install centos-release-scl-rh -y选择包yum search "devtoolset"可以看见许多高版本的软件包,我们这里选择安装g

2021-01-29 16:10:22 780 1

原创 dpdk 18 ixgbe驱动初始化分析

rte_log_set_global_levelrte_log_set_global_level(uint32_t level)pci bus注册TE_REGISTER_BUS(pci, rte_pci_bus.bus); drivers/bus/pci/pci_common.c ,注册静态的设置rte_pci_bus,在rte_pci_bus中设置了pci bus的各个回调函数struct rte_pci_bus rte_pci_bus = { .bus = { .sca

2020-10-15 10:10:03 461

原创 DPDK 18 log日志系统使用

概述:DPDK 日志系统分为1-8个等级,在lib/librte_eal/common/include/rte_log.h文件中定义,每个DPDK模块都可以定义一个预设日志输出等级,只有日志输出语句的等级小于等于预设输出等级才能被输出。以下为dpdk对日志的分级:/* Can't use 0, as it gives compiler warnings */#define RTE_LOG_EMERG 1U /**< System is unusable. */

2020-10-14 16:24:28 1764

原创 gdb pwndbg插件安装

环境:gdb 9.2ubuntu 20(x64)连接pwndbggdb9.2gdb9.2网盘连接 密码: kaq4GDB中文教程编译gdb由于发行的gdb比较老,pwndbg建议使用高版本GDB,因此我们下载最新的GDB9.2安装依赖#apt install texinfo解压GDB,卸载自带GDB#tar -vxf gdb-9.2.tar.gz#sudo apt remove gdb编译#cd gdb-9.2#mkdir build && cd

2020-09-14 21:01:06 4263 3

原创 解决Centos 7 VNC黑屏

在配置Centos 7下VNC时发现root用户可以正常登陆VNC桌面,而普通用户VNC桌面黑屏,分析~/.vnc/xstarup 后发现是普通用户没有执行/etc/X11/xinit/xinitrc的权限#!/bin/shunset SESSION_MANAGERunset DBUS_SESSION_BUS_ADDRESS/etc/X11/xinit/xinitrc# Assume either Gnome or KDE will be started by default when inst

2020-09-02 12:50:48 2649 7

原创 MIPS结构体传参

本文讲解了C语言运行在MIPS体系中结构体传参的情况硬件平台:Loongson 3A3000系统:uos在《see MIPS run》中11.2.5中描述到,会将结构体成员压缩到各个arg寄存器中进行传递“we have to pack the register with data to mimic the arrangement of data in memory.”C语言代码:构造一个函数,参数为结构体,在main函数中调用函数,并传入结构体 #include <stdio.h&

2020-06-17 11:33:20 786

原创 龙芯3A4000 VNC配置

安装yum install tigervnc-server -y 拷贝配置文件cp /lib/systemd/system/vncserver\@.service /lib/systemd/system/vncserver@:1.service修改配置文件vim /lib/systemd/system/vncserver@:1.service配置、启动vncsystem...

2020-01-18 19:34:19 1433

原创 龙芯派启用串口3-5

硬件平台:龙芯派二代内核版本:linux-3.10这几天在龙芯派上加了一个无线串口,决定采用串口3来连接串口,在龙芯派上执行#ls /dev/ttyS* 发现只有ttyS0,查看设备树后发现其他串口的设备树节点都是有的,接着在龙芯派执行#ls /sys/bus/platform/devices/看见device的设备节点也是有的,思考后怀疑是驱动配置问题 ,重新配置内核...

2019-12-04 11:16:54 827 2

原创 读《系统虚拟化-原理与实现》-第三章

虚拟化概述概念:在虚拟环境里,虚拟机监控器(VMM)抢占了操作系统的位置,编程的物理机的管理者,同时向上层的软件呈现出虚拟的硬件平台,欺骗着上层的操作系统虚拟机可以看做是物理机的一种高效隔离的复制。敏感指令: 操作特权资源的指令,特权指令往往是敏感指令,但特权指令并不仅仅包含特权指令虚拟化漏洞: 如果一个体系存在敏感指令不是特权指令,那么就称其存在虚拟化漏洞虚拟化...

2019-11-12 16:56:56 205

原创 ssh 免密码登录

要点:对应用户 .ssh 文件夹设置权限为700chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys实测解决添加了公匙后仍然要求输入密码的情况

2019-10-29 09:00:32 98 1

原创 读《系统虚拟化-原理与实现》-第二章

x86构架及操作系统概述

2019-10-11 12:39:22 174

原创 读《系统虚拟化-原理与实现》-第一章

虚拟化的实现:在系统中加入一个虚拟化层,虚拟化层将下层资源抽象成另一形式的资源,提供给上层使用1. 是虚拟化迁移的基础2. 提高了移植性几种虚拟化1.硬件抽象层上的虚拟化通过虚拟硬件抽象层来实现虚拟机2.操作系统层上的虚拟化操作系统内核提供多个相互隔离的用户态实例3.库函数层上的虚拟化虚拟化操作系统的应用级库函数接口,如WINE4.编程语言层上的虚拟化是进程级的虚拟...

2019-10-09 23:35:41 305

原创 嵌入式linux 自动获取IP 及 自动校时

最近要调用百度人脸识别API做个东西,发现百度API在桌面端QT程序跑的贼溜,可以到了嵌入式板子上发现就post没了返回信息。一、嵌入式端udhcpc自动获取IP1.在开发板建立文件夹 #mkdir /usr/share/udhcpc/ -p2.先拷贝busybox 源码目录下的 busybox-1.27.2/examples/udhcp/simple.script 到 ...

2018-07-11 22:49:03 1801

原创 设备树和pinctrl粗解

上次文章中 我以DS18b20为例,在设备树中定义了ds18b20的资源(device),当时是依葫芦画瓢,没有深入探究,本文主要探讨下pin在设备树中的描述参考文章:Linux内核中的GPIO系统之(3):pin controller driver代码分析 、fsl,imx6q-pinctrl.txt、fsl,imx-pinctrl.txt先看我上一篇文章对ds18b20的描述 ...

2018-07-04 19:17:24 6668

原创 udhcpd配置及使用

udhcpd配置及使用1.修改/etc/udhcpd.conf修改 interface ra0 #default: eth0 为对应网卡解决error, Unable to open /var/lib/misc/udhcpd.leases for reading,在板子上执行以下命令:# mkdir -p /var/lib/misc/# touch /var/lib/...

2018-07-04 19:11:16 4632

原创 vnc配置备忘录

因为我开发板上要用到Qt,所以我在服务器上安装了Qt的开发环境,为了能远程连接到服务器我安装了VNC,中间也是遇到了很多问题,比如连接上去后,只显示一个控制台的窗口,只能使用命令行。后来几经周折才搞定先来个效果图: apt-get install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal...

2018-07-04 19:08:53 148

原创 thttpd移植

1.官网下载http://www.acme.com/software/thttpd/ 版本thttpd-2.25b.tar.gz2.解压 tar -zxvf thttpd-2.25b.tar.gz./configure4.修改makefile CC = arm-none-linux-gnueabi-gcc 总共有3个makefile要改 压缩根目录包1个,cgi-src目...

2018-07-04 19:06:21 504

原创 嵌入式RT3070 AP模式移植

环境:ubuntu1~14.04.3编译器:arm-none-linux-gnueabi-gcc-4.8.3注:此文在CUIT詹老师笔记基础修改而来无线网卡为RT3070,驱动分为STA驱动和SoftAP驱动两种,STA驱动支持无线网卡工作在STA模式下,而SoftAP的驱动支持无线网卡工作在软AP的模式下,可以作为一个软的接入点。(成为一个wifi热点)STA驱动为Linux_a...

2018-07-04 19:05:12 639

原创 DM9000网卡原理与基地址设置

从上面可以看出DM9000的地址总线就一根,它不像CS8900那样地址总线和数据总线都齐全。而这里只有一根地址线(CMD),16跟数据线,所以可以确定位宽为16位,而地址线为什么只有一根,这是DM9000决定的,看手册可以知道CPU总线只访问它的两个地址,CMD管脚为0时,数据线送的是DM9000的寄存器地址,CMD管脚为1时,数据线上送的是16位的寄存器数据,所以对DM9000的操作至少需要...

2018-07-04 19:01:12 1583

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除