定制最简linux和根文件系统(平台龙芯1B开发板)

合集下载

嵌入式系统导论复习题

嵌入式系统导论复习题

嵌入式系统导论复习题嵌入式系统导论复习题一填空1、嵌入式系统通常是以应用为中心,以计算机技术为基础,软硬件可裁剪,对功能、体积、功耗等严格要求的专用计算机系统。

2、嵌入式系统的可靠性是嵌入式计算机的生命线。

3、嵌入式系统的基本结构一般可分为硬件和软件,硬件包括嵌入式核心芯片、存储器系统及外部接口,软件包括应用软件、编程接口、嵌入式操作系统和板升级支持包。

4、嵌入式处理器主要包括EMPU、EMCU、EDSP和ESOC。

其中ESOC最大的特点是成功实现了软硬件无缝结合,直接在处理器片内嵌入操作系统的代码模块。

5、目前使用的嵌入式操作系统有好几十种,最常用的是LINUX和WINCE。

6、嵌入式系统的系统级设计方法主要有先硬件后软件设计方法和软硬件协同设计的方法,其中针对单片机的开发是采用先硬件后软件的方法。

7、嵌入式软件可分为系统软件、支撑软件和应用软件三类。

8、嵌入式处理器是嵌入式硬件系统的核心,其种类非常多,常见的有ARM处理器、MIPS处理器和PowerPC处理器。

9、TI公司的TMS320C2XXX系列的DSP可作为MCU进行使用。

10、标准的嵌入式系统架构有两大体系:RISC和CISC,其中RISC架构的处理器包括ARM、MIPS、PowerPC、ARC等,CISC架构为我们所熟知的是INTEL的X86架构、VIA架构和AMD架构。

11、ARM7系列微处理器为32位RISC处理器。

12、国产嵌入式处理器的代表芯片为方舟和龙芯系列处理器。

13、存储器有三个主要特性:速度、容量和价格。

其中寄存器速度最快、价位最高、容量最小;主存用来存放将要参与运行的程序和数据;存取速度和容量介于寄存器和主存之间的为高速缓冲存储器cache。

14、按存储器的作用不同,可分为主存储器、辅助存储器和缓冲存储器,其中RAM和ROM属于主存储器。

15、RAM主要有SRAM和DRAM,常见的RAM容量扩展方法为字长扩展和字数扩展。

嵌入式开发板学习从零建立Linux最小系统

嵌入式开发板学习从零建立Linux最小系统

嵌入式开发板学习从零建立Linux最小系统iTOP-4412开发板不仅可以运行Android,还可以运行简单的Linux最小文件系统。

最小Linux 系统“麻雀虽小,五脏俱全”,它不带图形界面的Linux 系统,剔除干扰因素便于理解,用来学习Linux系统编程非常合适。

另外,Linux最小系统占用的内存空间很小,也经常用于不带图形界面的项目。

1.最小Linux系统简介制作文件系统需要使用到Busybox工具。

BusyBox是一个集成了一百多个最常用Linux命令和工具的软件。

BusyBox 包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例grep、find、mount以及telnet。

有些人将BusyBox 称为Linux 工具里的瑞士军刀。

简单的说BusyBox就好像是个大工具箱,它集成压缩了Linux 的许多工具和命令,也包含了Linux 系统的自带的shell。

Busybox的下载网址是/,这是一个开源的程序,并且一直在更新中,这里使用的版本是busybox-1.21.1.tar.bz2。

2.配置最小系统在虚拟机的Ubuntu的目录“/home”下新建目录“mkdir minilinux”,这个目录可以根据个人习惯建立,并不是强制要求。

拷贝busybox-1.21.1.tar.bz2(这个软件在对应的实验视频目录文件下)到虚拟机的Ubuntu系统上的目录“/home/minilinux”下,然后在目录“/home/minilinux”下,执行解压命令“tar -xvf busybox-1.21.1.tar.bz2”解压,进入解压出的busybox-1.22.1目录中。

Busybox的编译配置和Linux内核编译配置使用的命令是一样的,下面配置Busybox,如下图所示,使用命令“make menuconfig”,会出现Busybox的配置界面,如下图所示。

MiniGUI图形界面实验

MiniGUI图形界面实验

学习移植 MiniGUI-STR(for uC/OS-II)软件到 SmartARM2200 开发板的基本方法,然后 编写一个简单的 MiniGUI 应用程序,使用 MessageBox 函数创建一个消息框,消息框中显示 字符串“Hello MiniGUI!” 。 4. 实验预习要求 (1) 仔细阅读<<ARM 嵌入式系统实验教程(二)>>第 1 章的内容,了解 SmartARM2200 开发板的硬件结构,注意 TFT 液晶接口电路和键盘电路。 (2) 阅读 MiniGUI 的文档 <<MiniGUI 用户手册 >> 和 <<MiniGUI 编程指南 >> ,了解 MiniGUI 的基本特点和应用配置选项,以及应用程序的编写。 5. 实验原理 (1) MiniGUI 简介 MiniGUI 项目的最初目标是为基于 Linux 的实时嵌入式操作系统提供一个轻量级的图形 用户界面支持系统,发展到今天,MiniGUI 已进入成熟和稳定阶段,并且所支持的操作系统 已不仅仅限于 Linux,它还可以在 uClinux、uC/OS-II、eCos、VxWorks 等系统上运行。 MiniGUI 为应用程序定义了一组轻量级的窗口和图形设备接口, 利用这些接口, 每个应 用程序可以建立多个主窗口,然后在这些主窗口中创建按钮、编辑框等控制。MiniGUI 还为 用户提供了丰富的图形功能,以显示各种格式的位图并在窗口中绘制复杂图形。 MiniGUI 和嵌入式操作系统的关系如图 1.1 所示,基于 MiniGUI 的应用程序一般通过 ANSI C 库以及 MiniGUI 自身提供的 API 来实现自己的功能。
4
广州周立功单片机发展有限公司 }
Tel: (020)38730976

嵌入式Linux中NVRAM的实现方案及驱动设计

嵌入式Linux中NVRAM的实现方案及驱动设计

162010,31(1)计算机工程与设计Computer Engineering and Design0引言NVRAM (non-volatile random access memory ,非易失性随机访问存储器)是广泛应用于网络路由器的一种存储器件。

它如同PC 上的CMOS ,作用是存放路由器的配置参数。

目前常见的NVRAM ,大都是静态SRAM ,即带有备用电源的SRAM ,它的实现最简单,同普通内存操作一样。

但是在实际应用中,不是所有的开发板都配备有静态SRAM 。

在这种情况下,如果使用该方案开发网络路由器,重新加入配备电源的SRAM 必须要重新排版,布线。

开发周期与开发成本将会大大增加。

因此,可以考虑在现有的硬件资源基础上,通过新的方式来实现NVRAM [1]。

本文就是以神州龙芯开发的CQ8401开发板为硬件平台,在自行裁剪和移植的嵌入式Linux 平台下,利用Nor Flash 来实现网络路由器的NVRAM 功能。

1NVRAM 新的实现方案分析由于NVRAM 仅用于保存启动配置文件(Startup-Config ),故其容量较小,通常在路由器上只配置32KB~128KB 大小的NVRAM 。

配备电源的SRAM 速度较快,是目前读写最快的存储设备,而成本也比较高。

一般的开发板所配备的Nor Flash空间足够大,在系统性能得到满足的前提下,可以把Nor Flash 分出一个区来当作NVRAM 使用。

SRAM 和Nor Flash 的对比分析,如表1所示。

网络路由器中的NVRAM 用于存放配置参数。

正常启动路由器后,NVRAM 中的内容会拷贝到内存一份,我们对路由器的设置实际上就是修改内存中的参数。

所以内存和NVRAM 中的内容可以不一样,直到使用write memory 将内存设置保存到NVRAM 。

在系统起来以后,我们可以根据需要修改配备参收稿日期:2009-07-17;修订日期:2009-09-18。

如何为DragonBoard 410c定制Linaro Linux系统

如何为DragonBoard 410c定制Linaro Linux系统

如何为DragonBoard 410c定制Linaro Linux系统我们在前面博客中已经介绍过,DragonBoard 410c兼容96Boards消费版(CE)规范。

咱们先来了解一下96Boards规范。

96Boards 是ARM 开放平台规范,是第一个定义Cortex-A 开发板的开放规范,该规范由Linaro社区委员会组织维护。

标准化扩展Peripheral I/O 总线,显示和相机等。

定位移动、嵌入及数字家庭领域。

允许硬件生态系统开发一系列兼容组件的产品,在其生命周期可以在任意兼容96Boards 的平台上使用。

DragonBoard 410c基于Linaro的96board规范,有助于开发商、制造商、大学和商业制造商利用骁龙410处理器的能力,例如下一代机器人、医疗设备、楼宇自动化、数字标牌和游戏机等。

上一篇博客已经介绍了Android系统的定制方法,今天将介绍如何为DragonBoard 410c定制Linaro Linux系统。

环境准备1、交叉编译环境准备DragonBoard 410c是一个64位的ARMv8平台,所以在PC机上编译ARM架构的代码需要交叉编译环境。

首先下载Linaro GCC cross compiler,然后将下载的压缩包解压到你自己指定的目录下:~/DragonBoard/toolchain/:tar xvf gcc-linaro-4.9-2014.11-x86_64_aarch64-linux-gnu.tar.xz2、下载Linux Kernel源码Linux Kernel的代码信息可以通过Linaro Qualcomm Landing Team git repository来查找。

根据tags信息,我们可以看到,DragonBoard 410c的最新Linux源码是15.09版本,下面我们来下载Linux源码。

~/DragonBoard/Git clone -n http://git.linaro/landing-teams/working/qualcomm/kernel.gitcd kernel。

在龙芯1B开发板和龙芯1B核心板开发环境切换时的注意事项

在龙芯1B开发板和龙芯1B核心板开发环境切换时的注意事项

1. 电源 (3)2. 串口 (3)2.1. PMON参数 (3)2.2. 根文件系统 (4)版本更新日期更新内容V1.0 2013,12,20 创建1.电源首先是电源电压问题。

广州龙芯1B开发板使用的是5V外部电源,基于广州龙芯1B 核心板相关产品可能是使用12V的外部电源(因为广州龙芯的核心板配套底板是12V外部电源)。

2.串口这里主要说的是打印启动信息和调试信息用的串口。

龙芯1B开发板使用的是ttyS2,而核心板使用的是ttyS5。

2.1. PMON参数在PMON下设置启动参数,其中一个重要参数就是串口号。

比如:龙芯1B核心板就应该设置为ttyS5,我最开始按照龙芯1B开发板把它设置为ttyS2后,linux启动起来后,就没打印了。

如下io scheduler cfq registered (default)Use default resolution 800x600-16@75VESA:800x600-0@75Console: switching to colour frame buffer device 100x37Serial: 8250/16550 driver, 6 ports, IRQ sharing disabledserial8250.0: ttyS0 at MMIO 0x1fe40000 (irq = 2) is a 16550Aserial8250.0: ttyS1 at MMIO 0x1fe44000 (irq = 3) is a 16550Aserial8250.0: ttyS2 at MMIO 0x1fe48000 (irq = 4) is a 16550Aconsole [ttyS2] enabled, bootconsole disabled设置正确后,应该可以通过串口直接进入shell命令行。

而对应此处的打印为AT070TN93:800x480-16@60Console: switching to colour frame buffer device 100x30Serial: 8250/16550 driver, 6 ports, IRQ sharing disabledserial8250.0: ttyS0 at MMIO 0x1fe40000 (irq = 2) is a 16550Aserial8250.0: ttyS1 at MMIO 0x1fe44000 (irq = 3) is a 16550Aserial8250.0: ttyS2 at MMIO 0x1fe48000 (irq = 4) is a 16550Aserial8250.0: ttyS3 at MMIO 0x1fe4c000 (irq = 5) is a 16550Aserial8250.0: ttyS4 at MMIO 0x1fe6c000 (irq = 29) is a 16550Aserial8250.0: ttyS5 at MMIO 0x1fe7c000 (irq = 30) is a 16550Aconsole [ttyS5] enabled, bootconsole disabledconsole [ttyS5] enabled, bootconsole disabledloop: module loadedNAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-bit)lxy: erasesize= 0x20000, wirtesize= 0x800, oobsize= 0x40 !Scanning device for bad blocksBad eraseblock 192 at 0x000001800000Bad eraseblock 821 at 0x0000066a0000Creating 3 MTD partitions on "mtd0":0x000000000000-0x000000e00000 : "kernel"0x000000e00000-0x000007200000 : "os"比如我(主机ip:192.168.0.156,开发板ip:192.168.0.153)通过tftp下载内核,通过nfs挂载根文件系统的pmon参数为PMON> set al tftp://192.168.0.156/vmlinuzPMON> set append 'root=/dev/nfs rw nfsroot=192.168.0.156:/nfsramdisk/LS1Brootfs noinitrd init=/linuxrc console=ttyS5,115200 ip=192.168.0.153:::::eth0:off'当然如果为了安全性,不想让产品在启动后通过串口打印信息或者进入shell,可以采用这种方式,个人认为这种方式的安全性还是比较高。

信创操作系统(麒麟、统信)与非信创Linux三者运维实操能力差异性及屏蔽策略

信创操作系统(麒麟、统信)与非信创Linux三者运维实操能力差异性及屏蔽策略

信创操作系统(麒麟、统信)与非信创Linux三者运维实操能力差异性及屏蔽策略随着近些年信创浪潮的不断涌进,越来越多人或使用或关注信创操作系统,而国内的信创操作系统也在不断迭代更新,如麒麟、统信操作系统作为主流的服务器操作系统已在市场上占据大量份额,其软硬件兼容性不断完善,并在不少中大型企业应用落地,从办公管理等通用类应用场景逐步迈向容器云、大数据、大模型等前沿应用场景,不难看到,信创操作系统在不断走向成熟。

在此形势下,熟悉了解主流信创操作系统(麒麟、统信)与非信创Linux在各个技术维度上的差异就显得尤为重要,既可以帮助企业在进行产品技术选型时作为技术参考,又可以帮助IT从业人员进行信创技术储备,以应对随时可能遇到的技术壁垒。

1、麒麟、统信和非信创Linux三者在日常运维使用中有哪些明显差异?目前各单位使用的发行版大体上可以分为Rhel(CentOS)、Debain、Suse Linux这3大类,在操作系统选择上尽量选择生产环境统一的发行版本(或者是基于同一上游的发行版本均可,比如CentOS、Rhel、麒麟欧拉等版本就属于同一发行版本,Debain、Ubuntu、UOS等属于另一类的发行版),使用同一上游的发行版本在统一管理、维护等方面可以显著提升维护的便利性,比如操作系统初始化、安全加固、补丁策略、补丁源、批量维护、更新等有诸多的好处。

以上各发行版本的操作系统常用命令都是大体一样的,但是软件安装的命令有些许差别,比如rpm 对应 dpkg ,yum对应apt等,操作操作系统的一些常用的依赖包或更新一般建议采用yum(rpm)/apt(dpkg)等方式进行安装,对于安装部署应用则建议采用源码编译安装或者二进制文件安装。

2、信创服务器操作系统与X86-Linux系统应用场景差异对比1. 应用架构不同X86-Linux系统:一台设备可以承载多个应用模块信创服务器操作系统:分布式微服务架构,多台设备承载1个应用模块2. 存算偏好不同X86-Linux:存算分离和存算一体皆适宜信创服务器操作系统:大多采用存算一体3. 平台扩展方式不同X86-Linux系统:纵向扩展和横向扩容均可信创服务器操作系统:由于硬件性能原因,高并发场景大多采用横向扩容4.其他应用场景出现的问题依赖于32位系统包的软件在海光平台麒麟系统无法安装,如:stunnl(用于加密文件传输场景)、CD soft、TSM高并发场景国产系统CPU使用率居高不下(如Nginx)3、麒麟、统信操作系统相比非信创操作系统,在稳定性、性能、故障率以及运维方面,有什么变化?这里其实可以分为两类:1.信创产品的风险情况信创产品的稳定性、性能、故障率就目前来说一般,毕竟信创产品诞生时间不长,可能后续随着用户人群的越来越多,发现的问题也越来越多,所以建议大家尽量的跟着系统厂商、硬件厂商发布的各类补丁,根据自己的实际情况进行修复。

TG7121B 开发板快速上手手册说明书

TG7121B 开发板快速上手手册说明书

文档版本 1.1发布日期2021/6/15TG7121B开发板快速上手手册目录1前言 (1)1.1文档目的 (1)1.2文档范围 (1)1.3预期读者 (1)1.4版本修订记录 (1)2开发板介绍 (2)2.1SOP16封装开发板 (2)2.2QFN32封装开发板 (3)3搭建开发环境 (4)3.1软件开发环境 (4)3.2烧录串口连接 (4)3.3J-Link调试 (4)3.4获取SDK (4)4应用开发 (5)4.1灯应用示例概况 (5)4.2编译灯应用示例 (5)4.3J-Flash烧录 (6)4.4串口工具烧录 (7)5例程运行 (7)5.1创建与配置产品 (7)5.2开发板上电运行 (7)5.3串口命令说明 (8)5.4配置调试日志 (9)6其他参考文档 (10)1 前言1.1 文档目的本文档介绍如何基于TG7121B开发板快速上手。

1.2 文档范围本文档适用于天猫精灵TG7121B芯片项目。

1.3 预期读者本文档适用的文档使用对象为使用天猫精灵TG7121B芯片的产品经理、软件开发人员。

1.4 版本修订记录表格1-1 版本修订记录2 开发板介绍请访问芯片开放社区TG7121B的芯片主页参考TG7121B开发板说明文档。

注意:PB14为启动选择,启动时,检测到高电平,进入串口烧录模式,否则进入正常模式。

2.1 SOP16封装开发板SOP16封装引脚定义:2.2 QFN32封装开发板QFN32封装引脚定义:3 搭建开发环境3.1 软件开发环境首先安装YoC开发环境。

TG7121B仅支持Linux开发环境。

安装和使用Linux开发环境请参考:•环境安装sudo pip install yoctools•YoCTools使用说明Yoctools会负责在编译时自动安装编译器。

3.2 烧录串口连接UART串口转接板的RXD Pin接芯片的PB00, TXD Pin接芯片的PB01, 3.3V接芯片的VDD,GND接GND。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

定制最简linux和根文件系统(平台龙芯1B开发板)版本历史1. 前言 (5)1.1. 开发板版本号 (7)1.2. 工具链版本号 (8)1.3. 参考文档及其版本号 (8)1.4. 目标 (9)2. 搭建开发环境 (9)3. 制作根文件系统 (11)3.1. 配置 (11)3.1.1. 拷贝源码,并解压 (11)3.1.2. 配置选项简述 (12)3.2. 编译 (13)3.3. 构建根文件系统 (15)3.3.1. 建立系统根目录 (15)3.3.2. 建立设备文件 (16)3.3.3. 建立系统配置文件 (16)4. 编译linux (22)4.1. 配置 (23)4.1.1. 首先拷贝源码,并解压 (23)4.1.2. 不安装Ncurses (24)4.1.3. 没有拷贝.config (24)4.1.4. 不用修改Makefile (25)4.1.5. 配置选项简述 (26)4.2. 编译 (30)5. 启动运行linux (31)5.1. 拷贝vmlinux到tftp服务器目录下 . 315.2. 设置PMON的ip地址 (31)5.3. 下载内核 (32)5.4. 启动linux (33)1.前言很高心拿到了龙芯1B开发板。

然后仔细的看了开发板光盘里的《1B开发板用户手册.pdf》。

里面写得非常详细,并且都附有截图,很明了。

从最开始装虚拟机到编译linux,制作根文件系统等等,连虚拟机软件和Ubuntu系统镜像都有。

可以说这套开发板考虑得非常周到。

然后我就参照《1B开发板用户手册.pdf》编译了linux,制作了根文件系统,最后终于跑起来,进入了shell。

这里谈谈我的感想用户手册更像一个工具书就拿根文件系统来说吧。

Cramfs,Jffs2,Yaffs2的制作步骤都有,这表示该手册很全面,但是如果是一个初学者的话,给的选择太多不一定是好事。

这也是我想写这篇文档的原因。

我想linux 的配置尽量简单(除了串口驱动以外,其它的比如,网卡,声卡,触屏等都暂时不需要),根文件系统也尽量简单(手册中的已经很简单了,后面我们就参照手册),另外为了再简单一点我把根文件系统也选择内存文件系统,内核只下载到内存而不烧写到flash,同时PMON参数也不修改。

这样做有个好处——任何时候我可以复位进入开发板预装的linux和文件系统。

这便于在我们遇到问题时参考。

●制作根文件系统的章节还有点小小的问题需要改进⏹手册中的笔误Busybox配置过程中ionice错写为inoice⏹没有新建目录/root和/var/log⏹没有新建console和串口设备节点ttyS2另外,说点题外话,回想以前读大学时,非常想学习嵌入式,但是感觉非常困难。

现在看来,当时感觉困难的原因是入门太难了。

为什么入门难,弄了很久连环境都没打起来,更别说编译linux,制作根文件系统了。

在这里我想说“朋友们,搭建环境只需要把开发板的工具链解压到指定目录就可以了。

就相当于windows上的绿色软件一样,仅此而已,这比安装vs2005快多了,方便多了”。

既然开发环境搭建起来了,后面就是配置编译linux,制作根文件系统了(先不要管PMON了,就像电脑一样,很少有人换bios,最多重装系统)。

这也就是本篇文章的任务。

1.1. 开发板版本号LS1B DEMO BOARD Schematic Revision 2.0即版本为2.01.2. 工具链版本号版本为gcc-3.4.6-2f.tar.gz1.3. 参考文档及其版本号《1B开发板用户手册》V1.21.4. 目标参考《1B开发板用户手册》创建一个最简化的linux和根文件系统。

同时不破坏开发板预装的linux等,并将这个过程记录下来,仅供参考。

这里在明确一下本次任务的详细内容⏹PMON不变(不要动PMON,包括PMON环境变量,除了ip地址外)⏹LINUX内核配置尽量简单(驱动方面,除了串口外,其它的网口,声卡,触屏都不要选上),linux内核也仅仅下载到内存,不要写到flash⏹根文件系统尽量简单(根文件系统就直接从busybox编译后得到,暂时不移植什么应用),同时这里也选择RAMDISK文件系统,不要写到flash2.搭建开发环境安装虚拟机和Ubuntu网上有很多,当然手册中也讲得很详细,这个就自己解决。

假设您已经装好了。

另外我用的是red hat 企业版5(手册中用的是Ubuntu),并且直接登录root账户,避免了什么权限的麻烦。

安装工具链手册中已经讲得非常好了,这里直接截图。

3.制作根文件系统3.1. 配置3.1.1.拷贝源码,并解压[root@localhost test]# cp ../LS1B/busybox-1.19.2-default.tar.gz ./l[root@localhost test]# ls1b-linux-3.0-d8b47bb1b-linux-3.0-d8b47bb.tar.gzbusybox-1.19.2-default.tar.gz[root@localhost test]# tar -zxf busybox-1.19.2-default.tar.gz[root@localhost test]# ls1b-linux-3.0-d8b47bbbusybox-1.19.2-default1b-linux-3.0-d8b47bb.tar.gzbusybox-1.19.2-default.tar.gz[root@localhost test]# cd busybox-1.19.2-default [root@localhost busybox-1.19.2-default]#和linux内核一样,通过执行make menuconfig 来配置,输入后回车如下图所示3.1.2.配置选项简述Busybox Settings --->Build Options --->[*] Build BusyBox as a static binary (no shared libs)(/opt/GCC/gcc-3.4.6-2f/bin/mipsel-linux-) Cross Compiler prefix (交叉编译器的绝对路径前缀,根据自己情况修改)Busybox Library Tuning --->[*] vi-style line editing commands[*] Fancy shell promptsInit Utilities --->[*] init[*] Support reading an inittab file[*] Run commands with leading dash with controlling tty[*] Support running init from within an initrd (not initramfs)Miscellaneous Utilities --->[ ] ionice[ ] ubiattach[ ] ubidetach[ ] ubimkvol[ ] ubirmvol[ ] ubirsvol[ ] ubiupdatevol3.2. 编译执行make[root@localhost busybox-1.19.2-default]# make 执行完后,如下然后执行make install[root@localhost busybox-1.19.2-default]# make install已经把需要的东西放到当前目录的_install下然后在这基础上制作根文件系统3.3. 构建根文件系统3.3.1.建立系统根目录[root@localhost nfsramdisk]# mkdir LS1B [root@localhost nfsramdisk]# cd LS1B[root@localhost LS1B]# ls[root@localhost LS1B]# mkdir dev home proc tmp var etc lib mnt sys usr etc/rc.d root var/log [root@localhost LS1B]# lsdev etc home lib mnt proc root sys tmp usr var[root@localhost LS1B]#3.3.2.建立设备文件建立console和串口设备文件[root@localhost LS1B]# mknod -m 600 dev/console c 5 1[root@localhost LS1B]# mknod -m 600 dev/ttyS2 c 4 66[root@localhost LS1B]#3.3.3.建立系统配置文件注意:以下的配置文件不是在开发主机的根目录下创建的。

3.3.3.1. 添加etc/inittab文件[root@localhost LS1B]# vim etc/inittab::sysinit:/etc/rc.d/rc.sysinit// 指定系统启动后首先执行的文件#Example of how to put a getty on a serial line(rot a terminal)ttyS2::respawn:~/bin/sh #no login(启动后进入shell)#::respawn:/sbin/getty -L ttyS2 115200 vt100#use login#tty::respawn:~/bin/sh#Stuff to do when restarting the init process ::restart:/sbin/init#Stuff to do before rebooting::ctrlaltdel:/sbin/reboot // 捕捉ctrl+alt+del键,重启文件系统::shutdown:/bin/umount -a -r // 当关机时卸载所有文件系统::shutdown:/sbin/swapoff -a~~"etc/inittab" [新] 14L, 553C 已写入[root@localhost LS1B]#3.3.3.2. 新建etc/rc.d/rc.sysinit文件[root@localhost LS1B]# vim etc/rc.d/rc.sysinit#!/bin/sh#Set binary pathexport PATH=/bin:/sbin:/usr/bin:/usr/sbin#Config dev environmentmount -t tmpfs -o size=64k,mode=0755 tmpfs /devmkdir -p /dev/ptsmount -t devpts devpts /dev/pts#mknod -m 600 /dev/console c 5 1#mknod -m 600 /dev/ttyS2 c 4 66#mount all filesystem defined in /etc/fstabecho "#mount all......"/bin/mount -aecho "#Starting mdev......"echo /sbin/mdev>/proc/sys/kernel/hotplug/sbin/mdev -s#Set hostname/bin/hostname "Loongson-gz"export LOGNAME=root"etc/rc.d/rc.sysinit" [新] 24L, 489C 已写入[root@localhost LS1B]#3.3.3.3. 新建etc/fstab文件[root@localhost LS1B]# vim etc/fstabsysfs /sys sysfs defaults 0 0proc /proc proc defaults 0 0tmpfs /tmp tmpfs defaults 0 0tmpfs /mnt tmpfs defaults 0 0tmpfs /root tmpfs defaults 0 0tmpfs /var/log tmpfs defaults 0 0~"etc/fstab" [新] 7L, 213C 已写入[root@localhost LS1B]#3.3.3.4. 新建etc/profile文件[root@localhost LS1B]# vim etc/profile#!/bin/sh#/etc/profile:system-wide .profile file for the Bourne shellsecho "Processing /etc/profile..."#Set search library pathexport LD_LIBRARY_PATH=/lib:/usr/lib#Set user pathexport PATH=/bin:/sbin:/usr/bin:/usr/sbin#Set PS1USER="'id -un'"LOGNAME=$USERPS1='[\u@\h:\w]\$'PATH=$PATHalias ll="ls -l"echo "Done!""etc/profile" 20L, 330C 已写入[root@localhost LS1B]#3.3.3.5. 修改系统配置文件权限[root@localhost LS1B]# chmod 755 etc/*[root@localhost LS1B]# chmod 755 etc/rc.d/rc.sysinit[root@localhost LS1B]#3.3.3.6. 拷贝Busybox文件[root@localhost ~]# cd /home/dev/test/busybox-1.19.2-default[root@localhost busybox-1.19.2-default]# ls /nfsramdisk/LS1Bdev etc home lib mnt proc root sys tmp usr var[root@localhost busybox-1.19.2-default]# cp -rf _install/* /nfsramdisk/LS1B[root@localhost busybox-1.19.2-default]# ls /nfsramdisk/LS1Bbin dev etc home lib linuxrc mnt proc root sbin sys tmp usr var至此根文件系统制作完成!4.编译linux在强调一下,我使用的是red hat,直接root 登录,手册《1B开发板用户手册》使用的是Ubuntu。

相关文档
最新文档