Linux
cokewei
这个作者很懒,什么都没留下…
展开
-
转载:kernel 启动过程
<br />zImage是ARM Linux常用的一种压缩映像文件,uImage是U-boot专用的映像文件,它是在zImage之前加上一个长度为0x40的“头”,说明这个映像文件的类型、加载位置、生成时间、大小等信息。换句话说,如果直接从uImage的0x40位置开始执行,zImage和uImage没有任何区别。另外, Linux2.4内核不支持uImage,Linux2.6内核加入了很多对嵌入式系统的支持,但是uImage的生成也需要设置。<br />内核编译完成后会生成zImage内核镜像文件。关于b转载 2011-02-28 14:21:00 · 648 阅读 · 0 评论 -
ARM Linux启动参数修改
1.make config里修改“General Setup”子菜单中的“Default kernel command string” 选项,通过修改这个选项来修改autoconf.h文件中的CONFIG_CMDLINE宏。2.直接修改arch/arm/kernel/setup.c文件default_command_line,CONFIG_CMDLINE宏的值最终是赋值给这个变量的。3.一原创 2012-09-18 14:46:32 · 2054 阅读 · 0 评论 -
解密module_init
转载自:http://blog.163.com/xinbuqianjin@126/blog/static/167563447201010221231507/在Linux底下写过driver模块的对这个宏一定不会陌生。module_init宏在MODULE宏有没有定义的情况下展开的内容是不同的,如果这个宏没有定义,基本上表明阁下的模块是要编译进内核的(obj-y)。1.在MODULE没有定义转载 2012-09-19 14:53:03 · 451 阅读 · 0 评论 -
备忘
启动busybox自带的ftp服务设置ftp#vi /etc/inetd.conf; //配置inetd.conf文件,用inetd来管理tftpd,加入如下一行:21 stream tcp nowait root ftpd ftpd -w /ftproot#inetd; //启动inetd原创 2012-10-11 13:44:33 · 584 阅读 · 0 评论 -
今天解决了QT Creator交叉编译提示make:arm-linux-g++:Command not found
初学QT,用QT Creator写了一个小程序,使用ubuntu 10,编译工具使用arm-none-linux-gnueabi4.5.1并已经已经加入环境变量,加入的方法是修改/etc/bash.bashrc终端执行arm-linux-g++ -v可正常获得版本号终端执行which arm-linux-g++ 可正常显示路径QT Creator编译时候提示make:arm-l原创 2011-03-25 09:49:00 · 10150 阅读 · 2 评论 -
vi一些用的着的命令(不断更新中)
:f 查看当前编辑的文件名:pwd 查看当前编辑的文件的路径:!XXX 执行一条指令G,直接跳转到最后一行:e 可以刷新>向左缩进(>n)n):ctrl+w+j/k,通过j/k可以上下切换,或者:ctrl+w加上下左右键,还可以通过快速双击ctrl+w依次切换窗口。:ctrl+w + 纵向扩大(行数增加):ctrl+w - 纵原创 2012-09-21 10:37:23 · 927 阅读 · 0 评论 -
udev的使用-minicom没有权限打开串口,更改 ttyUSB0 的权限
使用minicom打开串口会提示没有权限,必须要用 sudo,如何更改串口设备的权限可以让普通用户读写呢?其实只要更改udev的规则, ttyUSB0 的权限为666,即可实现让普通用户可读写。添加udev规则:/etc/udev/rules.d/50-usb-serial.rulesKERNEL=="ttyUSB0", GROUP="uucp",MODE="0666"转载 2012-12-11 10:36:28 · 14657 阅读 · 0 评论 -
printk()函数的总结
我们在使用printk()函数中使用日志级别为的是使编程人员在编程过程中自定义地进行信息的输出,更加容易地掌握系统当前的状况。对程序的调试起到了很重要的作用。 (下文中的日志级别和控制台日志控制级别是一个意思) printk(日志级别 "消息文本");这里的日志级别通俗的说指的是对文本信息的一种输出范围上的指定。 日志级别一共有8个级别,printk的日志级别定义如下(在li转载 2012-09-20 14:42:28 · 685 阅读 · 0 评论 -
minicom移植并修改No termcap entry for vt102和无法退出问题
网上可以搜到很多minicom移植的文档,我也是跟着做的,写这篇文档是为了在网上的基础上解决了一些编译过程中以及使用中的问题。1、下载minicom (http://alioth.debian.org/projects/minicom/)和ncurses(http://directory.fsf.org/project/ncurses/)源代码。minicom编译需要使用ncurses库,原创 2013-01-23 16:40:47 · 5450 阅读 · 0 评论 -
中断服务程序中disable_irq会导致中断死机
这几天在调试ft5406驱动,发现在中断处理函数中调用disable_irq后程序死机,现在解决了,中断服务程序中应该要调用disable_irq_nosync来关中断。 disable_irq和disable_irq_nosync,两者都是关中断函数,不同在于,前者要等待中断处理完成才返回,后者不等,直接返回,因此再中断处理函数关中断操作的话一定要调用disable_irq_nos原创 2013-01-10 09:38:31 · 2858 阅读 · 0 评论 -
嵌入式 linux 去掉启动时闪烁的光标 和制作启动LOGO
一.去除embedded linux 的开机光标: 在内核的当前目录进入到drivers/video/console/fbcon.c文件 将static void fb_flashcursor(void *private) 和static void fbcon_cursor(struct vc_data *vc, int mode) 里的内容注释掉,使之变成空函数二.设置转载 2013-01-12 14:58:56 · 1112 阅读 · 0 评论 -
UBI error: process_eb: bad image sequence number错误解决
今天换了一下u-boot,烧录了文件系统以后提示了这个错误,不知道什么原因。但是找到了解决方法,将整个nand全部erase一下,重新再烧录。原创 2013-01-29 14:19:57 · 6031 阅读 · 0 评论 -
Linux 自动挂载硬盘分区
我们在linux中常常用mount命令把硬盘分区或者光盘挂载到文件系统中。/etc/fstab就是在开机引导的时候自动挂载到linux的文件系统。在linux中/etc/fstab的数据项如下所示:/dev/device mountpoint type rules dump order设备名称 挂载点 分区类型 挂载选转载 2013-01-16 16:00:52 · 2772 阅读 · 0 评论 -
Ubuntu12安装adb & fastboot
Install "android-tools" package (adb and fastboot) in Ubuntu 12.04, 11.10 or 11.04Like I've said above, android-tools is available in the official Ubuntu 12.10 repositories so all you have to do转载 2013-02-27 09:31:18 · 9449 阅读 · 0 评论 -
beagle board dm3730添加串口4
原始代码只有串口1-3。添加串口4按照以下几个步骤:1.修改arch/arm/mach-omap2/serial.c添加串口4的信息101 static struct plat_serial8250_port serial_platform_data2[] = {102 {103 .mapbase = OMAP_UA原创 2013-03-25 11:37:44 · 1481 阅读 · 0 评论 -
VIM中内容复制到外部
buntu 和mint默认安装的vim是不支持系统剪切、粘贴版的,需要执行以下安装:sudo apt-get install vim-gnomevim如果没有配置set mouse=a,可以使用右键复制-》粘贴。但是设置了set mouse=a后右键就被屏蔽了。vi的三种模式:命令模式,插入模式,可视模式.鼠标可以启动于各种模式中:The mouse can be enab原创 2012-11-16 10:55:33 · 12207 阅读 · 2 评论 -
内核启动错误Error: unrecognized/unsupported machine ID的解决
这段时间调试linux内核,手里拿到的BSP包和uboot有好几个,用错了uboot和kernel后发现报错Error: unrecognized/unsupported machine ID,做一下简单分析。 linux内核启动时候会读取uboot传来的参数,其中包括MACH_TYPE这个参数,如果uboot传给内核的值与内核定义的不一样,就会报错。解决方法有两个:1.修改uboot原创 2012-09-17 14:47:40 · 4553 阅读 · 0 评论 -
ubuntu下virtual box运行windows增加usb支持
正在使用ubuntu11.04,因为觉得这个版本想到稳定。但是ubuntu也不是万能的,很多时候还是要用windows,于是装了virtualbox。正常安装的情况下virtualbox是不支持共享主机usb设备的,听说是因为开源的问题,具体不清楚。到 http://download.virtualbox.org/virtualbox/ 这个网址下面找到相应的virtualbox版本进入,原创 2012-09-27 14:18:51 · 844 阅读 · 0 评论 -
linux启动参数设置
ARM体系结构:1.在make config里修改“General Setup”子菜单中的“Default kernel command string” 选项,通过修改这个选项来修改autoconf.h文件中的CONFIG_CMDLINE宏。这个文件的路径依据内核不同,可能在include/generated/或者include/linux/下。2.直接修改setup.c文件default原创 2012-09-27 14:17:39 · 1386 阅读 · 0 评论 -
今天是正式开始研究Linux的第一天
<br />今天是正式开始研究Linux的第一天,mark一下原创 2011-02-28 13:58:00 · 652 阅读 · 2 评论 -
对linux内核宏container_of的理解
<br />学习linux驱动的过程中经常会遇到一个这样的宏:container_of,原定义如下<br />linux/include/linux/kernel.h中<br /> 486/**<br /> 487 * container_of - cast a member of a structure out to the containing structure<br /> 488 * @ptr: the pointer to the member.<br /> 489 * @type:原创 2011-03-07 10:46:00 · 893 阅读 · 0 评论 -
linux下访问寄存器
<br />以下是看到的文章<br />在开启MMU之前,你可以直接用物理地址访问。在开启MMU之后,你需要先将物理地址映射为虚拟地址,然后用虚拟地址访问。还是绝个简单的例子,比如某一个外设的寄存器物理地址为: regaddr = 0x0200000,要读出/写入的值为value(unsigned int类型);那么: <br /> 在开启MMU之前: <br /> 读: <br /> value = *(volatile unsigned int*)regaddr; <br /> 写:转载 2011-03-15 13:09:00 · 5215 阅读 · 1 评论 -
Tiny6410开发板linux启动错误 /init: line 102: can't open /r/dev/console: no such file 的解决方法
这段时间一直在玩友善之臂的Tiny6410,自己写了点驱动打算写点软件放入文件系统中执行的,但是发现用友善提供的rootfs_qtopia_qt4-20110112.tgz解压后的文件制作的yaffs2文件系统刷到nand中后无法正常启动,提示错误如下:s3c-rtc s3c64xx-rtc: hctosys: invalid date/timeFreeing init memory: 1404Kyaffs: dev is 32505858 name is "mtdblock2" rwyaffs: pass原创 2011-03-22 14:02:00 · 10851 阅读 · 2 评论 -
我的第一个linux驱动-s3c6410 gpio
<br />前段时间学着写了第一个linux下的驱动,很简单,基于友善之臂的tiny6410,通过控制GPIOK4-7输入输出来控制板上的4个led。led的驱动友善已经提供,不过我自己写的有些不一样,是按照标准的char驱动来写的,下面是全过程。<br />注意:此代码基于友善之臂提供的已经移植好的linux2.6.36核心<br />第一步编写驱动代码<br />//tiny6410_gpio.c<br />#include <linux/miscdevice.h><br />#include <lin原创 2011-03-28 11:40:00 · 4076 阅读 · 10 评论 -
platform_device和platform_driver
platform_device和platform_driver来源: ChinaUnix博客 首先介绍一下注册一个驱动的步骤:1、定义一个platform_driver结构2、初始化这个结构转载 2011-09-14 14:25:49 · 539 阅读 · 0 评论 -
device 与device_driver之间的绑定
/** * driver_register - register driver with bus * @drv: driver to register * * We pass off most of the work to the bus转载 2011-09-14 15:05:23 · 1216 阅读 · 0 评论 -
Linux驱动下的platform总线架构
Linux驱动下的platform总线架构 从 Linux 2.6 内核起,引入一套新的驱动管理和注册机制:platform_device和 platform_driver 。Linux 中大部分的设备驱动,都可以使用这套机制,设备用 platform_device表示转载 2011-09-14 10:39:43 · 850 阅读 · 0 评论 -
ubuntu的关机按钮消失了解决办法
今天ubuntu启动报错,发现右上角的关机啥的按钮全没了。搜了好久才找到解决方法,转载以便方便大家转载自http://ekd123.is-programmer.com/posts/18979我今天终于查了一查,发现给的方法都不适合10.04,因此我自己一个一个试,最后找到了这个——指示器小程序会话(是不是很长?)。先添加进去,有问题再接着说。但是移动不到最右边,怎么办?转载 2012-08-08 11:13:53 · 5583 阅读 · 0 评论 -
在real210上linux环境下使用外置喇叭
最近在捣鼓real210的开发板,发现外置喇叭没有声音,于是花了点时间研究了一下。 一开始怀疑是alsa配置的问题,但是本人愚钝,没有弄明白,所以改作直接修改驱动代码。 real210使用的是wm9713通过查看原理图可以知道,外置喇叭接到SPKR和SPKL,和这两个输出有关系的寄存器是:0X3E,负责输入输出通道的开关;0x1C,负责选择输入信号;0x02,设置喇叭音量。这原创 2012-08-20 16:13:14 · 1448 阅读 · 2 评论 -
make uImage 出错一例
转自:http://linux.chinaunix.net/techdoc/desktop/2008/12/16/1053042.shtmlu-boot只能识别uImage格式的内核。如果使用u-boot来启动Linux的话就需要生成uImage。在linux 2.6以上的内核中,可以用make uImage去直接生成它,但是linux 2.4或者更早的linux的话,你就要自己手动去生成它。转载 2012-08-29 17:25:23 · 1340 阅读 · 0 评论 -
EABI和OABI
转自http://blog.csdn.net/ce123/article/details/6925375引言 初学嵌入式linux开发的时候大家都用的工具链版本多是3.4.5或3.4.2,名字为arm-linux-gcc或arm-softfloat-linux-gnu-gcc,可突然有一天发现这几个版本的编译器无法编译最新的内核了,并且发现人们都换了工具链了(arm-non转载 2012-08-22 16:25:12 · 724 阅读 · 0 评论 -
U_boot 的 bootcmd 和bootargs参数详解
U-boot的环境变量值得注意的有两个:bootcmd 和bootargsu-bootcmd 前面有说过bootcmd是自动启动时默认执行的一些命令,因此你可以在当前环境中定义各种不同配置,不同环境的参数设置,然后设置bootcmd为你经常使用的那种参数. bootcmd=mmcinit;fatload mmc 0:1 80000000 uImage;bo转载 2012-09-04 16:55:27 · 1614 阅读 · 0 评论 -
jorjin ap module增加tsc2007触摸屏支持
有了之前的real210增加tsc2007支持的经验,这个就简单多了。1.直接修改board支持文件如下: 41 #ifdef CONFIG_TOUCHSCREEN_TSC2007 42 #include 43 #endif1048 /* tsc2007 platform data1049 */1050 #define TSC2007_IRQ_GPIO原创 2012-09-26 16:24:15 · 2620 阅读 · 0 评论 -
Real210添加tsc2007支持
<!--@page {margin:0.79in}p {margin-bottom:0.08in}--> 都说三星的MCU对触摸屏支持不是很好,所以打算找专用的触摸屏芯片解决触摸屏不准的问题。看到linux源码有对tsc2007的支持,real210屏线也把I2C接口引出,所以现拿这个芯片下手。 对于高手来说,编写驱动,很多步骤都是顺其自原创 2012-09-25 11:46:58 · 4383 阅读 · 1 评论 -
友善mini6410上TSLIB移植日志
今天成功移植了tslib,庆祝一下。转贴请注明出处:CSDN Eric Qu 个人专栏,QQ:12430300一.了解tslib配置:1.打开tslib配置文件ts.conf(make install编译后这个文件可以在目标文件夹/etc下找到)可以看到如下配置:# Uncomment if you wish to use the linux input layer event原创 2011-09-13 11:30:05 · 8312 阅读 · 10 评论