LinuxÏÂÓÃBusy BoxÖÆ×÷RamdiskÈ«¹ý³Ì
-------------------------------------------------------------------------------------------------------
//By:yuyongbao
//QQ:673360056
LinuxÏÂÓÃBusy BoxÖÆ×÷RamdiskÈ«¹ý³Ì
1 ½¨Á¢¸ùÎļþϵͳ½á¹¹
#mkdir rootfs
#cd rootfs
#mkdir bin dev etc lib proc sbin tmp usr var
#chmod 1777 tmp
#mkdir usr/bin usr/lib usr/sbin
#mkdir var/lib var/lock var/log var/run var/tmp
#chmod 1777 var/tmp
2 ×¼±¸Á´½Ó¿â
#cd ${OBJ_LIB}/lib (${OBJ_LIB}Êǽ»²æ±àÒë»·¾³µÄĿ¼)
#for file in libc libcrypt libdl libm \
>libpthread libresolv libutil
>do
>cp $file-*.so /home/fortis/rootfs/lib
>cp -d $file.so.[*0-9] /home/fortis/rootfs/lib
>done
#cp -d ld*.so* /home/fortis/rootfs/lib
3 ʹÓÃbusyboxÖÆ×÷ϵͳӦÓóÌÐò
3.1 ÏÂÔØbusybox£¨http://www.busybox.net/£©²¢½âѹ¡£
3.2 ½øÈë½âѹºóµÄĿ¼£¬ÅäÖÃBusybox
$make menuconfig
Busybox Settings >
General Configuration >
[*] Support for devfs
Build Options >
[*] Build BusyBox as a static binary (no shared libs)
/* ½«busybox±àÒëΪ¾²Ì¬Á¬½Ó£¬ÉÙÁËÆô¶¯Ê±ÕÒ¶¯Ì¬¿âµÄÂé·³ */
[*] Do you want to build BusyBox with a Cross Compiler?
(/usr/local/arm/3.3.2/bin/armlinux)
Cross Compiler prefix/* Ö¸¶¨½»²æ±àÒ빤¾ß·¾¶ */
Init Utilities >
[*] init
[*] Support reading an inittab file
/* Ö§³Öinit¶ÁÈ¡/etc/inittabÅäÖÃÎļþ£¬Ò»¶¨ÒªÑ¡ÉÏ */
Shells >
Choose your default shell (ash) >
/* (X) ash Ñ¡ÖÐash£¬ÕâÑùÉú³ÉµÄʱºò²Å»áÉú³Ébin/shÎļþ
* ¿´¿´ÎÒÃÇǰͷµÄlinuxrc½Å±¾µÄÍ·Ò»¾ä£º
* #!/bin/sh ÊÇÓÉbin/shÀ´½âÊÍÖ´ÐеÄ
*/
[*] ash
Coreutils >
[*] cp
[*] cat
[*] ls
[*] mkdir
[*] echo (basic SuSv3 version taking no options)
[*] env
[*] mv
[*] pwd
[*] rm
[*] touch
Editors >
[*] vi
Linux System Utilities >
[*] mount
[*] umount
[*] Support loopback mounts
[*] Support for the old /etc/mtab file
Networking Utilities >
[*] inetd
/*
* Ö§³Öinetd³¬¼¶·þÎñÆ÷
*/
3.3 ±àÒë²¢°²×°Busybox
$make TARGET_ARCH=arm CROSS=armlinux\
PREFIX=/home/arm/dev_home/
Ïà¹ØÎĵµ£º
ÔÚlinuxÄÚºËÖÐÓÃÓÚÉêÇëÖжϵĺ¯ÊýÊÇrequest_irq£¨£©£¬º¯ÊýÔÐÍÔÚKernel/irq/manage.cÖж¨Ò壺
int request_irq(unsigned int irq, irq_handler_t handler,
unsigned ......
¡¡¡¡ls
¡¡¡¡ls ÃüÁî¿ÉÒÔ˵ÊÇlinuxÏÂ×î³£ÓõÄÃüÁîÖ®Ò»¡£ËüÓÐÖÚ¶àµÄÑ¡ÏÆäÖÐÓкܶàÊǺÜÓÐÓõģ¬ÄãÊÇ·ñÊìÏ¤ÄØ£¿ÏÂÃæÁгöÁË ls ÃüÁîµÄ¾ø´ó¶àÊýÑ¡Ïî¡£
¡¡¡¡-a ÁгöĿ¼ÏµÄËùÓÐÎļþ£¬°üÀ¨ÒÔ . ¿ªÍ·µÄÒþº¬Îļþ¡£
¡¡¡¡-b °ÑÎļþÃûÖв»¿ÉÊä³öµÄ×Ö·ûÓ÷´Ð±¸Ü¼Ó×Ö·û±àºÅ(¾ÍÏóÔÚCÓïÑÔÀïÒ»Ñù)µÄÐÎʽÁгö¡£
¡¡¡¡-c Êä³öÎļþµÄ i ½Ú ......
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/ioctl.h>
#include <net/if.h>
#include <stdio.h>
#include <string>
#include <iostream>
#include <cstring>
using namespace std;
void peek_interfaces(int ......
LinuxÌṩÁË´óÁ¿µÄÃüÁÀûÓÃËü¿ÉÒÔÓÐЧµØÍê³É´óÁ¿µÄ¹¤
×÷£¬Èç´ÅÅ̲Ù×÷¡¢Îļþ´æÈ¡¡¢Ä¿Â¼²Ù×÷¡¢½ø³Ì¹ÜÀí¡¢ÎļþȨÏÞÉ趨µÈ¡£ËùÒÔ£¬ÔÚLinuxϵͳÉϹ¤×÷Àë²»¿ªÊ¹ÓÃϵͳÌṩµÄÃüÁî¡£ÒªÏëÕæÕýÀí½âLinuxϵͳ£¬
¾Í±ØÐë´ÓLinuxÃüÁîѧÆð£¬Í¨¹ý»ù´¡µÄÃüÁîѧϰ¿ÉÒÔ½øÒ»²½Àí½âLinuxϵͳ¡£
²»Í¬Linux·¢ÐаæµÄÃüÁîÊýÁ¿²»Ò»Ñù£¬µ«Linux·¢Ð ......