LinuxÇý¶¯µÄÅäÖúͱàÒë½Å±¾
ÔÚÍê³ÉÁËÇý¶¯³ÌÐò´úÂëµÄ±àд֮ºó£¬½ÓÏÂÀ´µÄÈÎÎñ¾ÍÊDZàÒë¡£linuxÄں˱àÒëµÄ¹ý³ÌÊÇͨ¹ýÄÚºËÔ´ÂëµÄ¸ùĿ¼ºÍ¸÷×ÓĿ¼ÖеÄMakefile·Ö¼¶¹ÜÀíµÄ¡£ÆäÖиùĿ¼µÄMakefileÊÇ×îÖØÒªµÄ£¬Ëü¿ÉÒÔ¿´³ÉÊÇÆäËûMakefile×î³õµÄÈë¿Ú¡£Ëü¸ºÔð¶¨ÒåËùÓÐÓëÌåϵ½á¹¹Î޹صıäÁ¿ºÍÄ¿±ê£¬¶ÁÈ¡.configÎļþ£¬²¢¸ù¾ÝÆäÐÅÏ¢×îÖÕÉú³Évmlinux(elf¸ñʽµÄLinuxÄÚºË)ºÍmodules(Ä£¿é)¡£makeͨ¹ýÏòϵݹéµ÷ÓÃ×ÓĿ¼ÏµÄMakefileÀ´±àÒëÕâÁ½¸öÄ¿±ê¡£
ͨ³£Ï£Íû°ÑÇý¶¯³ÌÐò·ÅÔÚÄÚºËÀÔÚÅäÖÃÄÚºËʱ¿ÉÒÔ×ÔÓɲüô¡£ÕâÐèÒª¶ÔÄÚºËÅäÖýű¾KbuildÓÐÒ»¶¨µÃÁ˽⡣¾ßÌå¿ÉÒԲο¼ÄÚºËÔ´ÂëÖеÄDocumentation/kbuildĿ¼ÏµÄÏà¹ØÎĵµ
KbuildÊÇÒ»×éºÜÈÝÒ×ʹÓõĽű¾¡£Í¨³£Ö»ÐèÒª¹ØÐĸöĿ¼ÏµÄÁ½¸öÎļþ£ºKconfig(2.6ÄÚºË)ºÍMakefile¡£
ÒÔhelloÄ£¿éΪÀý
step1£º´úÂë±àд
mini2440_hello_module.c ·ÅÖõÄλÖÃ/opt/FriendlyARM/mini2440/linux2.6.29/drivers/char
´úÂëÈçÏÂ
/**********************************************************************************************/
/*Îļþ:mini2440_hello_module.c */
/*¼ò½é:HelloWorld */
/***********************************************************************************************/
#include<linux/init.h>
#include<linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_module_init(void)
{
printk(KERN_ALERT"Hello,world\n");
return 0;
}
static void hello_module_exit(void)
{
printk(KERN_ALERT"Goodbye, world\n");
}
module_init(hello_module_init);
module_exit(hello_module_exit);
step2£º ÔÚchar Ŀ¼Ï´ò¿ªKconfig(¿ÉÒÔÀí½âΪÊÇÄں˵ÄÅäÖýű¾)
Ìí¼Ó
config MINI2440_HELLO_MODULE
tristate "Mini2440/QQ2440 module sample"
depends on ARCH_S3C2440
default m if MACH_FRIE
Ïà¹ØÎĵµ£º
LinuxÌṩÁË´óÁ¿µÄÃüÁÀûÓÃËü¿ÉÒÔÓÐЧµØÍê³É´óÁ¿µÄ¹¤×÷£¬Èç´ÅÅ̲Ù×÷¡¢Îļþ´æÈ¡¡¢Ä¿Â¼²Ù×÷¡¢½ø³Ì¹ÜÀí¡¢ÎļþȨÏÞÉ趨µÈ¡£ËùÒÔ£¬ÔÚLinuxϵͳÉϹ¤×÷Àë²»¿ªÊ¹ÓÃϵͳÌṩµÄÃüÁî¡£ÒªÏëÕæÕýÀí½âLinuxϵͳ£¬¾Í±ØÐë´ÓLinuxÃüÁîѧÆð£¬Í¨¹ý»ù´¡µÄÃüÁîѧϰ¿ÉÒÔ½øÒ»²½Àí½âLinuxϵͳ¡£
²»Í¬Linux·¢ÐаæµÄÃüÁîÊýÁ¿²»Ò»Ñù£¬µ«Linux·¢ÐÐ°æ± ......
ʵÑé»·¾³£ºAS4×îС»¯°²×°
ʵÑéÄ¿±ê£º¼ÜÉèVSFTP·þÎñÆ÷
Õâ´ÎÎÒÃÇÀ´Ñ§Ï°LinuxϵͳÖÐµÄ vsftp·þÎñÆ÷µÄÅäÖá£
ÏÂÃæÎÒÃÇ¿ªÊ¼ÁË£¡Ê×ÏÈÎÒÃǰ²×°vsftp·þÎñÆ÷¶ËµÄÈí¼þ¡£
vsftpd·þÎñÆ÷µÄ°²×°ÎļþλÓÚµÚ1ÕŰ²×°¹âÅÌÖС£
ʹÓÃrpmÃüÃû¿É˳Àû°²×°¸ÃÈí¼þ°ü¡£
# rpm -ivh vsftpd-2.0.1-5.i386.r ......
LinuxϾ²Ì¬¿â.aÉú³É
1.½«¸÷º¯Êý´úÂëËùÔÚµÄÔ´Îļþ±àÒë³ÉĿ¼Îļþ¡£ÀýÈ磬¶ÔÓÚmyfunc.c£¬¿ÉÒÔÓÃÈçÏÂÃüÁî ½«Æä±àÒë³ÉÄ¿±êÎļþ£º
gcc -c myfunc.c
µ±È»ÔÚÓжà¸öÔ´Îļþʱ£¬Ö»ÐèÔÚgcc ÃüÁîÐÐÖн«Æä·Ö±ðÁÐÉϾͿÉÒÔÁË¡£¾´ËÒ»²½£¬½«Äܹ»µÃµ½¸÷Ô´ÎļþµÄÄ¿±êÎļþ¡£¶ÔÉÏÀý£¬½«µÃµ½myfunc.o
2.½«¸÷Ä¿±êÎļþÊÕ¼¯ÆðÀ´· ......
ÎÒÓõÄJava°æ±¾Îª1.4£¬ÓÃ1.5µÄʱºò˵ÊÇÓв»°²È«µÄ²Ù×÷£¬ÎÞ·¨±àÒë¡¢ÔËÐС£
ÏÂÔØ×îа汾£¬BRITE.tar.gz
$ gunzip BRITE.tar.gz
$ tar xvf BRITE.tar
$ cd BRITE/
$ make all
±àÒëÍê³É£¬ÔËÐÐBRITE
$ ./brite &
Ö÷ÒªµÄÎÊÌâ ......
ÆäʵLinuxÏÂSVN»¹ÊDZȽϼòµ¥£¬ ÔÚÍøÉÏ£¬ Ò»ËѾÍÊÇÒ»´ó°ÑµÄ×ÊÁÏ¡£ µ«ºÜÉÙÓÐÈËÒ»´Î°²×°³É¹¦£¬ ÒòΪLinuxÖеĻ·¾³Ì«¸´ÔÓ£¬
ºÜÈÝÒ×»·¾³³åÍ»¡£
linux svnÒ»°ãÒÀÀµÓÚhttpd£¨Apache Web·þÎñÆ÷£©.
svn¶ÀÁ¢·½Ê½
µ±È»svn»¹ÓжÀÁ¢·½Ê½£¬ ¼´²»ÐèÒªapache·þÎñÆ÷, ¼´Ìø¹ýÏÂÃæµÄapache°²×°£¬ ¼°ÅäÖÃÖйØÓÚhttpd.conf²¿·Ö¡£
ÔÚ±àÒës ......