摘要: 本节详细介绍ubuntu14.04的网络配置问题,然后安装openssh server,最后用sshsecureshell登录。 2.11.2.1、ubuntu14.04上网问题 (1)虚拟机上网有2种模式,NAT和桥接。 (2)虚拟机上网配置要注意这几个地方:第一个要注意选择NAT还是桥接模式;第 阅读全文
posted @ 2018-06-27 22:42 Ocean&Star 阅读(200) 评论(0) 推荐(0)
摘要: 本节介绍uboot移植工作正式开始前的准备工作,主要是环境搭建和必备工具的使用。 2.11.1.1、三星移植过的uboot源代码准备 (1)三星对于S5PV210的官方开发板为SMDKV210,对应的移植过的uboot是:网盘/2.uboot和linux内核移植(努力更新中)\资源下载\三星官方为2 阅读全文
posted @ 2018-06-27 22:40 Ocean&Star 阅读(192) 评论(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 阅读(1417) 评论(0) 推荐(0)
摘要: 1. 去除九鼎led驱动/添加led驱动框架支持 在哪里 led驱动框架 操作 进入kernel的目录 阅读全文
posted @ 2018-06-27 22:29 Ocean&Star 阅读(240) 评论(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 阅读(216) 评论(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 阅读(206) 评论(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 阅读(270) 评论(0) 推荐(0)
摘要: 2.16.12.1、格式简介 (1)格式就是由很多个项目用空格隔开依次排列,每个项目中都是项目名=项目值 (2)整个cmdline会被内核启动时解析,解析成一个一个的项目名=项目值的字符串。这些字符串又会被再次解析从而影响启动过程。 2.16.12.2、root= (1)这个是用来指定根文件系统在哪 阅读全文
posted @ 2018-06-27 22:12 Ocean&Star 阅读(353) 评论(0) 推荐(0)
摘要: 2.16.11.1、打开控制台 (1)linux系统中每个进程都有自己的一个文件描述符表,表中存储的是本进程打开的文件。 (2)linux系统中有一个设计理念:一切届是文件。所以设备也是以文件的方式来访问的。我们要访问一个设备,就要去打开这个设备对应的文件描述符。譬如/dev/fb0这个设备文件就代 阅读全文
posted @ 2018-06-27 22:10 Ocean&Star 阅读(250) 评论(0) 推荐(0)
摘要: 2.16.10.1、init进程完成了从内核态向用户态的转变 (1)一个进程2种状态。init进程刚开始运行的时候是内核态,它属于一个内核线程,然后他自己运行了一个用户态下面的程序后把自己强行转成了用户态。因为init进程自身完成了从内核态到用户态的过度,因此后续的其他进程都可以工作在用户态下面了。 阅读全文
posted @ 2018-06-27 21:59 Ocean&Star 阅读(302) 评论(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 阅读(169) 评论(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 阅读(177) 评论(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 阅读(141) 评论(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 阅读(173) 评论(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 阅读(170) 评论(0) 推荐(0)
摘要: 本节讲述内核学习的学习思路、学习方法和主体线路。本节课程的学习目的是让大家对内核的特点和不同的学习思路有个认识。 2.16.4.1、这一块的学习思路 (1)抓大放小,不深究. (2)感兴趣可以就某个话题去网上搜索资料学习 (3)重点局部深入分析 2.16.4.2、具体学习方法 (1)顺着代码执行路径 阅读全文
posted @ 2018-06-27 21:02 Ocean&Star 阅读(191) 评论(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 阅读(283) 评论(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 阅读(262) 评论(0) 推荐(0)
摘要: 本节课开始建立工程、分析Makefile等,主要目的是为开始内核代码的分析扫清障碍,做好准备工作。 2.16.1.1、删除无用文件 (1)官方版本的kernel中是支持各种硬件架构、各种开发板的,因此有很多文件夹和文件和我们无关,在建立SI工程前应该删掉这些家伙。 (2)我们现在分析的是开发板厂商九 阅读全文
posted @ 2018-06-27 20:37 Ocean&Star 阅读(213) 评论(0) 推荐(0)
摘要: 转载:http://emb.hqyj.com/Column/7565.html 1、Linux内核如此庞大(几万个文件),目录又分为很多层,它是如何将各层目录下的文件关联起来的? linux内核通过层层目录管理,形成了一个树形目录[内核源码树],这是一个树形结构。从数据结构管理方面看,对于一颗非标准 阅读全文
posted @ 2018-06-27 20:22 Ocean&Star 阅读(1462) 评论(0) 推荐(1)
摘要: 转载:https://blog.csdn.net/qqliyunpeng/article/details/50858075 内核源码中是怎么实现menuconfig 1、第一步:配置生成.conf 当执行make menuconfig时,调用的是scripts/Kconfig/Makefile文件中 阅读全文
posted @ 2018-06-27 20:15 Ocean&Star 阅读(1013) 评论(0) 推荐(0)
摘要: 本节总结menuconfig的原理并且提出一些验证思路并去实际验证,目的是让大家加深理解menuconfig的同时学会通过实验验证的方法进行学习。 2.15.9.1、验证menuconfig和.config的关系 (1)make menuconfig时,会读取.config中的配置值来初始化menu 阅读全文
posted @ 2018-06-27 20:09 Ocean&Star 阅读(238) 评论(0) 推荐(0)
摘要: / 一. busybox制作成功 / 实验目的:ls /root/rootfs/oceanstar_rootfs/my_busybox/ (可以看到4个文件夹表示制作busybox成功,这个实验已经做过了) (1). windows电脑下的F:\winshare\rootfs\busybox 1.2 阅读全文
posted @ 2018-06-27 20:03 Ocean&Star 阅读(477) 评论(0) 推荐(0)
摘要: 2.19.1.1、课程安排变化。 2.19.1.2、先逐步构建文件夹形式根文件系统然后制作烧录镜像 (1)rootfs有2种格式:nfs方式启动的文件夹形式的rootfs和用来烧录的镜像形式的rootfs。 (3)我们先从空文件夹开始,逐步向其中添加一些rootfs中必备的东西,然后做一步就用nfs 阅读全文
posted @ 2018-06-27 19:57 Ocean&Star 阅读(344) 评论(0) 推荐(0)
摘要: 转载:https://www.ibm.com/developerworks/cn/linux/l btloader/ 1 引言 一个嵌入式Linux系统从软件的角度看通常分为四个层次 引导加载程序:包括固化在固件firmware中的boot代码[内部ROM中的固话启动代码]和bootloader两大 阅读全文
posted @ 2018-06-27 19:47 Ocean&Star 阅读(321) 评论(0) 推荐(0)
摘要: 转载:http://blog.chinaunix.net/uid 20543672 id 94372.html 一、U boot的起源 U Boot是Das U Boot的简称,其含义是Universal Boot Loader,是遵循GPL条款的开放源码项目。一开始德国DENX软件工程中心的Wol 阅读全文
posted @ 2018-06-27 18:55 Ocean&Star 阅读(397) 评论(0) 推荐(0)
摘要: 2.11.1、三星移植过的uboot 准备源码:android_uboot_smdkv210.tar 2.11.2、ubuntu14.04上网及安装openssh 参考价值不太,自己折腾吧,不要浪费时间了 注意:今年别折腾了,它依赖的库太多了。 2.11.3、移植初体验 (1)、直接编译 a、复制并 阅读全文
posted @ 2018-06-27 18:52 Ocean&Star 阅读(227) 评论(0) 推荐(0)
摘要: 待整理 阅读全文
posted @ 2018-06-27 18:47 Ocean&Star 阅读(180) 评论(0) 推荐(0)
摘要: 1. rootfs最重要是的linuxrc 2. 其他 ls / bin和sbin:可选,里面放了应用程序,比如常用shell命令(这些命令都是应用程序),区别在于sbin目录是linux系统的管理员用的,bin是普通用户用的 cdrom:挂载CD,可选 home:用户管理目录,可选 lost+fo 阅读全文
posted @ 2018-06-27 18:40 Ocean&Star 阅读(218) 评论(0) 推荐(0)
摘要: 1. /linuxrc是一个应用程序,和内核源码无关。 /linuxrc在开发板当前系统内核下可执行。在开发板中的/linuxrc是用arm linux gcc编译,静态链接的 2. /linuxrc直接或者间接的调用用户界面程序,引出其他的所有东西,相当于init。它是rootfs中最重要的成分 阅读全文
posted @ 2018-06-27 18:32 Ocean&Star 阅读(604) 评论(0) 推荐(0)
摘要: 1. 创建简易rootfs cd /root/porting_x210/rootfs/rootfs touch linuxrc 2.将rootfs挂载到nfs共享目录 vi /etc/exports/root/porting_x210/rootfs/rootfs (rw,sync,no_root_s 阅读全文
posted @ 2018-06-27 18:28 Ocean&Star 阅读(648) 评论(0) 推荐(0)
摘要: 本节主要解释了什么是驱动框架,为什么需要驱动框架,基于驱动框架写驱动有什么优势等问题。 5.4.1.1、驱动是谁写的 (1)驱动开发工程师 (2)内核维护者 5.4.1.2、驱动编程协作要求 (1)接口标准化 (2)尽量降低驱动开发者难度 5.4.1.3、到底什么是驱动框架 (1)内核中驱动部分维护 阅读全文
posted @ 2018-06-27 18:19 Ocean&Star 阅读(314) 评论(0) 推荐(0)