1、mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/tempmkdir var/lib var/lock var/log var/run var/tmpchmod 1777 var/tmp home root bootmkdir home root bootecho done在你想要建立根文件系统的地方,运行:tekkamanninjaTekkaman-Ninja nfs$./mkrootcreatint rootfs dir.making dir:bin dev etc lib proc sbin sys usrmnt tmp varhome roo
2、t bootdonecd rootfs/dev/tekkamanninjaTekkaman-Ninja dev$su口令:rootTekkaman-Ninja dev#mknod-m 600 console c 5 1;-m 666nullc 1 3;exittekkamanninjaTekkaman-Ninja dev$(2)配置、编译和安装Busybox-1.9.1tekkamanninjaTekkaman-Ninja source$tar-xjvf busybox-1.9.1.tar.bz2修改Makefile文件:tekkamanninjaTekkaman-Ninja busybox-
3、1.9.1$pwd/home/tekkamanninja/working/source/busybox-1.9.1kwrite 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/s390x/s390/-e s/parisc64/parisc/-e s/ppc.*/powerpc/-e s/mips.*/mips/).(第174行附近)#ARCH?$(SUBARCH)#CROSS_COMPILE=ARCHarmCR
4、OSS_COMPILE/home/tekkamanninja/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-make menuconfig在原有的基础上修改如下:Busybox Settings -Installation Options -* Dont use /usr(/home/tekkamanninja/working/nfs/rootfs) BusyBox installation prefixBusybox Library Tuning-* Support for
5、 /etc/networks*Additional editing keysvi-style line editing commands(15)History sizeHistory savingTab completionUsername completionFancy shell promptsLogin/Password Management Utilities选项全部N掉,后面单独使用TinyLogin。(因为集成的好像不是很好用,我自己的经验是这样)Linux Module UtilitiesN Support version 2.2.x to 2.4.x Linux kernels
6、Shells-Ash Shell Options下的选项全选make.LINK busybox_unstrippedTrying libraries:crypt mLibrary crypt is neededLibrary m is neededFinal link with:make install我是动态编译所以查看一下需要的动态库/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 se
7、ction at offset 0xac014 contains 22 entries:Tag Type Name/Value0x00000001(NEEDED)Shared library:libcrypt.so.1libm.so.6libc.so.60x0000000c(INIT)0xc0f00x0000000d(FINI)0x976080x00000004(HASH)0x80e80x00000005(STRTAB)0xa3c00x00000006(SYMTAB)0x8b300x0000000a(STRSZ)3371(bytes)0x0000000b(SYMENT)160x00000015
8、(DEBUG)0x00x00000003(PLTGOT)0xbc0ec0x00000002(PLTRELSZ)29760x00000014(PLTREL)REL0x00000017(JMPREL)0xb5500x00000011(REL)0xb4e00x00000012(RELSZ)1120x00000013(RELENT)80x6ffffffe(VERNEED)0xb4000x6fffffff(VERNEEDNUM)30x6ffffff0(VERSYM)0xb0ec0x00000000(NULL)(3)修改和创建必要的文件。cp-a examples/bootfloppy/etc/*/hom
9、e/tekkamanninja/working/nfs/rootfs/etc/cd ././nfs/rootfs/etc/1、增加为SHELL导入全局变量的文件/etc/profiletekkamanninjaTekkaman-Ninja etc$ kwrite profile/etc/profile:system-wide.profilefileforthe Bourne shellsechoProcessing /etc/profile. no-opSetsearchlibrary pathSet search library path in /etc/profileexportLD_LI
10、BRARY_PATH=/lib:/usr/libuser pathSet user path in /etc/profilePATH=/bin:/sbin:/usr/bin:/usr/sbinPATHPS1#注意:ash 除了SHELL变量外,支持u、h、W、$、!、n、w 、nnn(ASCII字符对应的八进制数)#以及exx;xxm(彩色特效)等等!#而且前面还要多加一个!Set PS1 in/etc/profileexport PS1=e05;32m$USERwa$e00;34mDone2、增加初始化文件tekkamanninjaTekkaman-Ninja etc$ kwrite ini
11、ttabsysinit:/etc/init.d/rcSrespawn:-/bin/loginrestart:/sbin/initctrlaltdel:/sbin/rebootshutdown:/bin/umount-a-r/sbin/swapoff-atekkamanninjaTekkaman-Ninja etc$ kwrite fstabproc/proc proc defaults 0 0none/tmp ramfs defaults 0 0mdev/dev ramfs defaults 0 0sysfs/sys sysfs defaults 0 03、增加初始化脚本tekkamannin
12、jaTekkaman-Ninja etc$ kwrite init.d/rcS-mount all/bin/mount-Starting mdev./bin/echo/sbin/mdev/proc/sys/kernel/hotplug-s* Tekkaman Ninja 2440 Rootfs(nfs) 2008.2 Love Linux ! ! Love Ke Ke ! *4、删除备份文件tekkamanninjaTekkaman-Ninja etc$ rm * init.d/*5、为mdev创建配置文件tekkamanninjaTekkaman-Ninja etc$ vi mdev.con
13、f创建一个mdev.conf文件,内容可有可无。(4)为使用用户登录功能移植TinyLogin1、下载从下载tinylogin-snapshot.tar.bz2,并解压.tar -xjvf tinylogin-snapshot.tar.bz22、修改tinyLogin的MakefiletekkamanninjaTekkaman-Ninja source$ cd tinylogintekkamanninjaTekkaman-Ninja tinylogin$ kwrite Makefile指明tinyLogin使用自己的算法来处理用户密码USE_SYSTEM_PWD_GRPfalse.CROSS=
14、/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编译并安装tekkamanninjaTekkaman-Ninja tinylogin$make PREFIX=/home/tekkamanninja/working/nfs/rootfs installAborting install-You must be root,otherwise I can
15、t.make tinylogin be setuid root, which will cause it to fail.make: * install错误1tekkamanninjaTekkaman-Ninja tinylogin$surootTekkaman-Ninja tinylogin# make PREFIX=/home/tekkamanninja/working/nfs/rootfs installrootTekkaman-Ninja tinylogin# exit-d tinyloginDynamic section at offset 0x9670 contains 21 en
16、tries:0x9c400x101600x81280x90700x85e014300x1974010640x98180x97c8800x975820x9606创建创建帐号及密码文件:cd././nfs/rootfs/etc/tekkamanninjaTekkaman-Ninja etc$rootTekkaman-Ninja etc#/etc/passwd.;/etc/shadow/etc/group.kwrite passwdroot:x:0:/root:kwrite grouprootkwrite shadow$1$N8K8eEQe$.XkJo3xcsjOE6vo1jW9Nk/:13923:
17、99999:7:rm*rm:是否删除 普通文件 “group”?y是否删除 普通文件 “passwd”?是否删除 普通文件 “shadow”?tekkamanninjaTekkaman-Ninja etc$这3个文件是从Host中拷贝过来的,只留下root帐号。那么现在 root的登陆密码和Host的登陆口令一致了,可以登录后再修改以及创建新用户。(若使用以上文件,则root密码为tekkaman)拷贝必需的动态库文件tekkamanninjaTekkaman-Ninja lib$-d/home/tekkamanninja/working/gcc4.1.1/gcc-4.1.1-glibc-2.
18、3.2/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib/ld*cp:略过目录 “/home/tekkamanninja/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib/ldscripts”/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.;/home/tek
19、kamanninja/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib/libc.so.6/home/tekkamanninja/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/lib/libm-*/home/tekkamanninja/working/gcc4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/arm-9tdmi
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1