
Linux-kernel
文章平均质量分 84
袁保康
.
展开
-
内核配置中的:Multifunction device drivers
Multifunction Device Drivers(多功能设备Linux下驱动开发)先来一个英文简介:Multifunction devices embed several functions (e.g. GPIOs, touchscreens, keyboards, current regulators, power management chips, etc...原创 2012-11-03 16:23:35 · 4407 阅读 · 1 评论 -
把arm开发板做成USB网卡(RNDIS /Ethernet Gadget)
/*******************************************************原文地址:http://hi.baidu.com/deep_pro/item/ec40c00ad48b8ef7a010340f说明:下边有补充!*********************************************************/转载 2013-02-23 21:59:25 · 25660 阅读 · 0 评论 -
低级错误之遍历链表时删除节点
首先感谢一下优快云居然与时俱进地支持了Markdown编写博客,这也是第一篇基于Markdown写的博客. 很多特性还不会用,看来是要学习一下了.接下来进入正题,这次的错误纠结了三天,还是老样子,搞不出来就会觉得老天是在捉弄我吗?我真不觉得哪里出错了.但是最终的问题解决后,又会笑自己犯的错误是多么的低级.其实从某种讲这个也算是疑点难点.错误出在了数据结构,一直也没有系统地学习过数据结构.感觉这个东原创 2015-02-10 22:40:09 · 3090 阅读 · 0 评论 -
Linux kernel source git repositories
Linux kernel source git repositories1. the official repositories branch: none https://www.kernel.org/2. Linus's git repositories branch: master https://github.com/torva原创 2014-12-26 16:07:26 · 2382 阅读 · 0 评论 -
Linux设备驱动学习资源
学习Linux设备驱动程序,单单只是学习理论是不够的,还需要自动动手来写各种设备的驱动程序。写驱动程序不仅需要读者的软件知识,还需要读者的硬件知识。在这里,推荐一些国内外优秀的驱动开发网站,希望读者的学习有所帮助。(1)Linux内核之旅网站:http://www.kerneltravel.net/(2)知名博客:http://www.lupaworld.com/26540(3)Lin原创 2012-10-28 15:26:16 · 1681 阅读 · 0 评论 -
Kernel panic - not syncing: Attempted to kill init!
kernel version: 3.17defconfig : s3c2410_defconfigVFS: Mounted root (yaffs2 filesystem) on device 31:3.Freeing unused kernel memory: 156K (c04e1000 - c0508000)Kernel panic - not syncing原创 2014-11-23 21:29:14 · 6640 阅读 · 0 评论 -
No filesystem could mount root, tried: ext3 ext2 ext4 vfat msdos
No filesystem could mount root, tried: ext3 ext2 ext4 vfat msdoskernel: 4.0.rc3rootfs: ramdisk我正在做kernel对ramdisk的挂载测试,标题只是最后一句打印出错的地方,经过debug后知道了在启动时对rootfs进行挂载的流程。开始是调用populate_rootfs进行ramdisk原创 2015-03-12 21:03:58 · 7802 阅读 · 1 评论 -
小议Linux staging tree
2.6.28版本起,内核代码的drivers下增加了一个staging目录,这个目录也是用来存放驱动程序,只是这里的驱动和上层目录的不同,加载的时候内核log会打印如下的语句:MODULE_NAME: module is from the staging directory, the quality is unknown, you have been warned.drivers/原创 2012-11-03 15:42:54 · 1577 阅读 · 0 评论 -
chroot FATAL: kernel too old
chroot使用了很多年,第一次遇到这个问题chroot FATAL: kernel too old。那是在一个Android 4.2.2(kernel 3.0.36)下准备chroot进Ubuntu 16.04下遇到的问题,简单使用strace跟踪了一下,是Ubuntu 16.04里报的错误和busybox sh都没有关系,换成Ubuntu 14.04没有问题了。具体的问题是出在了Ubuntu文...原创 2018-06-15 19:08:14 · 2944 阅读 · 0 评论 -
NanoPC-T2 支持USB Audio
这个板子原本不支持USB Audio。根据USB 数字音频的教程,可以很方便地使其支持USB Audio。原创 2017-11-09 20:45:46 · 882 阅读 · 0 评论 -
USB中CDC-ECM的了解和配置
USB中典型类及子类:类别解释子类典型应用IC芯片备注UVC视频类 免驱USB摄像头 CDC通讯类RNDIS ECM(p24)原创 2014-07-09 20:10:48 · 42304 阅读 · 1 评论 -
Linux内核强制使用自配置的cmdline
开发过程中遇到一些问题,需要改cmdline。cmdline在不同的平台上有不同的改法,有的单独存在于一个分区中,有的使用的是uboot,需要在启动过程中中断启动并进行手动修改,也有的平台上使用的是uboot的变种读取配置文件获取cmdline,更甚至还有一些平台在sdcard中跑系统和在emmc中跑系统的修改cmdline的方法都不一样。原创 2016-07-21 18:33:38 · 12677 阅读 · 0 评论 -
电阻屏的福音
电阻屏一个为4线,现在有将其转换成USB接口的软硬件了。这样就可以把各个模块隔离开来。硬件模块如下: 查得VID和PID: 对应内核的驱动配置项为TOUCHSCREEN_USB_EGALAX: drivers/input/touchscreen/Kconfig原创 2016-05-09 13:57:54 · 2037 阅读 · 0 评论 -
绝境重生
绝境重生真得需要一个7寸屏带触摸,我都快疯了,我有能力搞定linux内核对触摸屏的支持,但是手上这块板我却没有源码。找到了电阻屏的福音,但是却没有办法将它应用上。我不想在一个42寸大屏幕上调试程序,或者在一个21寸显示器屏幕上调试。那让我很痛苦,我得使用鼠标我的桌子上摆满了线。显示器的电流又特别的大,时而让鼠标不能使用。各种问题的纠缠。我尝试过找这个主板的其它厂家,但是都不给提供源码,他们是怕我盗版原创 2016-05-09 13:24:19 · 1273 阅读 · 0 评论 -
查看当前Linux内核配置文件/proc/config.gz
查看当前Linux内核配置文件/proc/config.gz当前的Linux内核的配置文件保存到了/proc/config.gz,有了它可以对调试当前内核有很大的帮助。这里先简单记录一下,以后再完善。原创 2016-04-30 16:45:12 · 8824 阅读 · 0 评论 -
键值从键盘到Linux内核传输过程分析
键值从键盘到Linux内核传输过程分析 这是一个以前没有了解过的一个盲区。 源于在制作一个带有特殊键的键盘,键盘厂商让挑选择殊键的实现方法。并举例说明了普通按键z在他们的MCU中其实是00 00 1d 00 00 00 00 00(以下简称:MCU键值)即0x1d十进制29,我立即通过hexdump /dev/input/eventX方法查看键盘上z键的原创 2014-12-30 14:39:29 · 8230 阅读 · 0 评论 -
shell单引号与变量
近期公司申请了一大批连号的域名,我这里以test00.com~test99.com代替。配完DNS和A记录,接下来又轮到写apache的虚拟主机规则。这么多的域名一个一个去写肯定要搞死人的,脑子一转,计上心头。我们至少有N种方法去实现: 首先想到的是利用宏来实现,比如平时我用宏最多的几个带宏功能的工具是vim、notepad++、UltraEdit-32还转载 2013-07-10 22:11:40 · 8661 阅读 · 0 评论 -
Uncompressing Linux..... done, booting the kernel.
内核启动卡在Uncompressing Linux..... done, booting the kernel.这好像是个老生常谈的问题了。成因在网上也罗列了很多种,可这次我碰到的,却没百度出解决方法,纠结了我很久才解决。我先把造成Uncompressing Linux..... done, booting the kernel.的常见的几种可能再罗列一下1、机器码不匹配解转载 2013-05-21 20:57:38 · 3685 阅读 · 2 评论 -
linux内核启动时R2的值来历
u-boot为内核提供环境变量bootargs = “noinitrd root=/dev/mtdblock3 console=ttySAC0,115200 init=/linuxrc mem64M”(下简称“标记列表”)。这种情况下,是在u-boot中最后一句theKernel(0, machid, bd->bi_boot_params);这个函数调用过,R0=0,R1=machid,R2=原创 2013-04-28 00:01:30 · 2338 阅读 · 4 评论 -
linux内核启动过程分析(二)
linux/arch/arm/kernel/head.S是linux内核映像解压后执行的第一个文件。//PAGE_OFFSET = 0xc0000000; TEXT_OFFSET = 0x00008000;//PHYS_OFFSET = 0x30000000;#define KERNEL_RAM_VADDR (PAGE_OFFSET + TEXT_OFFSET)转载 2013-04-28 01:15:26 · 2118 阅读 · 0 评论 -
如何让linux内核make uImage时Entry Point(入口地址)自动偏移64个字节
/************************************************************************************原文地址:http://blog.youkuaiyun.com/hunhunzi/article/details/6262244说明:感觉就应该修改这,但是是我一直摆弄这句“$(obj)/uImage: STARTADDR=$(LOA转载 2013-02-16 20:21:47 · 1775 阅读 · 0 评论 -
关于内核中 #ifdef CONFIG_**的问题
经常在内核中看到这样的宏判断:#ifdef CONFIG_**....#endif比如,init/main.c中有这样的代码:#ifdef CONFIG_PROC_FS proc_root_init();#endif这里的意思我知道,就是根据CONFIG_PROC_FS是否定义来选择proc文件系统。如果选择proc文件系统,在.config中就会原创 2012-11-03 20:13:00 · 6483 阅读 · 1 评论 -
内核配置中的:USB Gadget Support
利用Linux USB gadget设备驱动可以实现一些比较有意思的功能,举两个例子: 1、一个嵌入式产品中的某个存储设备,或是一个存储设备的某个分区,可以作为一个U盘被PC;设别,从而非常方便的完成文件交互,这个功能被广泛的应用于手机、数码相机等产品中。2、一个嵌入式设备通过USB连接到你的PC后,在你的PC端会出现一个新的网络连接,在嵌入式设备上也会有一个网卡设备,你可以配置它们的IP地址,并原创 2012-11-03 15:57:06 · 5900 阅读 · 0 评论 -
Android内核中判别启动模式
Android内核中判别启动模式 问题出现在驱动组描述了一个问题是内核的一个驱动中设置的电压值在正常模式和其它模式启动时电压值不能设置成一样,在正常模式中3.3v,其它模式3.0v。正常模式设置成3.3v是为了解决问题,但是这样也带来了一个问题在非正常模式(Recovery)启动时因此有附带的问题。 总归一句话:解决起来就是怎么让内核驱动时知道启动模式,来动态的原创 2014-03-20 22:32:23 · 3329 阅读 · 0 评论 -
Linux中智能小开关rfkill
Linux中智能小开关rfkill Rfkill,其中rf是Radio frequency(射频),主要作用是一个专门管理开关的子系统,举例说明Android手机的通知栏可以方便地开关Airplane/BT/WiFi/Data/GPS,使用起来着实很方便。但是这是Android系统上层统一实现的,对应Linux内核以前是没有统一的实现,随着这种情况的增多也有专门的子系统来集中实现这个功原创 2014-09-30 01:47:02 · 7158 阅读 · 0 评论 -
内核中DEFINE_MUTEX DECLARE_MUTEX DEFINE_SEMAPHORE的区别
内核中DEFINE_MUTEX DECLARE_MUTEX DEFINE_SEMAPHORE的区别 DEFINE_MUTEX以上是互斥锁包含在include/linux/mutex.h中;以下是信号量include/linux/semaphore.h,发生变化的是在semaphore.h从以下的Git的Log中就可以看出来。而mutex.h中始终都是DEFINE_MUTEX没有变的,所原创 2014-11-10 23:02:29 · 6701 阅读 · 0 评论 -
正确地保存编译内核产生的.config文件-使用make savedefconfig
正确地保存编译内核产生的.config文件-使用make savedefconfig,一直以来保存编译内核生成的.config文件都是cp .config arch/arm/configs/xxx_defconfig来保存的。但是这其实是一个错误的方法。原因听我细细道来。原创 2014-09-25 16:27:52 · 41741 阅读 · 3 评论 -
EXT4-fs (sda1): Filesystem with huge files cannot be mounted RDWR without CONFIG_LBDAF
在选上Ext4时,出现如题错误:[*] Enable the block layer ---> [*] Support for large (2TB+) block devices and files原创 2019-05-07 18:13:07 · 2441 阅读 · 0 评论