ǶÈëʽLinuxϵͳCGI³ÌÐòÉè¼Æ¼¼Êõ
ǶÈëʽLinuxϵͳCGI³ÌÐòÉè¼Æ¼¼Êõ
ÕªÒª£ºÔÚÏêϸ½éÉÜÒ»ÖÖǶÈëʽWeb·þÎñÆ÷BOAµÄʵÏÖÓëÅäÖ÷½·¨µÄ»ù´¡ÉÏ£¬ÒÔÒ»¸öWebÔÚÏßÔ¶³Ì¼à¿ØGPIO£¨Í¨ÓÃÊäÈë/Êä³ö£©µÄ³ÌÐòΪʵÀý£¬½éÉÜǶÈëʽLinuxϵͳÏÂCPU³ÌÐòÉè¼Æ¼¼Êõ¡£
¹Ø¼ü´Ê£ºÇ¶ÈëʽϵͳLinux BOA CGI GPIO
1 ¸ÅÊö
Ëæ×Å»¥ÁªÍøÓ¦ÓÃµÄÆÕ¼°£¬Ô½À´Ô½¶àµÄÐÅÏ¢»¯²úÆ·ÐèÒª½ÓÈ뻥ÁªÍøÍ¨¹ýWebÒ³Ãæ½øÐÐÔ¶³Ì·ÃÎÊ¡£Ç¶ÈëʽWebϵͳÌṩÁËÒ»ÖÖ¾¼Ã¡¢ÊµÓõĻ¥ÁªÍøÇ¶Èëʽ½ÓÈë·½°¸¡£ÕâÀï½áºÏÒ»ÖÖǶÈëʽWeb Server BOAÀ´½éÉÜǶÈëʽLinuxϵͳϵÄCGI³ÌÐòÉè¼Æ¼¼Êõ¡£
2 Web Server BOAµÄʵÏÖÓëÅäÖÃ
2.1 uClinuxÏ£¬Ö÷ÒªÓÐÈý¸öWeb Server:HTTPD¡¢THTTPDºÍBOA¡£HTTPDÊÇ×î¼òµ¥µÄÒ»¸öWeb Server,ËüµÄ¹¦ÄÜ×îÈõ£¬²»Ö§³ÖÈÏÖ¤£¬²»Ö§³ÖCGI¡£THTTPDºÍBOA¶¼Ö§³ÖÈÏÖ¤¡¢CGIµÈ£¬¹¦Äܶ¼±È½ÏÈ«¡£BOAÊÇÒ»¸öµ¥ÈÎÎñµÄСÐÍHTTP·þÎñÆ÷£¬Ô´´úÂ뿪·Å¡¢ÐÔÄÜÓÅÐã£¬ÌØ±ðÊʺÏÓ¦ÓÃÔÚǶÈëʽϵͳÖС£Ä¿Ç°µÄuClinuxµÄ´úÂëÖÐÒѾ°üº¬BOAµÄÔ´´úÂë¡£ÔÚuClinuxÏÂʵÏÖBOA£¬Ö»ÐèÒª¶ÔBOA×öһЩÅäÖúÍÐ޸ġ£ÒÔÏÂÊÇÅäÖõĹý³Ì¡£
£¨1£©±àÒëBOAµ½ÄÚºË
Ê×ÏÈ£¬ÐèÒª°ÑBOA±àÒëµ½Äںˣ¬¼´Ö´ÐÐmake menuconfig£¬ÔÚÓ¦ÓóÌÐòÑ¡µ¥ÖÐnetwork applicationÏîÏÂÃæÑ¡Ôñboa¡£¸Ã²Ù×÷ÐèÒªÖØÐ±àÒëÄںˡ£
£¨2£©±àÖÆÅäÖÃÎļþboa.conf
ÔÚLinux²Ù×÷ϵͳÏ£¬Ó¦ÓóÌÐòµÄÅäÖö¼ÊÇÒÔÅäÖÃÎļþµÄÐÎʽÌṩµÄ£¬Ò»°ã¶¼ÊÇ·ÅÔÚÄ¿±ê°å/etc/Ŀ¼Ï»òÕß/etc/configĿ¼Ï¡£µ«boaµÄÅäÖÃÎļþboa.contÒ»°ã¶¼ÐýתÔÚÄ¿±ê°å/home/httpd/Ŀ¼Ï¡£
ÀýÈ磬һ¸öµäÐ͵Äboa.confÎļþ¸ñʽÈçÏ£º
ServerName Samsung-ARM
DocumentRoot/home/httpd
ScriptAlias/cgi-bin/home/httpd/cgi-bin/
ScriptAlias/index.html/home/httpd/index.html
ËüÖ¸¶¨ÁËHTMLÒ³Ãæ±ØÐë·Åµ½/home/httpdĿ¼Ï£¬cgiÍⲿÀ©Õ¹³ÌÐò±ØÐë·Åµ½/home/httpd/cgi-binĿ¼Ï¡£
£¨3£©±àÒëÉÕдÄÚºË
ÖØÐ±àÒëÄں˺ó£¬Í¨¹ýÉÕд¹¤¾ßÉÕдÄںˣ¬¾Í¿ÉÒÔÔÚPCÉÏͨ¹ýIEä¯ÀÀÆ÷·ÃÎÊ¿ª·¢°åÉϵÄWeb Server¡£ÀýÈ磬ÊäÈ뿪·¢°åµÄIPµØÖ·http://192.168.0.101£¬¼´¿É·ÃÎʵ½×Ô¼º×öµÄÍøÒ³index.htmlÁË¡£²¢ÇÒ£¬Í¨¹ý±àдCGIÍⲿÀ©Õ¹³ÌÐò£¬¿ÉÒÔʵÏÖ¶¯Ì¬Web¼¼Êõ£¬ÏÂÃæ½«Ïêϸ½éÉÜ¡£
2£®2 ¾ßÓÐMMUƽ̨µÄLinuxÏÂB0AµÄʵÏÖÓëÅäÖÃ
¶ÔÓÚÓÐMMU£¨ÄÚ´æ¹ÜÀíµ¥Ôª£©µÄƽ̨£¬ÈçarmlinuxºÍppclinux£¬¿ÉÒÔµ½ÍøÉÏÏÂÔØÒ»¸öÖ÷Á÷°æ±¾µÄboa·¢Ðаü¡£ÒòΪÊÇÔËÐÐÔÚÄ¿±êϵͳ£¬ËùÒÔÒªÓý»²æ±àÒ빤¾ß±àÒ룬¼´ÐèÒªÐÞ¸Äboa/src/MakefileÀïÃæµÄ±àÒëÆ÷¡£ÀýÈ磺
CC=/LinuxPPC/CDK/bin/powerpc-lin
Ïà¹ØÎĵµ£º
ϵͳ
# uname -a # ²é¿´ÄÚºË/²Ù×÷ϵͳ/CPUÐÅÏ¢
# head -n 1 /etc/issue # ²é¿´²Ù×÷ϵͳ°æ±¾
# cat /proc/cpuinfo # ²é¿´CPUÐÅÏ¢
# hostname &nbs ......
Linux·þÎñÆ÷ÔÚÆô¶¯Ê±ÐèÒªÆô¶¯ºÜ¶àϵͳ·þÎñ£¬ËüÃÇÏò±¾µØºÍÍøÂçÓû§ÌṩÁËLinuxµÄϵͳ¹¦Äܽӿڣ¬Ö±½ÓÃæÏòÓ¦ÓóÌÐòºÍÓû§¡£ÌṩÕâЩ·þÎñµÄ³ÌÐòÊÇÓÉÔËÐÐÔÚºǫ́µÄÊØ»¤½ø³Ì£¨daemons£©À´Ö´Ðеġ£ÊØ»¤½ø³ÌÊÇÉú´æÆÚ³¤µÄÒ»ÖÖ½ø³Ì¡£ËüÃǶÀÁ¢ÓÚ¿ØÖÆÖն˲¢ÇÒÖÜÆÚÐÔµÄÖ´ÐÐijÖÖÈÎÎñ»òµÈ´ý´¦ÀíijЩ·¢ÉúµÄʼþ¡£ËûÃdz£³£ÔÚϵͳÒýµ¼×°ÈëʱÆô¶ ......
¸ñʽ:ls [options] [filename]
×÷ÓÃ:ÏÔʾĿ¼ÄÚÈÝ,ÀàËÆdosµÄdir
³£ÓòÎÊý:
-a ²»Òþ²ØÈκÎÒÔ"."×Ö·û¿ªÊ¼µÄÎļþ
-l ʹÓýϳ¤µÄ¸ñʽÏÔʾÐÅÏ¢
-r °´ÕÕÎļþÃûµÄÄæÐò´òÓ¡Êä³ö
-F ¼ÓÉÏÎļþÀàÐ͵Äָʾ·û
¸ñʽ:cat [options] [filename]
×÷ÓÃ:ÏÔʾÎļþµÄÄÚÈÝ,ÊÇconcat ......
ǰÑÔ£ºÄ¿Ç°ÕýÔÚæÓÚARMƽ̨µÄLinuxÓ¦ÓóÌÐòµÄ¿ª·¢£¨ÆäʵÊÇ¸Õ¸ÕÆð²½Ñ§Ï°À²£©¡£µ×²ãµÄ¶«Î÷²»Óÿ¼ÂÇÁË£¬¿ª·¢°å×ÓÌṩÁËNAND Bootloader£¬ºÍLinux 2.6µÄÔ´Â룬¶øÇÒ¶¼±àÒëºÃÁË¡£×Ô¼º±àÒëµÄbootloader¿ÉÒÔÓ㬵«ÊÇLinux±àÒëºó£¬ÎļþºÜ´ó£¬ÔÝÇÒ¾ÍÓÃÈ˼ұàÒëµÄϵͳ£¬ÏÈרÐÄдӦÓóÌÐò °É¡£¡£
ÕýÎÄ£ºÒª×öµÄÈÎÎñÊÇ£¬°ÑÒ»¿é°å×ÓÉ쵀 ......
ÕâÒ»½ÚÎÒÃÇÀ´¿´¿´ÆäËûÏ̺߳¯Êý£º
int pthread_tryjoin_np(pthread_t thread_handle, void ** thread_return);
int pthread_timedjoin_np (pthread_t thread_handle, void **thread_return, __const struct timespec *abstime);
pthread_tryjoin_np»á¿ÉÒÔÓÃÀ´ÅжÏthread_handleÖ¸ÏòµÄÏß³ÌÊÇ·ñÒѾÖÐÖ¹£¬Èç¹ûûÓÐÔò*thre ......