ÔÚlinuxÏÂͨ¹ýsvn¸üÐÂÁËÒ»¸öphpÎļþ£¬Ä¿µÄÊÇÏëͨ¹ýÖ´ÐÐÕâ¸öÎļþÀ´¶ÁÊý¾Ý²åÈëµ½Êý¾Ý¿â¡£ÔÚÆäÖеļ¸Ì¨Ö´ÐÐûÓÐÎÊÌ⣬ÆäÖÐһ̨¾Í·¢ÏÖÁËCould not open input fileÕâ¸ö´íÎ󣬺óÀ´²éÕÒ×ÊÁϲŷ¢ÏÖÔÀ´ÊÇÎļþ¸ñʽµÄÎÊÌ⣬³ö´íʱÎļþ¸ñʽÊÇdos£¬¿ÉÒÔÔÚviÖÐÓÃ:set ffÀ´²é¿´£¬Èç¹ûÊÇdos¸ñʽ£¬ÄÇôÔòÓÃ:set ff=unixÀ´ÉèÖÃеĸñʽ£¬ÕâÑù¾ÍûÎÊÌâÁË¡£ ......
ÔÚlinuxÏÂͨ¹ýsvn¸üÐÂÁËÒ»¸öphpÎļþ£¬Ä¿µÄÊÇÏëͨ¹ýÖ´ÐÐÕâ¸öÎļþÀ´¶ÁÊý¾Ý²åÈëµ½Êý¾Ý¿â¡£ÔÚÆäÖеļ¸Ì¨Ö´ÐÐûÓÐÎÊÌ⣬ÆäÖÐһ̨¾Í·¢ÏÖÁËCould not open input fileÕâ¸ö´íÎ󣬺óÀ´²éÕÒ×ÊÁϲŷ¢ÏÖÔÀ´ÊÇÎļþ¸ñʽµÄÎÊÌ⣬³ö´íʱÎļþ¸ñʽÊÇdos£¬¿ÉÒÔÔÚviÖÐÓÃ:set ffÀ´²é¿´£¬Èç¹ûÊÇdos¸ñʽ£¬ÄÇôÔòÓÃ:set ff=unixÀ´ÉèÖÃеĸñʽ£¬ÕâÑù¾ÍûÎÊÌâÁË¡£ ......
ÄÚºËÆô¶¯µÄÏÖÔÚÒѾÊÇ¿ªÊ¼Ö´Ðк¯Êýstart_kernelº¯ÊýÁË¡£start_kernelº¯ÊýÔÚinit/main.cÖж¨Òå¡£start_kernelº¯ÊýÖ»ÊÇÍê³É
ÏàÓ¦µÄ½á¹¹µÄ³õʼ»¯ÈÎÎñ¡£
printk(KERN_NOTICE);
printk(linux_banner);
setup_arch(&command_line);
ÔÚubootµÄÒ»Ö±¹ý³ÌÖУ¬uboot´«µÝ¸økernelµÄ²ÎÊý£ºÔ¤ÏÈ´æ·ÅÔÚij¸öµØ·½µÄtagºÍ»úÆ÷ÀàÐÍid£¬»úÆ÷ÀàÐÍidÔÚº¯Êý__look_up_machine
ÖÐÒѾʹÓã¬tagÁбíÊÇÔÚº¯Êýsetup_archÖе÷Óõġ£setup_archº¯ÊýÊÇÔÚarch/arm/kernel/setup.cÖж¨Ò壺
void __init setup_arch(char **cmdline_p)
{
....
setup_processor(); // ´¦ÀíÆ÷Ïà¹ØµÄÉèÖÃ
mdesc = setup_machine(machine_arch_type); // µÃµ½machine_desc½á¹¹
machine_name = mdesc->name;
...
if (mdesc->boot_params) // ¶¨ÒåÁËubootµÄ²ÎÊý
tags = phys_to_virt(mdesc->boot_params); // µÃµ½uboot²ÎÊýtagµØÖ·
...
if (tags->hdr.tag == ATAG_CORE) {
& ......
ÄÚºËÆô¶¯µÄÏÖÔÚÒѾÊÇ¿ªÊ¼Ö´Ðк¯Êýstart_kernelº¯ÊýÁË¡£start_kernelº¯ÊýÔÚinit/main.cÖж¨Òå¡£start_kernelº¯ÊýÖ»ÊÇÍê³É
ÏàÓ¦µÄ½á¹¹µÄ³õʼ»¯ÈÎÎñ¡£
printk(KERN_NOTICE);
printk(linux_banner);
setup_arch(&command_line);
ÔÚubootµÄÒ»Ö±¹ý³ÌÖУ¬uboot´«µÝ¸økernelµÄ²ÎÊý£ºÔ¤ÏÈ´æ·ÅÔÚij¸öµØ·½µÄtagºÍ»úÆ÷ÀàÐÍid£¬»úÆ÷ÀàÐÍidÔÚº¯Êý__look_up_machine
ÖÐÒѾʹÓã¬tagÁбíÊÇÔÚº¯Êýsetup_archÖе÷Óõġ£setup_archº¯ÊýÊÇÔÚarch/arm/kernel/setup.cÖж¨Ò壺
void __init setup_arch(char **cmdline_p)
{
....
setup_processor(); // ´¦ÀíÆ÷Ïà¹ØµÄÉèÖÃ
mdesc = setup_machine(machine_arch_type); // µÃµ½machine_desc½á¹¹
machine_name = mdesc->name;
...
if (mdesc->boot_params) // ¶¨ÒåÁËubootµÄ²ÎÊý
tags = phys_to_virt(mdesc->boot_params); // µÃµ½uboot²ÎÊýtagµØÖ·
...
if (tags->hdr.tag == ATAG_CORE) {
& ......
°²×°³ÌÐòËùÐèÒªµÄ¹²Ïí¿âʱÐèҪעÒâµÄÎÊÌâ¡£
ÆðÒò£º°²×°libsqlite3.so.0 ºó£¬Ê¹ÓÃldd test ʱ£¬È´ÕÒ²»µ½¸Ã¿âÎļþ¡£
ÔÚʹÓÃcpptest¶ÔÔ³ÌÐòÔËÐе¥Ôª²âÊÔʱ£¬·¢ÏÖ´íÎ󣬼´ÕÒ²»µ½¿âÎļþ¡£
°²×°Íêlibsqlite3.so.0ºó£¬ÆäÊÇ´æ´¢ÔÚusr/local/libµÄ¡£ËùÒÔÎÊÌâÔÚÓÚ£¬linuxϵÄ×°ÔØ³ÌÐòloaderÊÇ·ñ»áËÑË÷Õâ¸ö·¾¶£¿
°´ÕÕ/etc/ld.so.cacheÖеĶ¯Ì¬Á´½Ó¿âÀ´½øÐÐËÑË÷£¬¶ø/etc/ld.so.cacheÊǶÁÈ¡µÄ/etc/ld.so.configÖеÄÄÚÈÝÀ´´´½¨µÄ¡£ËùÒÔ¿ÉÒÔÔÚ/etc/ld.so.configÖÐÌí¼Ólibsqlite3.so.oµÄ·¾¶¡£Ìí¼ÓÖ®ºóÔËÐÐldconfig£¬¸üÐÂ/etc/ld.so.cache¡£
ÔÙ´ÎÔËÐÐldd²é¿´Ê±£¬»òÕߣ¬ÔËÐÐcpptestµÄµ¥Ôª²âÊÔʱ£¬¾Íͨ¹ýÁË¡£
¶þ¡¢¹ØÓÚLinuxµÄ¶¯Ì¬¹²Ïí¿âµÄÉèÖÃ
¿ÉÖ´ÐгÌÐòÕÒ²»µ½ÒªÁ´½ÓµÄ¶¯Ì¬¹²Ïí¿â£¬ÕâÊÇLinuxÉÏÃæ±àÒëºÍÔËÐгÌÐòºÜÈÝÒ×Åöµ½µÄÎÊÌ⣬ͨ¹ýÉÏÃæµÄСÀý×Ó£¬ÎÒÃÇÒѾ´óÖÂÁ˽⹲Ïí¿âµÄÒ»µã»ù±¾ÔÀí£¬½ÓÏÂÀ´ÎÒÃÇҪ̽ÌÖÒ»ÏÂÔõôÉèÖóÌÐòѰÕÒ¶¯Ì¬¹²Ïí¿âµÄÐÐΪ¡£
Linux²Ù×÷ϵͳÉÏÃæµÄ¶¯Ì¬¹²Ïí¿â´óÖ·ÖΪÈýÀࣺ
1¡¢²Ù×÷ϵͳ¼¶±ðµÄ¹²Ïí¿âºÍ»ù´¡µÄϵͳ¹¤¾ß¿â
±È·½Ëµlibc.so, libz.so, libpthrea ......
³É¹¦ÊµÏÖLinuxÏÂpppdͨ¹ýGPRS²¦ºÅÉÏÍø
×ò
Ìì°Ñ¿ª·¢°åµÄbootloaderɾÁË,û°ì·¨,Ö»µÃÔÚPCÉϵ÷GPRS²¦ºÅÁË.ÏÈÔÚwindowsϲ¦ºÅ³É¹¦,È»ºóÓù¤¾ß¿´²¦ºÅʱ¾ßÌåʹÓÃÁËÄÄЩATÃü
Áî,ÔÙʹÓÃÕâЩÃüÁîµ½linuxÏÂʹÓÃpppdÀ´²¦ºÅ,×îºóÖÕÓڳɹ¦ÁË,֮ǰ¿ª·¢°åÉϲ»Äܳɹ¦²¦ºÅ¼«ÓпɾÍÊÇATÖ¸ÁîÓÐÎÊÌâ,ÏÖÔÚÖ»Óеȿª·¢°å»ØÀ´ºóÔÙµ½
ARM7Éϵ÷ÁË.
ÏÂÃæÌùһϲ¦ºÅʹÓõö½Å±¾,GPRSÄ£¿éÊÇʹÓõĻªÎªµÄGTM900-B:
1, /etc/ppp/peers/gprs:
¸´ÖÆÄÚÈݵ½¼ôÌù°å
´úÂë:
#/etc/ppp/peers/gprs
# This is pppd script for China Mobile, used Huawei GTM900-B GPRS Module
# Usage: root>pppd call gprs
/dev/ttyS0
19200
crtscts
modem
#noauth
debug
nodetach
#hide-password
usepeerdns
noipdefault
defaultroute
user "cmnet"
0.0.0.0:0.0.0.0
#ipcp-accept-local
#ipcp-accept-remote
#lcp-echo-failure 12
#lcp-echo-interval 3
#noccp
#novj
#novjccomp
#persist
connect '/usr/sbin/chat -s -v -f /etc/ppp/gprs-connect-chat'
#connect '/bin/chat -v -s ......
1. Íù/libºÍ/usr/libÀïÃæ¼Ó¶«Î÷£¬ÊDz»ÓÃÐÞ¸Ä/etc/ld.so.confµÄ£¬µ«ÊÇÍêÁËÖ®ºóÒªµ÷Ò»ÏÂldconfig£¬²»È»Õâ¸ölibrary»áÕÒ²»µ½
2. ÏëÍùÉÏÃæÁ½¸öĿ¼ÒÔÍâ¼Ó¶«Î÷µÄʱºò£¬Ò»¶¨ÒªÐÞ¸Ä/etc/ld.so.conf£¬È»ºóÔÙµ÷ÓÃldconfig£¬²»È»Ò²»áÕÒ²»µ½
±ÈÈç°²×°ÁËÒ»¸ömysqlµ½/usr/local/mysql£¬mysqlÓÐÒ»´ó¶ÑlibraryÔÚ/usr/local/mysql/libÏÂÃæ£¬Õâʱ¾ÍÐèÒªÔÚ/etc/ld.so.confÏÂÃæ¼ÓÒ»ÐÐ/usr/local/mysql/lib£¬±£´æ¹ýºóldconfigһϣ¬ÐµÄlibrary²ÅÄÜÔÚ³ÌÐòÔËÐÐʱ±»ÕÒµ½¡£
3. Èç¹ûÏëÔÚÕâÁ½¸öĿ¼ÒÔÍâ·Ålib£¬µ«ÊÇÓÖ²»ÏëÔÚ/etc/ld.so.confÖмӶ«Î÷£¨»òÕßÊÇûÓÐȨÏÞ¼Ó¶«Î÷£©¡£ÄÇÒ²¿ÉÒÔ£¬¾ÍÊÇexportÒ»¸öÈ«¾Ö±äÁ¿LD_LIBRARY_PATH£¬È»ºóÔËÐгÌÐòµÄʱºò¾Í»áÈ¥Õâ¸öĿ¼ÖÐÕÒlibrary¡£Ò»°ãÀ´½²ÕâÖ»ÊÇÒ»ÖÖÁÙʱµÄ½â¾ö·½°¸£¬ÔÚûÓÐȨÏÞ»òÁÙʱÐèÒªµÄʱºòʹÓá£
4. ldconfig×öµÄÕâЩ¶«Î÷¶¼ÓëÔËÐгÌÐòʱÓйأ¬¸ú±àÒëʱһµã¹ØÏµ¶¼Ã»ÓС£±àÒëµÄʱºò»¹ÊǸüÓ-L¾ÍµÃ¼Ó£¬²»Òª»ìÏýÁË¡£
5. ×ÜÖ®£¬¾ÍÊDz»¹Ü×öÁËʲô¹ØÓÚlibraryµÄ±ä¶¯ºó£¬×îºÃ¶¼ldconfigһϣ¬²»È»»á³öÏÖһЩÒâÏë²»µ½µÄ½á¹û¡£²»»á»¨Ì«¶àµÄʱ¼ä£¬µ«ÊÇ»áÊ¡ºÜ¶àµÄÊ¡£
¼¸¸öÌØÊâµÄ»·¾³±äÁ¿£º
LD_LIBRARY_PATH Õâ¸ö»·¾³±äÁ¿ÊÇ´ó¼Ò×îΪÊìϤµÄ£¬Ëü¸æËßloader£º ......
Ò»
ʹÓÃ¿â±ØÒªÐÔ
Ìá¸ß´úÂëÖØÓÃÐÔ¡£
¶þ
¿âµÄÖÖÀࣺ
1
¾²Ì¬¿â
Ò»°ãÒÔ
*.a
ÃüÃû¡£
³ÌÐò±àÒëʱ±»¼ÓÔØ£¬´Ëºó£¬Ö»Òª³ÌÐò²»±»ÖØÐ±àÒ룬¾²Ì¬¿â¾ÍûÓÐ×÷ÓÃÁË£¨¿ÉÒÔɾµô£©¡£
ÓÉ
ÓÚ¾²Ì¬¿âµÄ´úÂëÔÚ±àÒë¹ý³ÌÖÐÒѾ±»ÔØÈë¿ÉÖ´ÐгÌÐò£¬Òò´ËÌå»ý½Ï´ó£¬Èç¹ûÓжà¸öÓ¦ÓóÌÐò¶¼ÓÃÁËͬһ¸ö¾²Ì¬¿â£¬ÔÚ´æ·Å¿ÉÖ´ÐгÌÐòµÄÓ²ÅÌÖоͻáÓÐÕâ¸ö¾²Ì¬¿âµÄ¶à
·Ý¿½±´¡£Èç¹ûËûÃÇͬʱÔÚÔËÐУ¬ÄÇôÔÚÄÚ´æÖÐÒ²»áÓÐÕâ¸ö¾²Ì¬¿âµÄ¶à·Ý¿½±´¡£µ«ÊÇÈçÏÂÃæÌáµ½µÄ¶¯Ì¬¿âÏà±È½Ï£¬³ÌÐòÖ´ÐÐʱ¼ä±È½Ï¶Ì£¬ÒòΪûÓÐÖ´ÐÐʱ¿âº¯ÊýµÄ¼Ó
ÔØ¡£Ëùν“ÒԿռ任ʱ¼ä”¡£
ÏÂÃæÎÒÃÇÓÃÒ»¸öʵÀý˵Ã÷¾²Ì¬¿âµÄ±à³ÌºÍʹÓá£
//
¿âº¯Êý£º
hellowlib.c
#include <stdlib.h>
void printhellow()
{
printf("hellow,now in lib routine\n");
return ;
}
Ê×Ï ......