linux
文章平均质量分 83
Golden_Chen
在积累中成长,在探索中感悟,感悟心灵的深度,探索未来的永恒
展开
-
busybox 编译错误-记录
最近交叉编译最新的busybox 1.35源码在OK6410板子上做实验,遇到了些问题,做下总结。1. gcc-linaro-7.5.0-2019.12-arm-linux-gnueabi 该系列高版本工具链不能用于busybox的交叉编译虽然能够编译出来,但系统无法运行,直接提示SIGSEGV段错误,每次重编后的错误日志基本如下,可以看出PC和LR都是错误的,已超出实际内核MMU映射范围,其他寄存器也定位不到代码。[ 2.696508] init: unhandled page fau原创 2022-05-26 23:36:59 · 2359 阅读 · 0 评论 -
【转】STT_GNU_IFUNC 与 libc.so 的 GNU 扩展类型 ABI 问题
前言在ELF file OS ABI invalid 与 chroot 大法这篇文章中,我描述了 libc.so ABI 的特别之处,它的 ABI 为 GNU 扩展格式而非 System V 格式。在本文中研究下它如此特别的原因。elf.h 中的相关定义系统头文件路径中,与这个 ABI 相关的宏在 /usr/include/elf.h 文件中定义,相关代码摘录如下: 138 #define EI_OSABI 7 /* OS ABI identification */ .转载 2022-05-23 22:06:21 · 522 阅读 · 0 评论 -
初识ELF格式 ABI,EABI,OABI
尽管每天都在调用linux的elf文件做各种事,但却很少去了解他,最近尝试在orangepi上编译个elf到android手机上运行,因为两个CPU都是ARMv8的.结果运行失败了.遂查找原因.结果挖出这玩意...以下内容大部分为摘抄整理:关于ABI,EABI,OABI:ABI(application binary interface)应用程序二进制接口一般应用程序是要分各种CPU架构的,ABI用于对接.而ABI的不同则是linux内核和glibc的升级导致的规范变化导致的。不同的ABI程序和库转载 2022-05-23 21:59:55 · 1031 阅读 · 0 评论 -
比较:unlocked_ioctl、compat_ioctl
compat_ioctl:支持64bit的driver必须要实现的ioctl,当有32bit的userspace application call 64bit kernel的IOCTL的时候,这个callback会被调用到。如果没有实现compat_ioctl,那么32位的用户程序在64位的kernel上执行ioctl时会返回错误:Not a typewriter 。 如果是64位的用户程序运行在64位的kernel上,调用的是unlocked_ioctl,如果是32位的APP运行在32位的kernel上转载 2022-04-05 14:56:39 · 2448 阅读 · 0 评论 -
WPA_supplicant/ WPA_cli 使用格式,以及802.11 联结状态码 / 未认证异常码
802.11 Association Status Codes Code 802.11 definition Explanation 0 Successful 1 Unspecified failure For example : when there is no ssid specified in an associatio转载 2022-03-15 21:27:42 · 2632 阅读 · 0 评论 -
交叉编译 WPA_Supplicant
记录下这个wifi配置工具的编译过程。步骤不少,涉及的开源工具包不少,很有记录的价值。 WPA_Supplicant简介 首先,稍稍介绍下wpa_supplicant,这是一个控制无线网络连接的工具,类似于iw系列,但iw系列已经比较旧了,很多功能都支持不了,这也是我非得费时费力搞的原因。它主要用wpa_supplicant 和wpa_cli两个tools组成。前者是一个daemon角色;后者相应于一个控制器,于daemon通信,故wpa_cli无法单独运行。使用...原创 2022-03-14 23:35:00 · 7929 阅读 · 5 评论 -
BUG:nslookup能通,但ping不通域名
在OK6410开发板上,使用最新版本busybox-1.35重新制作了rootfs。按照readelf命令结果,将交叉工具链中直接以及间接所引用到的动态链接库,通通复制进来。本以为作为基础功能的ping会很顺利,实际了也折腾一天。golden@ubuntu:~/workspace/busybox$ arm-none-linux-gnueabi-readelf -d rootfs/bin/busybox Dynamic section at offset 0x10900c contains 26 e原创 2022-03-14 18:27:10 · 4429 阅读 · 0 评论 -
编译错误:multiple definition of `yylloc‘
Using .. as source for kernel HOSTLD scripts/dtc/dtc/usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x10): multiple definition of `yylloc'; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined herecollect2: error: ld returned 1 exit statusmake[2]...原创 2022-03-05 17:29:31 · 4786 阅读 · 1 评论 -
GNU编译器“.previous“的解释
12 then 13 rm sramboot.o *bin *exe 14 fi结果:转载 2021-06-18 11:10:28 · 755 阅读 · 0 评论 -
linux下的usb抓包以及mon日志分析
原网页地址:http://blog.chinaunix.net/uid-11848011-id-4508834....1 linux下的usb抓包方法1)配置内核使能usb monitor:make menuconfig Device Drivers --> USB Support --> USB Monitor --&...转载 2021-05-27 13:56:53 · 929 阅读 · 0 评论 -
连接跟踪(conntrack)原理、应用以及Linux内核实现
发现一篇好文章,立即转载了来,原地址:http://arthurchiao.art/blog/conntrack-design-and-implementation-zh/摘要本文介绍连接跟踪(connection tracking,conntrack,CT)的原理,应用,及其在 Linux 内核中的实现。代码分析基于内核4.19。为使行文简洁,所贴代码只保留了核心逻辑,但都给出了代码 所在的源文件,如有需要请查阅。水平有限,文中不免有错误之处,欢迎指正交流。1 引言连接跟踪是许多.转载 2021-05-11 11:08:57 · 8943 阅读 · 1 评论 -
Shell中创建序列和数组(list、array)
这篇文章主要介绍了Shell中创建序列和数组(list、array)的方法,一、seq方法生成:// seq [OPTION]... LAST// seq [OPTION]... FIRST LAST// seq [OPTION]... FIRST INCREMENT LAST[chengmo@centos5 ~]$ seq 1000 //起始默认是 1,间隔默认也是1[chengmo@centos5 ~]$ seq 2 1000 //间隔默认是1[chengmo@centos5 ~]转载 2021-04-01 16:34:56 · 5203 阅读 · 0 评论 -
如何定义systemd全局变量,以及systemd介绍
systemd的全局配置项,存在于两个地方: 1.系统进程配置文件:/etc/systemd/system.conf 2.用户进程配置文件:/etc/systemd/user.conf以下是来自archlinux网站文章“systemd/User”的介绍解释, 讲的比较详细systemd 用户实例不会继承类似.bashrc中定义的环境变量。systemd 用户实例有三种设置环境变量的方式:对于有$HOME目录的用户,可以在~/.config/systemd/user....原创 2021-03-12 10:56:07 · 6361 阅读 · 0 评论 -
ubi 数据结构简单分析
测试ubi镜像的方法:sudo modprobe mtdsudo modprobe mtdblocksudo modprobe nandsim first_id_byte=0xec second_id_byte=0xa1 third_id_byte=0x00 fourth_id_byte=0x15#其中fourth_id_byte,含义如下sudo chmod 660 /dev/mtd0*ls -lah /dev/mtd*cat /proc/mtdmtdinfo /dev/mtd0s转载 2020-12-10 09:42:50 · 3196 阅读 · 0 评论 -
linux select函数详解
原链接:https://blog.csdn.net/lingfengtengfei/article/details/12392449在Linux中,我们可以使用select函数实现I/O端口的复用,传递给select函数的参数会告诉内核: •我们所关心的文件描述符 •对每个描述符,我们所关心的状态。(我们是要想从一个文件描述符中读或者写,还是关注一个描述符中是否出现异常) •我们要等待多长时间。(我们可以等待无限长的时间,等待固定的一段时间,或者根本就不等待)...转载 2020-11-17 15:42:15 · 685 阅读 · 1 评论 -
linux用户空间控制gpio的两种方法
1. 架构2. 有两种操作方法2.1 第一种: sysfs接口(旧,已废弃)2.2 第二种: 字符设备接口(新)3. 如何使用sysfs接口控制gpio?3.1 确定要使用的gpio号(怎么知道gpio号呀?)3.2 将gpio号写入文件/sys/class/gpio/export中# echo 333 >/sys/class/gpio/export3.3 将gpio配置为输入还是输出配置为输出示例如下:# echo out > /sys/cl...原创 2020-07-25 18:14:15 · 7415 阅读 · 0 评论 -
linux中的rootfs/initrd/ramfs/initramfs
From:https://www.cnblogs.com/lidabo/p/5719235.html什么是ramfs?ramfs是空间规模动态变化的RAM文件系统。它非常简单,是用来实现Linux缓存机制(缓存page cache and dentry cache)的文件系统。通常情况下,Linux的所有文件在内存中都有缓存。需要读取的数据页从支撑存储设备(block device)中读取后,缓存于内存。在支撑存储设备中的数据页执行marked as clean操作。当虚拟文件系统需要支撑存储设.转载 2020-06-12 11:58:38 · 577 阅读 · 0 评论 -
MJPG-Streamer 远程视频工具的使用
源码:git clone https://github.com/Five-great/mjpg-streamer.git安装编译:$sudo apt-get install cmake libjpeg8-dev$ cd~/mjpg-streamer-master/mjpg-streamer-experimental$ make$ sudo make install测试:$ mjpg_streamer -i "input_uvc.so -n -f 10 -r 640x480 -d...原创 2020-06-01 16:30:19 · 1241 阅读 · 0 评论 -
交叉编译ffmpeg-4.2.2
最近想弄个USB camera, 测试下视频功能。看到网上推荐使用FFmpeg这个开源工具。FFmpeg: A complete, cross-platform solution to record, convert and stream audio and video.官网地址:http://ffmpeg.org/下载最新的 FFmpeg 4.2.2源码。参考了其他文章,FFmpeg编译...原创 2020-03-16 15:43:25 · 4438 阅读 · 5 评论 -
LINUX交叉编译器的常用调试命令总结:nm,addr2line,objdump,readelf,objcopy,gdb
一、符号列表输出命令:nm文件格式:nm [options] [objfile...] ---- list symbols from object filesoptions: [-A|-o|--print-file-name] [-a|--debug-syms] [-B|--format=bsd] [-C|--demangle[=style]...原创 2020-02-24 17:28:05 · 2325 阅读 · 0 评论 -
一点Linux心得: 编译 modutils-2.4.27-1.src.rpm
我目前在看宋宝华老师的《Linux设备驱动开发详解》;书中提到Linux内核编译部分,需要升级modutils 和module-init-tools.module-init-tools还好一下就编译过。而modutils就是老是出错,后来上网查了一下,发现原来是由于我电脑上安装的Linux kernel 为2.6.xx,所安装的modutils-2.4.27-1.src.rpm 是针...原创 2010-11-06 19:37:00 · 4064 阅读 · 5 评论 -
NandFash:Linux MTD 结构体关联图 和 Nandflash的一些概念
以前基于linux-3.8.8 MTD框架整理的框图, 在最新linux-4.20上,仍然使用。补充下《Linux MTD架构下的nand flash驱动详解》一文中关于主要结构体的内容,Nandflash相关的概念:1. ECC: Error Checking and Correction一种用于Nand的差错检测和修正算法。有1位、4位和8位,也就是说在512字节的数据中,...原创 2019-04-24 11:19:02 · 504 阅读 · 0 评论 -
Linux MTD架构下的nand flash驱动详解
转载自:http://blog.csdn.net/wang_zheng_kai/article/details/18988521有了前面的基础(Nandflash详解:https://blog.csdn.net/Golden_Chen/article/details/89470673),我们就可以研究MTD下的nand驱动了,我这里用的是jz4780grus开发板,我将以下面几个部分做一个介绍...转载 2019-04-23 17:45:12 · 8064 阅读 · 0 评论 -
NandFlash详解
转载自: https://blog.csdn.net/hellomxj1/article/details/18984873学习结构如目录所示:一、NAND FLASH概述二、NAND FLASH的参数及物理结构三、NAND FLASH的地址访问方法四、NAND FLASH的操作方法五、NAND FLASH的其他一些补充一、Nand Flash的概述1、Nand Flash...转载 2019-04-23 14:33:53 · 30579 阅读 · 3 评论