[Boot Loader]js timeoutt=5 Default=C:\$WIN_NT$.~BT\BOOTSECT.DAT [Operating Systems] multi(0)disk(0)rdis

,单击"立即下载"按钮。如下图所示:

三个文件复制到Win2003分区。然后重命名NTLDRNT007,最后修改boot.ini,内容如下:

Windows 98必须安装在主分区内,且必须是FATFAT32格式的分区。分区容量最大为32GB

显然,图3.1和表3.1所示的分区不适合Windows 98的安装。改进方案就是在WinXP分区前面插入32GB的主分区,并将该分区激活。

98时,将改写MBR和活动主分区的PBR,并且会把启动文件(IO.SYS)写入第一个主分区。如果第一个主分区是NTFS格式的,那么安装程序会因为无法写入IO.SYS文件而失败。解决办法有两个:1、保证第一个主分区是FAT32格式;2、也可以插入一个FAT32分区格式的U盘,安装程序将把启动文件写入该U盘内。

最后需要提醒的是:因为Windows 98过于古老,因此并不是所有的电脑都能完美的支持它。在笔者的电脑上,Windows 98的显示就不正常,USB鼠标也无法正常使用。

安装完WinXPWin7Win8.1Win10之后,系统启动图一直如图5.8所示。虽然它可以很好的工作,但是每次进入Win7都要选择两次,是不是有些烦?能不能只选择一次,就进入相应的操作系统?

方法就是完全通过GRUB4DOS来管理启动。具体的操作上有两种方法:1、修改MBR2、修改PBR

电脑启动后,根据MBR的设置,将会在各个分区内查找文件grldr。其查找顺序为:活动的主分区,然后按顺序查找各个分区。

GRUB4DOS的启动文件grldr是可以更换名称的,单击上图的"安装/配置"按钮,将显示下图。可以在该界面内修改启动文件名称。

修改过程如下图所示。操作步骤为:

MBR)会载入活动主分区前12扇区的引导程序(所以第2步必不可少)。引导程序的前4个扇区被改写为GRUB4DOS引导程序,它会加载本分区内根目录下的grldr文件,继续完成系统的启动工作。

现在,启动路径图变成了下面这个样子:

11.2 修改启动菜单

GRUB4DOS的启动菜单,由grldr文件负责配置。这里,启动菜单分为内置和外置两种。

内置启动菜单在grldr文件内部,可使用BOOTICE软件打开grldr文件进行编辑。具体的操作步骤如下。

运行BOOTICE软件,单击下图的"启动编辑器"按钮

上图单击"打开文件"按钮,载入GRLDR文件。即可对其进行编辑。注意:如果含有汉字,请务必保存为UTF-8格式。

GRLDR文件的内容缺省如下所示:

它的含义是:查找文件menu.lst,并根据该文件内容显示启动菜单。所以,不用修改GRLDR。直接修改文件menu.lst,也可以达到编辑启动菜单的目的。

注意:如果含有汉字,请务必保存menu.lstUTF-8格式。

11.3 美化启动界面

GRUB4DOS的启动界面在默认情况下不能显示汉字,不能显示底图。为此,需要美化启动界面。这里介绍两种方法。

下面,最关键的语句就是gfxmenu /MESSAGE,它将根据文件MESSAGE显示图形界面。

单击上图中的"虚拟机中预览"或"模拟预览"按钮,可以不用重启电脑即可查看启动界面。

graphicsmode语句中的-1表示将显示模式切换为VBE模式;1024768表示屏幕分辨率。

说明:splashimage似乎只能从FAT32格式的分区里载入底图文件。如果分区格式是NTFS,则无法载入底图文件。

本章将介绍如何安装、配置32位的Ubuntu10.10

现在进入Windows XP操作系统,然后按如下步骤进行操作:

4、重启电脑,在启动菜单中选择"Install Ubuntu"。启动后,就进入了下图所示的Ubuntu界面。现在,即可尝试Ubuntu的大部分功能。

现在卸载ISO设备,否则会影响到后面的安装。

鼠标左键双击桌面上(图12.1)的"安装Ubuntu 10.10"图标,开始安装Ubuntu。首先要求选择语言。请选择"中文(简体)",然后单击"前进"按钮

接下来的设置界面如下,单击"前进"按钮。注意:请将电脑的网络断开,否则Ubuntu会联网下载文件,导致安装非常缓慢。

在"分配磁盘空间"界面,请选择"手动指定分区(高级)",然后单击"前进"按钮

这里给Ubuntu设置了两个分区,一个用于挂载/,另一个用于交换空间。其中交换空间是32Ubuntu64Ubuntu公用的。

选择要挂载/的分区,然后单击"更改"按钮。文件系统建议选择 Ext4,这里选择 Ext3 是为了便于 Ghost 备份分区(Ghost不认UbuntuExt4分区)。挂载点请选择/。单击"确定"按钮,完成这个分区的设置。

选择交换空间分区,然后单击"更改"按钮。交换空间分区将被挂载到/swap

设置好分区,请设置引导程序的安装位置。

1、一定不要把引导程序安装到硬盘上(/dev/sda),而是应该安装到挂载/的分区上。因为引导程序安装到硬盘上,将会把GRUB写入硬盘的MBR

2、引导程序可以写入逻辑分区,但是无法直接从逻辑分区启动操作系统。必须借助GRUB等工具才能完成启动工作。

接下来选择区域,直接单击"前进"按钮

接下来是键盘布局,直接单击"前进"按钮

接下来是配置用户名和密码

接下来是安装操作系统,这个耗时要多一些

安装完成后,单击"现在重启"按钮

笔者电脑的显卡为Quadro2000,其驱动安装程序是:

请以 Recover--Mode进入Ubuntu,然后运行显卡驱动安装程序。具体的命令如下:

至此,Ubuntu10.10被安装到一个独立分区了。可以通过修改menu.lst来实现GRUB4DOS启动它,命令如下所示:

对于计算机的系统时间,即BIOS里的时间。Windows认为它是本地时间,而Linux 认为它是UTC时间,如果时区选择+8:00,则这两个系统的时间将相差8小时。为了消除这种差别,需要进行设置

方法二、修改Linux

安装Ubuntu时,安装程序会检测都安装了哪些操作系统?然后将其它操作系统的启动也加入到了启动菜单。修改启动菜单的方法就是修改grub.cfg文件,其指令如下:

卷标就是硬盘分区的名称,Ubuntu里修改卷标的指令为:

}

  我一贯认为:对于一个技术类的东西,你连用都不会用,那根本就不可能会开发。就好像一个人连Linux不会用,那还谈何开发Linux程序呢?

也可以用板上已有的boottloader烧写,也可以适用H-JTAG用并口烧(这是最直接最快的)。


常用的U-boot命令详解

中的命令行模式模式下支持

“Tab”键的命令补全和命令的历史记录功能

。而且如果你输入的命令的前几个字符和别的命令不重复,那么你就只需要打这几个字符即可,比如我想看这个U-boot的版本号,命令就是“ version”,但是在所有的命令中没有其他任何一个的命令是由“v”开头的,所以只需要输入“v”即可。

    由于U-boot支持的命令实在太多,一个一个细讲不现实,也没有必要。所以下面我挑一些烧写和引导常用命令介绍一下,其他的命令大家就举一反三,或者“help”吧!

功能:查看当前U-boot版本中支持的所有命令。

如果你想获取某条命令的更详细的帮助,可以使用:


和shell类似,U-Boot也有环境变量。一些U-boot默认的环境变量如下:


执行自动启动(bootcmd中的命令)的等候秒数

传递给Linux内核的启动参数

TFTP服务器端的IP地址

标准输入设备,一般是串口

标准输出,一般是串口,也可是LCDVGA

标准出错,一般是串口,也可是LCDVGA

要看到你的板上的ENV值可使用printenv命令,例如我的板子:



      你会发现有些有的ENV我没有,还有一个“tekkaman”的ENV。原因是如果你没有设置这个环境变量就不会打印出,你也可以自己定义ENV,并在命令中使用${ENV}来调用它。同时你也可以删除这个ENV。设置ENV的命令是setenv,格式为:

第1个参数是环境变量的名称。

第2个参数是要设置的值,如果没有第2个参数,表示删除这个环境变量。

例如:我先将”tekkaman”参数删除,再设置,最后在一个命令串中调用。

当你设置了ENV,它只保存在内存中,如果你要它保存在存放ENV的固态存储器中,请使用:saveenv。

如果在启动的时候会看到U-boot打印出:“Warning - bad CRC, using default environment”,说明U-boot没有在存放ENV的固态存储器中找到有效的ENV,只好使用你在编译的时候定义的默认ENV。如果U-boot存放ENV的固态存储器的驱动是OK的,那么只要运行

功能:以不同的协议从串口获取文件.。
第2个参数是波特率,一般不填,用默认的115200.

C-kermit就开始传送,并且显示一个传送界面,并动态显示传送进度。

传送完毕后,输入c ,回到U-boot的串口界面。


    只要你的网卡驱动没问题,那么你就可以通过网络来传输文件到开发板,这可比串口快多了。你可以直接用交叉网线连接开发板和电脑,也可以用普通直连网线连接路由器,再连到电脑,不过记得配置好网络,关闭防火墙哦。
   先测试网络是否通了,现在开发板使用ping 命令,看看是否可以ping通电脑:

这样无法ping通的事,可能是:
1、U-boot网卡驱动有问题
2、U-boot网络协议延时配置有问题
3、网络参数配置问题,比如IP等,Host和Target都有可能有问题。Host最好关闭IPv6。
实在找不到原因,用Wireshark抓包看看。

我的路由器没有开rarp协议,所以rarpboot 无法使用,要使用dhcp或 bootp 也是要路由或Host支持的。


彻底擦除整块Nand Flash中的数据,包括OOB。可以擦除软件坏块标志。


上面是查看和修改内存值的指令,可以查看和修改SDRAM和寄存器值。

你可以试着修改LED相连的GPIO寄存器的数据寄存器值,可以控制LED的点亮!
先熄灭后点亮LED1的范例:(这个实验要结合芯片数据手册和mini2440的原理图来理解)

后面带有(RO)的说明这个Sector已经写保护了。


因为Nor Flash的读取接口和SDRAM是一样的,所以Nor Flash的读取也是使用md命令。范例如下:


第1 个参数on 代表使能写保护;off 代表解除写保护。
第2 、3 参数是指定Flash 写保护操作范围


注意:Nor Flash擦除的最小单位是Sector,也就是0x10000字节,如果你定义的大小不满1 Sector或超过Sector的边界,那么被定义到的Sector会被全部擦除。


显示已连接的USB存储设备

显示和设置当前USB存储设备

显示USB存储设备[dev]的分区信息

读取USB存储设备数据

在所有的命令使用前,必须先插入USB设备,然后使用:usb reset,以初始化USB控制器,获取设备信息。


SD卡的使用命令比较简单,只有初始化和设备信息的显示,读写是通过文件系统命令实现的。

使用和USB类似,在所有的命令使用前,必须先插入SD卡,然后使用:mmc init,以初始化MMC 控制器,获取设备信息。我在mini2440中插入1GB SD卡:


这些指令基本上要和U盘或者SD卡同时使用,主要用于读取这些移动存储器上的FAT32分区。




(13)设置和读取RTC指令

CC:年份的前两个数字

YY:年份的后两个数字




使用U-boot将映像文件烧写到板上的Flash,一般步骤是:
(1)通过网络、串口、U盘、SD卡等方式将文件传输到SDRAM;

如果使用 SD卡和U盘形式更新U-boot,那么首先SD卡和U盘中必须有FAT32文件系统,并在里面存放了u-boot.bin 文件。

(2)通过网络、串口、U盘、SD卡等方式将处理过的内核映像传输到SDRAM的一定位置(一般使用0x)
(3)然后使用”bootm"等内核引导命令来启动内核。

因为在用bootm命令引导内核的时候,bootm需要读取一个64字节的文件头,来获取这个内核映象所针对的CPU体系结构、OS、加载到内存中的位置、在内存中入口点的位置以及映象名等等信息。这样bootm才能为OS设置好启动环境,并跳入内核映象的入口点。而mkimage就是添加这个文件头的专用工具。具体的实现请看U-bootbootm的源码和mkimage的源码。

-C指定映象压缩方式,可用值有:

none 不压缩(一般使用这个,因为zImage是已经被bzip2压缩过的自解压内核)

-a指定映象在内存中的加载地址,映象下载到内存中时,要按照用mkimage制作映象时,这个参数所指定的地址值来下载

-e 指定映象运行的入口点地址,这个地址就是-a参数指定的值加上0x40(因为前面有个mkimage添加的0x40个字节的头)

-d指定制作映象的源文件

以下是制作内核映像的命令示例:

首先SD卡中必须有FAT32文件系统,并在里面存放了处理过的内核映像文件。

   首先要将处理过的内核映像文件烧入Nand Flash的一定位置(由内核分区表决定)。以后每次启动时用Nand Flash的读取命令先将这个内核映像文件读到内存的一定位置(由制作内核映像时的-a参数决定),再使用bootm命令引导内核。


}

  我一贯认为:对于一个技术类的东西,你连用都不会用,那根本就不可能会开发。就好像一个人连Linux不会用,那还谈何开发Linux程序呢?

也可以用板上已有的boottloader烧写,也可以适用H-JTAG用并口烧(这是最直接最快的)。


常用的U-boot命令详解

中的命令行模式模式下支持

“Tab”键的命令补全和命令的历史记录功能

。而且如果你输入的命令的前几个字符和别的命令不重复,那么你就只需要打这几个字符即可,比如我想看这个U-boot的版本号,命令就是“ version”,但是在所有的命令中没有其他任何一个的命令是由“v”开头的,所以只需要输入“v”即可。

    由于U-boot支持的命令实在太多,一个一个细讲不现实,也没有必要。所以下面我挑一些烧写和引导常用命令介绍一下,其他的命令大家就举一反三,或者“help”吧!

功能:查看当前U-boot版本中支持的所有命令。

如果你想获取某条命令的更详细的帮助,可以使用:


和shell类似,U-Boot也有环境变量。一些U-boot默认的环境变量如下:


执行自动启动(bootcmd中的命令)的等候秒数

传递给Linux内核的启动参数

TFTP服务器端的IP地址

标准输入设备,一般是串口

标准输出,一般是串口,也可是LCDVGA

标准出错,一般是串口,也可是LCDVGA

要看到你的板上的ENV值可使用printenv命令,例如我的板子:



      你会发现有些有的ENV我没有,还有一个“tekkaman”的ENV。原因是如果你没有设置这个环境变量就不会打印出,你也可以自己定义ENV,并在命令中使用${ENV}来调用它。同时你也可以删除这个ENV。设置ENV的命令是setenv,格式为:

第1个参数是环境变量的名称。

第2个参数是要设置的值,如果没有第2个参数,表示删除这个环境变量。

例如:我先将”tekkaman”参数删除,再设置,最后在一个命令串中调用。

当你设置了ENV,它只保存在内存中,如果你要它保存在存放ENV的固态存储器中,请使用:saveenv。

如果在启动的时候会看到U-boot打印出:“Warning - bad CRC, using default environment”,说明U-boot没有在存放ENV的固态存储器中找到有效的ENV,只好使用你在编译的时候定义的默认ENV。如果U-boot存放ENV的固态存储器的驱动是OK的,那么只要运行

功能:以不同的协议从串口获取文件.。
第2个参数是波特率,一般不填,用默认的115200.

C-kermit就开始传送,并且显示一个传送界面,并动态显示传送进度。

传送完毕后,输入c ,回到U-boot的串口界面。


    只要你的网卡驱动没问题,那么你就可以通过网络来传输文件到开发板,这可比串口快多了。你可以直接用交叉网线连接开发板和电脑,也可以用普通直连网线连接路由器,再连到电脑,不过记得配置好网络,关闭防火墙哦。
   先测试网络是否通了,现在开发板使用ping 命令,看看是否可以ping通电脑:

这样无法ping通的事,可能是:
1、U-boot网卡驱动有问题
2、U-boot网络协议延时配置有问题
3、网络参数配置问题,比如IP等,Host和Target都有可能有问题。Host最好关闭IPv6。
实在找不到原因,用Wireshark抓包看看。

我的路由器没有开rarp协议,所以rarpboot 无法使用,要使用dhcp或 bootp 也是要路由或Host支持的。


彻底擦除整块Nand Flash中的数据,包括OOB。可以擦除软件坏块标志。


上面是查看和修改内存值的指令,可以查看和修改SDRAM和寄存器值。

你可以试着修改LED相连的GPIO寄存器的数据寄存器值,可以控制LED的点亮!
先熄灭后点亮LED1的范例:(这个实验要结合芯片数据手册和mini2440的原理图来理解)

后面带有(RO)的说明这个Sector已经写保护了。


因为Nor Flash的读取接口和SDRAM是一样的,所以Nor Flash的读取也是使用md命令。范例如下:


第1 个参数on 代表使能写保护;off 代表解除写保护。
第2 、3 参数是指定Flash 写保护操作范围


注意:Nor Flash擦除的最小单位是Sector,也就是0x10000字节,如果你定义的大小不满1 Sector或超过Sector的边界,那么被定义到的Sector会被全部擦除。


显示已连接的USB存储设备

显示和设置当前USB存储设备

显示USB存储设备[dev]的分区信息

读取USB存储设备数据

在所有的命令使用前,必须先插入USB设备,然后使用:usb reset,以初始化USB控制器,获取设备信息。


SD卡的使用命令比较简单,只有初始化和设备信息的显示,读写是通过文件系统命令实现的。

使用和USB类似,在所有的命令使用前,必须先插入SD卡,然后使用:mmc init,以初始化MMC 控制器,获取设备信息。我在mini2440中插入1GB SD卡:


这些指令基本上要和U盘或者SD卡同时使用,主要用于读取这些移动存储器上的FAT32分区。




(13)设置和读取RTC指令

CC:年份的前两个数字

YY:年份的后两个数字




使用U-boot将映像文件烧写到板上的Flash,一般步骤是:
(1)通过网络、串口、U盘、SD卡等方式将文件传输到SDRAM;

如果使用 SD卡和U盘形式更新U-boot,那么首先SD卡和U盘中必须有FAT32文件系统,并在里面存放了u-boot.bin 文件。

(2)通过网络、串口、U盘、SD卡等方式将处理过的内核映像传输到SDRAM的一定位置(一般使用0x)
(3)然后使用”bootm"等内核引导命令来启动内核。

因为在用bootm命令引导内核的时候,bootm需要读取一个64字节的文件头,来获取这个内核映象所针对的CPU体系结构、OS、加载到内存中的位置、在内存中入口点的位置以及映象名等等信息。这样bootm才能为OS设置好启动环境,并跳入内核映象的入口点。而mkimage就是添加这个文件头的专用工具。具体的实现请看U-bootbootm的源码和mkimage的源码。

-C指定映象压缩方式,可用值有:

none 不压缩(一般使用这个,因为zImage是已经被bzip2压缩过的自解压内核)

-a指定映象在内存中的加载地址,映象下载到内存中时,要按照用mkimage制作映象时,这个参数所指定的地址值来下载

-e 指定映象运行的入口点地址,这个地址就是-a参数指定的值加上0x40(因为前面有个mkimage添加的0x40个字节的头)

-d指定制作映象的源文件

以下是制作内核映像的命令示例:

首先SD卡中必须有FAT32文件系统,并在里面存放了处理过的内核映像文件。

   首先要将处理过的内核映像文件烧入Nand Flash的一定位置(由内核分区表决定)。以后每次启动时用Nand Flash的读取命令先将这个内核映像文件读到内存的一定位置(由制作内核映像时的-a参数决定),再使用bootm命令引导内核。


}

我要回帖

更多关于 js timeout 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信