ubuntu 14.04 基于x86处理器,构建嵌入式linux
来源:互联网 发布:java 验证日期格式 编辑:程序博客网 时间:2024/05/17 02:59
普通的PC,x86架构处理器,4G内存;
usb 一个4G,主要用它作为启动LILO和放置根文件系统压缩包。
2 准备工作
下载安装ubuntu14.04server版本,并安装内核编译环境(注意:1,安装时需要配置网卡,2,安装时/boot需要10G)。
使用/boot目录下config文件编译内核,运行正常。
修改内核中参数,支持ram启动,修改ramdisk大小为1G。重新编译内核,并启动成功。
3.制作根文件系统压缩文件ram30.img.gz
在/mnt目录下创建目录rd(运行mkdir /mnt/rd);
在/dev/ram0创建文件系统(运行mke2fs -m 0 /dev/ram0 );
挂载上/dev/ram0(运行mount /dev/ram0 /mnt/rd)
就可以象对普通硬盘一样对它进行操作了。
用命令df -h | grep ram0查看出ramdisk大小。
建立目录/mnt/minlinux,在此目录下创建文件系统。
比对系统目录,创立目录bin,放如ls、mv、grep、chown、chmod、chgrp、ln、rm等;
比对系统目录,创立目录sbin,在sbin下是系统启动过程通常需要的命令,如bash、e2fsck、mke2fs、fdisk、insmod、rmmod、depmod、modprobe、lsmod、shutdown、reboot、login、init、getty、mount、umount、等;
比对系统目录,创立目录usr/bin,放置Apache应用程序http和其他一些特殊工具。
比对系统目录,创立lib和lib64。通过对可执行文件执行 ldd filename查找复制对应可执行文件需要的动态链接库放入lib和lib64.
比对系统目录,创建目录etc和dev下的设备文件需要的都必须要有,它们都是和可执行文件对应的,因为许多可执行文件执行时,一般是
打开设备,根据配置文件来运行。
比对系统目录,创建特殊的目录proc。
此时minlinux构建完毕。
重启计算机后,执行下列操作:
dd if=/dev/zero of=/dev/ram0 bs=1k count=1032088
mke2fs –m 0 /dev/ram0 1032088 在ramdisk上建立ext2文件系统;
mount /dev/ram0 /mnt/rd 将已格式化的ramdisk挂载至目录/mnt/rd;
cp –rf /mnt/minlinux/* /mnt/rd 将文件结构拷贝至ramdisk。
修改/mnt/rd/etc/fstab.
将原本通过uuid方式定义的/映射修改为/dev/ram0 绑定到/.并加入none /proc proc defaults 0 0。
执行df查看1024-blocks一栏中/dev/ram0的数值,假定为ramsize.
卸载/dev/ram0;
将ramdisk写成映象文件,运行dd if=/dev/ram0 of=ram30.img bs=1k count=ramsize压缩,产生一个压缩的映象文件ram30.img.gz,
运行gzip –9v ram30.img
4.制作initr.d.img
mke2fs –m 0 /dev/ram0 2048 在ramdisk上建立ext2文件系统;
mount /dev/ram0 /mnt/rd 将已格式化的ramdisk挂载至目录/mnt/rd;
在/dev/ram0中建立映像需要的目录和文件。创建目录bin、dev、etc、lib、mnt和可执行脚本文件linuxrc,linuxrc的内容为:#!/bin/bash
mount –o –ro /dev/sdb4/ /mnt # 以只读方式将u盘挂载在/mnt下
zcat /mnt/boot/ram30.img.gz > /dev/ram0 # 将根文件系统映像解压至ram
umount /dev/sdb4 # 卸载u盘
根据linuxrc中命令,填充bin,etc,lib等目录内容。其中etc目录下内容为ld.so.conf.通过以下方法获得:
cp -rf /etc/ld.so.conf /mnt/rd/etc
mkdir /mnt/rd/etc/ld.so.conf.d
cp -rf /etc/ld.so.conf.d/* /mnt/rd/etc/ld.so.conf.d/
执行ldconfig –r /mnt/rd
执行df查看1024-blocks一栏中/dev/ram0的数值,假定为ramsize.
卸载/dev/ram0
拷贝/dev/ram0成映像文件 dd if=/dev/ram0 of=initrd.img bs=1k count=ramsize;
运行gzip -9v initrd.img
5.制作usb启动盘
参照ubuntu下格式化分区u盘中的介绍,在usb上创建分区1和分区2,格式均为83(Linux)。
mkfs -t ext3 /dev/sdb1
mount /dev/sdb1 /mnt/usb
向usb中拷入配置好的grub以及镜像。修改启动参数,变uuid为/dev/sdb之类的表示方式。然后启动。
重新启动计算机,登陆后运行mount,我们看到如下两项:/dev/ram on / ext2 (rw)
none on /proc type proc (rw)
这显示只有ramdisk被挂载,制作成功。
- ubuntu 14.04 基于x86处理器,构建嵌入式linux
- 《ubuntu下x86汇编》之x86处理器
- 基于AT91SAM9G20构建嵌入式Linux系统
- 基于S3C2410的嵌入式Linux系统构建
- Ubuntu 构建Linux 嵌入式开发环境
- 嵌入式linux远程gdb调试(基于x86架构)
- 基于Linux的嵌入式文件系统构建与设计
- 基于Linux的嵌入式文件系统构建与设计
- 用EP9315构建基于嵌入式Linux的NAS系统平台
- 构建基于PXA255的嵌入式Linux应用平台
- 嵌入式Linux开发环境构建(基于Ubuntu12.04 LTS)
- 应用Scratchbox构建基于CF卡的嵌入式Linux系统
- 构建基于Linux的嵌入式应用的一点想法
- X86 下的嵌入式Linux
- Linux嵌入式 -- 内核简介(x86)
- 《嵌入式设计及Linux驱动开发指南——基于ARM9处理器》读书笔记
- 嵌入式设计及Linux驱动开发指南——基于ARM9处理器
- 基于X86 TMDA CSMA的嵌入式研究
- 【MySQL】命令行执行sql,去除字段名
- Windows7系统服务详解
- Spring中ApplicationContext和beanfactory区别
- JsonObject To HashMap
- uboot中进行make xx_config
- ubuntu 14.04 基于x86处理器,构建嵌入式linux
- 互联网创业创意养成记2 - 先行者优势
- Markdown编辑器如何配置图片大小
- WebSocket入门
- Java发送邮件工具类
- 手机IMEI
- webservice head加密
- 线程同步 win
- Hive 修改表添加分区(add partition)和 加载数据时添加分区 的区别