收藏 分享(赏)

[Linux 系统裁减指南][5][redkaoliang][doc].doc

上传人:hwpkd79526 文档编号:9424506 上传时间:2019-08-06 格式:DOC 页数:42 大小:256.50KB
下载 相关 举报
[Linux 系统裁减指南][5][redkaoliang][doc].doc_第1页
第1页 / 共42页
[Linux 系统裁减指南][5][redkaoliang][doc].doc_第2页
第2页 / 共42页
[Linux 系统裁减指南][5][redkaoliang][doc].doc_第3页
第3页 / 共42页
[Linux 系统裁减指南][5][redkaoliang][doc].doc_第4页
第4页 / 共42页
[Linux 系统裁减指南][5][redkaoliang][doc].doc_第5页
第5页 / 共42页
点击查看更多>>
资源描述

1、1Linux 系统裁减指南 (LiPS)目 录目 录 11 引言 41.1 编写目的 .41.2 背景 .41.3 定义 .41.4 参考资料 .42 总体描述 52.1 硬件环境 .52.2 软件环境 .52.3 需求规定和约束 .53 总体设计 63.1 基本设计概念 .63.2 软件结构 .64 内核 64.1 创建内核的方法 .64.2 内核配置 .74.2.1 概述 74.2.2 Loadable module support84.2.3 Processor type and features.84.2.4 General setup 84.2.5 Plug and Play con

2、figuration94.2.6 Block devices94.2.7 Multi-device support (RAID and LVM).104.2.8 Networking options.104.2.9 ATA/IDE/MFM/RLL support 114.2.10 SCSI support .124.2.11 Network device support 124.2.12 Character devices 134.2.13 File systems.144.2.14 Console drivers .154.2.15 USB support154.3 提示 .164.3.1

3、EXTRAVERSION164.3.2 .config .175 根文件系统 175.1 根文件系统 .175.2 文件系统的内容 .175.2.1 应用程序(applications) 1725.2.2 设备文件(device files) .185.2.3 脚本和配置文件(scripts and configuration files) 195.2.4 库文件(libraries) 205.2.5 必要的目录 205.3 初始化 RAM 盘(initrd) .215.3.1 操作步骤 215.3.2 引导选项 215.3.3 安装 225.3.4 改变根目录设备 235.3.5 使用场合

4、245.3.6 淘汰的根转换机制(change_root) 245.4 系统初始化(init) .245.4.1 init 的任务 245.4.2 SysVinit.255.4.3 两种风格:Slackware vs. Debian .255.5 PAM.265.5.1 什么是 PAM265.5.2 PAM 的结构 .265.5.3 配置文件 265.5.4 other 275.6 再论 initrd.275.6.1 根到底在哪里 285.6.2 linuxrc .285.6.3 根转换机制:新的?旧的? 305.7 提示 .315.7.1 文件系统目录层次结构 315.7.2 mklips.

5、sh(制作 LiPS 的脚本) .325.7.3 lips.conf(LiPS 配置文件) 325.7.4 cp dpR .325.7.5 如何判断一个程序依赖哪些文件 325.7.6 带库文件复制 lcp()335.7.7 库文件的命名 346 引导 356.1 引导过程概述 .356.2 几种引导方式 .356.3 grub 引导器 .356.4 USB 引导 .356.4.1 制作步骤 366.4.1.1 创建文件系统 .366.4.1.2 复制文件 .366.4.1.3 安装 grub 366.5 提示 .376.5.1 版本问题? 377 远程串口控制台 3737.1 概述 .377

6、.2 配置方法 .377.3 提示 .377.4 Linux 远程串口控制台指南 378 系统安装光盘 408.1 概述 .408.2 boot.iso 光盘的文件结构分析 4041 引言1.1 编写目的说明 Linux 系统裁减的过程及解决的主要技术问题。本文档的编写是为了说明 LiPS 的详细设计过程,也可以作为构造一个小型化 Linux 系统的指南。本文档内容的组织如下所述:这一部分是引言,第 2 部分是对项目软、硬件环境和需求的总体描述,第 3 部分说明了裁减 LINUX 的相关基本概念。后面几个部分是具体实现方法的详细说明,46 分别详细描述了创建内核、创建根文件系统和引导系统的方法

7、。最后的内容可以看作附录,其中 7 说明了一般 Linux 系统安装光盘的创建方法,8 列出了相关的配置文件和源代码。1.2 背景华中科技大学计算机存储系统国家专业实验室,NAS 项目(2003.32003.8)。1.3 定义O boot loader: 引导器O kernel: 内核O root filesystem: 根文件系统O USB: 通用串行总线1.4 参考资料1 DIY:自己动手做一个迷你 Linux 系统. IBM developerWorks 中国网站. http:/ Linux From Scratch. http:/clfsbook.mylab.idv.tw/index.

8、html3 Linux 启动过程综述 . http:/ make clean; make bzImage编译成功的内核文件为 arch/i386/boot/bzImage.74.2 内核配置4.2.1 概述make menuconfig 之后可以看到类似如下的内容(编号是为了描述方便而加上的) 。根据内核版本的不同,列出的项目会有差异。而变化主要发生在发行版为标准内核打的各种补丁上面,其实标准内核是比较稳定的。如下所示,我们配置的内核版本为 2.4.20-8,这个“-8 ”就是 Redhat 所打的补丁版本号。补丁一般是对标准内核错误的修正和新增的功能。与 2.4.20 内核配置选项比较会发现

9、,10,25,30都属于 Redhat 的补丁。一般地,这些补丁选项都不是必须的,因此我们的 LiPS 内核中都没有包括这些选项。其实,完全可以通过直接配置一个标准的内核版本(比如 2.4.20)来产生我们所需要的内核。Linux Kernel v2.4.20-8-R2Lips Configuration1 Code maturity level options -2 Loadable module support -3 Processor type and features -4 General setup -5 Memory Technology Devices (MTD) -6 Para

10、llel port support -7 Plug and Play configuration -8 Block devices -9 Multi-device support (RAID and LVM) -10 Cryptography support (CryptoAPI) -11 Networking options -12 Telephony Support -13 ATA/IDE/MFM/RLL support -14 SCSI support -15 Fusion MPT device support -16 I2O device support -17 Network dev

11、ice support -18 Amateur Radio support -19 IrDA (infrared) support -20 ISDN subsystem -21 Old CD-ROM drivers (not SCSI, not IDE) -22 Input core support -23 Character devices -24 Multimedia devices -25 Crypto Hardware support -26 File systems -27 Console drivers -28 Sound -29 USB support -830 Addition

12、al device driver support -31 Bluetooth support -32 Kernel hacking -33 Library routines -Load an Alternate Configuration FileSave Configuration to an Alternate File下面我们以 2.4.20 内核为例,来详细说明内核的配置,也就是选哪些东西、不选哪些东西。没有说明的选项,比如“Code maturity level options”,表示不选。4.2.2 Loadable module support* Enable loadable

13、module support Set version information on all module symbols* Kernel module loader可加载模块支持。虽然目前所选项目全部编译进内核,但是内核是支持模块的。可以考虑将一些硬件设备的驱动程序编译为模块,从而减小内核尺寸,同时增加适应不同硬件平台的灵活性。4.2.3 Processor type and features(Pentium-III/Celeron(Coppermine) Processor family* Machine Check ExceptionToshiba Laptop supportDell l

14、aptop support/dev/cpu/microcode - Intel IA32 CPU microcode support/dev/cpu/*/msr - Model-specific register support/dev/cpu/*/cpuid - CPU information support(off) High Memory Support Math emulation MTRR (Memory Type Range Register) support Symmetric multi-processing support Local APIC support on unip

15、rocessors Unsynced TSC support处理器特性。选择一下 Processor family,其余基本上都没有选。High Memory Support 也可以打开,不清楚有什么用。4.2.4 General setup* Networking support* PCI support9(Any) PCI access mode* ISA bus support* PCI device name database EISA support MCA support Support for hot-pluggable devices* System V IPC* BSD Pr

16、ocess Accounting* Sysctl support(ELF) Kernel core (/proc/kcore) formatKernel support for a.out binariesKernel support for ELF binariesKernel support for MISC binaries* Power Management supportKernel support for MISC binaries* Power Management supportAdvanced Power Management BIOS support* Ignore USE

17、R SUSPEND* Enable PM at boot time* Make CPU Idle calls when idle* Enable console blanking using APM* RTC stores time in GMT* Allow interrupts during APM BIOS calls* Use real mode APM BIOS call to power off总体设置。这一部分选项比较重要,包括网络、总线、进程、二进制文件格式、电源管理等。其中 APM 相关的选项比较搞不清楚,有时候 halt p 命令不能关闭系统电源跟这里有关系。4.2.5 P

18、lug and Play configurationPlug and Play supportISA Plug and Play support即插即用设置。4.2.6 Block devicesNormal floppy disk supportXT hard disk supportCompaq SMART2 supportCompaq Smart Array 5xxx supportMylex DAC960/DAC1100 PCI RAID Controller supportLoopback device support10Network block device supportRAM

19、 disk support(4096) Default RAM disk size* Initial RAM disk (initrd) support* Per partition statistics in /proc/partitions块设备。软驱也可以不选。这里的关键选项是 Loopback device,RAM disk 和 initrd,一定要选中。Default RAM disk size 多少都没有关系。4.2.7 Multi-device support (RAID and LVM)* Multiple devices driver support (RAID and LV

20、M)RAID supportLinear (append) modeRAID-0 (striping) modeRAID-1 (mirroring) modeRAID-4/RAID-5 modeMultipath I/O supportLogical volume manager (LVM) supportMD 支持。软 RAID 和 LVM 的支持在这里选择,如果不使用,也可以不选。4.2.8 Networking optionsPacket socket* Packet socket: mmapped IONetlink device emulation* Network packet f

21、iltering (replaces ipchains) Network packet filtering debugging* Socket FilteringUnix domain sockets* TCP/IP networking* IP: multicasting* IP: advanced router IP: policy routing IP: equal cost multipath IP: use TOS value as routing key IP: verbose route monitoring IP: large routing tables* IP: kerne

22、l level autoconfiguration* IP: DHCP support* IP: BOOTP support* IP: RARP supportIP: tunnelingIP: GRE tunnels over IP11 IP: multicast routing IP: TCP Explicit Congestion Notification support IP: TCP syncookie support (disabled per default)IP: Netfilter Configuration -802.1Q VLAN Support- The IPX prot

23、ocolAppletalk protocol supportAppletalk devices -DECnet Support802.1d Ethernet BridgingQoS and/or fair queueing -Network testing -网络选项。这里选项也比较多,如果没有什么特殊要求,又不是十分理解这些选项的意义,基本上可以用缺省设置。注意 DHCP 选项,如果要用到的话要记得选中这个。IP: Netfilter Configuration(跟 iptables 有关)等几个子选项都没有选。4.2.9 ATA/IDE/MFM/RLL supportATA/IDE/MFM

24、/RLL supportIDE, ATA and ATAPI Block devices -Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support- Please see Documentation/ide.txt for help/info on IDE drives Use old disk-only driver on primary interfaceInclude IDE/ATA-2 DISK support* Use multi-mode by default* Auto-Geometry Resizing supportInclud

25、e IDE/ATAPI CDROM supportInclude IDE/ATAPI TAPE supportInclude IDE/ATAPI FLOPPY supportSCSI emulation support IDE Taskfile Access- IDE chipset support/bugfixes CMD640 chipset bugfix/support RZ1000 chipset bugfix/support* Generic PCI IDE chipset support* Sharing PCI IDE interrupts support* Generic PC

26、I bus-master DMA support Boot off-board chipsets first support Force enable legacy 2.0.X HOSTS to use DMA* Use PCI DMA by default when available Enable DMA only for disks AEC62XX chipset support ALI M15x3 chipset support12 AMD Viper support CMD64X and CMD680 chipset support CY82C693 chipset support

27、Cyrix CS5530 MediaGX chipset support HPT34X chipset support HPT366/368/370 chipset support* Intel PIIXn chipsets support* PIIXn Tuning support PROMISE PDC20246|62|65|67|68|69|70 support ServerWorks OSB4/CSB5 chipsets support SiS5513 chipset support SLC90E66 chipset support VIA82CXXX chipset support

28、Other IDE chipset support IGNORE word93 Validation BITSIDE 设备支持。要用 IDE 硬盘,当然要选中。CDROM 选项看情况也可以不要。SCSI emulation 似乎对使用 USB 盘有影响。剩下的很多都是跟 IDE chipset 有关的。最好是用 dmesg 命令找出目标系统主板芯片组,然后选中对应的芯片组支持,这样相当于安装了 IDE 芯片组的驱动程序。如果没有指定应该也可以,只是性能可能会受到一些影响。4.2.10 SCSI supportSCSI support- SCSI support type (disk, tape

29、, CD-ROM)SCSI disk support(40) Maximum number of SCSI disks that can be loaded as modulesSCSI tape supportSCSI OnStream SC-x0 tape supportSCSI CD-ROM supportSCSI generic support- Some SCSI devices (e.g. CD jukebox) support multiple LUNs Enable extra checks in new queueing code Probe all LUNs on each

30、 SCSI device Verbose SCSI error reporting (kernel size +=12K) SCSI logging facilitySCSI low-level drivers -SCSI 支持。如果要用到 SCSI 硬盘等 SCSI 设备,这里当然要选。目前我们的目标系统其实没有 SCSI 硬盘,但是为了使用 USB 盘,也要选中 SCSI 支持。SCSI low-level drivers 子选项中是一些 SCSI 卡,都不用选。134.2.11 Network device support* Network device supportARCnet de

31、vices -Dummy net driver supportBonding driver supportEQL (serial line load balancing) supportUniversal TUN/TAP device driver supportEthernet (10 or 100Mbit) -* Ethernet (10 or 100Mbit)* EISA, VLB, PCI and on board controllersEtherExpressPro/100 support (eepro100, original Becker driverRealTek RTL-81

32、39 PCI Fast Ethernet Adapter supportEthernet (1000 Mbit) - FDDI driver supportPPP (point-to-point protocol) supportSLIP (serial line) supportWireless LAN (non-hamradio) -Token Ring devices - Fibre Channel driver supportWan interfaces -网络设备支持。主要选择网卡类型,Ethernet (10 or 100Mbit)子选项中列出了内核可以支持的 10/100M 以太

33、网卡,这里仅列出了我们选中的 2 种。其他子选项都没有选。4.2.12 Character devices* Virtual terminal* Support for console on virtual terminalStandard/generic (8250/16550 and compatible UARTs) serial support* Support for console on serial port Extended dumb serial driver options Non-standard serial port support Unix98 PTY suppor

34、tI2C support -Mice -Joysticks -QIC-02 tape supportWatchdog Cards -AMD 768 Random Number Generator supportIntel i8x0 Random Number Generator supportAMD 76x native power management (Experimental)14/dev/nvram supportEnhanced Real Time Clock SupportDouble Talk PC internal speech card supportSiemens R396

35、4 line disciplineApplicom intelligent fieldbus card supportFtape, the floppy tape device driver -/dev/agpgart (AGP Support) Direct Rendering Manager (XFree86 DRI support)ACP Modem (Mwave) support字符设备。这里主要就是选择了最前面 4 个跟终端和串口有关的选项,以支持虚拟终端(远程登录要用到) ,支持标准串口,支持串口控制台。4.2.13 File systems* Quota supportKerne

36、l automounter supportKernel automounter version 4 support (also supports v3)Reiserfs support Enable reiserfs debug mode* Stats in /proc/fs/reiserfsExt3 journalling file system support JBD (ext3) debugging supportDOS FAT fs supportMSDOS fs supportUMSDOS: Unix-like file system on top of standard MSDOS

37、 fsVFAT (Windows-95) fs supportCompressed ROM file system support* Virtual memory file system support (former shm fs)ISO 9660 CDROM file system support* Microsoft Joliet CDROM extensions Transparent decompression extensionJFS filesystem supportMinix fs supportFreeVxFS file system support (VERITAS Vx

38、FS(TM) compatible)NTFS file system support (read only)OS/2 HPFS file system support* /proc file system supportQNX4 file system support (read only)ROM file system supportSecond extended fs supportSystem V/Xenix/V7/Coherent file system supportUDF file system support (read only)UFS file system support

39、(read only)Network File Systems -15Coda file system support (advanced network fs)NFS file system support* Provide NFSv3 client support Root file system on NFSNFS server support* Provide NFSv3 server supportSMB file system support (to mount Windows shares etc.) Use a default NLSNCP file system suppor

40、t (to mount NetWare volumes)Partition Types -Native Language Support -Default NLS Option: “iso8859-1“Codepage 437 (United States, Canada)Simplified Chinese charset (CP936, GB2312)Traditional Chinese charset (Big5)文件系统。这部分内容比较多,也很重要。首先是 Quota,如果目标系统支持这个功能,这里就要选中。然后是选择要支持的文件系统,常用的有 Reiserfs,Ext3,FAT,I

41、SO9660,JFS 等等,可以根据情况选择。/proc 和 ext2 一定要选中。还有 Network File Systems 子选项,可以选择是否支持 NFS 和 SMB。Native Language Support 子选项跟所支持的语言有关,这里没有全部列出来,我们选中了英语和简体、繁体中文字符集。4.2.14 Console drivers* VGA text console Video mode selection support控制台驱动。调试的时候可以给目标系统接显示器看一下,实际系统应该可以不选。4.2.15 USB supportSupport for USB USB v

42、erbose debug messages- Miscellaneous USB options* Preliminary USB device filesystem Long timeout for slow-responding devices (some MGE Ellipse UPSe- USB Host Controller DriversUHCI Alternate Driver (JE) supportOHCI (Compaq, iMacs, OPTi, SiS, ALi, .) support- USB Device Class drivers USB MIDI support

43、USB Mass Storage support* USB Mass Storage verbose debug16 Freecom USB/ATAPI Bridge support ISD-200 USB/ATA Bridge support Microtech CompactFlash/SmartMedia supportUSB Modem (CDC ACM) supportUSB Printer support- USB Human Interface Devices (HID)USB Human Interface Device (full HID) support- Input co

44、re support is needed for USB HID input layer or HIDBP /dev/hiddev raw HID device support- USB Imaging devicesUSB Kodak DC-2xx Camera supportUSB Scanner supportMicrotek X6USB scanner support- USB Multimedia devices- Video4Linux support is needed for USB Multimedia device support- USB Network adaptors

45、- USB port driversUSB Serial Converter support - USB Miscellaneous driversTexas Instruments Graph Link USB (aka SilverLink) cable supportUSB LCD device supportUSB 支持。如果没有使用 USB 设备,这部分可以不选。要使用 USB 盘,一定要选中USB Mass Storage support。其余很多选项我也不清楚是干什么用的。4.3 提示4.3.1 EXTRAVERSION在系统中使用 uname 可以获得系统版本信息。比如 Red

46、hat 9:rootlips root# uname -r2.4.20-8rootlips root#返回结果表示了 Redhat 修订后的内核版本号。前面我们提到过,这个“-8”就是 Redhat 附加在标准内核版本号后面的一个信息。在一个运行 LiPS 的系统中,我们也需要确定当前使用的内核版本,通过版本信息来知道这个内核的配置,也可以通过在标准内核版本后面附加特定的编码来实现。/usr/src/linux-2.4/Makefile 中的变量 EXTRAVERSION 可以帮助我们达到这个目标。下面是 Makefile 文件的最前面几行内容:VERSION = 2PATCHLEVEL =

47、4SUBLEVEL = 20EXTRAVERSION = -817KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)现在 KERNELRELEASE 的值就是 2.4.20-8。这个信息会被编译到内核中,uname 工具会从内核文件中提取出版本号。如果将 Makefile 做一些修改,比如,EXTRAVERSION = -8-R2Lips那么我们可以得到内核版本号 2.4.20-8-R2Lips,表示为了创建 LiPS 而编译的一个特定配置的内核,这个内核是以 2.4.20-8 为基础,R2Lips(Release 2 Lips)即第二个版本。对 Makefile 的修改要在编译内核之前完成。4.3.2 .config内核配置(make menuconfig)完成之后,会询问:Do you wish to save your new kernel configuration?回答 Yes,配置信息会保存在/usr/src/linux-2.4/.config 文件中。注意以“.”开头的文件是个隐藏文件,要用 ls a 才看的到。.config 是个文本文件,内容类似下面:# Load

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报