Linux开发环境的搭建与U盘启动的制作

来源:互联网 发布:pes贝克汉姆捏脸数据 编辑:程序博客网 时间:2024/05/21 06:36

linux发开环境、linux系统U盘启动的制作


 

背景材料(必看预习和参考材料):

①.如何在VmWare虚拟机下安装Ubuntu12.04:

http://wenku.baidu.com/link?url=Ib84k8TdzGPAvcl4JaPBalWR7a51avi9_Qgl442scKp0P0kBG9FpikOYtr-mPUKCisYVi_6nOMgm0y7FntUFI6DvoGJ1HL6ihW7QW0HhY4K

②.如何给Ubuntu安装Vmware Tools:

http://jingyan.baidu.com/article/3065b3b6e8dedabecff8a435.html

③.常用的linux命令及命令大全:

http://www.oschina.net/translate/useful-linux-commands-for-newbies

http://blog.chinaunix.net/uid-16728139-id-3154272.html

附件中还有解压缩命令tar,以及查找命令find的整理,可以看看

④.嵌入式系统简介:

请看附件一,附件二的内容

 

任务、步骤:

任务一:开发环境的安装

步骤

①.下载VmWare虚拟机(这里采用VmWare 11版本)

    下载Ubuntu(这里采用Ubuntu12.04版本)

②.安装VmWare虚拟机(直接默认安装)

③.在虚拟机中安装Ubuntu12.04

打开VmWare虚拟机

 


反馈:

明日日程:

 

 

 

点击创建新的虚拟机进入新建虚拟机向导:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


选择自定义点击下一步:

默认点击下一步:

选择稍后安装操作系统,下一步:

选择linux,下一步:

 

 

选择你得虚拟机名称,以及安装位置,然后下一步:

默认下一步:

根据自己配置设置,我的电脑4G的内存,我分配给虚拟机1个G,下一步:

这里我们选择桥接网络,下一步:

默认推荐,下一步:

默认推荐,下一步:

创建新的虚拟磁盘,下一步:

这个根据自己具体需要设置,这里我设置为60G,下一步:

 

 

默认下一步:

完成。

选择你刚才新建的虚拟机,点击编辑虚拟机设置:

选择CD/DVD(STA):

然后选择使用ISO映像文件,然后选择你之前下载的Ubuntu12.04的镜像文件,点击确定就好。然后点击开启此虚拟机进入安装步骤

这里我们选择英文版。然后点击installUbuntu。

默认点击Continue:

选择其他选项(Somethingelse),点击Continue:

点击新建分区表(NewPartition Table...),并双击空闲分区:

挂载点/ 根目录下的容量根据你之前划分的虚拟磁盘划分容量选择ok

 

同理:依次添加其他分区:

然后点击installnow,根据提示选择时间区,

选择语言:

然后填写个人信息:

点击继续,然后等待就好了。

 

④.安装VmwareTools。

选择虚拟机菜单栏--安装VMware tools

然后在Ubuntu系统中弹出的VMware tools窗口中

找到VMwaretools-9.6.0-1294478.tar.gz

然后右击--复制到--桌面

复制完之后  这时候左边的文件夹图标--右击退出先

然后在桌面上的VMwaretools-9.6.0-1294478.tar.gz

右击提取到此处

这时候桌面就多了一个vmware-tools-distrib的文件夹

然后再重新打开左边的文件夹图标,打开之后在右上角有一个搜索

弹出的搜索地址栏输入 gnome-terminal  输完之后点一下那个放大镜图标进行搜索

然后在搜索出来的结果里面选择文件系统

然后再--重新装入

然后在搜索的结果里面拉到最下面找到终端图标并且打开它

然后在弹出的终端窗里输入sudo su

sudo su命令在ubuntu中可以这样解释

sudo su命令,也被称为替代用户超级用户切换用户

 

然后输入登陆管理员密码

然后输入完密码之后  

使用cd命令进入Ubuntu桌面

然后再用CD进入在Ubuntu桌面里面的vmware-tools-distrib文件夹

然后进入vmware-tools-distrib文件夹之后

使用sudo ./安装命令vmware-tools-distrib文件夹里面vmware-install.pl文件夹进行安装sudo ./vmware-install.pl

 

出现[/USR/bin]之后一直开始按回车键 直接按到/dev/sr0 ...停止为止

/dev/sr0 ...

之后输入reboot重启系统的意思

这时候屏幕变成全屏了这样表示安装TOOLS成了这时候可以往里面拉文件了,如果你可以从windows往虚拟机里面直接拖拉东西,说明你安装成功了。

 

:熟悉linux命令并完成linux系统U盘启动的制作

步骤

 

①.实验前准备:在做实验前先确保虚拟机是否可以上网

1.完成任务一中的安装过程

 

2.软件工具:

sudo apt‐get install vim 先装下 vim 编辑器,也可以用 gedit代替

 

sudo apt‐get install syslinux extlinux -y 安装extlinux,用于引导启动U盘linux系统

 

sudo apt‐get install libncurses5-dev 安装 ncurses5 库,用以 make menuconfig使用

 

如果在此步遇到问题,执行sudo apt-get update

 

②.内核的配置

首先在www.kernel.org上下载内核源代码,这里我用的3.6.2的内核源码。

具体路径:https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.6.2.tar.gz

 

下载好后,把源码解压到用户目录,打开Terminal(快捷键ctrl+alt+t)

cd ~                      //进入用户根目录

tar -xvf linux-3.6.2.tar.gz   //解压到当前目录

cd linux-3.6.2             //进入内核源码目录

make menuconfig          //进行内核配置,如下图

 

这里介绍下内核配置选项,进行内核的裁剪(有提到的编译成 Y,没有提到的就全部取消掉(即使默认为 Y 或者 M)。若要编译成模块后面会附上说明,如果找不到可以按/进行查找。如果不明白,可以具体通过 help 查看说明)(对于没有提到的一定要全部设置成N,不能修改的除外,遇到名称最后带有“>”的项,例如“SCSI low-level --->”要进入该目录中,将里面的项目取消,如果是像“[*] legacy/proc/scsi/ support-->”这种情况,就不需要进入该目录,直接设置成N

一下选项非常多,如果闲麻烦可以尝试以下方法

1 先把配置文件保存成temp.config

然后把其中的=y全部替换成=n (可以使用脚本加正则表达式或者直接替换 随意)

然后载入temp.config 勾选上需要的东西

 

1. General setup ->

[*]System V IPC

是组系统调用及函数库,它能让程序彼此间同步进行交换信息。某些程序以及DOS模  拟环境都需要它。为进程提供通信机制,这将使系统中各进程间有交换信息与保持同步    的能力。有些程序只有在选Y的情况下才能运行,所以不用考虑,这里一定要选。

 

[*]Initial RAMfilesystem and RAM disk (initramfs/initrd) support

//使用的文件系统为Initial ramdisk,因此需要此支持

2.Processor type and features ->

Processor family->

(X) 586/K5/5x86/6x86/6x86MX(有些电脑可以不一样就默认)

//它会对每种CPU做最佳化,让它跑的好又快,一般来说,你是什么型号的就选什么型号的就好。

3.Bus options (PCI etc.) ->

[*] PCI support

PCI access mode(any) ->(如果找不到该项,就忽略)

             (X)Any

4. Executable file formats / Emulations ->

[*] Kernelsupport for ELF binaries 

5.Device Drivers ->

5.1 SCSI device support --->

-*- SCSI device support

[*] legacy /proc/scsi/ support

<*> SCSI disk support

[*] SCSI low-level drivers --->

5.2 HID support --->

[*]HID bus support

[*]/dev/hidraw raw HID device support

[*]Generic HID driver

5.3 USB support --->

<*>   Support forHost-side USB

<*>   EHCI HCD (USB 2.0)support

<*>   OHCI HCD support

<*>   UHCI HCD (mostIntel and VIA) support

<*>   USB Mass Storagesupport

[*]     USB Mass Storageverbose debug

6.file systems ->

<*>Second extended fs support

Native Language Support --->

Codepage 437

Simplified Chinese charset

NLS ISO 8859-1   

 

配置基本上涉及以上内容,保存退出(以上6个内容中有提到的全部选择Y,其他未提到的全部选择N,否则编译可能出错则内核裁剪完毕)

在该目录下终端下键入make

make         //进行内核编译

如果想方便一点的可以尝试

sudo apt-get install nautilus-open-terminal

然后 sudo reboot (注意,保存好当前的文档)

然后可以利用右键在当前目录打开终端

 

③. bootload引导启动

Bootloader是嵌入式系统的引导加载程序,它是系统上电后运行的第一段程序,其作用类似于 PC 机上的BIOS.

3.3.1格式化U盘

1.插入U盘,点击虚拟机的右下角的虚拟设备图标,点击connect连接虚拟机与U盘。

2.在命令终端输入sudo fdisk -l可以查看U盘的设备名。这里U盘的盘符为sdb(每台机子不一样,记住这个盘符,后面要用到)(一般会跳出多个设备,输入命令行上方的是U盘,下面圈出来的

 

3.由于默认自动挂载的原因,首先第一步要卸载挂载:(这里sdb1即更改的盘符

 

 

 

 

 

 

4.新建分区:sudo fdisk /dev/sdb

若当前U盘已经格式化过,则可以通过d删除分区(U盘数据提前备份!

 

n为新建分区

 

在新跳出的窗口中直接按回车,创建一个主分区

 

主分区号选择默认(即直接回车)

开始扇区号默认

 

终止扇区号:填入204800,约100MB(100足够内核+文件系统存放,当然也可以根据自己的需要适当增加或减小)

 

4.保存分区表:

 

5.将sdb1格式化为FAT32文件系统

将sdb1分区格式化为FAT32:

 

修改sdb1的标签为USB_WSCEC

 

 

3.3.2安装extlinux到u盘

extlinux之前是syslinux的一个分支,用于ext文件系统,从syslinux 4起, extlinux和syslinux已经统一,同syslinux一样,只能读取所在盘上的文件(内核、映像、配置等),其配置文件是简单的文本文件;syslinux有很多变种适用于各种媒质,如syslinux用于从微软的文件系统fat 16/32引导,isolinux用于从光盘引导,pexlinux用于从网络引导,extlinux用于从ext2/3/4或btrfs文件系统引导

 

1.在mnt目录下,创建usbdisk作为U盘的挂载点,并将其挂载上

 

2.安装extlinux到该U盘上

进入U盘挂载点:

安装extlinux到当前目录:(上面一行为命令,下面一行为结果

安装完成后,可以看到该目录下多了一个ldlinux.sys文件

 

3.创建分区表的主引导记录(MBR)命令为:

sudo dd bs=440conv=notrunc count=1 if=/usr/lib/syslinux/mbr.bin of=/dev/sdb(这里sdb即更改的盘符

4.设置sdb1为boot分区

Cd~(一定注意看命令是在哪个当前路径完成的)

5.创建配置文件

cd /mnt/usbdisk/(要在这个路径下做下面的步骤)(这几步路径一直在变要注意

gedit extlinux.conf

配置文件内容:输入以下内容(这里是在编辑器中,也可以使用VI

以下是填入参数内容的说明:

DEFAULT linux      //默认情况下进入标签linux

LABEL linux        //为标签linux

KERNEL bzImage    //指定存放内核镜像的地址

APPEND roroot=/dev/sda1 initrd=initrd.gz   //表示只可读、不可写 initrd=initrd.gz指定文件系统(root=/dev/sda1这里的sda1不是上面用到的U盘盘符,不要改成sdb1

3.4制作文件系统

3.4.1 编译busybox

BusyBox 是实现标准 Linux 工具的一个独立可执行方案。不但包含有简单的工具,如 cat 和 echo,还集成压缩了 Linux 更大、更复杂的工具和命令,例如grep、find、mount 以及 telnet。利用它,我们可以建立我们需要的系统命令。

1.

下载地址:http://busybox.net/downloads

下载这个版本:busybox-1.23.2.tar.bz2

2.

解压busybox

tar –xvf busybox-1.23.2.tar.bz2

3.

进入busybox源码目录

cd busybox-1.23.2

 

4.对 busybox 进行配置:

make menuconfig

这一步骤和内核剪裁时的要求不同,只要更改Busybox SettingNetworking Utilities    中的内容,其它目录中的内容不用更改。

 

 

1.Busybox Setting ->

General Configuration --->

<*>Show verbose applet usagemessages 

<*>Runtime SUID/SGIDconfiguration via /etc/busybox.conf 

Build Options --->

<*>BuildBusyBox as a static binary (no shared libs)    //静态编译

Installation Options --->

<*>Don't use /usr                            //避免覆盖主机系统/usr下原有的命令

Busybox installation prefix                    //设置生成命令的路径 如:_install

这里设置安装目录为/home/wscec(填入自己的Ubuntu的用户名)/_install 

针对不同的即为/home/用户名/_install

2.Networking Utilities --->(该目录中没提到的保持不变!)

[] inetd (默认该选项为[*],将其设为n,其余选项保持不变)

 

Exit->Save Changes-> Yes    //保存修改的配置

在用户目录下创建安装目录_install:

配置完成,这时候进行编译:

编译完成,出现如下提示:

 

会生成sbin 和bin 两个文件夹可以清楚看到BusyBox种究竟支持了哪些命令和工具。如果需要的命令没有出现在这个目录,就要重新配置编译,让其支持。

3.4.2创建文件系统

1.在_install目录下创建proc sys etc dev文件夹,制作基本的文件系统

console:控制台字符设备文件

null   :0设备文件

2.创建fstab:

fstab内容:

3.创建init.d:

 

内容:

 

4.增加可执行属性:

 

5.创建初始化文件:

 

内容:

6.建立软连接,初始化进程:

 

7.创建initial ramdisk文件系统:

3.4.3完成linux系统启动U盘

接下去要拷贝内核镜像和文件系统到U盘中,等下实验一下PC启动U盘中的系统。

1.先挂载U盘:

 

2.拷贝内核镜像:

3.拷贝文件系统:

至此,U盘启动盘完成,打开PC机进去BIOS修改启动项优先级,观察实验结果是否正常


 

 

0 0