摘要: 本节详细介绍ubuntu14.04的网络配置问题,然后安装openssh server,最后用sshsecureshell登录。 2.11.2.1、ubuntu14.04上网问题 (1)虚拟机上网有2种模式,NAT和桥接。 (2)虚拟机上网配置要注意这几个地方:第一个要注意选择NAT还是桥接模式;第 阅读全文
posted @ 2018-06-27 22:42 Ocean&Star 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 本节介绍uboot移植工作正式开始前的准备工作,主要是环境搭建和必备工具的使用。 2.11.1.1、三星移植过的uboot源代码准备 (1)三星对于S5PV210的官方开发板为SMDKV210,对应的移植过的uboot是:网盘/2.uboot和linux内核移植(努力更新中)\资源下载\三星官方为2 阅读全文
posted @ 2018-06-27 22:40 Ocean&Star 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 转载:http://blog.chinaunix.net/uid 20543672 id 94371.html 1、嵌入式Linux软件结构与分布 在一般情况下嵌入式Linux系统中的软件主要分为以下及部分: (1)引导加载程序:其中包括内部ROM中的固化启动代码和Boot Loader两部分。 而 阅读全文
posted @ 2018-06-27 22:36 Ocean&Star 阅读(1355) 评论(0) 推荐(0) 编辑
摘要: 1. 去除九鼎led驱动/添加led驱动框架支持 在哪里 led驱动框架 操作 进入kernel的目录 阅读全文
posted @ 2018-06-27 22:29 Ocean&Star 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 本节对led框架的核心代码led class.c文件进行分析,主要分析了subsys_initcall宏。 5.4.3.1、涉及到的文件 (1)led core.c (2)led class.c 5.4.3.2、subsys_initcall (1)经过基本分析,发现LED驱动框架中内核开发者实现的 阅读全文
posted @ 2018-06-27 22:27 Ocean&Star 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 本节综合分析了2.6.35.7内核中LED驱动框架的整体设计,相关的文件位置,九鼎移植时LED驱动的实现方法等。 5.4.2.1、相关文件 (1)drivers/leds目录,这个目录就是驱动框架规定的LED这种硬件的驱动应该待的地方。 (2)led class.c和led core.c,这两个文件 阅读全文
posted @ 2018-06-27 22:22 Ocean&Star 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 2.16.13.1、内核代码基本分为3块 (1)arch。 本目录下全是cpu架构有关的代码 (2)drivers 本目录下全是硬件的驱动 (3)其他 相同点是这些代码都和硬件无关,因此系统移植和驱动开发的时候这些代码几乎都是不用关注的。 2.16.13.2、架构相关的常用目录名及含义 (1)mac 阅读全文
posted @ 2018-06-27 22:13 Ocean&Star 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 2.16.12.1、格式简介 (1)格式就是由很多个项目用空格隔开依次排列,每个项目中都是项目名=项目值 (2)整个cmdline会被内核启动时解析,解析成一个一个的项目名=项目值的字符串。这些字符串又会被再次解析从而影响启动过程。 2.16.12.2、root= (1)这个是用来指定根文件系统在哪 阅读全文
posted @ 2018-06-27 22:12 Ocean&Star 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 2.16.11.1、打开控制台 (1)linux系统中每个进程都有自己的一个文件描述符表,表中存储的是本进程打开的文件。 (2)linux系统中有一个设计理念:一切届是文件。所以设备也是以文件的方式来访问的。我们要访问一个设备,就要去打开这个设备对应的文件描述符。譬如/dev/fb0这个设备文件就代 阅读全文
posted @ 2018-06-27 22:10 Ocean&Star 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 2.16.10.1、init进程完成了从内核态向用户态的转变 (1)一个进程2种状态。init进程刚开始运行的时候是内核态,它属于一个内核线程,然后他自己运行了一个用户态下面的程序后把自己强行转成了用户态。因为init进程自身完成了从内核态到用户态的过度,因此后续的其他进程都可以工作在用户态下面了。 阅读全文
posted @ 2018-06-27 21:59 Ocean&Star 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 本节重点讲解了rest_init函数中创建三个内核线程以及对这三个内核线程的介绍,本节课听完后就明白了操作系统最终的走向和归宿。 2.16.9.内核启动的C语言阶段6 2.16.9.1、操作系统去哪了 (1)rest_init中调用kernel_thread函数启动了2个内核线程,分别是:kerne 阅读全文
posted @ 2018-06-27 21:48 Ocean&Star 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 本节讲解start_kernel函数中剩余部分函数调用直到rest_init的部分,并无太多重点细节。 2.16.8.1、setup_command_line (1)也是在处理和命令行参数cmdline有关的任务。 2.16.8.2、parse_early_param&parse_args (1)解 阅读全文
posted @ 2018-06-27 21:32 Ocean&Star 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 本节讲解setup_arch函数中对cmdline的处理,重点讲解了cmdline的传递方式、确认方式和其对内核的影响和意义。 2.16.6.3、setup_arch函数进行了基本的cmdline处理 (1)这里说的cmdline就是指的uboot给kernel传参时传递的命令行启动参数,也就是ub 阅读全文
posted @ 2018-06-27 21:16 Ocean&Star 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 本节讲解setup_arch函数中的machine查找的部分,初步分析了内核对机器码的定义和存储方式、比对方式、获取方式。 2.16.6.1、setup_arch函数简介 setup_arch(&command_line); (1)从名字看,这个函数是CPU架构相关的一些创建过程。 (2)实际上这个 阅读全文
posted @ 2018-06-27 21:13 Ocean&Star 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 本节开始按照代码执行路径分析内核的C阶段。本节课主要讲了printk函数的工作原理和内核初始化打印出banner信息的部分。 参考:http://blog.chinaunix.net/uid 20543672 id 3157283.html 2.16.5.1、杂碎 (1)smp。smp就是对称多处理 阅读全文
posted @ 2018-06-27 21:05 Ocean&Star 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 本节讲述内核学习的学习思路、学习方法和主体线路。本节课程的学习目的是让大家对内核的特点和不同的学习思路有个认识。 2.16.4.1、这一块的学习思路 (1)抓大放小,不深究. (2)感兴趣可以就某个话题去网上搜索资料学习 (3)重点局部深入分析 2.16.4.2、具体学习方法 (1)顺着代码执行路径 阅读全文
posted @ 2018-06-27 21:02 Ocean&Star 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 参考https://blog.csdn.net/skyflying2012/article/details/41344377 本节是内核启动的汇编阶段剩余内容,主要是cpu的校验、机器码的校验、传参tag的校验、页表的创建、各种段的处理等。 2.16.3.1、__lookup_processor_t 阅读全文
posted @ 2018-06-27 21:01 Ocean&Star 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 本节开始分析head.S文件,主要分析了内核运行的虚拟地址与物理地址,内核真正入口以及启动条件等。 2.16.2.1、内核运行的物理地址与虚拟地址 (1)KERNEL_RAM_VADDR(VADDR就是virtual address),这个宏定义了内核运行时的虚拟地址。值为0xC0008000 (2 阅读全文
posted @ 2018-06-27 20:43 Ocean&Star 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 本节课开始建立工程、分析Makefile等,主要目的是为开始内核代码的分析扫清障碍,做好准备工作。 2.16.1.1、删除无用文件 (1)官方版本的kernel中是支持各种硬件架构、各种开发板的,因此有很多文件夹和文件和我们无关,在建立SI工程前应该删掉这些家伙。 (2)我们现在分析的是开发板厂商九 阅读全文
posted @ 2018-06-27 20:37 Ocean&Star 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 转载:http://emb.hqyj.com/Column/7565.html 1、Linux内核如此庞大(几万个文件),目录又分为很多层,它是如何将各层目录下的文件关联起来的? linux内核通过层层目录管理,形成了一个树形目录[内核源码树],这是一个树形结构。从数据结构管理方面看,对于一颗非标准 阅读全文
posted @ 2018-06-27 20:22 Ocean&Star 阅读(1419) 评论(0) 推荐(1) 编辑