1.终端模拟器禁止安装软件命令
2.Linux9.01 ä¸è½è¯å« SATA 硬ç
3.用 BusyBox 构建根文件系统
终端模拟器禁止安装软件命令
free
1.作用
free命令用来显示内存的使用情况,使用权限是所有用户。
2.格式
free[-b|-k|-m][-o][-sdelay][-t][-V]
3.主要参数
-b-k-m:分别以字节(KB、MB)为单位显示内存使用情况。
-sdelay:显示每隔多少秒数来显示一次内存使用情况。
-t:显示内存总和列。api提供接口服务源码
-o:不显示缓冲区调节列。
4.应用实例
free命令是用来查看内存使用情况的主要命令。和top命令相比,它的优点是使用简单,并且只占用很少的系统资源。通过-S参数可以使用free命令不间断地监视有多少内存在使用,这样可以把它当作一个方便实时监控器。
#free-b-s5
使用这个命令后终端会连续不断地报告内存使用情况(以字节为单位),每5秒更新一次。
Android系统在超级终端下必会的命令大全(一)
busybox
BusyBox是标准Linux工具的一个单个可执行实现。BusyBox包含了一些简单的工具,例如cat和echo,还包含了一些更大、更复杂的工具,例如grep、gotv源码成吉思汗find、mount以及telnet。有些人将BusyBox称为Linux工具里的瑞士军刀.简单的说BusyBox就好像是个大工具箱,它集成压缩了Linux的许多工具和命令。
1、BusyBox的诞生
BusyBox最初是由BrucePerens在年为DebianGNU/Linux安装盘编写的。其目标是在一张软盘上创建一个可引导的GNU/Linux系统,这可以用作安装盘和急救盘。
2、busybox的用法
可以这样用busybox
#busyboxls
他的功能就相当运行ls命令
最常用的用法是建立指向busybox的链接,不同的链接名完成不同的功能.
#ln-sbusyboxls
#ln-sbusyboxrm
#ln-sbusyboxmkdir
然后分别运行这三个链接:
#./ls
#./rm
#./mkdir
就可以分别完成了lsrm和mkdir命令的功能.虽然他们都指向同一个可执行程序busybox,但是只要链接名不同,完成的功能就不同,很多linux网站都提供busybox的源代码下载。。
3、配置busybox
busybox的配置程序和linux内核菜单配置方式简直一模一样.熟悉用makemenuconfig方式配置linux内核的朋友很容易上手.
#cpbusybox-1..tar.gz/babylinux
#cd/babylinux
#tarxvfzbusybox-1..tar.gz
#cdbusybox-1.
#makemenuconfig
下面是需要编译进busybox的功能选项。
GeneralConfiguration应该选的选项
Showverboseappletusagemessages
RuntimeSUID/SGIDconfigurationvia/etc/busybox.conf
BuildOptions
BuildBusyBoxasastaticbinary(nosharedlibs)
这个选项是一定要选择的,这样才能把busybox编译成静态链接的可执行文件,运行时才独立于其他函数库.否则必需要其他库文件才能运行,在单一个linux内核不能使它正常工作.
InstallationOptions
Don’tuse/usr
这个选项也一定要选,否则makeinstall后busybox将安装在原系统的/usr下,这将覆盖掉系统原有的命令.选择这个选项后,makeinstall后会在busybox目录下生成一个叫_install的目录,里面有busybox和指向它的链接.
其它选项都是一些linux基本命令选项,自己需要哪些命令就编译进去,一般用默认的就可以了,配置好后退出并保存。
保存。
4、编译并安装busybox
#make
#makeinstall
编译好后在busybox目录下生成子目录_install,reactnative源码单步里面的内容:
drwxr-xr-x2rootroot月:bin
rwxrwxrwx1rootroot月:linuxrc->bin/busybox
drwxr-xr-x2rootroot月:sbin
其中可执行文件busybox在bin目录下,其他的都是指向他的符号链接.
Android系统在超级终端下必会的命令大全(二)一、安装和登录命令
reboot1.作用
reboot命令的作用是重新启动计算机,它的使用权限是系统管理者。
2.格式
reboot[-n][-w][-d][-f][-i]
3.主要参数
-n:在重开机前不做将记忆体资料写回硬盘的动作。
-w:并不会真的重开机,只是把记录写到/var/log/wtmp文件里。
-d:不把记录写到/var/log/wtmp文件里(-n这个参数包含了-d)。
-i:在重开机之前先把所有与网络相关的装置停止。
mount
1.作用
mount命令的作用是加载文件系统,它的用权限是超级用户或/etc/fstab中允许的使用者。
2.格式
mount-a[-fv][-tvfstype][-n][-rw][-F]devicedir
3.主要参数
-h:显示辅助信息。
-v:显示信息,通常和-f用来除错。
-a:将/etc/fstab中定义的所有文件系统挂上。
-F:这个命令通常和-a一起使用,它会为每一个mount的动作产生一个行程负责执行。在系统需要挂上大量NFS文件系统时可以加快加载的速度。
-f:通常用于除错。它会使mount不执行实际挂上的动作,而是模拟整个挂上的过程,通常会和-v一起使用。转盘平台源码
-tvfstype:显示被加载文件系统的类型。
-n:一般而言,mount挂上后会在/etc/mtab中写入一笔资料,在系统中没有可写入文件系统的情况下,可以用这个选项取消这个动作。
4.应用技巧
在Linux和Unix系统上,所有文件都是作为一个大型树(以/为根)的一部分访问的。要访问CD-ROM上的文件,需要将CD-ROM设备挂装在文件树中的某个挂装点。如果发行版安装了自动挂装包,那么这个步骤可自动进行。在Linux中,如果要使用硬盘、光驱等储存设备,就得先将它加载,当储存设备挂上了之后,就可以把它当成一个目录来访问。挂上一个设备使用mount命令。在使用mount这个指令时,至少要先知道下列三种信息:要加载对象的掌上论坛源码文件系统类型、要加载对象的设备名称及要将设备加载到哪个目录下。
(1)Linux可以识别的文件系统
◆Windows/常用的FAT文件系统:vfat;
◆WinNT/的文件系统:ntfs;
◆OS/2用的文件系统:hpfs;
◆Linux用的文件系统:ext2、ext3;
◆CD-ROM光盘用的文件系统:iso。
虽然vfat是指FAT系统,但事实上它也兼容FAT的文件系统类型。
(2)确定设备的名称
在Linux中,设备名称通常都存在/dev里。这些设备名称的命名都是有规则的,可以用“推理”的方式把设备名称找出来。例如,/dev/hda1这个
IDE设备,hd是HardDisk(硬盘)的,sd是SCSIDevice,fd是FloppyDevice(或是Floppy
Disk?)。a代表第一个设备,通常IDE接口可以接上4个IDE设备(比如4块硬盘)。所以要识别IDE硬盘的方法分别就是hda、hdb、hdc、
hdd。hda1中的“1”代表hda的第一个硬盘分区
(partition),hda2代表hda的第二主分区,第一个逻辑分区从hda5开始,依此类推。此外,可以直接检查/var/log/messages文件,在该文件中可以找到计算机开机后系统已辨认出来的设备代号。
(3)查找挂接点
在决定将设备挂接之前,先要查看一下计算机是不是有个/mnt的空目录,该目录就是专门用来当作挂载点(MountPoint)的目录。建议在/mnt里建几个/mnt/cdrom、/mnt/floppy、/mnt/mo等目录,当作目录的专用挂载点。举例而言,如要挂载下列5个设备,其执行指令可能如下(假设都是Linux的ext2系统,如果是WindowsXX请将ext2改成vfat):
软盘===>mount-text2/dev/fd0/mnt/floppy
cdrom===>mount-tiso/dev/hdc/mnt/cdrom
SCSIcdrom===>mount-tiso/dev/sdb/mnt/scdrom
SCSIcdr===>mount-tiso/dev/sdc/mnt/scdr
不过目前大多数较新的Linux发行版本(包括红旗Linux、中软Linux、MandrakeLinux等)都可以自动挂装文件系统,但RedHatLinux除外。
Linux9. ä¸è½è¯å« SATA 硬ç
è¿æ¯æ¥èª IBM developerworks çä¸ä¸ªé常好çæç« å¯ä»¥æ¸ æ¥å°è§£éå¦ä½å¯å¨ç«çº¿åUSBè®¾å¤ Linuxæä½ç³»ç»çåçã
å¸æå®å¨å¯¹ä»»ä½æå ´è¶£æLinuxæä½ç³»ç»å®è£ å°å¤é¨è®¾å¤ç人ææ帮å©ã
åå§çç½å/developerwor...l-fireboot.html
ä»ç«çº¿è®¾å¤ä¸å¯å¨Linux
å¯ç§»å¨é©±å¨å¨ä¸å®è£ Linuxæä½ç³»ç»
é¾åº¦ç级ï¼ä¸ç
Martyn Honeyford(martynh@uk.ibm.com) IBMè±å½å®éªå®¤ 软件工ç¨å¸
宣å¯è¾¾(austin.dada@gmail.com)ç¿»è¯ webzi@linuxsir
å¹´7ææ¥
å¹´7ææ¥å¼å§ç¿»è¯ï¼7ææ¥å®æã
ç¿»è¯ç»éªä¸å¤ãå¦æä¸å¦¥ï¼æ¬¢è¿EMAIL交æµã
使ç¨ä¸ä¸ªå¤é¨é©±å¨å¨æ¯ä¸ä¸ªææ£çæ¹æ³ï¼è½ç»ä½ çè硬件带æ¥æ°çåè®©ä½ å¨ä½ ä¸è½ï¼æè ä¸æ³ï¼æ¹åå 置硬çç计ç®æºä¸ä½¿ç¨Linuxç³»ç»ã
åè®¾ä½ æ³ä½¿ç¨Linuxå¨ä¸ä¸ªåå¯å¨ç¯å¢,ä½æ¯ä½ ç计ç®æºç¡¬çå没æä»»ä½ç©ºä½ç空é´ãä¸ç§è§£å³æ¹æ³æ¯ä½¿ç¨"live"çlinuxåè¡çæ¬è±¡æ¯Knoppixï¼ä»ä»¬è¿è½ç´æ¥ä»CDå¯å¨è¿è¡ã 对äºå¶å°ä½¿ç¨ï¼è¿æ¯ä¸ç§å¯è¡çåæ³ï¼ä½æ¯å®æè¥å¹²çå£å¿:
*ä½ å°ä¼ä»ç¶éè¦äºåºå®æ件åå¨ãå¦æä½ åªæ¯æä½å°éçæ件,ä¸å¼ 1.MBçç£çå°±å¯ä»¥èä»»ï¼æè ä¸ä¸ªUSBéªåæ£éåä¸çéçæ件ï¼ä½æ¯è¿äºé½ä¸å¤çæ³ã
*å½ä½¿ç¨ä¸ä¸ªLiveCD çæ¶åï¼æå°é¾ãæç³ç³ãæä¸å¯è½çæ¯å®è£ ä½ èªå·±çåºç¨ç¨åºæè å®å¶ç°åçç¨åºã
*使ç¨LiveCDå¨æ§è½ä¸ççºç²ï¼å¨å¯å¨åææç设å¤æ£æµæ¶å°¤ä¸ºææ¾ï¼åæ ·åç使ç¨ä¸ï¼ææçæä»¶ä» CD è½½å ¥é常æ¯æ¯ä»ç¡¬çä¸è½½å ¥æ ¢çå¤)ã
çç¡®ï¼è¿æå ¶ä»å¯éæ¹æ¡ã举ä¾æ¥è¯´ï¼ä½ å¯ä»¥ä¹°é¢å¤çå 置驱å¨å¨å¹¶ä¸å¨æ¤å®è£ Linuxæä½ç³»ç»ãä½æ¯å¸¸å¸¸ï¼ä½ å¯è½æ²¡æä»»ä½ç©ºé²çæ©å±éãï¼è¿ç¹å«å®¹æåçå¨ç¬è®°æ¬ä¸ï¼é常ä»ä»¬åªå 许ä¸ä¸ªå 置硬çãï¼
æè ,ä½ å¯ä»¥ä½¿ç¨ä¸ä¸ªè¾å¤§ç硬çå代å½åç硬ç, è·å¾é¢å¤ç©ºé´ç¨äºå®è£ Linuxæä½ç³»ç»ã ç¶è,è¿çç¡®æ¯ä¸ä¸ªè费大éæ¶é´çæ¹æ¡,éè¦ä½ éæ°å®è£ ç°æçæä½ç³»ç»å¨æ°ç硬ç, éæ°å®è£ åé ç½®ä½ ææåºç¨ç¨åº, åæ¢å¤æææ°æ®ã
æ´å¥½ç解å³æ¹æ¡æ¯è´ä¹°ä¸ä¸ªå¤ç½®ç¡¬ç并å®è£ Linuxæä½ç³»ç»ã è¿æ ·ä½¿å¾ä½ å¨æ³ä½¿ç¨Linuxç³»ç»æ¶åä¸å¿ æ¶åç°æç硬件å软件èåªæ¯ç®åè¿æ¥å¤é¨é©±å¨å¨ã
å¯éçå¯ç§»å¨è®¾å¤
å¯ç¨äºå®è£ Linuxæä½ç³»ç»è®¾å¤æ¶µçç£ç驱å¨å¨ãUSB-éªå设å¤ãéè¿USB/ç«çº¿è¿æ¥ç硬çççã
å¨ä¸ä¸ªå°å®¹éç设å¤ä¸å®è£ linuxæ¯å¯è¡çï¼ä¾å¦å¨ä¸ä¸ª1.MBçç£çæè ä¸ä¸ªMBçUSBæ£ä¸ï¼ä»ä»¬é常ï¼å¿ é¡»ï¼ä¸ºç¹å®ç®çå®å¶ï¼éç¨è£åçåè¡çæ¬ï¼ä¾å¦ï¼æ¯æä¸æçå®è£ è¿ç¨ã
å¤ç½®ç硬çå¨ä¸ºä½¿ç¨ä¸ä¸ªå¸¸è§ç®ççlinuxç³»ç»æä¾æ大ççµæ´»æ§åæ¶ï¼å¸¦æ¥ä¸ä¸ªåççææ¬ã
许å¤ä¸åçååæä¾è®¸å¤ç§ä¸å容éçå¤ç½®ç驱å¨å¨ã (Maxtor, 西西é¨æ°æ®, çç)ãè¿äºé©±å¨å¨è¿ä¼å å«ä¸ä¸ªå¤ç½®çå,ç¨äºåºå®æ åç 3-1/2 寸æ 2-1/2 寸 IDE 硬çã ç¶åè¿äºé©±å¨å¨ç»ç± USB æ IEEE(ç«çº¿) è¿æ¥å°è®¡ç®æºã
USB åå°å¨äºä¸ªä¸»è¦ççæ¬ä¸çå½±å,1.1 å 2.0. 1.1 çé度为 Mbit/ s(æ¯ç§1Mbit) ,è 2.0 çæ¯ææé«è¾¾å° Mbit/s çä¼ è¾é度ã 大å¤æ°2.0ç¸å®¹ç驱å¨å¨ä¹ååå ¼å®¹1.1ï¼é常建议尽éä¸è¦éç¨1.1æ¥å£é¤é没æå ¶ä»çéæ©ï¼å ä¸ºå ¶ä½éä¸éåºæ¤ç¯å¢ãï¼
ç«çº¿æ åä¹å®ä¹è¥å¹²ä¸åçé度, å®é ä¸ï¼å¤§é¨å人ææçFireWire ï¼æ¯âFireWireâæ å ,æ¯ææå¤§ä¼ è¾é度为 Mbit/s ã
USB2.0åç«çº¿å¨é度ä¸ä¸å伯仲: è½ç¶ USB 2.0 ææ¯è¾é«çä¼ è¾é度, ä½æ¯å®é ä¸å 为åè®®çä¸å两è é度ååçæ¥è¿ã å¦æä½ ç计ç®æºæ¥æ2ç§æ¥å£, æ好使ç¨USBèéç«çº¿(çç±æå°åå°è§£é), ä½æ¯å¦æåªæç«çº¿æ¥å£,å½ç¶ä½ å°±éæ©å®äºã为äºå®ç°æ大ççµæ´»æ§, å¯ä»¥éæ©ä¼å¤åæ¶æ¯æ USB 2.0 åç«çº¿ç驱å¨å¨ä¸çä¸ç§ãï¼åæç¨åå°å¨è¿ä¸ä¸ªæç« ä¸ä½¿ç¨çé£ä¸ªä¸æ ·ã)
对äºé£äºæ²¡æå¿ é¡»çæ¥å£ï¼ PCI(对äºæ¡é¢) å PCMCIA(对äºç¬è®°æ¬åçµè) ï¼ç°å¨ç«çº¿åUSB 2.0æ©å±å¡ä¹å¹¶éè´µä¸å¯å: 举ä¾æ¥è¯´ï¼ æç¨åå°å¨æç« ä¸æåPCMCIAç«çº¿æ©å±å¡å¤§çº¦ä¸ºè±é.($ ç¾å 以ä¸)
为äºè¾¾å°æ¬æçç®çï¼æå·²ç»è´ä¹° 5-1/4寸å¤ç½®é©±å¨å¨ç硬ççã è¿æ¯ä¸ä»¶é常çµæ´»ç硬çç,并没æä¾é©±å¨å¨èä¸è½åºå®ä»»ä½çæ å IDE 设å¤,å æ¬ 3-1/2 寸驱å¨å¨ååCD-RW/DVD-RWç5-1/4 寸 IDE è®¾å¤ ã硬ççå ¼æ USB 2.0 åç«çº¿æ¥å£ã
为äºæ硬ççè¿æ¥å°æçIBM Thinkpad Tç¬è®°æ¬çµèï¼æä¹è´ä¹°äºä¸ä¸ª PCMCIA ç«çº¿è½¬æ¥å¡ã ( å 为å ç½®çUSB æ¥å£åªæ¯æUSB 1.1)
硬ççåç«çº¿è½¬æ¥å¡ç¸å¯¹æ¯è¾ä¾¿å®ã (大约åå«ä¸ºè±éåè±éã)
æµè¯æé´, ææä¸ä¸ªæè¾¹é²ç½®ç GB 3-1/2 寸 IDE 硬çæ¾è¿ç¡¬ççââ对äºçå®æ åµï¼æä¼ä¹°ä¸ä¸ªè¾å¤§ç容é驱å¨å¨, ç°å¨å¦è´ä¸ä¸ªç¡¬çç¸å½ä½å»( 大约æ¯ä¸ªè±é!)
Linux æ¯æ
æ£å¦ä½ ææå¾ ï¼linux对è¿äºç¡¬ççæ¯æçç¡®é常好ãä»»ä½éµä»SBPï¼ä¸²è¡æ»çº¿åè®®ï¼æ åç大å¨å设å¤å¨linuxä¸ä½¿ç¨é常ç®åã
大ä½ä¸, 使对è¿äºè£ ç½®çæ¯æä½ è½å¤å°ä¼éè¦å¨ä½ çæ ¸å¿ä¸æ¯ææäºé项( æç´æ¥å°ç¼è¯æéè¿æ¨¡åã)
对äºUSBåç«çº¿ï¼SBP è£ ç½®éè¿SCSI模ææ¥å®ç°-- ä¹å°±æ¯è¯´ï¼Linuxä¼æä»ä»¬å½ä½SCSI硬çæ¥å¤ç ã è¿æ¯å¨ Linux ä¸çéé¢ä½¿ç¨åå¨è®¾å¤çä¸ä¸ªå¸¸è§æ¹æ³ã ( 举ä¾æ¥è¯´ï¼ IDE CD/DVD设å¤é常éè¿SCSI模ææ¥è¿æ¥)ãåºäºä»¥ä¸åå ,ä¸åçé项éè¦è¢«å æ ¸æ¯æ:
* SCSI support
* SCSI emulation
* SCSI disk support
é¤æ¤ä¹å¤ï¼ä¸åè¿æ¥æ¹å¼éè¦ä¸ä¸çå æ ¸æ¯æ:
* é对ç«çº¿:
* IEEE support
* OHCI support
* RAW support
* SBP-2 support
* é对USB:
*(host-side) USB support
* OHCI support
* UHCI support
* USB mass-storage support
ææ¾å°ï¼ä½ è¿å¿ é¡»ä¸ºå ¶ä»ç硬件 ( å¦æ¾å¡çç)ç¼è¯å¸¸è§çæ¯æ, èä¸å¯è½éè¦ä¸äºé¢å¤ç模å,åå³ä½ çå ·ä½ç¡¬ä»¶ã
举ä¾æ¥è¯´ï¼ææ£å¨ä½¿ç¨ PCMCIA(cardbus) ç«çº¿è½¬æ¥å¡ï¼å æ¤ï¼æè¿éè¦å¢å :
* PCMCIA support
* cardbus support
å®è£
ç°å¨æ们æå¾å®ç¾å¤ç½®é©±å¨å¨,æ们å°å¼å§å®è£ å¨å ¶å®è£ Linuxç¾å¦ä¹æ ã
ç®åæç®åçå®è£ linuxæ¹æ³(å½ç¶ä» 个人æè§) , æ¯è¿æ¥ä½ çææ硬件;(æçæ åµæ¯ï¼æå ¥ç«çº¿è½¬æ¥å¡ï¼è¿ä¸è½¬æ¥çº¿ç驱å¨å¨ï¼ç¶åæå¼é©±å¨å¨ççµæº) ç¶åä»ä½ éæ©çåè¡çå®è£ CDä¸å¯å¨ä½ ç计ç®æºã
æéç¨çåè¡çæ¯Gentooï¼èµæºè¯¦è§é¾æ¥ï¼ï¼å æ¤ï¼æç¨äºææ°ç âéç¨âx LiveCDã (.1) å ¶ä»çåè¡çæ¬å¿ é¡»çæ¥éª¤å¤§è´åæ¤ç¸ä¼¼ã
ä¸æ¦ä½ 使ç¨å®è£ CDå¯å¨,è¦èç±ä¸ç¹è¿æ°è®©ä»è¦è¾¨è®¤åºä½ ç驱å¨å¨ã ç£çåºè¯¥åºç°å¨/dev/sdX, X æ¯ä¸ä¸ªå°ååæ¯ä»âaâå¼å§ã å¨æçç³»ç»ä¸ï¼å¤ç½®ç¡¬ç被å½å /dev/sda, ä½æ¯å¦æä½ æå ¶ä»ç SCSI硬çï¼è¿æ°åå°ä¼æ¹å;( æ模æäºSCSI硬ç) é£ç§æ åµä¸ï¼å®å¯è½æ¯ /dev/sdb æä¸äºå ¶ä»çåæ¯ã å¦æä½ ç驱å¨å¨ä¸è½è¢«èªå¨æ£æµå°, å°±éè¦è¿ä¸æ¥éåæªæ½ -- 举ä¾æ¥è¯´ï¼ä½ å¯è½å¿ é¡»æå¼å¯å¨é项使ç¨ç«çº¿æè PCMCIAæ¥å£, æä½ å¯è½å¿ é¡»æå¨è£ è½½ä¸äºå æ ¸æ¨¡å , æå ¶ä»ä¸ç±»é项ã (èµæºè¯¦è§æ éåç°ä¸ç»´ä¿®æ导é¾æ¥)
ä¸æ¦é©±å¨å¨è¢«è¾¨è®¤åºæ¥ï¼å®è£ è¿ç¨ç§å ¶è¿ä½èµ·æ¥å°±åä¸ä¸ªå ç½®ç硬çãç¶åå°±ä½ å¯ä»¥å¯¹å ¶ååºå¹¶ä¸ç¨å¸¸è§æ¹æ³å®è£ linuxã
æä¸å¥è¯æçéè¦æéï¼å°å¿éæ©ä½å¤å®è£ boot loaderï¼é常æ¯GRUBåLILOï¼ï¼ï¼æ建议ä¸è¦è£ å°ä¸»å¼å¯¼è®°å½(MBR)ä¸( é常æ¯é»è®¤å¼) èæ¯è£ å°å¤ç½®é©±å¨å¨çæ ¹ååº ( æ/bootååº,å¦æä½ åç¬åäºä¸ä¸ªè¯)ã
æ¢ç¶æ们已ç»å®è£ Linux å¨è¿ä¸ªè®¾å¤ä¸,æ们æ³è¦ä»ä¸é¢å¯å¨å®ã äºæ å°æ¤å¼å§åçæç¹å¤æäºã
å¯å¨
å¨æå讨论å¨å¦ä½çæ°é©±å¨å¨ä¸é¢å¯å¨,æè¦è®²è§£ä¸äºboot loaderçå°ç¥è¯ã
boot loaderç¨åºé常å®è£ å¨è®¡ç®æºç第ä¸ä¸ªç¡¬ççMBRä¸ã å½boot loader被è°ç¨ (BIOSèªå¨å°è¿è¡MBRéç代ç ),å®é常æ¾ç¤ºä¸ä»½å¯å¯å¨æä½ç³»ç»çèåã以便éæ©ä¸ä¸ªç»å®çæä½ç³»ç»å¯å¨è®¡ç®æºã
两件ç»èå¨è¿ä¸ªç« èä¸åºè¯¥æ³¨æ:
* æä½ç³»ç»éæ©èåï¼é常ï¼ä»ç£çä¸è½½å ¥ã
*为äºå¯å¨æå ³çæä½ç³»ç», boot loader éè¦ä»ç£çä¸è¯»åç¸å ³çå æ ¸ã
å¨æä½ç³»ç»è¢«è£ è½½ä¹å ,以ä¸åæ¥éª¤å·²ç»æ§è¡,è¿æå³çææçç£ç读åå¨BIOSè°ç¨æ¶ã è¿æ¯ä¸ä¸ªå¿ é¡»çåæï¼å³,为äºç´æ¥å¯å¨ç£ç,ä½ ç BIOSå¿ é¡»æ¯æéè¿ç«çº¿æUSB被è¿æ¥çç£çãé常è½å¨BIOSä¸çå°å ³äºä»è¿äºè®¾å¤ä¸å¯å¨é项ã ç«çº¿BIOSæ¯æç°å¨çç¡®é常çå°è§ï¼ä½æ¯ USB æ¯ææ£å¨åå¾ç¸å½ç平常ã å æ¤ï¼å¦æä½ æ£å¨ä½¿ç¨ä¸é¨ç¸å¯¹æ¯è¾æ°ç计ç®æºä¸çUSBæ¥å£,åºè¯¥å¯ä»¥ç´æ¥å¯å¨é©±å¨å¨è¿Linuxã
å½ç»ç± USB è¿æ¥ï¼å¨å®è£ å¤é¨ç驱å¨å¨ç MBR çå¹¼è«ä¹åï¼æè½å¤ç´æ¥å°å¯å¨å®ã å½ä»¥è¢«è¿æ¥çç£ççå¯å¨çæ¶åï¼åªæ¯è¿å ¥ BIOS è£ å¤å ¬ç¨ç¨åºã å¤é¨çç£ççå°ä¼åºç°å¦ä¸ä¸ªä¸è¬ç硬ç: 移å¨å®ï¼å¦æ¤å®å¨å¯å¨æ¬¡åºä¸çå å¨é©±å¨å¨ä¹åã
æä¹è½å¤å¨ä¸ä¸ªå ç½®ç硬ççMBRä¸å®è£ ä¸ä¸ªboot loaderèä¸ä½¿ç¨å ¶å¯å¨USB硬ç(å¨GRUBä¸è¢«æ为hd1)ã å¦æä½ æ£å¨ä½¿ç¨ç«çº¿, æå¯è½ä½ ç BIOS å°ä¼æ æ³ç´æ¥å°å¯å¨ç¡¬çï¼èä¸ä½ éè¦æ´å¤ä¸ç¹æ¥éª¤ã
幸è¿çæ¯ï¼ç±äº Linux çå¤æ ·æ§ï¼è¿æé常容æ解å³ï¼å¦æä½ ä¸è½ç´æ¥å°å¯å¨ï¼( æå°±æ¯è¿æ ·çæ åµï¼ä½¿ç¨ä¸ä¸ªPCMCIA转æ¥å¡!) ä½ è½è¿è¡åå§å¯å¨æ¥éª¤ï¼æ¥èªä¸ä¸ªæ¯æçè®¾å¤ , åæ¯ä¸å°è½¯é©±ï¼CD-ROMï¼USBæ£,æå¨ä¸»ç¡¬çä¸çå°ååº, ç¶å使ç¨å¤é¨ç驱å¨å¨ç»§ç»å ¶ä»æ¥éª¤ã
å建ä¸ä¸ªå¯å¨éå
æ们æ2ç§æ¹æ³å¯å¨:
*åé¶å¯å¨
å æ ¸å¯å¨, æè½½æ ¹ååºæ件系ç», æ¥çè°ç¨åå§åææ¬ç»§ç»åå§å( é常æ¯/sbin/init)
*åé¶å¯å¨ (initrd)çå¯å¨
å æ ¸å¯å¨ï¼æè½½ä¸ä¸ªåå§ram disk (initrd),è¿ä¸æ¥è¿è¡å®å¶çåå§å, ç¶åæè½½æ ¹ååºæ件系ç»ç»§ç»åå§å(åæ ·, é常è°ç¨/sbin/init)
æ¯ç§æ¹æ³é½æå®èªå·±çä¼ç¹å缺ç¹ã
åé¶å¯å¨
为äºè¦ä½¿ç¨ä¸ä¸ªåé¶çå¯å¨ï¼æ们éè¦å»ºç«ä¸ä¸ªå æ ¸å å«æè½½ä¸ä¸ªæ ¹ååºæ件系ç»æéçææ驱å¨ç¨åºã( ä»»ä½å ¶ä»ç驱å¨è½ä½ä¸ºæ¨¡åç¼è¯å¹¶å¨æ ¹ååºè½½å ¥æ¶åè¿è¡å¸¸è§åå§åã)
å¦ææ们æ£å¨ä»å软çè¿æ ·çä¸ä¸ªé常å°çè£ ç½®å°è¯å¯å¨, æ好çæ¹å¼æ¯å建çä¸ä¸ªæ£åéå æ ¸ï¼ç¼è¯è¿æææè½½æ ¹å¤é¨ååºç³»ç»æéé©±å¨ -- èä¸ç¼è¯å ¶ä»çä½ä¸ºæ¨¡åã 举ä¾æ¥è¯´ï¼æçå æ ¸ç¼è¯è¿äºSCSIæ¯æï¼ PCMCIA æ¯æï¼ IEE ï¼ SBP ï¼åå ¶ä»ç¸ä¼¼çæ¯æ, ä½æ¯å ¶ä»çï¼å æ¬æ¾å¡æ¯æï¼ç½ç»è®¾å¤æ¯æï¼ççï¼å½å模åç¼è¯å¹¶å¨åå¨æ ¹ååºä¸(å¨å¤é¨ç驱å¨å¨ç)ï¼èä¸æ¯åå¨å¨è½¯çä¸ã
è¿ç§æ¹æ³ç主è¦é®é¢æ¯éè¦æ们ç»å æ ¸æºä»£ç æè¡¥ä¸-- é£æ¯ä¸ç§æç³ç³ççè¦ï¼å½æ°çå æ ¸åå¸ï¼ï¼èçæ£çé®é¢æ¯å¦æè¡¥ä¸æ²¡æå¨ç»´æ¤ï¼è¿æ ·å°±ä¸è½è·ä¸å æ ¸çååã
ä½ å¯è½ä»¥ä¸ºå¦æ计ç®æºBIOSæ¯æUSBåç«çº¿ç´æ¥å¯å¨ï¼æ们è½é¿å åç以ä¸ç2个é®é¢ã ä¸å¹¸å°ï¼äºæ ä¸æ¯è¿æ ·:è¿ä¸ä¸ªæ¹æ³ä½¿ç¨BIOSå¨å¯å¨æ¶è°ç¨ç£çï¼ä¸æ¦å æ ¸å¼å§åå§å, BIOS就失å»äºä½ç¨ï¼èä¸ä½¿ç¨å æ ¸é©±å¨æ¥è°ç¨ç£ç-- æä»¥ä½ ä»ç¶ä¼ç¢°å°åæ ·çé®é¢ã
äºé¶å¯å¨
å æ ¸2.0.Xçæ¬ ï¼æ·»å äºä¸ä¸ªæ趣çåè½å°å æ ¸ -- 使ç¨âinitial RAM diskï¼åå§å åç£çï¼âï¼or initrdï¼æ¥å®ç°äºé¶å¯å¨ã
ç®è¨ä¹ï¼å æ ¸ä¸æ¦æ¢å¾çå¯å¨ï¼æè½½ä¸ä¸ªå建å¨å åéè¿·ä½ çæ ¹ååºæ件系ç»å代æè½½âçæ£âçæ ¹ååºç³»ç»ã æ 论任ä½å½ä»¤é½å¨è¿ä¸ªåå§ç¯å¢ä¸æ§è¡å¨âçæ£âçæ ¹ååºç³»ç»è¢«æè½½ä¹åç´å°æ们åæ¢å°çæ£çæ ¹ååºæ件系ç»å¹¶éæ¯åå§å åç£çï¼initial RAM diskï¼ã
è¿ç¹å¨åç§ç¯å¢ä¸é½é常æç¨,ä½æ¯æ们çç®æ ä» ä» æ¯ç®åçå©ç¨æ们çè¿·ä½ ç¯å¢å»éæ°æ«æSCSIæ»çº¿ï¼çå¾ å¤é¨é©±å¨å¨è¯å«ï¼ç¶åç¨å®åæ¢å°æ们çæ£çæ ¹èå继ç»å¯å¨ã
使ç¨è¿ç§æ¹æ³ï¼æ们éè¦å建2个æ件ï¼ä¸ä¸ªå æ ¸åä¸ä¸ªåå§éåæ件ã
å æ ¸ä» æ¯ä¸ä¸ªå 建å¯å¨éåï¼initrdï¼æ¯æ常è§å æ ¸ã initrd éåæ¯ä¸ä¸ªå 涵æä»¬è¿·ä½ æ ¹ååºç³»ç»çç¯è·¯ï¼loopbackï¼æ件系ç»éåã (该éåå¯ä»¥æéæå°ä½¿ç¨gzipå缩æ¥åå°å®ç大å°)ã
ä½ è½å¨èµæºç« èéæ¾å°å ³äºå¦ä½å建åå®å¶ä½ èªå·±çåå§éåçæ´å¤ä¿¡æ¯ã
å¨éåæ件éï¼æä¸ä¸ªlinuxrcçæ件ãå½éåç»è½½å ¥æ¶ï¼è¯¥æ件èªå¨è¿è¡ï¼æ以请确å®å ¶æè¿è¡æéï¼ä¸ºäºè¾¾å°æ们çç®çï¼linuxrcæ件é常çç®å:
å举 1. initrd linuxrc
#!/bin/sh
REAL_ROOT=/dev/sda1
# mount the /proc filesystem
mount -t proc none /proc
#for scsi-emulation ï¼SCSI模æï¼
# modprobe sd_mod
#for pcmcia ï¼PCNCIAå¡ï¼
# modprobe pcmcia_core
#for FireWire ï¼ç«çº¿ï¼
# modprobe ieee
# modprobe ohci
# modprobe raw
# modprobe sbp2
#for USB ï¼USBï¼
# modprobe usbcore
# modprobe ohci-hcd
# modprobe uhci-hcd
# modprobe usb-storage
# loop rescanning the scsi bus + rerunning devfsd
retries=5
i=1
until [ -e $REAL_ROOT ]
do
if [ $i -gt $retries ]
then
echo "Unable to mount real root ($REAL_ROOT) - Giving up!"
/bin/ash
exit
fi
echo "Real root ($REAL_ROOT) not found, retrying ($i)"
sleep 1
echo "scsi add-single-device 0 0 0" > /proc/scsi/scsi
echo "scsi add-single-device 1 0 0" > /proc/scsi/scsi
echo "scsi add-single-device 2 0 0" > /proc/scsi/scsi
/bin/devfsd /dev -np
i=$((i+1))
done
#umount /proc as it will be remounted by the normal init process
ï¼è§£é¤æè½½/procååºå½å®ä¼ç»å¸¸è§çINITè¿ç¨éæ°æè½½ï¼
umount /proc
#now we simply exit, and the normal boot process should continue
ï¼ç°å¨æ们å¯ä»¥éåºäºï¼å¸¸è§çå¯å¨è¿ç¨å°ä¼ç»§ç»ï¼
exit 0
æ们æ£å¨åçæ¯è½½å ¥éå½ç模åå»æ¯æå¤é¨é©±å¨å¨: 请æé注è§ç¸åºè¡ã (ææææéè¦çæ¯æç¼è¯è¿å æ ¸ï¼å æ¤ä¸éè¦æ¨¡å)ã ç¶å循ç¯, åæ«æ SCSI æ»çº¿ (ååºä¸ä¸ªå½ä»¤å°/procèææ件系ç»ä¸ä¸ä¸ªç¹å«æ件并è°ç¨devfsdç¨åº) ç´å°æ ¹ååºè®¾å¤åºç°(æçæ åµæ¯/dev/sda1 )ãå¨æçæ åµï¼è¢«è®¿é®çç«çº¿æ¨¡æSCSIæ»çº¿æ¯1 0 0ï¼ä½æ¯å¹¶ä¸å½±åå°è¯é¨åå ¶ä»çæ»çº¿ -- å¦æä½ ç¥éå°ä¼ä½¿ç¨åªä¸ä¸ªï¼ä½ å¯ä»¥è£åè¿ä¸ªææ¬ã åæ¶, å¦æä½ æå ¶ä»ç SCSI è®¾å¤ (æ模æ SCSI设å¤), 驱å¨å¨å¯è½æä¸ä¸ªä¸åçåæ¯ã(ä¾å¦,/dev/sdb1) èä¸å¦æä½ æ²¡æ使ç¨å¤ç½®é©±å¨å¨ä¸ç第ä¸ä¸ªååº, ä½ å°ä¼éè¦ä½¿ç¨ä¸ä¸ªä¸åçæ°åã( ä¾å¦,/dev/sda2)
ç°å¨æ们éè¦åçå ¨é¨æ¯å¤å¶ç¸å ³çæ件è¿initrdéå.( ä½ è½å¤ä½¿ç¨mount -o loop å½ä»¤æè½½æªå缩çéå)å°¤å ¶ï¼æ们éè¦ç¡®å®æ们æ linuxrc æ件ãææ被ç¨å°çå½ä»¤åå ¶ä¾èµçåºã è¿ä¸ªï¼æªæè½½çï¼éåå¯ä»¥æéæçå缩ã
å¤å¶å æ ¸ (bzImage) å initrd éå (initrd.gzï¼å°ç£çã
æåçæ¥æ¯å¨ç£çä¸å®è£ ä¸ä¸ªboot loader, èä¸ç¨ä¸åçé项å¯å¨å æ ¸: kernel bzImage root=/dev/sda1 initrd=initrd.gz.
ä½ ç°å¨åºè¯¥å¯ä»¥ä½¿ç¨ç£çæ¥å¯å¨äºï¼å®ä¼ä»è½¯çä¸è½½å ¥å æ ¸ï¼è½½å ¥initrdéåå ¥å åï¼ç¶åä»é£é继ç»å¸¸è§å¯å¨ãè¿ç¹ä»¥åï¼ç£çå°±å¯ä»¥æ¿å¼äºã
å¦æç£çä¸åé ( ä¾å¦ï¼è®¡ç®æºæ²¡æ软驱),ä»»ä½è®¾å¤å¨BIOSè½ç¨äºå¯å¨é½å¯ä»¥ä½¿ç¨ã 个人èè¨ï¼æ就使ç¨ä¸ä¸ªå°å°çMBçUSBæ£æ¥è¾¾å°è¿ä¸ªç®çã
åèèµæ:
http://www.linuxsir.org/bbs/showthread.php?t=
用 BusyBox 构建根文件系统
构建Linux嵌入式系统的基石是根文件系统,它是一个集成核心组件的单一目录,为后续软件和设备管理提供基础。根文件系统内包含了诸如/bin的系统命令(strong>如ls、cd等),/dev管理设备,/etc配置文件以设置环境,/lib存放必要库文件,/mnt用于临时挂载,/proc虚拟系统信息确保系统运行透明,/usr为软件资源库,/var存储可变数据,而/sbin则包含管理员工具,/sys用于设备管理和监控,/opt则存放可选软件,sysfs和sysfs类似但功能略有差异。 BusyBox,这个强大的瑞士军刀工具,扮演着构建根文件系统的关键角色。首先,从官网下载适合的版本,如busybox-1..0,并在Ubuntu虚拟机中借助NFS服务进行定制。这里,我们需要确保在Makefile中针对目标架构进行适当的调整,尤其是处理可能的COMPILE错误,使用绝对路径,并解决中文字符问题,比如在源码中的printable_string.c和unicode.c文件中,可能需要注释或调整字符编码规则以支持中文显示。 定制BusyBox的过程可通过两种方式完成:defconfig(默认配置)或图形化的menuconfig。推荐动态编译,并激活mdev和Unicode支持,以确保兼容性和功能性。 编译步骤如下:首先运行make defconfig 或 make menuconfig,然后选择动态编译和必要的Unicode支持。接着,使用make make install CONFIG_PREFIX=/path 命令将编译后的工具和文件安装到指定的rootfs目录,这里会生成bin、sbin、usr和linuxrc文件夹,其中Linux内核通过寻找init程序(通常是linuxrc)进入用户态。 接下来,为了增强根文件系统的功能性,我们需要添加lib库。从交叉编译器的/usr/local/arm/gcc-linaro-...目录下的arm-linux-gnueabihf/libc/lib子目录中复制.so和.a文件到rootfs/lib,特别注意处理特殊库文件ld-linux-armhf.so.3。 除了基本的文件夹结构,如dev、proc、mnt、sys、tmp和root,还需要创建额外的目录以支持系统的完整功能。例如,dev目录用于设备文件管理,proc用于虚拟系统信息,mnt用于挂载外部存储,sys用于设备驱动的配置,而tmp则存放临时文件。 最后,通过NFS服务将rootfs挂载到开发板上,确保在bootargs中正确设置root,例如:root=/dev/nfs, nfsroot=...:/home/andyxi/linux/nfs/rootfs, proto=tcp, rw。然后,通过串口设置bootargs启动Linux,如果出现错误,表明rootfs可能还不完整,后续我们将深入探讨如何修复和完善这个关键步骤。 获取BusyBox的具体资源,请关注相关渠道并输入关键词"busybox"获取详细信息。