木其网络科技专业程序员代写http://www.xmsydw.com
程序员学历擅长经验网店链接
apenny硕士ASP.NET PHP 电子 通信设计 图像 编程 网络5年进入店铺
zheng_qianqian本科C语言 C++面向对象 Java3年进入店铺
guoguanl本科Java Web项目 JSP Hibernate Struts Mysql4年进入店铺

随笔分类 -  linux内核

摘要:今天是一个值得纪念的日子,我也不知道我花了多长时间才编译成功!在编写这个驱动的过程中,真的体会到驱动编程不是那么简单的~,现在有点小小的激动,真的,很不容易啊~我把整个过程在重复一遍吧!在编写这个驱动的过程中参考了网上的很多文档,最终的结果是弄的我头都晕了,每个人写的都不一样,其实我现在还有一些概念不是很清楚。1:到底丫的什么是内核源码树?2:为什么要编译内核源码树?1:内核源码树我现在的理解就是整个linux内核源代码,它是编译驱动的前提。Ubuntu系统默认情况下是没有的,内核源码树是要自己下载的。2:驱动最终以*.ko的形式生成,insmod的本质就是将ko文件与运行的内核进行链接的过程 阅读全文
posted @ 2013-04-21 22:02 C语言程序 阅读(398) 评论(0) 推荐(0) 编辑
摘要:问题:1. 想用NFS加载根文件系统到目标板,以对根文件系统进行调试。但是,主机配置好NFS的服务之后,通过# sudo mount -t nfs localhost:/nfsroot/root-pdu-422 /mnt# ls /mnt可以看到root-pdu-422中的内容,说明nfs服务器已经设置好了。2. 之前的系统曾经很顺利地通过nfs方式挂载根文件系统成功,现在的系统是重新装过的。修改目标板u-boot的bootargs,尝试了很多方法,但是问题依旧。解决办法:1. 放狗搜了一圈,说不是什么问题,基本上是网络问题居多;2. 因为现在的网络是在192.168.1.1的路由器下增加了一 阅读全文
posted @ 2012-08-17 18:56 C语言程序 阅读(1413) 评论(0) 推荐(0) 编辑
摘要:问题:原来使用的ubuntu 11.10系统由于误操作,导致系统崩溃,重新安装了ubuntu 11.10;在编译内核的时候,提示如下错误:dingq@wd-u1110:~/hwsvn/2sw/1prj_linux/pdu/kernel/linux-2.6.30$ make menuconfig *** Unable to find the ncurses libraries or the *** required header files. *** 'make menuconfig' requires the ncurses libraries. *** *** Install 阅读全文
posted @ 2012-08-07 13:18 C语言程序 阅读(422) 评论(0) 推荐(0) 编辑
摘要:问题:在老内核2.6.24.3的目标板上,/dev下能看到ttyS0,ttyS1和ttyS2;没有ttys*文件;但是,内核升级到2.6.30后,在/dev下只能看到ttyS0和ttyS2,有ttys0~ttysf共16个文件;并且,不能通过open命令打开ttyS1设备。解决办法:1. 进入到内核所在目录linux-2.6.30,运行命令:make menuconfig使用/来查找serial字符,看到这么一行,Symbol: SERIAL_ATMEL_CONSOLE [=n] ... 阅读全文
posted @ 2012-08-07 08:10 C语言程序 阅读(448) 评论(0) 推荐(0) 编辑
摘要:问题:原来的内核版本2.6.24.3,交叉编译工具为ELDK4.1,通过rcS启动脚本自动加载驱动,继电器的驱动能在目标板上正常加载,并且运行正常。内核版本升级到2.6.30,交叉编译工具的版本也升级到ELDK4.2,但是通过rcS启动脚本加载继电器驱动的时候,出现错误提示:relay1218: version magic '2.6.24.3 preempt mod_unload ARMv5 ' should be '2.6.30 mod_unload ARMv5 ' insmod: can't insert '/usr/relay1218.ko 阅读全文
posted @ 2012-06-30 15:48 C语言程序 阅读(1239) 评论(0) 推荐(0) 编辑
摘要:通过NFS加载根文件系统的方式已经能够成功挂载根文件系统root422,并正常进入shell界面。然后,尝试将根文件系统写到Flash中,让Nand Flash自身启动后能挂载根文件系统。问题:首先,将root422制作成yaffs2镜像文件:mkyaffs2 -c 2048 root422 rootfs-20120625.yaffs2生成的rootfs-20120625.yaffs2大小为24,805,440字节。在U-Boot命令行模式将yaffs2镜像文件烧写到Flash中:#nand erase 800000 2000000其中,0x800000是根文件系统的起始地址,因为24,805 阅读全文
posted @ 2012-06-25 19:15 C语言程序 阅读(710) 评论(0) 推荐(0) 编辑
摘要:在目标板的/etc/init.d/rcS文件中以如下命令启动udevd:# start udevd. /sbin/udevd -d /sbin/udevtrigger下面是启动过程,从网络配置开始:IP-Config: Guessing netmask 255.255.255.0 IP-Config: Complete: device=eth0, addr=192.168.37.244, mask=255.255.255.0, gw=255.255.255.255, host=192.168.37.244, domain=, nis-domain=(none), ... 阅读全文
posted @ 2012-06-25 11:20 C语言程序 阅读(660) 评论(0) 推荐(0) 编辑
摘要:问题1:采用newmsg-9260的开发板,开发板上的PHY使用RMII方式链接SAM9260,而实际的目标板上,为了将4层板改为2层板,将连接方式由RMII改为了MII,由此带来的问题如下:1. 不管使用newmsg更改过的源码还是从kernel.org下载的源码,不管如何更改内核选项,编译生成的内核uImage通过NFS方式挂载根文件系统时,总是不能成功挂载根文件系统,出现错误提示:IP-Config: Complete: device=eth0, addr=192.168.1.244, mask=255.255.255.0, gw=255.255.255.255, h... 阅读全文
posted @ 2012-06-18 15:37 C语言程序 阅读(512) 评论(0) 推荐(0) 编辑
摘要:用途说明Linux内核为了达到最佳的磁盘操作效率,会把需要写入到磁盘的数据现在内存中缓存起来,在合适的时候才真正写入到磁盘中,这在绝大多数情况都是没有任何问题的,而且提高了系统的效率,但是如果系统当机、掉电,就会有些文件内容不会保存下来。在Linux系统关机或者重启时,会自动把缓冲区的内容自动同步到磁盘中。我们也可以手工去执行sync命令,强制将内存中的文件缓冲内容写到磁盘,这个命令是通过调用sync系统调用来实现的。(flush file system buffers。Synchronize data on disk with memory。Force changed blocks to d 阅读全文
posted @ 2012-05-29 19:01 C语言程序 阅读(1258) 评论(0) 推荐(0) 编辑
摘要:WARNING: Unable to open an initial console这个主要是没有建立控制台,解决方式:内核选择如下选项:Device Drivers ---> Character devices ---> [*] Virtual terminal Serial drivers ---> 8250/16550 and compatible serial support [*] Console on 8250/16550 and compatible serial port (2) Maximum number of 8250/16550 serial port 阅读全文
posted @ 2012-05-29 18:51 C语言程序 阅读(987) 评论(0) 推荐(0) 编辑
摘要:相信很多学习嵌入式linux的人都碰到过这样一个问题:初学linux的时候大家都用的工具链版本多是3.4.5或3.4.2,名字为arm-linux-gcc或arm-softfloat-linux-gnu-gcc,可突然有一天发现这几个版本的编译器无法编译最新的内核了,并且发现人们都换了工具链了(arm-none-linux-gnueabi-gcc),怎么办,换呗。于是也都换成了这个工具链,编译内核,制作跟文件系统,按部就班的做,和以前没什么区别,很多人甚至想这些操作我都做烂了,闭着眼睛都能完成,一切和以前也没什么区别。可是紧接着问题来了,当内核启动到最后阶段挂载文件系统是出现如下错误:kern 阅读全文
posted @ 2012-05-29 09:53 C语言程序 阅读(383) 评论(0) 推荐(0) 编辑
摘要:1. 在《Linux内核设计与实现3》(Linux Kernel Development 3)中写道:在你修改过配置文件之后,或者在用已有的配置文件配置新的代码树的时候,应该用命令make oldconfig验证和更新配置;这里,对make oldconfig的作用没有作明确的说明;2. 在linux-2.6.xx目录的README文件中,说明make oldconfig的作用:所有问题都基于已有的.config文件,只对新特性和新设定提出询问;3. 在《构建嵌入式Linux系统》(Building Embedded Linux Systems)中,详细解释了make oldconfig的作用 阅读全文
posted @ 2012-05-28 16:59 C语言程序 阅读(463) 评论(0) 推荐(0) 编辑
摘要:1. 如果uboot的bootargs设置了,kernel的Boot options中的Default kernel command string设置与否,都不启作用,即bootargs覆盖掉设置的Default kernel command string,打印的信息也是bootargs传过来的command string。2. 如果uboot的bootargs未设置的话,kernel就以Boot options中的Default kernel command string的设置进行启动。总之: 不管是从NAND还是NOR起动,uboot是用来引导linux的,如果uboot的bootargs 阅读全文
posted @ 2012-05-28 11:19 C语言程序 阅读(349) 评论(0) 推荐(0) 编辑
摘要:Linux内核升级首先,确认当前linux系统的内核版本,使用命令:uname –a或 uname –r当前Linux系统版本是:linux-2.6.9-42第二步:下载新的内核源码,这里我们下载了linux-2.6.18,最新升级源码在网站上都免费下得到!第三步:将下载好的内核源码拷贝到目录下:第四步:把压缩包恢复解压:解压过程中:解压完成:注:linux-2.6.18即为新内核目录!第五步:进入新内核目录(/usr/src/linux-2.6.18)操作:(1) 运行命令:make mrproper(可确保源代码目录下没有不正确的.o文件):注意:这里要提前安装Development To 阅读全文
posted @ 2012-05-25 11:19 C语言程序 阅读(262) 评论(0) 推荐(0) 编辑
摘要:Linux 2.6.19.x 内核编译配置选项简介作者:金步国版权声明本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布。任何人都可以自由使用、转载、复制和再分发,但必须保留作者署名,亦不得对声明中的任何条款作任何形式的修改,也不得附加任何其它条件。您可以自由链接、下载、传播此文档,但前提是必须保证全文完整转载,包括完整的版权信息和作译者声明。BUG报告,切磋与探讨由于作者水平有限,因此不能保证作品内容准确无误,请在阅读中自行鉴别。如果你发现了作品中的错误,请您来信指出,哪怕是错别字也好,任何提高作品质量的建议我都将虚心接纳。如果你愿意就作品中的相关内容与我进行进 阅读全文
posted @ 2012-05-25 11:08 C语言程序 阅读(829) 评论(0) 推荐(0) 编辑
摘要:主机配置:ubuntu 11.10下利用交叉编译工具arm-linux-gcc编译内核;目标板:AT91SAM9260内核版本:linux-2.6.24在编译内核linux-2.6.24的过程中遇到错误:kernel/built-in.o: In function `getnstimeofday':utsname_sysctl.c:(.text+0x23c64): undefined reference to `__umoddi3'kernel/built-in.o: In function `do_gettimeofday':utsname_sysctl.c:(.te 阅读全文
posted @ 2012-05-22 16:56 C语言程序 阅读(1922) 评论(0) 推荐(0) 编辑
摘要:关于内核学习我建议不要上来就读内核而是先了解内核的构成和特性,然后通过思考发现疑问这时再去读内核源码。即先了解概貌在读局部细节。而且内核分成好多部分,不要只是按照顺序去读,应该针对某一部分比如内存管理或进程管理横向读几本书,这样可以理解很全面。Linux Kernel 四库全书1. Linux内核设计与实现 Edition 2 2. Linux设备驱动 Edition 3 3. Linux内核源代码情景分析 4. 深入理解Linux内核(第三版)1.《Linux内核设计与实现》本书重在原理。适合入门的最佳图书。作者是为2.6内核加入了抢占的人,对调度部分非常精通,而调度是整个系统的核心,因此本 阅读全文
posted @ 2012-05-22 09:19 C语言程序 阅读(324) 评论(0) 推荐(1) 编辑
摘要:开发平台:Ubuntu 10.04,内核版本2.6.32-33-generic,交叉编译器:天嵌公司提供的arm-linux-gcc 4.3.3,内核树:/opt/EmbedSky/linux-2.6.30.4/目标平台:天嵌公司的TQ2440开发板ARM9,内核版本2.6.30.41. 首先解压天嵌公司提供的内核源码包linux-2.6.30.4_20100531.tar.bz2,tar xvfj linux-2.6.30.4_20100531.tar.bz2 –C /-C是指定解压目录,后面的/代表在根目录解压归档文件。之后内核树会被解压到/opt/EmbedSky/linux-2.6.3 阅读全文
posted @ 2012-05-13 15:19 C语言程序 阅读(271) 评论(0) 推荐(0) 编辑

木其网络科技专业程序员代写http://www.xmsydw.com
程序员学历擅长经验网店链接
apenny硕士ASP.NET PHP 电子 通信设计 图像 编程 网络5年进入店铺
zheng_qianqian本科C语言 C++面向对象 Java3年进入店铺
guoguanl本科Java Web项目 JSP Hibernate Struts Mysql4年进入店铺
点击右上角即可分享
微信分享提示