Linux移植开发
文章平均质量分 78
manchestermi
文章基本转载,为了方便学习
展开
-
U-Boot 第二阶段代码分析
文章转自http://blog.csdn.net/zzsfqiuyigui/article/details/8453919uboot第一阶段分析完毕,根据第一阶段最后的分析,程序跳转到了ram中继续执行start_armboot这个函数。下面来看看这个函数主要完成了什么功能。首先要说明一个结构体,之前提到过,叫全局数据结构体,用于保存一些全局数据,在uboot第一阶段设转载 2015-08-23 15:29:59 · 664 阅读 · 0 评论 -
内核模块编译时出现的问题解决
第一次把自己编译的驱动模块加载进开发板,就出现问题,还好没花费多长时间,下面列举出现的问题及解决方案 1:出现insmod: error inserting 'hello.ko': -1 Invalid module format法一(网上的):是因为内核模块生成的环境与运行的环境不一致,用linux-2.6.27内核源代码生成的模块,可能就不能在linux-2.6.3原创 2015-09-01 00:37:22 · 11909 阅读 · 0 评论 -
根文件系统的制作
一、FHS(Filesystem Hierarchy Standard)标准介绍当我们在linux下输入ls / 的时候,见到的目录结构以及这些目录下的内容都大同小异,这是因为所有的linux发行版在对根文件系统布局上都遵循FHS标准的建议规定。该标准规定了根目录下各个子目录的名称及其存放的内容:目录名存放的内容/bin必备的用户命令,转载 2015-08-28 15:36:06 · 416 阅读 · 0 评论 -
Makefile与Kconfig和.config关系与使用
文章转自 http://blog.sina.com.cn/s/blog_4a377e150100c896.html http://blog.sina.com.cn/s/blog_4a70d5d90101261k.html 内核源码树的目录下都有两个文档 Kconfig(2.4版本是Config.in)和Makefile。分布到各目录的Kco转载 2015-08-26 11:14:53 · 911 阅读 · 0 评论 -
Linux内核构成
Linux内核主要由进程调度(SCHED)、内存管理(MM)、虚拟文件系统(VFS)、网络接口(NET)和进程间通信(IPC)等5个子系统组成。1.进程调度 精度调度控制系统中的多个进程对CPU的访问使得多个进程能在CPU中微观串行,宏观并行地执行。进程调度处于系统的中心位置,内核中其他的子系统都依赖它,因为每个子系统都需要挂起和恢复进程。内核的组成部分" title="Lin转载 2015-08-31 15:32:11 · 815 阅读 · 0 评论 -
构建自己的u-boot快捷菜单
相当于新建menu命令,启动快捷菜单步骤如下:(1) 在对应的开发板配置文件中,添加相应命令的宏定义。如:在uboot/include/configs/mini440.h文件中,添加#define CONFIG_CMD_MENU。 当然,也可以在uboot/include/config_cmd_default.h文件中,添加该命令的宏定义。(2) 修改在comm转载 2015-08-29 14:24:53 · 676 阅读 · 0 评论 -
内核启动分析(四)——检查,配置环境阶段
接着上面的分析,第一阶段的代码跳转后,会进入第二阶段的代码。第二阶段的代码是从\arch\arm\kernel\head.S开始的。内核启动第二阶段主要完成的工作有,cpu ID检查,machine ID(也就是开发板ID)检查,创建初始化页表,设置C代码运行环境,跳转到内核第一个真正的C函数startkernel开始执行。这一阶段涉及到两个重要的结构体:(1) 一个是struct转载 2015-08-27 18:56:55 · 718 阅读 · 0 评论 -
内核启动分析(二)——do_bootm_linux分析
do_bootm_linux分析do_bootm函数位于common/cmd_bootm.c文件中。do_bootm函数调用do_bootm_linux函数启动linux内核,当定义了CONFIG_PPC时将使用common/cmd_bootm.c文件中的do_bootm_linux函数;当系统中没有定义该宏时,系统将使用lib_arm/armlinux.c文件中定义的do_b转载 2015-08-27 11:01:13 · 1837 阅读 · 0 评论 -
内核启动分析(五)——启动Init进程
start_kernel函数从start_kernel函数(在init / main.c里)开始,内核即进入了C语言部分,它完成了内核的大部分初始化工作。实际上,可以将start_kernel函数看做内核的main函数。代码清单1 start_kernel函数513 asmlinkage void __init start_kernel(void) 514 { 515转载 2015-08-27 22:45:56 · 674 阅读 · 0 评论 -
U-Boot 第一阶段代码分析
文章转自http://blog.csdn.net/zzsfqiuyigui/article/details/8251907 一般来说,大家都是从start.s来分析UBOOT,但是事实是流程是从makefile中来的,也就是说是在敲入make smdk2410_config和make all后才进入start.s中,makefile在这里不做分析,转载 2015-08-23 15:20:26 · 524 阅读 · 0 评论 -
内核启动分析(三)——zImage 解压缩阶段
在上阶段,主要是U-BOOT 向内核传递一些参数.而这些参数是通过 struct tag来传递的。U-boot 把要传递给 kernel 的东西保存在 struct tag 数据结构中,启动 kernel 时,把这个结构体的物理地址传给 kernel;Linux kernel 通过这个地址分析出u-boot传递的参数。1.Kernel读取U-boot传递的相关参数 对于转载 2015-08-27 12:36:31 · 4713 阅读 · 0 评论 -
内核启动分析(一)——u-boot启动内核
我们可以看到在,start_armboot()函数的最后,在一个无限循环中调用了函数main_loop(),该函数在common/main.c文件中被定义,我们可以看到下面的一段代码:#if defined(CONFIG_BOOTDELAY)&& (CONFIG_BOOTDELAY >= 0) s = getenv("bootdelay"); //得到转载 2015-08-27 09:18:49 · 979 阅读 · 0 评论 -
busybox 安装
一。 BusyBox的用法 可以这样用BusyBox $ BusyBox ls 他的功能就相当运行ls命令 最常用的用法是建立指向BusyBox的链接,不同的链接名完成不同的功能. $ ln -s BusyBox ls $ ln -s BusyBox rm $ ln -s BusyBox mkdir 然后分别运行这三个链原创 2015-08-24 13:46:45 · 552 阅读 · 0 评论 -
busybox init进程分析
busybox init进程分析参考文献 http://blog.chinaunix.net/uid-20788636-id-1841289.html一. Busybox启动流程分析 init进程是由内核启动的第一个也是惟一的一个用户进程,它根据配置文件决定启动哪些程序,比如执行某些脚本,启动shell,运行用户指定的程序等。init进程是后续所有进程的发起者原创 2015-08-24 18:01:52 · 651 阅读 · 0 评论 -
用NFS挂载时参数解析及uboot设置
NFS参数解析和uboot内核设置 setenv bootargs "root=/dev/nfs nfsroot=192.168.0.231:/forlinx/rootip=192.168.0.232:192.168.0.231:192.168.0.2 0 1:255.255.255.0:witech.com.cn:eth0ff console=ttySAC0,115200"/转载 2016-02-19 09:40:25 · 2663 阅读 · 0 评论