- 博客(47)
- 资源 (20)
- 收藏
- 关注
原创 systemv文件系统启动流程
linux的串口登录主要是由两个文件在控制,/sbin/getty来获得用户名,并进行检查用户名是否存在,然后将用户名传递给/bin/login来获取用户输入密码和检查密码是否正确。使用方法:脚本后面第一个参数是5 则运行/etc/rc5.d里面的脚本,第二个参数可以是start restart stop。:动作,用于指定可能用到的动作。4)设置登录的用户的ID和组ID,并设置相应的环境变量.2)提示用户输入密码(通过getpass()实现);2)提示用户登录(login:);1)打开指定的tty;
2024-12-14 18:11:11
741
原创 phy-MDC时钟修改
可能一个原因是这个芯片在开漏模式下速速最高到2M有关,您那边能帮忙协调一下,把内核PHY的MDC时钟改为2M以下,另把PHY的复位时间由现在的13MS左右调整到30MS左右我们试一下。在dt-bindings/clock/imx6qdl-clock.h中定义了各种时钟,用到什么时钟只需写入对应宏即可。所以ENET_MSCR寄存器的6-1应该写为15 10101 算得MDC为1.5M左右。drivers/net/ethernet/freescale/fec_main.c 中。可以看到给的是25M时钟。
2023-01-14 09:32:03
1425
原创 设置时间和打印时间不一致解决方法
比如/usr/share/zoneinfo/Asia/Hong_Kong。如果使用-u参数,设置的时间为rtc时间,显示会比设置的时间+8小时。开发板时区文件存放路径为/usr/share/zoneinfo/原来就有的就删掉原来的localtime文件之后再创建软连接。环境变量TZ用于设置时区,在开发板上设置这个环境变量可修改时区。打开/etc/profile。在/etc路径下创建软连接。设置时间使用下面命令设置。1、更改时区为东八区。输入下面命令查看时区。保存后重启,时区生效。
2023-01-11 15:02:46
1139
翻译 永久解决打开文件时卡顿的问题
许多用户抱怨说,当他们打开文件资源管理器时,它会在那里挂起几秒钟甚至几分钟,显示消息正在它。甚至安装了SSD操作系统的用户也在抱怨这个问题。但是,好消息是这很容易解决。这是如何做到的。
2022-12-20 15:22:40
9477
4
原创 shell 创建子进程及并行延时执行命令方法
子进程,是从父子进程的概念出发的,unix操作系统的进程从init进程开始(init进程为1,而进程号0为系统原始进程,以下讨论的进程原则上不包括进程0)均有其对应的子进程,就算是由于父进程先行结束导致的孤儿进程,也会被init领养,使其父进程ID为1。也因为所有的进程均有父进程,事实上,所有进程的创建,都可视为子进程创建过程。在apue一书里提及unix操作系统进程的创建,大抵上的模式都是进行fork+exec类系统调用。理解子进程的创建执行,需要至少细分到二个步骤,包括。
2022-12-12 12:05:50
2173
原创 alsa框架与音频芯片移植基础
音频芯片数据时钟接口:ADCDAT:ADC 数据输出引脚,采集到的音频数据转换为数字信号以后通过此引脚传输给主控制器。ADCLRC:ADC 数据对齐时钟,也就是帧时钟(LRCK),用于切换左右声道数据,此信号的频率就是采样率。此引脚可以配置为 GPIO 功能,配置为 GPIO 以后 ADC 就会使用 DACLRC引脚作为帧时钟。DACDAT:DAC 数据输入引脚,主控器通过此引脚将数字信号输入给 音频芯片 的 DAC。
2022-12-12 11:01:27
1804
原创 phytool下载与使用(详解)
寄存器19在0x0c44页下面,然后就可以写入值了, phytool write eth0/0/19 0x5f00。需要注意的是每个寄存器都有一个页地址,如果要写入该寄存器,需要先切换到对应分页,也就是上面例子的。phytool write eth0/0/31 0x0c44 ,意思是切换到0x0c44的页。上述操作的数值均可以使用16进制表示。
2022-11-22 15:53:52
4461
原创 一、platform-GPIO-driver分析使用
二、gpio-test.c应用代码分析附录:因为是64位,所以左移63,可以验证猜想。下面需要设置必要的结构体:里面需要有:杂项设备,gpio的相关数据,gpio个数。其实总结就是两个,一个杂项设备,一个gpio的数据写probe/* 分配 *//* 设置 *//* 注册 */编写文件操作函数file_operations函数如下:添加自己需要用到的函数本次讲解没有用到gpio中断,后续可能会更新相关部分
2022-11-08 14:58:27
415
原创 spdlog下载与简单使用
cmake使用教程:https://www.coonote.com/linux-note/cmake-usage.html。快速入门https://github.com/gabime/spdlog/wiki/1.-QuickStart。spdlog网址https://github.com/gabime/spdlog。可以直接修改example下面的example.cpp。重新编译,直接把build目录全部删除。一个{}对应后面一个""
2022-10-19 11:18:17
875
原创 linux 系统调用open和close介绍以及作用和调用关系的理解
可能其他线程会操作到本次未关闭的文件描述符,会产生数据泄露。在程序中如果会多次使用open(fd)打开设备时,不使用close(fd)关闭设备,会造成资源浪费,并且达到1024上限的时候,会报错,too many fd单进程程序,不使用close(fd)也是可以的,并不会影响内存和资源的占用,在运行结束时,或者接收到信号退出时,系统自动释放资源,(即自动运行close(fd))下面是简单的例子:/** @description : 关闭/释放设备。
2022-10-11 16:36:03
3107
原创 最全udev简介与使用方法
udev是一个用户空间系统,它使操作系统管理员能够为事件注册用户空间处理程序。udev守护程序接收的事件主要由 (Linux) 内核生成,以响应与外围设备相关的物理事件。因此,udev的主要目的是对外设检测和热插拔采取行动,包括将控制权返回给内核的操作,udev可提供所需的基础结构来动态维护/dev目录中的设备节点文件和符号链接。udev规则提供了将外部工具插入内核设备事件处理的方式。
2022-09-08 16:36:51
9400
原创 usb转百兆修改usb0为eth1
所以需要修改net->dev_addr [0],使它不等于0x02,并且FLAG_ETHER和dev->driver_info->flags做位与运算不等于0。用到了cdc_ether.c驱动,可以看里面的driver结构体,里面用到了usbnet_probe,该函数在usbnet.c里面。使用的是AX88772的驱动,识别到了eth1,但是还有一种情况,使用cdc驱动,识别成了usb0。发现net->dev_addr [0]是9a,2进制展开10011010,2展开是10,
2022-09-05 11:10:55
1185
原创 Modbus-tcp通信例程
一、modbus移植1.源码下载(1)官方下载源码:https://libmodbus.org/download/2.编译准备编译环境:VMware® Workstation 15 ProUbuntu18.04交叉编译工具:arm-fsl-linux-gnueabi-gcc或者arm-linux-gnueabihf-gcc3.交叉编译1.解压libmodbus-3.1.7.tar.gz压缩包tar -zxvf libmodbus-3.1.7.tar.gz2.在当前源码同级目录创
2022-05-19 18:13:24
4003
1
原创 设置8211网口方法并关闭EEE模式
关闭网口EEE模式问题引出:客户使用8211芯片,网口灯闪烁不正常,但是通信正常经过排查发现是网口灯进入了一种低功耗EEE模式EEE模式简介:RTL8211FS(-VS)以10 Mbps、100 Mbps和1000 Mbps支持IEEE 802.3az-2010,也称为节能以太网(EEE)。它提供了一种协议,用于基于链路利用率协调到或从低功耗级别(低功耗空闲模式)的转换。当不发送数据包时,系统采用低功耗空闲模式以节省功耗。一旦需要传输数据包,系统就会返回正常模式,并在不改变链路状态和不中断/损坏帧的
2022-05-10 14:33:26
5102
13
原创 脚本中grep使用
脚本中grep使用ps -A | grep some_command用ps命令加上-A参数显示所有的当前运行的进程,用管道符号“|”加上grep命令检索是否有我们指定的some_command运行-u从原环境中删除变量-i开始一个空环境,忽略原环境的所有设置。–help在标准输出上输出帮助信息并退出。–version在标准输出上输出版本信息并退出。修改命令执行环境,不影响当前环境。也可显示当前环境。语法:env[参数]变量命令1.grep 是查找含有指定文本行的意思,比如grep te
2022-04-18 11:59:21
1093
原创 设置默认屏幕显示
linux3.0.35 uboot1 查看uboot2009/include/configs/mx6q-sabresd.h2 修改分辨率3 分辨率定义文件linux4.1.15 uboot修改:将第一张图片红框的值写到第二张图片对应的位置
2022-04-12 15:00:07
248
原创 屏幕闪烁的解决办法
OKMX6关于背光的调节目前有三种方法:1. root@imx6qsabresd:~# echo "1" > /sys/class/graphics/fb0/blank //关闭背光 root@imx6qsabresd:~# echo "0" > /sys/class/graphics/fb0/blank //打开背光2. root@imx6qsabresd:~#echo 1 > /sys/class/backlight/backlight/bl_power /
2022-04-12 14:24:01
1305
原创 Android6.0添加usb转网口
Android6.0正常上网方法有两种:\1. 开机前如果插着网线,在开机过程中会识别到usb设备,自动启动网络服务,配置dns并使用dhcpcd eth0 实现android层的上网\2. 在启动后插入网线,需要手动配置,在ethernet工具中使用dhcp按钮,启动网络服务,配置dns并使用dhcpcd eth0 实现android层的上网Android6.0在开机前连接usb转网口时,会出现下述打印信息[09:30:47]i****nit: no such service ‘dhcpcd_et
2022-04-07 13:36:48
4962
原创 imx6处理器的运行模式
多核微处理器的运行模式AMP(非对称多进程)AMP-多个核心相对独立的运行不同的任务,每个核心可能运行不同的操作系统或裸机程序,或者不同版本的操作系统。但是有一个主要核心,用来控制整个系统以及其它从核心。具有主从模式。举个例子,比如一个主要核心控制用户界面UI,从核心控制数据采集以及输出。还有POS机,一个负责UI,一个负责交易。也就是两者负责不同的任务。每个核心有自己的内存空间(同时会有共享的内存空间),另外两者之间还有一定的通信机制。从硬件上来说,这种多处理模式可能是同构的,也可能是异构的,但大多情
2022-03-29 09:14:59
205
原创 Cmake安装使用及交叉编译
安装Cmakesudo snap install cmake --classic一 建立工程----------------------------------普通编译**按照如下结构体建立一个简单工程,建一个文件夹build,里面新建一个main.cmain.c内容如下,#include <stdio.h>int main(void){ printf("hello world\n"); return 0;}在build工程文件建一个CMakeLists.t
2022-03-28 14:55:38
597
原创 性能测试-计算圆周率
下面命令用来计算圆周率小数点后面500位,计算的时间越短,说明cpu的性能越好root@imx6qsabresd:~# time echo "scale=5000; 4*a(1)" | bc -l -qreal 1m43.149suser 1m42.710ssys 0m0.020s
2022-03-17 15:04:25
1164
原创 修改内核小企鹅
修改内核小企鹅 进入linux-4.1.15/drivers/video/logo 目录,可以看到启动内核时的 logo:logo_linux_clut224.ppm这个文件被便已进入了内核,所以在启动时会显示小企鹅,只要替换了这个文件,就可以替换小企鹅。1.将我们准备好的 logo.png 图片拷贝到这个目录中。拷贝完后的目录如下所示。2.图片格式转换。安装图片转换工具 netpdm,执行以下命令:sudo apt-get
2022-02-23 13:30:06
809
原创 史上最全最细imx6 GPIO配置流程及讲解
我们拿到板子要做的第一件事,往往是驱动一个gpio,控制其 GPIO 输出高低电平,在有些应用场景中,需要做到开机之后,某个引脚一直输出一个电平来初始化设备,这就不仅需要在内核中配置引脚为GPIO功能,还需要在uboot阶段也配置为GPIO功能。本篇文章就详细的介绍如何配置一个GPIO.以GPIO3_IO00为例:uboot下修改GPIO:1.首先需要配置IO口的寄存器打开arch/arm/include/asm/arch-mx6
2022-02-09 15:23:46
3902
原创 IMX6-LVDS-split模式配置
lvds理解首先看一下lvds支持的端口使用方式单通道LVDS :只通过一个通道接向外面的LVDS panel。(单路显示)split双通道LVDS: 通过两个通道接向外面的一个LVDS panel. (双通道lvds)两路通道LVDS: 通过两个通道接向外面的两个LVDS panel, panel 显示相同内容; (双屏同显)两路通道LVDS:两个不同输入,分别指向两个不同LVDS panel,panel 显示不同内容; (双屏异显)双通道LVDS 双通道LVDS:使用相同的I
2022-01-14 15:07:42
1260
原创 imx6修改温度保护
打开温度限制linux4.1.15更改内核驱动:drivers/thermal/imx_thermal.c的95、634行设置温度(IMX_TEMP_PASSIVE)为85度时降频,可自行更改将85000改为100000即可温度上限修改为100度计算公式:重启温度=设置温度(IMX_TEMP_PASSIVE)+20°设置温度为85时重启温度就是105,也可以改为+10 或任意数温度高了CPU会运行CPU_IDLE,这款CPU降温软件的原理就是,在CPU空闲的时候,自动降低CPU的频率,从而
2022-01-14 10:55:36
1045
原创 uboot网络启动
Uboot 网络启动用网线连接主机和开发板的网口并将编译好的内核镜像zImage和设备树文件复制到tftpboot目录下进入到uboot阶段,修改环境变量并保存:setenv ethaddr e6:97:d9:0c:f7:7a //设置MAC setenv serverip 192.168.2.51 //设置tftp服务器的IP setenv ipaddr 192.168.2.85 //设置本地的IP setenv image zImage
2022-01-14 10:52:50
1337
原创 Nfs服务器的搭建和使用
1.软件下载安装#apt-get install nfs-kernel-server nfs-common portmap 2.创建 nfs 目录并解压文件系统(以 rootfs.tar.bz2 文件系统为例,当前目录为根目录)#mkdir nfs_rootfs #tar -xvf rootfs.tar.bz2 -C /nfs_rootfs/ 3.修改配置文件#vim /etc/exports 在文件中添加以下配置:/nfs_rootfs *(rw,sync,no_root_squa
2022-01-14 10:48:34
182
原创 TFTP服务器的搭建与使用
TFTP 服务器搭建1.更新源因为开发环境版本较低,已经不支持tftp包安装,所以要更新一下源打开sources.list 文档gedit /etc/apt/sources.list 将下面的内容覆盖住原来的内容deb http://old-releases.ubuntu.com/ubuntu/ precise main restricteddeb-src http://old-releases.ubuntu.com/ubuntu/ precise main restrictedde
2022-01-14 10:46:10
1438
原创 ubuntu命令简单介绍和使用
Linux 命令的格式Linux 命令一般由三部分组成:①command 命令 ② options 选项 ③ parameter 参数Command -options parameter目录/文件操作命令cd进入目录pwd显示当前所在路径mkdir创建文件夹Mkdir -p可以创建没有的路径rmdir删除文件夹ls查看文件ls- al 显示所有文件的详细信息cp复制文件rm删除文件rm -rf强制删除文件或目录cat查看文件内容Touch创建一个文
2021-10-31 22:47:49
203
原创 ubuntu配置
更新源方法:备份/etc/apt/sources.listsudo cp /etc/apt/sources.list /etc/apt/sources.list.bak清华的源地址:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/在/etc/apt/sources.list文件里面替换原来的的文档sudo apt install net-tools //安装ifconfigsudo apt install git
2021-10-31 22:45:28
183
原创 imx6q wifi和以太网同时使用
修改wifi.sh脚本 将下面内容注释vi /etc/sysctl.conf改为sysctl -p //保存./wifi.sh -i 8723 -s lidenid -p li15132383595即可wifi和无线同时使用
2021-09-13 21:26:59
190
linux系统gpio子系统使用驱动源码
2023-01-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人