Òѽâ¾ö£ºLinuxÖÐÓÃsocketʵÏÖÊÓÆµ¡¢ÒôƵµÄͬ²½´«Êä
Posted on ÐÇÆÚËÄ, 4ÔÂ 23rd, 2009 at 1:55 ÉÏÎç
Ô´ÎÄÀ´×Ôhttp://www.isongzi.com/2009/04/23/Òѽâ¾ö£ºlinuxÏÂÓÃsocketʵÏÖÊÓÆµ¡¢ÒôƵµÄͬ²½´«Êä/
ÔÚ֮ǰµÄһƪÎÄÕÂÀïÒѾÌáµ½¹ýÊÓÆµ¡¢ÉùÒôµÄͬ²½´«ÊäÎÊÌ⣬µ±Ê±ÏëÁ˼¸¸ö·½°¸£¬µ±È»¶¼ÊǺܲ»³ÉÊìµÄÏë·¨¡£ÓÐЩÊÂÇéÖ»ÓÐ×öÁ˲ÅÖªµÀµ½µ×Ðв»ÐеÃͨ£¬ÓÐʱºòʵ¼ÊÇé¿ö±ÈÏëÏóµÃÒª¼òµ¥¡£
1¡¢´´½¨Á½¸öÏß³Ì-ÊÓÆµÏ̡߳¢ÒôƵÏ̡߳£
¹ØÓÚÊÓÆµ²¿·ÖµÄʵÏֲο¼ÕâÀÒôƵ²¿·ÖµÄʵÏֲο¼ÕâÀï¡£ÆäÖУ¬ÊÓÆµÊµÏÖµ¥Ïò´«Ê䣬ÒôƵʵÏÖË«Ïò´«Êä¡£Á½¸öÏß³ÌÖ®¼ä²¢Ã»ÓÐ×öÈκÎÀàËÆÓÚ“ÐźÅÁ¿“µÄͬ²½´ëÊ©¡£ÒòΪֻҪ±£Ö¤ÊÓÆµºÍÒôƵÊǔͬʱ“·¢ËÍ£¬ÔÚ½ÓÊն˾ͿÉÒÔ”¼¸ºõ“ͬʱÏÔʾºÍ²¥·Å¡£ÒòΪÊÇÔÚ¾ÖÓòÍøÖд«Ê䣬ËÙ¶ÈÓб£Ö¤£¬ÔÚÒªÇó²»ÊǺܿÁ¿ÌµÄÇé¿öÏ£¬Í¬²½ÊÇ¿ÉÒÔÂú×ãµÄ¡£¶øÇÒ£¬ÊÂʵҲ֤Ã÷ÁË£¬ÕâÖÖºÜÆÓËØµÄ·½·¨ÊÇÐеÃͨµÄ¡£
/*creat video and audio thread*/
pthread_create(&enc_tid,NULL,(void *)video_send, (void *)&arg);
//ÊÓÆµµÄÏêϸ½éÉܲο´ÕâÀï
pthread_create(&audio_tid,NULL,(void *)audio_encdec,(void *)&sockfd_audio);
//ÉùÒôµÄÏê ......
¹ØÓÚLinuxµÄÊÓÆµ±à³Ì(v4l2±à³Ì)
Posted on ÐÇÆÚÒ», 2ÔÂ 23rd, 2009 at 11:47 ÏÂÎç
Ô´ÎÄÀ´×Ôhttp://www.isongzi.com/2009/02/23/v4l2/
ǰÑÔ£ºÄ¿Ç°ÕýÔÚæÓÚARMƽ̨µÄLinuxÓ¦ÓóÌÐòµÄ¿ª·¢£¨ÆäʵÊÇ¸Õ¸ÕÆð²½Ñ§Ï°À²£©¡£µ×²ãµÄ¶«Î÷²»Óÿ¼ÂÇÁË£¬¿ª·¢°å×ÓÌṩÁËNAND Bootloader£¬ºÍLinux 2.6µÄÔ´Â룬¶øÇÒ¶¼±àÒëºÃÁË¡£×Ô¼º±àÒëµÄbootloader¿ÉÒÔÓ㬵«ÊÇLinux±àÒëºó£¬ÎļþºÜ´ó£¬ÔÝÇÒ¾ÍÓÃÈ˼ұàÒëµÄϵͳ£¬ÏÈרÐÄдӦÓóÌÐò °É¡£¡£
ÕýÎÄ£ºÒª×öµÄÈÎÎñÊÇ£¬°ÑÒ»¿é°å×ÓÉϵÄÉãÏñÍ·²É¼¯µÄͼÏñºÍÉù¿¨²É¼¯µÄÉùÒô£¨Ã²ËƺÜ啰à¹þ£©Í¨¹ýTCP/IPÐÒé´«Êäµ½ÁíÒ»¿é°å×ÓÉÏ¡£µÚÒ»²½£¬ÏȰÑÊÓÆµ»ñÈ¡²¢ÇÒÔÚ±¾µØLCDÉÏÏÔʾ¡£¿´Á˰å×ÓÌṩµÄÎĵµ£¬ÊÓÆµ´«ÊäÐèÒªÓÃV4L2µÄAPI¡£
Ò».ʲôÊÇvideo4linux
Video4linux2£¨¼ò³ÆV4L2),ÊÇlinuxÖйØÓÚÊÓÆµÉ豸µÄÄÚºËÇý¶¯¡£ÔÚLinuxÖУ¬ÊÓÆµÉ豸ÊÇÉ豸Îļþ£¬¿ÉÒÔÏñ·ÃÎÊÆÕͨÎļþÒ»Ñù¶ÔÆä½øÐжÁд£¬ÉãÏñÍ·ÔÚ/dev/video0Ï¡£
¶þ¡¢Ò»°ã²Ù×÷Á÷³Ì£¨ÊÓÆµÉ豸£©£º
1. ´ò¿ªÉ豸Îļþ¡£ int fd=open(”/dev/video0″,O_RDWR);
2. È¡µÃÉ豸µÄcapability£¬¿´¿´É豸¾ßÓÐʲô¹¦ÄÜ£¬±ÈÈçÊÇ·ñ¾ßÓÐÊÓÆµÊäÈë,»òÕßÒôƵÊäÈëÊä³öµÈ¡£VIDIOC_QUERYCAP,struct v ......
from: ¡¶×Ô¼º¶¯ÊÖд²Ù×÷ϵͳ¡·
1. ÖжÏÏòÁ¿±í ²é¿´ linux/init/main.c in http://lxr.linux.no/#linux+v2.6.32/init/main.c
2.
; [root@XXX XXX]# nasm -f elf foo.asm -o foo.o
; [root@XXX XXX]# gcc -c bar.c -o bar.o
; [root@XXX XXX]# ld -s foo.o bar.o -o foobar
; [root@XXX XXX]# ./foobar
; the 2nd one
; [root@XXX XXX]#
µ«ÊÇÎÒµÄcygwinϱ¨´í£º
$ ld -s foo.o bar.o -o foo
foo.o: In function `start':
foo.asm:(.text+0xb): undefined reference to `choose'
bar.o:bar.c:(.text+0x1e): undefined reference to `myprint'
bar.o:bar.c:(.text+0x34): undefined reference to `myprint'
3. cygwin ÖÐÎÄÂÒÂë £¨http://blog.sina.com.cn/s/blog_3ee207aa010008ml.html £©
Ö±½ÓÖ´ÐÐ
alias ls='ls --color --show-control-chars
--time-style=long-iso'
»òÕß°ÑÉÏÃæµÄÄÚÈݼӵ½/etc/profileÖÐÖØÆôCygwin¼´¿É¡£
ΪÁËʹʹÓøü·½±ã£¬ÍƼöÔö¼ÓÈçÏÂÅäÖÃÐÅÏ¢£º
1. ±à¼Óû§homeĿ¼ÏµÄÎļþ.inputc£¬È¥³ýÒÔϼ¸ÐеÄ×¢ÊÍ£º
set meta-flag on
# ¹Ø±ÕbashÃüÁîÐÐ8×Ö½Ú×Ö·ûתÒå·ûµÄת»»
set convert-meta off
# ʹbashÃüÁîÐÐÖ§³Ö8×Ö½Ú×Ö·ûÊä³ö
se ......
from: ¡¶×Ô¼º¶¯ÊÖд²Ù×÷ϵͳ¡·
1. ÖжÏÏòÁ¿±í ²é¿´ linux/init/main.c in http://lxr.linux.no/#linux+v2.6.32/init/main.c
2.
; [root@XXX XXX]# nasm -f elf foo.asm -o foo.o
; [root@XXX XXX]# gcc -c bar.c -o bar.o
; [root@XXX XXX]# ld -s foo.o bar.o -o foobar
; [root@XXX XXX]# ./foobar
; the 2nd one
; [root@XXX XXX]#
µ«ÊÇÎÒµÄcygwinϱ¨´í£º
$ ld -s foo.o bar.o -o foo
foo.o: In function `start':
foo.asm:(.text+0xb): undefined reference to `choose'
bar.o:bar.c:(.text+0x1e): undefined reference to `myprint'
bar.o:bar.c:(.text+0x34): undefined reference to `myprint'
3. cygwin ÖÐÎÄÂÒÂë £¨http://blog.sina.com.cn/s/blog_3ee207aa010008ml.html £©
Ö±½ÓÖ´ÐÐ
alias ls='ls --color --show-control-chars
--time-style=long-iso'
»òÕß°ÑÉÏÃæµÄÄÚÈݼӵ½/etc/profileÖÐÖØÆôCygwin¼´¿É¡£
ΪÁËʹʹÓøü·½±ã£¬ÍƼöÔö¼ÓÈçÏÂÅäÖÃÐÅÏ¢£º
1. ±à¼Óû§homeĿ¼ÏµÄÎļþ.inputc£¬È¥³ýÒÔϼ¸ÐеÄ×¢ÊÍ£º
set meta-flag on
# ¹Ø±ÕbashÃüÁîÐÐ8×Ö½Ú×Ö·ûתÒå·ûµÄת»»
set convert-meta off
# ʹbashÃüÁîÐÐÖ§³Ö8×Ö½Ú×Ö·ûÊä³ö
se ......
LinuxÄÚºËÖеÄplatform»úÖÆ
´ÓLinux 2.6ÆðÒýÈëÁËÒ»Ì×еÄÇý¶¯¹ÜÀíºÍ×¢²á»úÖÆ£ºplatform_deviceºÍplatform_driver¡£LinuxÖд󲿷ֵÄÉ豸Çý¶¯£¬¶¼¿ÉÒÔʹÓÃÕâÌ×»úÖÆ£¬É豸ÓÃplatform_device±íʾ£¬Çý¶¯ÓÃplatform_driver½øÐÐ×¢²á¡£
Linux platform driver»úÖÆºÍ´«Í³µÄdevice driver »úÖÆ(ͨ¹ýdriver_registerº¯Êý½øÐÐ×¢²á)Ïà±È£¬Ò»¸öÊ®·ÖÃ÷ÏÔµÄÓÅÊÆÔÚÓÚplatform»úÖÆ½«É豸±¾ÉíµÄ×ÊÔ´×¢²á½øÄںˣ¬ÓÉÄÚºËͳһ¹ÜÀí£¬ÔÚÇý¶¯³ÌÐòÖÐʹÓÃÕâЩ×ÊԴʱͨ¹ýplatform deviceÌṩµÄ±ê×¼½Ó¿Ú½øÐÐÉêÇ벢ʹÓá£ÕâÑùÌá¸ßÁËÇý¶¯ºÍ×ÊÔ´¹ÜÀíµÄ¶ÀÁ¢ÐÔ£¬²¢ÇÒÓµÓнϺõĿÉÒÆÖ²ÐԺͰ²È«ÐÔ(ÕâЩ±ê×¼½Ó¿ÚÊǰ²È«µÄ)¡£platform»úÖÆµÄ±¾ÉíʹÓò¢²»¸´ÔÓ£¬ÓÉÁ½²¿·Ö×é³É£ºplatform_deviceºÍplatfrom_driver¡£Í¨¹ýplatform»úÖÆ¿ª·¢µ×²ãÉ豸Çý¶¯µÄ´óÖÂÁ÷³ÌÈçͼËùʾ¡£
ͼ platform»úÖÆ¿ª·¢Çý¶¯Á÷³Ì
platform_device½á¹¹ÌåÓÃÀ´ÃèÊöÉ豸µÄÃû³Æ¡¢×ÊÔ´ÐÅÏ¢µÈ¡£¸Ã½á¹¹±»¶¨ÒåÔÚinclude/linux/platform_device.hÖУ¬¶¨ÒåÔÐÍÈçÏ£º
struct platform_device {
const char * name; //¶¨ÒåÆ½Ì¨É豸µÄÃû³Æ
int id;
struct  ......
LinuxÃæÊÔÌâ´óÈ« Ò»
²Ù×÷ϵͳ 2009-12-23 10:29 ÔĶÁ1 ÆÀÂÛ0 ×ֺţº ´ó´ó ÖÐÖРСС Ò»£®Ìî¿ÕÌ⣺
1. ÔÚLinuxϵͳÖУ¬ÒÔ Îļþ ·½Ê½·ÃÎÊÉ豸 ¡£
2. LinuxÄÚºËÒýµ¼Ê±£¬´ÓÎļþ /etc/fstab ÖжÁȡҪ¼ÓÔØµÄÎļþϵͳ¡£
3. LinuxÎļþϵͳÖÐÿ¸öÎļþÓà i½Úµã À´±êʶ¡£
4. È«²¿´ÅÅÌ¿éÓÉËĸö²¿·Ö×é³É£¬·Ö±ðΪÒýµ¼¿é ¡¢×¨ÓÃ¿é ¡¢ i½Úµã±í¿é ºÍÊý¾Ý´æ´¢¿é¡£
5. Á´½Ó·ÖΪ£º Ó²Á´½Ó ºÍ ·ûºÅÁ´½Ó ¡£
6. ³¬¼¶¿é°üº¬ÁËi½Úµã±í ºÍ ¿ÕÏпé±í µÈÖØÒªµÄÎļþϵͳÐÅÏ¢¡£
7. ijÎļþµÄȨÏÞΪ£ºdrw-r--r--£¬ÓÃÊýÖµÐÎʽ±íʾ¸ÃȨÏÞ£¬Ôò¸Ã°Ë½øÖÆÊýΪ£º 644 £¬¸ÃÎļþÊôÐÔÊÇ Ä¿Â¼ ¡£
8. ǰ̨Æð¶¯µÄ½ø³ÌʹÓà Ctrl+c ÖÕÖ¹¡£
9. ¾²Ì¬Â·ÓÉÉ趨ºó£¬ÈôÍøÂçÍØÆË½á¹¹·¢Éú±ä»¯£¬ÐèÓÉϵͳ¹ÜÀíÔ±Ð޸ķÓɵÄÉèÖá£
10. ÍøÂç¹ÜÀíµÄÖØÒªÈÎÎñÊÇ£º ¿ØÖÆ ºÍ ¼à¿Ø ¡£
11. °²×°Linuxϵͳ¶ÔÓ²ÅÌ·ÖÇøÊ±£¬±ØÐëÓÐÁ½ÖÖ·ÖÇøÀàÐÍ£º Îļþϵͳ·ÖÇø ºÍ ½»»»·ÖÇø ¡£
13. ±àдµÄShell³ÌÐòÔËÐÐǰ±ØÐ븳Óè¸Ã½Å±¾Îļþ Ö´ÐРȨÏÞ¡£
14. ϵͳ¹ÜÀíµÄÈÎÎñÖ®Ò»ÊÇÄܹ»ÔÚ ·Ö²¼Ê½ »·¾³ÖÐʵÏÖ¶Ô³ÌÐòºÍÊý¾ÝµÄ°²È«±£»¤¡¢±¸·Ý¡¢»Ö¸´ºÍ¸üС£
15. ϵͳ½»»»·ÖÇøÊÇ×÷Ϊϵͳ ÐéÄâ´æ´¢Æ÷ µÄÒ»¿éÇøÓò¡£
16. Äں˷ÖΪ ½ø³Ì¹ÜÀíϵͳ ¡ ......
֮ǰ·¢¹ýһƪÔÚWindowsϰ²×°TracµÄ·½·¨£¬²»¹ýTrac¸ü¶àµÄÊÇÔÚLinuxÏÂʹÓã¬
ËùÒÔÕâÀï½éÉÜÒ»ÏÂÔÚLinuxϵݲװ·½·¨¡£Ê±¹ý¾³Ç¨£¬TracÏÖÔÚÒÑÕýʽ·¢²¼ÁË0.11°æ£¬
Óë֮ǰµÄ0.9¡¢0.10Ïà±È£¬Õâ¸ö°æ±¾µÄ´úÂëä¯ÀÀÆ÷Ôö¼ÓÁËÐí¶à¹¦ÄÜ£¬
×îºÃÓõľÍÊÇËüÖ§³ÖsubversionµÄBlameÁË£¬¿ÉÒԲ鿴µ½Ô´´úÂëµÄÿһÐÐÊÇÔÚÄĸö°æ±¾ÓÉËÐ޸ĵġ£
ÕâÆªÎÄÕÂÊÇÔÚFedora Core 8ÉϽøÐе쬯äËûµÄRedHatϵµÄLinuxÓ¦¸Ã´óͬСÒì¡£
ÏÂÔØºÍ½â°ü
·Ï»°ÉÙ˵£¬ÏÈ´ÓTracµÄÏÂÔØÒ³Ãæ
ÉÏÏÂÔØ
×îеÄTrac-0.11.2.1°æ£¬È»ºó½âѹËõ¡£
$ wget http://ftp.edgewall.com/pub/trac/Trac-0.11.2.1.tar.gz
$ tar xzvf Trac-0.11.2.1.tar.gz
½â¿ªÖ®ºó²é¿´Ò»ÏÂÆäÖеÄINSTALLÎļþ£¬ÆäÖеÄRequirementsÒ»½ÚÏêϸÁгöÁ˰²×°TracËù±ØÐëµÄÈí¼þ£º
Python >= 2.3¡££¨Fedora Core 8×Ô´ø°æ±¾Îªpython-2.5.1£¬Ã»ÎÊÌ⣩
×¢Ò⣺Èç¹ûÊÇÓÃrpm°²×°µÄpython£¬ÄÇô»¹ÐèÒª°²×°python-develºÍpython-xml°ü¡££¨ÎÒÃǾÍÊÇÕâÖÖÇé¿ö£©
Genshi >= 0.5¡£'''£¨ÔÚÓëTracͬһ¸öÍøÕ¾ÉÏÓÐÏÂÔØ£©
¿ÉÑ¡µÄsubversion >= 1.0£¨ÍƼö>=1.1.x£©ºÍsubversionµÄSWIG Python°ó¶¨
PySQLite£¬ÐèÒªÓÃÓÚSQLite 3.x°æ±¾µÄPySQLite 2.x°æ
¿ÉÔËÐÐCGIµÄWeb·þ ......