linux
Seem Jing
这个作者很懒,什么都没留下…
展开
-
linux内核会产生coredump的信号
#define SIG_KERNEL_COREDUMP_MASK (\ rt_sigmask(SIGQUIT) | rt_sigmask(SIGILL) | \> rt_sigmask(SIGTRAP) | rt_sigmask(SIGABRT) | \ rt_sigmask(SIGFPE) | rt_sigmask(SIGSEGV) | \> rt_sigmask(SIGBUS) | rt_sigmask(.原创 2020-11-13 10:21:59 · 1001 阅读 · 0 评论 -
linux用户态信号处理函数调用流程
如上图,ret_to_user是系统调用、中断、异常触发处理完成后都会调用的函数,调用路径(arm64):ret_to_user -> work_pending -> do_notify_resume(arch/arm64/kernel/signal.c) -> do_signal -> handle_signal -> setup_rt_frame。setup_rt_frame里面会将注册处理函数压入到用户线程栈上,待返回到用户态,注册函数即被调用执行。...原创 2020-11-11 15:04:10 · 771 阅读 · 0 评论 -
使用ffmpeg提取mp4内部日期重命名文件(需lua)
这里写自定义目录标题使用ffmpeg提取mp4内部媒体创建日期重命名文件使用ffmpeg提取mp4内部媒体创建日期重命名文件mkdir -p new; for fn in *.mp4; do cdate=`ffprobe.exe -hide_banner $fn 2>&1 | grep creation_time | head -1 | lua -e 'local ctime=io.read(); local year,month,day,hour,minute,second = stri原创 2020-08-31 11:47:18 · 1059 阅读 · 0 评论 -
linux下从MP4文件中提取日期批量添加到文件名前缀
从MP4文件中提取creationTime用作文件名前缀: for fn in *.mp4; do t1=`mp4file --dump $fn | /bin/grep creationTime | head -1 | awk '{print $4}'`; let t2=t1-2082844800; t_str=`date -d @$t2 +"%Y%m%d-%H%M%S"`; fn2=${t_str}_$fn; echo $fn -> $fn2; sudo mv $fn $fn2; done原创 2020-07-07 10:52:32 · 401 阅读 · 0 评论 -
linux mmc驱动cd_type定义
enum cd_types { S3C_SDHCI_CD_INTERNAL, /* use mmc internal CD line */ S3C_SDHCI_CD_EXTERNAL, /* use external callback */ S3C_SDHCI_CD_GPIO, /* use external gpio pin for CD line */ S3C_SDHCI_CD_NON原创 2013-11-24 17:01:58 · 1098 阅读 · 0 评论 -
unrecognised EXT_CSD revision 6解决办法
我是在编译了3.0内核后发现eMMC卡怎么也初始化不了,老提示这个错误。但正常的SD卡确可以使用,经过一番研究,在结合网上查找的资料,终于将问题解决了。在网上搜到的资料,说明了内核对eMMC4.5的支持方法:mmc: core: Detect eMMC v4.5 ext_csd entriesGitweb: http://git.kernel.org/linus/38ca2原创 2013-11-08 13:57:22 · 10067 阅读 · 1 评论 -
三星平台SD/MMC驱动分析
三星平台SD/MMC驱动主要有两个文件sdhci.c和sdhci-s3c.c,核心驱动在后者里面。我们一步一步分析,先从平台驱动注册看起sdhci-s3c.c:static int __init sdhci_s3c_init(void){ return platform_driver_register(&sdhci_s3c_driver);}注册了sdhci-s3c原创 2013-11-06 13:02:06 · 2257 阅读 · 0 评论 -
所有编译过的内核版本列表
2.6.34:2.6版本里面长期维护版本,用来编译过arm版本和x86版本,没发现任何问题2.6.36:mini6410附带安卓内核版本2.6.38:mini6410附带linux内核版本3.6.38.8:linux官方下载的内核版本。主要是在学习内核配置、裁剪的时候用来编译配置,和mini6410提供的进行比较学习3.0.8:x210v3附带的安卓内核就是这一版,所以就下了个相同的版本编译看有没原创 2013-11-19 15:30:31 · 1337 阅读 · 0 评论 -
内核新特性——Patch physical to virtual translations at runtime
Linux/arm 3.4.67 Kernel Configuration中多了一项:Patch physical to virtual translations at runtime帮助信息解释如下:CONFIG_ARM_PATCH_PHYS_VIRT: │原创 2013-11-04 21:09:30 · 4650 阅读 · 0 评论 -
三星6410 uart平台设备添加流程分析
查找mach-xxx.c文件,platform_device数组中并没有uart设备。但看uart驱动,发现采用的还是platform方式注册的,那uart设备是在哪里添加的呢?看下面代码,位于文件arch/arm/plat-samsung/init.cstatic int __init s3c_arch_init(void){ int ret; // do the corre原创 2013-11-04 15:09:33 · 957 阅读 · 0 评论 -
linux cmdline解析过程说明
cmdline为bootloader传递给内核的启动参数,包含很多配置信息,如root=xxx,console=xxx这些参数的解析是由内核在启动过程中完成的。解析程序分为很多模块,每个模块都使用“__setup("xxx",foo)”形式关联相应参数到处理函数。如 root参数的关联代码为:__setup("root=", root_dev_setup);然后root后面的参原创 2013-10-18 16:43:05 · 1964 阅读 · 0 评论 -
mmc0: Too large timeout requested for CMD25
说明首先,如果你出现以上错误,绝大部分原因是内核的问题,我测试过出现此种问题的内核版本为3.4.68,可以对一下是不是一样的内核版本。可以跟换其他版本内核测试,我测试过3.0.8、3.6.7均未出现错误。因此,可能是3.4这版内核新添加的特性。运行截图错误信息输出:内核版本:正常运行版本:没有错误提示信息输出。3.6.原创 2013-11-09 13:53:38 · 2492 阅读 · 0 评论 -
x210v3 lcd驱动参数
static struct fb_videomode smdkv210_lcd_timing = { .left_margin = 44, .right_margin = 50, .upper_margin = 10, .lower_margin = 5, .hsync_len = 16, .vsync_len = 3, .xres = 800, .yres = 480,};原创 2013-11-24 18:10:35 · 986 阅读 · 0 评论 -
error: ‘struct dentry’ has no member named ‘d_count’
error: ‘struct dentry’ has no member named ‘d_count’新版内核中去掉了dentry结构体中的d_count成员,而是采用了原创 2014-04-28 10:14:21 · 3467 阅读 · 1 评论 -
GCC push/pop说明
push{r4,fp,lr}pop{r4,fp,lr}push是原创 2014-07-29 13:54:53 · 913 阅读 · 0 评论 -
linux termios 之 VMIN VTIME
在linux串口编程的时候,灵活应用VMIN VTIME会给原创 2014-09-30 10:22:05 · 1423 阅读 · 0 评论 -
linux find命令多个条件与或关系
2.11 Combining Primaries With Operators=======================================Operators build a complex expression from tests and actions. Theoperators are, in order of decreasing precedence:原创 2014-12-04 14:46:34 · 25901 阅读 · 0 评论 -
查看arm linux是硬浮点还是软浮点的方法
查看elf文件header字段,找到e_flags,如下:软浮点:Flags: 0x5000202, has entry point, Version5 EABI, soft-float ABI硬浮点:Flags: 0x5000402, has entry point原创 2015-08-22 11:03:49 · 7748 阅读 · 0 评论 -
libxfce4ui编译过程
配置./autogen.sh --prefix=/apps,然后就make。没有想象的顺利,虽然所有要装的开发库都安装了。基本还是因为对这一套基础环境的不了解。第一个错误:../libxfce4ui/libxfce4ui-aliasdef.c:177:39: warning: this use of "defined" may not be portable [-Wexpansion-to-d原创 2018-01-09 15:18:34 · 895 阅读 · 0 评论 -
libm.so.6:no such file or directory
最近几天一直在弄qemu方针integratorcp开发板,遇到了很多问题,其中一个就是这个。出现这种错误,一般肯定是首先检查库是否存在,是否在文件搜索路径中。我出现这个错误的情况可能有点不一样,是在系统启动过程中提示的,由于该错误,系统未启动成功,init进程被杀死,但内核已经启动完成。查看/lib目录,发现libm.so.6文件存在,是个链接文件,指向libm-2.17.so。然后原创 2013-07-05 14:33:35 · 12971 阅读 · 0 评论 -
busybox中ash对全局环境变量/etc/profile文件的处理
if (argv[0] && argv[0][0] == '-') isloginsh = 1; if (isloginsh) { state = 1; read_profile("/etc/profile"); state1: state = 2; read_profile(".profile"); }如上,busybox中ash对全局环境变量/etc/profil原创 2013-07-11 14:46:59 · 4345 阅读 · 0 评论 -
fb_var_screeninfo
struct fb_var_screeninfo { __u32 xres; /* visible resolution */ __u32 yres; __u32 xres_virtual; /* virtual resolution */ __u32 yres_virtual; __u32 xoffset; /* offset from virtual to visibl原创 2013-06-04 14:10:05 · 2159 阅读 · 0 评论 -
fb_fix_screeninfo定义
struct fb_fix_screeninfo { char id[16]; /* identification string eg "TT Builtin" */ unsigned long smem_start; /* Start of frame buffer mem */ /* (physical address) */ __u32 smem_len; /* Le原创 2013-06-04 14:09:18 · 3780 阅读 · 0 评论 -
linux显卡驱动之fb_ops
fb_ops是fb_info结构体中的一个重要成员变量原型定义在linux/fb.h文件中,定义如下:/* * Frame buffer operations * * LOCKING NOTE: those functions must _ALL_ be called with the console * semaphore held, this is the only sui原创 2013-06-04 11:35:14 · 4821 阅读 · 0 评论 -
unix98 pty
内核配置中有一项:unix98 PTY support直接翻译为“支持unix98伪终端”。其实,该配置项实际是对linux系统中devpts文件系统进行配置,如果你需要使用“telnet”等服务的话,那么该选项必须选上。这是由于telnet在建立连接后,会返回一个伪终端给用户,如果内核不支持devpts或devpts文件系统未挂载,则返回出错,telnet无法登陆。原创 2013-06-03 16:23:07 · 1691 阅读 · 0 评论 -
设置yum代理方法
打开/etc/yum.conf添加以下文本:proxy=http://210.45.72.XX:808 若需要验证,需再添加:proxy_username=username proxy_password=password原创 2013-06-01 10:04:05 · 554 阅读 · 0 评论 -
Qt额外运行环境变量
QT_QWS_FONTDIR:指定应用程序字体库路径QT_PLUGIN_PATH:指定插件路径原创 2013-06-08 14:47:14 · 792 阅读 · 0 评论 -
Qt环境变量说明
These environment variables are relevant to Qt for Embedded Linux users.VariableDescriptionPOINTERCAL_FILESpecifies the file containing the data used to calibrate the poi原创 2013-06-08 13:42:22 · 866 阅读 · 0 评论 -
gcc默认头文件搜索路径
#include "..." search starts here:#include search starts here: /usr/lib/gcc/i686-redhat-linux/4.7.2/include /usr/local/include /usr/includeEnd of search list.以上信息由gcc输出,输出命令 echo "" | gcc原创 2013-05-24 17:32:23 · 838 阅读 · 0 评论 -
fb_setcolreg
fb_setcolreg为fb_ops中成员函数,作用为设置颜色映射,在使用过程中,视应用程序而定,该函数是否有用。在fb console中,该函数会被调用,若为对该成员函数赋值,则console无法显示文字(只能看到企鹅图像)。在Qt图形界面中,该函数未被采用,因此,是否设置该函数与Qt无关。原创 2013-06-05 09:51:07 · 2387 阅读 · 1 评论 -
fb_info结构体定义原型
struct fb_info { int node; int flags; struct mutex lock; /* Lock for open/release/ioctl funcs */ struct mutex mm_lock; /* Lock for fb_mmap and smem_* fields */ struct fb_var_screeninfo var; /*原创 2013-06-04 13:58:09 · 5147 阅读 · 0 评论 -
directfb运行配置文件:directfbrc
所有配置参数说明在源码 src/misc/conf.c 文件中有详细说明详细内容如下,版本为dfb1.4.9:" --dfb-help Output DirectFB usage information and exit\n" " --dfb:[,]... Pass options to DirectFB (see below)\n原创 2013-06-13 15:50:48 · 3071 阅读 · 0 评论 -
linux PATH环境变量缓存
linux shell环境下,你也许会碰到改变了环境变量PATH的路径,但执行的程序任然是修改前的路径里面的程序。这是因为shell采用了哈希表缓存机制,从而来提高运行效率。当你输入命令,首先在hash表中寻找,如果不存在,才会利用$PATH环境变量指定的路径寻找命令,然后加以执行。同时也会将其放入到hash table 中,当下一次执行同样的命令时就不会再通过$PATH寻找。以此提高命令原创 2013-06-21 14:01:57 · 1059 阅读 · 0 评论 -
获取linux内核头文件方法
cd linux-2.6.34make headers_install ARCH=arm INSTALL_HDR_PATH=/apps/kernel-headersARCH、INSTALL_HDR_PATH可根据自己需要修改编译glibc和gcc都需要内核头文件,不可直接使用系统自带的头文件,也不可直接使用内核源码头文件目录,一定要使用安装后的头文件原创 2013-05-25 09:09:00 · 1864 阅读 · 0 评论 -
error: storage size of ‘rlimit_fsize’ isn’t known struct rlimit rlimit_fsize;
编译busybox出现上述错误,用友善提供的gcc-arm-4.5.1没提示错误,用我自己编译的gcc-arm-4.8.1就一直提示该错误。查看passwd.c文件,发现其包含了libbb.h,而libbb.h中包含了platform.h文件。解决办法:在platform.h中包含sys/resource.h说明:上述错误的原因是rlimit结构体未知,原因是相应头文件没有包含原创 2013-06-20 14:22:52 · 4231 阅读 · 0 评论 -
The DirectFB screen driver functionality test failed
The DirectFB screen driver functionality test failed! You might need to modify the include and library search paths by editing QT_CFLAGS_DIRECTFB and QT_LIBS_DIRECTFB in 。。。如果你在编译Qt的时候出现以上错误,我想你转载 2013-06-08 11:36:58 · 1714 阅读 · 0 评论 -
linux shell自动变量$#,$@,$0,$1,$2
变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 $@ 所有参数列表。如"$@"用「"」括起来的情况、转载 2013-06-08 11:12:01 · 1676 阅读 · 0 评论 -
QWS_DBLCLICK_DISTANCE
Qt环境变量,设置双击有效间距原创 2013-06-17 16:50:11 · 776 阅读 · 0 评论 -
.pch/release-shared-emb-arm/QtGui: No such file or directory
Qt交叉编译时,遇到标题所示错误。pch文件为预编译头文件,该项功能可以禁用。在configure配置时,加入-no-pch参数,重新编译即可通过。原创 2013-06-06 10:23:48 · 2358 阅读 · 0 评论 -
ld: this linker was not configured to use sysroots
ld: this linker was not configured to use sysroots如果你在编译程序的时候遇到以上错误提示信息,很有可能是你的ld链接器不支持sysroot参数。解决办法:使用支持sysroot的ld链接器这个错误是由于在编译ld时没有配置sysroot参数导致的,重新configure并加上sysroot参数,编译即可得到支持sysroot的ld原创 2013-06-15 10:57:19 · 4359 阅读 · 2 评论