構(gòu)建基本的嵌入式Linux根文件系統(tǒng)_第1頁(yè)
構(gòu)建基本的嵌入式Linux根文件系統(tǒng)_第2頁(yè)
構(gòu)建基本的嵌入式Linux根文件系統(tǒng)_第3頁(yè)
構(gòu)建基本的嵌入式Linux根文件系統(tǒng)_第4頁(yè)
構(gòu)建基本的嵌入式Linux根文件系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、構(gòu)建基本的嵌入式Linux根文件系統(tǒng)其實(shí)在去年8月份我做系統(tǒng)移植時(shí)就構(gòu)建好了一個(gè)可以用的根文件系統(tǒng),但是那時(shí)是跟著別人的Linux全線移植文檔做的。有些東西我也不清楚,只是跟著做,做出來(lái)能用就了事了,沒(méi)有深究其中的規(guī)范,以及文件系統(tǒng)中哪些要,哪些不要。趁著今年過(guò)年的幾天假期,我移植重新移植了U-Boot1.3.1和Linux2.6.24到S3C2410及S3C2440后,我想好好的看看有關(guān)文件系統(tǒng)構(gòu)建方法和規(guī)范,整理整理構(gòu)建根文件系統(tǒng)的文檔。之后,我用了近一周的時(shí)間,慢慢研究構(gòu)建嵌入式Linux系統(tǒng)這本書(shū)有關(guān)根文件系統(tǒng)的部分,以及一些網(wǎng)上的參考資料,不斷地實(shí)驗(yàn)。構(gòu)建好了一個(gè)精簡(jiǎn)的根文件系統(tǒng),下

2、面我只介紹構(gòu)建的過(guò)程和方法,至于原理我給出以下參考資料,自己看吧。 1、 Linux系統(tǒng)移植:一個(gè)經(jīng)典的Linux移植文檔,共有95頁(yè)的PDF文檔,內(nèi)容十分詳細(xì),里面有根文件系統(tǒng)的創(chuàng)建,還多地方都有下載(有的網(wǎng)站稱(chēng)之為L(zhǎng)inux系統(tǒng)全線移植文檔等等),很值得參考。在這里感謝文檔的作者們。2、 構(gòu)建嵌入式Linux系統(tǒng)必看!里面對(duì)文件系統(tǒng)的構(gòu)建講的挺細(xì)。3、 Filesystem Hierarchy StandardLinux文件系統(tǒng)的標(biāo)準(zhǔn)規(guī)范。我只看到英文的。其他再遇到不懂的就google,基本上都是Linux的相關(guān)知識(shí),都是找得到的。 (1)創(chuàng)建根文件系統(tǒng)的基本目錄結(jié)構(gòu)。我把這個(gè)過(guò)程做成了s

3、hell腳本(文件名為mkroot) ,很方便! #! /bin/sh echo creatint rootfs dir mkdir rootfs cd rootfs echo making dir : bin dev etc lib proc sbin sys usr mkdir bin dev etc lib proc sbin sys usr #必備的8個(gè)目錄 mkdir usr/bin usr/lib usr/sbin lib/modules# Dont use mknod ,unless you run this Script as root !# mknod -m 600 dev/

4、console c 5 1# mknod -m 666 dev/null c 1 3 echo making dir : mnt tmp var mkdir mnt tmp var chmod 1777 tmp mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp mkdir var/lib var/lock var/log var/run var/tmp chmod 1777 var/tmp echo making dir : home root boot mkdir home root boot echo done 在你想要建立根文件系統(tǒng)的

5、地方,運(yùn)行: tekkamanninjaTekkaman-Ninja nfs$ ./mkrootcreatint rootfs dirmaking dir : bin dev etc lib proc sbin sys usrmaking dir : mnt tmp varmaking dir : home root bootdonetekkamanninjaTekkaman-Ninja nfs$ cd rootfs/dev/tekkamanninjaTekkaman-Ninja dev$ su口令:rootTekkaman-Ninja dev# mknod -m 600 console c

6、5 1;mknod -m 666 null c 1 3;exitexittekkamanninjaTekkaman-Ninja dev$ (2)配置、編譯和安裝Busybox-1.9.1tekkamanninjaTekkaman-Ninja source$ tar -xjvf busybox-1.9.1.tar.bz2 修改Makefile文件: tekkamanninjaTekkaman-Ninja busybox-1.9.1$ pwd/home/tekkamanninja/working/source/busybox-1.9.1tekkamanninjaTekkaman-Ninja bus

7、ybox-1.9.1$ kwrite Makefile(第151-154行)#SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ # -e s/arm.*/arm/ -e s/sa110/arm/ # -e s/s390 x/s390/ -e s/parisc64/parisc/ # -e s/ppc.*/powerpc/ -e s/mips.*/mips/ )(第174行附近)#ARCH ?= $(SUBARCH)#CROSS_COMPILE ?=ARCH = armCROSS_COMPILE = /ho

8、me/tekkamanninja/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-tekkamanninjaTekkaman-Ninja busybox-1.9.1$ make menuconfig 在原有的基礎(chǔ)上修改如下: Busybox Settings Installation Options * Dont use /usr (/home/tekkamanninja/working/nfs/rootfs) BusyBox installation prefix Busyb

9、ox Library Tuning * Support for /etc/networks * Additional editing keys * vi-style line editing commands (15) History size * History saving * Tab completion * Username completion * Fancy shell promptsLogin/Password Management Utilities 選項(xiàng)全部N掉,后面單獨(dú)使用TinyLogin。(因?yàn)榧傻暮孟癫皇呛芎糜?,我自己的?jīng)驗(yàn)是這樣)Linux Module Util

10、ities N Support version 2.2.x to 2.4.x Linux kernels Shells Ash Shell Options 下的選項(xiàng)全選tekkamanninjaTekkaman-Ninja busybox-1.9.1$ make LINK busybox_unstrippedTrying libraries: crypt m Library crypt is needed Library m is neededFinal link with: crypt mtekkamanninjaTekkaman-Ninja busybox-1.9.1$ make inst

11、all 我是動(dòng)態(tài)編譯所以查看一下需要的動(dòng)態(tài)庫(kù)tekkamanninjaTekkaman-Ninja busybox-1.9.1$ /home/tekkamanninja/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-readelf -d busyboxDynamic section at offset 0 xac014 contains 22 entries: Tag Type Name/Value 0 x00000001 (NEEDED) Shared library: l

12、ibcrypt.so.1 0 x00000001 (NEEDED) Shared library: libm.so.6 0 x00000001 (NEEDED) Shared library: libc.so.6 0 x0000000c (INIT) 0 xc0f0 0 x0000000d (FINI) 0 x97608 0 x00000004 (HASH) 0 x80e8 0 x00000005 (STRTAB) 0 xa3c0 0 x00000006 (SYMTAB) 0 x8b30 0 x0000000a (STRSZ) 3371 (bytes) 0 x0000000b (SYMENT)

13、 16 (bytes) 0 x00000015 (DEBUG) 0 x0 0 x00000003 (PLTGOT) 0 xbc0ec 0 x00000002 (PLTRELSZ) 2976 (bytes) 0 x00000014 (PLTREL) REL 0 x00000017 (JMPREL) 0 xb550 0 x00000011 (REL) 0 xb4e0 0 x00000012 (RELSZ) 112 (bytes) 0 x00000013 (RELENT) 8 (bytes) 0 x6ffffffe (VERNEED) 0 xb400 0 x6fffffff (VERNEEDNUM)

14、 3 0 x6ffffff0 (VERSYM) 0 xb0ec 0 x00000000 (NULL) 0 x0 (3)修改和創(chuàng)建必要的文件。 tekkamanninjaTekkaman-Ninja busybox-1.9.1$ cp -a examples/bootfloppy/etc/* /home/tekkamanninja/working/nfs/rootfs/etc/tekkamanninjaTekkaman-Ninja busybox-1.9.1$ cd ././nfs/rootfs/etc/ 1、增加為SHELL導(dǎo)入全局變量的文件/etc/profiletekkamanninjaT

15、ekkaman-Ninja etc$ kwrite profile # /etc/profile: system-wide .profile file for the Bourne shellsechoecho Processing /etc/profile. # no-op# Set search library pathecho Set search library path in /etc/profileexport LD_LIBRARY_PATH=/lib:/usr/lib # Set user pathecho Set user path in /etc/profilePATH=/b

16、in:/sbin:/usr/bin:/usr/sbinexport PATH # Set PS1 #注意:ash 除了SHELL變量外,支持u、h、W、$、!、n、w 、nnn(ASCII字符對(duì)應(yīng)的八進(jìn)制數(shù))#以及exx;xxm (彩色特效)等等!#而且前面還要多加一個(gè) !echo Set PS1 in /etc/profileexport PS1=e05;32m$USERwa$e00;34m echo Doneecho 2、增加初始化文件tekkamanninjaTekkaman-Ninja etc$ kwrite inittab :sysinit:/etc/init.d/rcS:respa

17、wn:-/bin/login:restart:/sbin/init :ctrlaltdel:/sbin/reboot:shutdown:/bin/umount -a -r:shutdown:/sbin/swapoff -a tekkamanninjaTekkaman-Ninja etc$ kwrite fstab proc /proc proc defaults 0 0none /tmp ramfs defaults 0 0mdev /dev ramfs defaults 0 0sysfs /sys sysfs defaults 0 0 3、增加初始化腳本tekkamanninjaTekkam

18、an-Ninja etc$ kwrite init.d/rcS#! /bin/shecho mount all/bin/mount -aecho Starting mdev/bin/echo /sbin/mdev /proc/sys/kernel/hotplugmdev -secho *echo Tekkaman Ninja 2440 Rootfs(nfs) 2008.2 echo Love Linux ! ! Love Ke Ke ! ! echo * 4、刪除備份文件tekkamanninjaTekkaman-Ninja etc$ rm * init.d/* 5、為mdev創(chuàng)建配置文件te

19、kkamanninjaTekkaman-Ninja etc$ vi mdev.conf創(chuàng)建一個(gè)mdev.conf文件,內(nèi)容可有可無(wú)。 (4)為使用用戶登錄功能移植TinyLogin1、下載從/ 下載tinylogin-snapshot.tar.bz2,并解壓.tekkamanninjaTekkaman-Ninja source$ tar -xjvf tinylogin-snapshot.tar.bz2 2、修改tinyLogin的MakefiletekkamanninjaTekkaman-Ninja source$ cd tinylogintekkamanninjaTekkaman-Ninja

20、 tinylogin$ kwrite Makefile 指明tinyLogin使用自己的算法來(lái)處理用戶密碼 USE_SYSTEM_PWD_GRP = false CROSS =/home/tekkamanninja/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-CC = $(CROSS)gccAR = $(CROSS)arSTRIPTOOL = $(CROSS)strip 3、 編譯并安裝 tekkamanninjaTekkaman-Ninja tinylogin$ make

21、 PREFIX=/home/tekkamanninja/working/nfs/rootfs installAborting install - You must be root, otherwise I cant.make tinylogin be setuid root, which will cause it to fail. make: * install 錯(cuò)誤 1tekkamanninjaTekkaman-Ninja tinylogin$su口令:rootTekkaman-Ninja tinylogin# make PREFIX=/home/tekkamanninja/working

22、/nfs/rootfs installrootTekkaman-Ninja tinylogin# exitexit 我是動(dòng)態(tài)編譯所以查看一下需要的動(dòng)態(tài)庫(kù) tekkamanninjaTekkaman-Ninja tinylogin$ /home/tekkamanninja/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-readelf -d tinylogin Dynamic section at offset 0 x9670 contains 21 entries: Tag T

23、ype Name/Value 0 x00000001 (NEEDED) Shared library: libcrypt.so.1 0 x00000001 (NEEDED) Shared library: libc.so.6 0 x0000000c (INIT) 0 x9c40 0 x0000000d (FINI) 0 x10160 0 x00000004 (HASH) 0 x8128 0 x00000005 (STRTAB) 0 x9070 0 x00000006 (SYMTAB) 0 x85e0 0 x0000000a (STRSZ) 1430 (bytes) 0 x0000000b (S

24、YMENT) 16 (bytes) 0 x00000015 (DEBUG) 0 x0 0 x00000003 (PLTGOT) 0 x19740 0 x00000002 (PLTRELSZ) 1064 (bytes) 0 x00000014 (PLTREL) REL 0 x00000017 (JMPREL) 0 x9818 0 x00000011 (REL) 0 x97c8 0 x00000012 (RELSZ) 80 (bytes) 0 x00000013 (RELENT) 8 (bytes) 0 x6ffffffe (VERNEED) 0 x9758 0 x6fffffff (VERNEE

25、DNUM) 2 0 x6ffffff0 (VERSYM) 0 x9606 0 x00000000 (NULL) 0 x0 創(chuàng)建創(chuàng)建帳號(hào)及密碼文件: tekkamanninjaTekkaman-Ninja tinylogin$ cd ././nfs/rootfs/etc/tekkamanninjaTekkaman-Ninja etc$ su口令:rootTekkaman-Ninja etc# cp /etc/passwd . ;cp /etc/shadow . ;cp /etc/group .rootTekkaman-Ninja etc# kwrite passwdroot:x:0:0:root

26、:/root:/bin/shrootTekkaman-Ninja etc# kwrite grouproot:x:0:rootrootTekkaman-Ninja etc# kwrite shadowroot:$1$N8K8eEQe$.XkJo3xcsjOE6vo1jW9Nk/:13923:0:99999:7:rootTekkaman-Ninja etc# rm *rm:是否刪除 普通文件 “group”? yrm:是否刪除 普通文件 “passwd”? yrm:是否刪除 普通文件 “shadow”? yrootTekkaman-Ninja etc# exitexittekkamanninja

27、Tekkaman-Ninja etc$ 這 3個(gè)文件是從Host中拷貝過(guò)來(lái)的,只留下root帳號(hào)。那么現(xiàn)在 root的登陸密碼和Host的登陸口令一致了,可以登錄后再修改以及創(chuàng)建新用戶。( 若使用以上文件,則root密碼為tekkaman) 拷貝必需的動(dòng)態(tài)庫(kù)文件 tekkamanninjaTekkaman-Ninja lib$ cp -d /home/tekkamanninja/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib/ld* .cp: 略過(guò)目錄 “/home/tekka

28、manninja/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib/ldscripts”tekkamanninjaTekkaman-Ninja lib$ cp /home/tekkamanninja/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib/libc-2.3.2.so .;cp -d /home/tekkamanninja/working/gcc4.1.1/

29、gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib/libc.so.6 .tekkamanninjaTekkaman-Ninja lib$ cp /home/tekkamanninja/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib/libm-* . ;cp -d /home/tekkamanninja/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi

30、-linux-gnu/arm-9tdmi-linux-gnu/lib/libm.s* .tekkamanninjaTekkaman-Ninja lib$ cp /home/tekkamanninja/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib/libcrypt-* . ;cp -d /home/tekkamanninja/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gn

31、u/lib/libcrypt.s* . 以上是最基本的文件。一個(gè)最基本根文件系統(tǒng)構(gòu)建完成!未壓縮的文件系統(tǒng)總大小不到3M。以下是啟動(dòng)信息: U-Boot 1.3.1 (Feb 18 2008 - 16:04:40)DRAM: 64 MBFlash: 1 MBNAND: NAND flash probing at 0 x4E000000 64 MBIn: serialOut: serialErr: serialHit any key to stop autoboot: 0dm9000 i/o: 0 x20000300, id: 0 x90000a46MAC: 08:08:08:08:12:27o

32、perating at 100M full duplex modeFile transfer via NFS from server 2; our IP address is Filename /home/tekkamanninja/working/nfs/zImage.img.Load address: 0 x30008000Loading: # # # # #doneBytes transferred = 1611092 (189554 hex)# Booting image at 30008000 . Image Name: tekkamanninja Created: 2008-02-

33、19 0:48:31 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1611028 Bytes = 1.5 MB Load Address: 30008000 Entry Point: 30008040 Verifying Checksum . OK XIP Kernel Image . OKStarting kernel .Uncompressing Linux done, booting the kernel.Linux version 2.6.24 (tekkamanninjaTekkaman-Ninja

34、) (gcc version 4.1.1) #4 Tue Feb 19 08:48:15 CST 2008CPU: ARM920T 41129200 revision 0 (ARMv4T), cr=c0007177Machine: Tekkaman2440Memory policy: ECC disabled, Data cache writebackCPU S3C2440A (id 0 x32440001)S3C244X: core 405.000 MHz, memory 101.250 MHz, peripheral 50.625 MHzS3C24XX Clocks, (c) 2004 S

35、imtec ElectronicsCLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL onCPU0: D VIVT write-back cacheCPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 setsCPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 setsBuilt 1 zonelists in Zone order, mobility grouping on. Total pages:

36、16256Kernel command line: noinitrd root=/dev/nfs rw nfsroot=2:/home/tekkamanninja/working/nfs/rootfs ip=:2: console=ttySAC0,115200 init=/linuxrc mem=64Mirq: clearing pending ext status 00000200irq: clearing subpending status 00000002PID hash table entries: 256 (order: 8, 1024 bytes)timer tcon=005000

37、00, tcnt a4ca, tcfg 00000200,00000000, usec 00001e57Console: colour dummy device 80 x30console ttySAC0 enabledDentry cache hash table entries: 8192 (order: 3, 32768 bytes)Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)Memory: 64MB = 64MB totalMemory: 61440KB available (2980K code, 309K

38、data, 120K init)Mount-cache hash table entries: 512CPU: Testing write buffer coherency: oknet_namespace: 64 bytesNET: Registered protocol family 16S3C2410 Power Management, (c) 2004 Simtec ElectronicsS3C2440: Initialising architectureS3C2440: IRQ SupportS3C2440: Clock Support, DVS offS3C24XX DMA Dri

39、ver, (c) 2003-2004,2006 Simtec ElectronicsDMA channel 0 at c4800000, irq 33DMA channel 1 at c4800040, irq 34DMA channel 2 at c4800080, irq 35DMA channel 3 at c48000c0, irq 36usbcore: registered new interface driver usbfsusbcore: registered new interface driver hubusbcore: registered new device drive

40、r usbNET: Registered protocol family 2IP route cache hash table entries: 1024 (order: 0, 4096 bytes)TCP established hash table entries: 2048 (order: 2, 16384 bytes)TCP bind hash table entries: 2048 (order: 1, 8192 bytes)TCP: Hash tables configured (established 2048 bind 2048)TCP reno registeredNetWi

41、nder Floating Point Emulator V0.97 (double precision)JFFS2 version 2.2. (NAND) 2001-2006 Red Hat, Inc.fuse init (API version 7.9)yaffs Feb 15 2008 10:10:34 Installing.io scheduler noop registeredio scheduler anticipatory registered (default)io scheduler deadline registeredio scheduler cfq registered

42、Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enableds3c2440-uart.0: s3c2410_serial0 at MMIO 0 x50000000 (irq = 70) is a S3C2440s3c2440-uart.1: s3c2410_serial1 at MMIO 0 x50004000 (irq = 73) is a S3C2440s3c2440-uart.2: s3c2410_serial2 at MMIO 0 x50008000 (irq = 76) is a S3C2440RAM

43、DISK driver initialized: 16 RAM disks of 4096K size 1024 blocksizeloop: module loadedusbcore: registered new interface driver ubdm9000 Ethernet Drivereth0: dm9000 at f6100300,f6100304 IRQ 51 MAC: 08:08:08:08:12:27Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2ide: Assuming 50MHz system bus

44、speed for PIO modes; override with idebus=xxS3C24XX NAND Driver, (c) 2004 Simtec Electronicss3c2440-nand s3c2440-nand: Tacls=1, 9ns Twrph0=4 39ns, Twrph1=1 9nsNAND device: Manufacturer ID: 0 xec, Chip ID: 0 x76 (Samsung NAND 64MiB 3,3V 8-bit)Scanning device for bad blocksBad eraseblock 3579 at 0 x03

45、7ec000Creating 7 MTD partitions on NAND 64MiB 3,3V 8-bit:0 x00000000-0 x00030000 : U-Boot-1.3.10 x00030000-0 x00040000 : U-Boot-1.3.1 Parameter0 x00040000-0 x00500000 : Linux2.6.24 Kernel(JFFS2)0 x00500000-0 x00a00000 : Root(cramfs)0 x00a00000-0 x00f00000 : Root(JFFS2)0 x00f00000-0 x01400000 : Root(

46、YAFFS)0 x01400000-0 x04000000 : DATAs3c2410-ohci s3c2410-ohci: S3C24XX OHCIs3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1s3c2410-ohci s3c2410-ohci: irq 42, io mem 0 x49000000usb usb1: configuration #1 chosen from 1 choicehub 1-0:1.0: USB hub foundhub 1-0:1.0: 2 ports detectedusb usb1: Product: S3C24XX OHCIusb usb1: Manufacturer: Linux 2.6.24 ohci_hcdusb usb1: SerialNumber: s3c24xxusbcore:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論