![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
YuZhuQue
这个作者很懒,什么都没留下…
展开
-
使用 backtrace 定位挂死的问题
在ARM平台上面,需要gcc 编译的时候打开如下选项。原创 2023-07-28 09:49:21 · 415 阅读 · 0 评论 -
update-alternative 配置gcc的版本
update-alternative 配置gcc的版本原创 2023-07-27 09:20:23 · 711 阅读 · 0 评论 -
内核线程绑定指定的 cpu 核
内核线程绑定原创 2023-03-10 11:23:47 · 511 阅读 · 1 评论 -
获取处理器的内核数量
getconf原创 2023-03-06 15:45:57 · 124 阅读 · 0 评论 -
shell 脚本出错退出
shell 脚本交互退出原创 2023-02-08 10:30:14 · 1697 阅读 · 0 评论 -
request_firmware 搜索路径
request_firmware 搜索路径原创 2022-09-29 10:14:08 · 704 阅读 · 0 评论 -
linux 分离某几个核给单独的应用进程使用 isolcpus
linux isolcpus原创 2022-07-26 16:52:45 · 917 阅读 · 0 评论 -
内核代码风格批量修改
内核代码规范原创 2022-06-02 11:44:25 · 255 阅读 · 0 评论 -
linux 打开内存压缩
内存压缩 zram原创 2022-06-01 15:23:12 · 415 阅读 · 0 评论 -
vscode 连接 ssh linux 服务器 使用 code 打开文件
在我们的开发的时候,常常使用 vscode 进行开发具体而言一种方式就是 通过 ssh 连接公司的编译服务器连接终端以后,每次打开文件都需要去左边的文件管理器双击打开,很不方便可以使用 vscode 自带的 code 命令打开文件在ssh 服务器的家目录下有个 .vscode-server 的文件夹,找到里面的code 可执行文件 并把它添加到环境变了里面就可以了打开 ~/.bashrc# Vscodeexport PATH=/new_home/xxx/.vscode-server/bin/d原创 2022-05-18 10:41:06 · 3653 阅读 · 1 评论 -
命令行 调整CPU 定频
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governorinteractive:自动调节userspace:用户控制/sys/devices/system/cpu/cpufreq/policy0/related_cpus /* 同个cluster下的所有CPU */affected_cpus /* 同个cluster下未关的CPU */cpuinfo_transition_latency /* 两个不同频率之间切换时所需要的时间,单位n原创 2022-05-09 20:09:27 · 1733 阅读 · 0 评论 -
Ubuntu 18.04 apache2 搭建http文件服务器
在我们日常的开发过程中,需要创建一个http 文件服务器 用于调试比如直接使用 wget 获取文件 代替 插拔SD卡(用sd卡拷贝)1. 安装 apache2apt-get updateapt-get install apache22. 将需要的文件放置在 /var/www/html 下面cp xxx /var/www/html/mv /var/www/html/index.html /var/www/html/index.html.bk3. 启动apache2/etc/init.原创 2022-04-25 17:11:12 · 1797 阅读 · 1 评论 -
ROCKCHIP U-BOOT下操作GPIO
背景: 在进入 loader 模式的时候需要将一个 GPIO 拉高代码修改--- a/arch/arm/mach-rockchip/boot_rkimg.c+++ b/arch/arm/mach-rockchip/boot_rkimg.c@@ -33,6 +33,7 @@ #include <u-boot/sha1.h> #include <u-boot/sha256.h> #include <linux/usb/phy-rockchip-usb2.h>原创 2021-12-23 14:21:32 · 1715 阅读 · 0 评论 -
linux下检测网线拔出
看了很多方法 当然也可以实现 ,但是实现起来比较繁琐,有时候还不一定成功其实很简单 在命令行查看 /sys/class/net/eth0/carrier 即可知道网线是否拔了carrier:1 ----网线正常carrier:0 ----网线断开拔掉网线的时候,同时debug也会输出提示 eth0 link down只需要在应用层程序里面,读取carrier中的值 即可skfd = open("/sys/class/net/eth0/carrier", O_RD原创 2021-12-09 15:39:04 · 1148 阅读 · 0 评论 -
C语言判断大端存储跟小端存储
C语言判断大端存储跟小端存储#include <stdio.h>int main(int argc, char **argv){ union { int u32; char arr[4]; } xn; xn.arr[0] = 0x44; xn.arr[1] = 0x33; xn.arr[2] = 0x22; xn.arr[3] = 0x11; if (xn.u32 == 0x11223344)原创 2021-10-27 15:37:40 · 161 阅读 · 0 评论 -
linux 调试 dump_stack 跟 current
分析内核重启的时候--- a/kernel/reboot.c+++ b/kernel/reboot.c@@ -235,10 +235,16 @@ void kernel_restart(char *cmd) kernel_restart_prepare(cmd); migrate_to_reboot_cpu(); syscore_shutdown();+ dump_stack(); if (!cmd)- pr_emerg("Restart原创 2021-08-11 10:09:57 · 139 阅读 · 0 评论 -
内核 gpio 解析 设备树的 gpio 配置
gpiod = devm_gpiod_get(dev, "recv", GPIOD_IN); 对应的设备树recv-gpios = <&gpio XGPIO_000 1>;gpiod = devm_gpiod_get(dev, NULL, GPIOD_IN); 对应的设备树gpios = <&gpio XGPIO_000 1>;原创 2021-05-08 18:19:18 · 3079 阅读 · 0 评论 -
纯正的linux 内核跟 android 内核 的区别
Android系统层面的底层是Linux,并且在中间加上了一个叫做Dalvik的Java虚拟机,从表面层看是Android运行库。每个Android应用都运行在自己的进程上,享有Dalvik虚拟机为它分配的专有实例。为了支持多个虚拟机在同一设备上高效运行,dalvik被改写过。Dalvik虚拟机执行的是Dalvik格式的可执行文件(.dex)-该格式经过优化,以将内存好用降到最低。Android内核和Linux内核的差别主要体现在如下11个方面:Android BinderAndroid Bind原创 2021-05-08 18:16:49 · 583 阅读 · 0 评论 -
linux 内核态重启接口
头文件 <linux/reboot.h>源文件 kernel/reboot.c调用接口/** * orderly_reboot - Trigger an orderly system reboot * * This may be called from any context to trigger a system reboot. * If the orderly reboot fails, it will force an immediate reboot. */void.原创 2021-04-07 17:31:29 · 707 阅读 · 0 评论 -
linux内核定时器-简单示例代码
#include <linux/timer.h>#include <linux/module.h>struct timer_list timer;static void timer_test_handle(unsigned long data){ printk("timer test\n"); timer.expires = jiffies + HZ; // 1s add_timer(&timer);}原创 2021-04-07 15:12:09 · 212 阅读 · 0 评论 -
ubuntu 下解压 squashfs 镜像
查看被解压镜像的格式$ file oem_mcu.img oem_mcu.img: Squashfs filesystem, little endian, version 4.0, 8882234 bytes, 55 inodes, blocksize: 131072 bytes, created: Mon Mar 1 13:30:47 2021解压 squashfs 镜像需要用到一个工具 unsquashfsunsquashfs oem_mcu.img Parallel .原创 2021-03-15 15:11:39 · 864 阅读 · 0 评论 -
I2C 报错问题排查
i2c 报 “timeout, ipd: 0x80, state: 1”错误,芯片供电不对导致(要求1.8V,实际1.2V)。i2c 报 “timeout, ipd: 0x00, state: 1”错误,测量发现SCL和SDA无法拉低,硬件电平转换电路的问题。i2c 报错可按如下方法和步骤排查:如果调用 I2C 传输接口返回值为 -6(-ENXIO)时候,表示为 NACK 错误,即对方设备无应答响应,这种情况一般为外设的问题,常见的有以下几种情况:I2C 地址错误;I2C slave 设备.原创 2021-02-20 15:29:31 · 14951 阅读 · 0 评论 -
linux samba 安装配置
当需要windows和linux更好的进行文件交互时,使用Samba服务是一个不错的选择。安装和卸载samba命令:sudo apt-get install samba samba-commonsudo apt-get autoremove samba建立samba访问目录,并且增加目录的权限mkdir /mnt/smbchmod 777 /mnt/smbsamba服务添加用户(假设我的ubuntu用户名为:test)sudo smbpasswd -a test配置smb.confsud原创 2021-01-23 18:37:11 · 173 阅读 · 1 评论 -
Ubuntu 20.04 添加字体 cascadia
步骤wget https://github.com/microsoft/cascadia-code/releases/download/v1909.16/Cascadia.ttfmv Cascadia.ttf /usr/share/fontsmkfontscalemkfontdirfc-cache -fv终端操作原创 2021-01-22 11:36:45 · 3290 阅读 · 0 评论 -
shell 中对 数字的处理
我们先看如下实例#!/bin/bashif [ $1 == '123' ];then echo $1fi if [ $1 -eq 123 ];then echo $1fi 执行结果123123shell 作为一种解释型语言,会按照需要解释成对应的类型,这里数字被解释为整形或者字符串我们再对上面的代码稍作修改#!/bin/bashif [ $1 == 'abc' ];then echo $1fi if [ $1 -eq abc ];th原创 2021-01-09 11:07:56 · 524 阅读 · 0 评论 -
Linux bluetooth 配对信息保存地址
需要在 package bluez5-utils 中打开--localstatedir=/data/bluez然后会在目标板下生成如下目录原创 2021-01-04 17:08:52 · 689 阅读 · 0 评论 -
buildroot kernel 等源码下载地址
buildrootgit clone https://github.com/buildroot/buildroot.gitkernelgit clone https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux.git原创 2020-12-11 10:19:34 · 648 阅读 · 0 评论 -
Linux 利用标准的 V4L2 获取 UVC camera 的图像
话不多说 直接上代码//cut a picture#include <stdio.h>#include <stdlib.h>#include <string.h>#include <assert.h> #include <getopt.h> #include <fcntl.h> #include <unistd.h>#include <errno.h&g原创 2020-12-01 18:03:11 · 775 阅读 · 0 评论 -
/etc 可读写内核 overlay
内核配置CONFIG_OVERLAY_FS=y文件系统挂载# cd /data# mkdir etc data# mount -t overlay overlay -o lowerdir=/etc,upperdir=/data/etc,workdir=/data/work /etc# mount | grep overlayoverlay on /etc type overlay (rw,relatime,lowerdir=/etc,upperdir=/data/etc,workdir=/d原创 2020-11-26 14:13:26 · 492 阅读 · 0 评论 -
C语言判断某个文件是否为普通文件
static int is_file(const char *path){ struct stat astats; if (!path) return 0; if ((lstat(path, &astats)) != 0) return 0; if (S_ISREG(astats.st_mode)) return 1;原创 2020-11-13 10:56:06 · 807 阅读 · 0 评论 -
内核链表在用户空间的使用
list.h#ifndef __LED_ANIMATION_LIST_H__#define __LED_ANIMATION_LIST_H__#include <stdio.h>#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)#define container_of(ptr, type, member) ({ \ const typeo原创 2020-11-13 10:52:54 · 174 阅读 · 0 评论 -
/sys/kernel/debug/gpio
/sys/kernel/debug/gpio在实际的开发任务中,有时候不知道GPIO的状态,也不知道在内核中GPIO是否申请成功。可以通过/sys/kernel/debug/gpio这个文件来查看。这个文件显示了申请成功的GPIO的输入输出状态和电平。配置内核打开 debugfs 的支持Symbol: DEBUG_FS [=y] Prompt: Debug Filesystem Defined at lib/Kconfig.debug:77 Depends on:原创 2020-10-12 17:50:51 · 3586 阅读 · 0 评论 -
ssh The semaphore timeout period has expired.
现象在使用ssh 连接远程主机的时候,长时间不操作的话,会提示The semaphore timeout period has expired.原因长时间不操作,系统就认为这是不必要的消耗,然后就会进行优化解决client 端以SecureCRT为例server 端vi /etc/ssh/sshd_config在文件末尾添加 ClientAliveInterval 60 ClientAliveCountMax 3 ClientAliveInterval指定了服务器端向客户端原创 2020-07-10 20:34:14 · 5920 阅读 · 0 评论 -
MTK NVram 修改
DESCRIPTION]客户有需求修改wifi的参数,如打开5G支持项等,同时需要可以半擦和OTA升级,但是原本的WIFI MAC地址不可以丢失。[SOLUTION]WIFI nVRam参数更新升级,同时保留MAC地址,可以按照以下步骤修改:修改 AP_CFG_RDEB_FILE_WIFI_LID_VERNO,将此值增加 1.Custom_NvRam_LID.h (alps\mediatek\custom$projet\cgen\inc)#define AP_CFG_RDEB_FILE_WI原创 2020-06-11 11:23:03 · 1253 阅读 · 0 评论 -
shell 中 =~ 的用法
我们先看一个脚本,该脚本的功能是搜索当前目录下文件中的指定字符串#!/bin/bashapath=$1;acontent=$2;aexp=$3;if [[ $aexp =~ all ]] ;then原创 2020-05-27 09:58:48 · 23007 阅读 · 2 评论 -
make menuconfig 报错
解决方法很简单,安装ncurses库即可,ubuntu/debian系统可采用如下命令进行安装:apt-get install libncurses5-devncurses库是字符终端下屏幕控制的基本库,可能很多新开发的程序都不使用了,不过如果要编译一些老程序,还经常用到。...原创 2020-05-26 09:48:43 · 296 阅读 · 0 评论 -
WSL 自动启动ssh服务
C:\Windows\System32>wsl --help版权所有 (c) Microsoft Corporation。保留所有权利。用法: wsl.exe [参数] [选项...] [CommandLine]用于运行 Linux 二进制文件的参数: 如果未提供任何命令行,wsl.exe 将启动默认 shell。 --exec, -e <CommandLine> 在不使用默认 Linux shell 的情况下执行指定的命令。 --原创 2020-05-25 09:46:59 · 1015 阅读 · 1 评论 -
linux 下 使用 .swp文件恢复源文件
今天在开发的过程中,突然断网,然后与服务器断开连接,此时我正在编辑一个比较重要的文件,与服务器重新连接后,本来是想删除 .swp文件,手速快了,直接rm -rf 源文件,这个时候有点慌。转念一想,.swp文件不就是保存源文件信息的么,肯定有办法恢复,我的操作如下: (eg:源文件为 daily)cp.daily.swp .daily.swp.bakcp .daily.swp dailyv...原创 2020-05-08 11:01:33 · 1040 阅读 · 0 评论 -
gpio_export_with_name
对于Linux 内核中的gpio操作,想必大家都很清楚,一般的做法是通过 gpio 的 sysfs文件系统cd /sys/class/gpioecho 11 > exportcd gpio11xxxxxxxxx......这种方法,可以直接操作GPIO口,但是当我们需要将类似刚刚例子里面的gpio11替换为我们使用引脚的具体定义时,如PWR_EN,这样的方法就行不通了,所以这里...原创 2020-05-06 14:37:18 · 504 阅读 · 0 评论 -
grep 查找多个关键词之一
单个字符串进行查找查找当前目录文件名中的字符串 grep 字符串 文件名查找某个文件中的字符串,并输出行号 grep -n 字符串 文件名查找当前目录中的字符串(包含子目录)grep -r 字符串 *查找当前目录中的字符串(包含子目录),并输出行号grep -rn 字符串 *-R 查找所以文件包括子目录-i 不区分大小写同时满足多个字符串并且查找grep 字符串1 文件名...原创 2020-04-28 11:08:54 · 3588 阅读 · 0 评论