From: tarunkumar p. <par...@re...> - 2006-05-24 09:38:20
|
=A0=0Ahi all,=0A=0AI have cross-compiled fuse for freescale i.MX processor= (ARM9 core).=0AThe compiler used for it is gcc-3.4.4 with uclibc.=0AThe ke= rnel used is 2.6.11.4.=0Afuse version I tryed are fuse-2.5.2, fuse2.5.3 and= fuse-2.6.0-pre2=0AAlso patche given by Miklos and Ryan are tried.=0Aactual= ly I am trying to make it work for djmount (that mount upnp =0Amedia-server= as a file system).=0A=0AI am not able to make it work even for example pro= grams (fusexmp & =0Ahello). With dynamic linking of libraries examlple prog= rams gives =0Aerror message...=0Afusermount: mount failed - invalid argumen= t. after tracing it I found =0Athat ".," argument is passed to mount system= call.=0A=0AThis problem is solved by static linking but when I execute the= test =0Aprogram, shell command prompt do not come. Shell prompt come back = =0Aafter clt-C. =0AAfter tracing in the program execution sequence, I found= that it is =0Astukking in the kernel module. =0AI inserted printk debug me= ssage in every function of the kernel module=0Ato trace the execution seque= nce. I found that system stucks in =0Afunction request_wait() in file fuse-= 2.5.3/kernel/dev.c when it come =0Aacross system call schedule(); It seams = this function is not scheduled =0Aback again.=0A=0AThanks in advance.=0ATar= un=0A=0AOn pentium machine=0A$ export =0AC_INCLUDE_PATH=3D/usr/arm-linux/in= clude/fuse:/usr/arm-linux/include=0A$ arm-linux-gcc -static fusexmp.c -o = =0Afusexmp.out -lfuse -lpthread -D_FILE_OFFSET_BITS=3D64 -DFUSE_USE_VERSION= =3D25=0A=0AOn ARM9 machine=0A/tmp # mkdir /tmp/new=0A/tmp # fusexmp.out /tm= p/new -d=0A=0Afuse-2.5.3/kernel/inode.c: line=3D820: function=3Dfuse_get_= sb=0Afuse-2.5.3/kernel/inode.c: line=3D747: function=3Dfuse_fill_super=0A= fuse-2.5.3/kernel/inode.c: line=3D442: function=3Dparse_fuse_opt=0Afuse-2= .5.3/kernel/inode.c: line=3D752: function=3Dfuse_fill_super=0Afuse-2.5.3/= kernel/inode.c: line=3D770: function=3Dfuse_fill_super=0Afuse-2.5.3/kerne= l/inode.c: line=3D601: function=3Dget_conn=0Afuse-2.5.3/kernel/inode.c: = line=3D606: function=3Dget_conn=0Afuse-2.5.3/kernel/dev.c: line=3D51: fu= nction=3Dfuse_request_alloc=0Afuse-2.5.3/kernel/dev.c: line=3D51: functio= n=3Dfuse_request_alloc=0Afuse-2.5.3/kernel/dev.c: line=3D51: function=3Df= use_request_alloc=0Afuse-2.5.3/kernel/dev.c: line=3D51: function=3Dfuse_r= equest_alloc=0Afuse-2.5.3/kernel/dev.c: line=3D51: function=3Dfuse_reques= t_alloc=0Afuse-2.5.3/kernel/dev.c: line=3D51: function=3Dfuse_request_all= oc=0Afuse-2.5.3/kernel/dev.c: line=3D51: function=3Dfuse_request_alloc=0A= fuse-2.5.3/kernel/dev.c: line=3D51: function=3Dfuse_request_alloc=0Afuse-= 2.5.3/kernel/dev.c: line=3D51: function=3Dfuse_request_alloc=0Afuse-2.5.3= /kernel/dev.c: line=3D51: function=3Dfuse_request_alloc=0Afuse-2.5.3/kern= el/inode.c: line=3D592: function=3Dnew_conn=0Afuse-2.5.3/kernel/inode.c: = line=3D612: function=3Dget_conn=0Afuse-2.5.3/kernel/inode.c: line=3D778:= function=3Dfuse_fill_super=0Afuse-2.5.3/kernel/inode.c: line=3D637: fun= ction=3Dget_root_inode=0Afuse-2.5.3/kernel/inode.c: line=3D860: function= =3Dfuse_inode_init_once=0Afuse-2.5.3/kernel/inode.c: line=3D860: function= =3Dfuse_inode_init_once=0Afuse-2.5.3/kernel/inode.c: line=3D860: function= =3Dfuse_inode_init_once=0Afuse-2.5.3/kernel/inode.c: line=3D860: function= =3Dfuse_inode_init_once=0Afuse-2.5.3/kernel/inode.c: line=3D860: function= =3Dfuse_inode_init_once=0Afuse-2.5.3/kernel/inode.c: line=3D860: function= =3Dfuse_inode_init_once=0Afuse-2.5.3/kernel/inode.c: line=3D860: function= =3Dfuse_inode_init_once=0Afuse-2.5.3/kernel/inode.c: line=3D860: function= =3Dfuse_inode_init_once=0Afuse-2.5.3/kernel/inode.c: line=3D860: function= =3Dfuse_inode_init_once=0Afuse-2.5.3/kernel/inode.c: line=3D860: function= =3Dfuse_inode_init_once=0Afuse-2.5.3/kernel/inode.c: line=3D860: function= =3Dfuse_inode_init_once=0Afuse-2.5.3/kernel/inode.c: line=3D860: function= =3Dfuse_inode_init_once=0Afuse-2.5.3/kernel/dev.c: line=3D51: function=3D= fuse_request_alloc=0Afuse-2.5.3/kernel/inode.c: line=3D86: function=3Dfus= e_alloc_inode=0Afuse-2.5.3/kernel/inode.c: line=3D226: function=3Dfuse_in= ode_set=0Afuse-2.5.3/kernel/inode.c: line=3D197: function=3Dfuse_init_ino= de=0Afuse-2.5.3/kernel/inode.c: line=3D170: function=3Dfuse_change_attrib= utes=0Afuse-2.5.3/kernel/inode.c: line=3D272: function=3Dfuse_iget=0Afuse= -2.5.3/kernel/inode.c: line=3D794: function=3Dfuse_fill_super=0Afuse-2.5.= 3/kernel/dev.c: line=3D159: function=3Ddo_get_request=0Afuse-2.5.3/kernel= /dev.c: line=3D338: function=3Dbackground_request=0Afuse-2.5.3/kernel/dev= .c: line=3D390: function=3Dlen_args=0Afuse-2.5.3/kernel/dev.c: line=3D41= 7: function=3Dqueue_request=0Afuse-2.5.3/kernel/dev.c: line=3D457: funct= ion=3Drequest_send_nowait=0Afuse-2.5.3/kernel/dev.c: line=3D475: function= =3Drequest_send_background=0Afuse-2.5.3/kernel/dev.c: line=3D500: functio= n=3Dfuse_send_init=0Afuse-2.5.3/kernel/inode.c: line=3D803: function=3Dfu= se_fill_super=0Afuse-2.5.3/kernel/dev.c: line=3D904: function=3Dfuse_dev_= read=0Afuse-2.5.3/kernel/dev.c: line=3D819: function=3Dfuse_dev_readv=0Af= use-2.5.3/kernel/dev.c: line=3D777: function=3Drequest_wait=0Afuse-2.5.3/= kernel/dev.c: line=3D823: function=3Dfuse_dev_readv=0Afuse-2.5.3/kernel/d= ev.c: line=3D827: function=3Dfuse_dev_readv=0Afuse-2.5.3/kernel/dev.c: l= ine=3D833: function=3Dfuse_dev_readv=0Afuse-2.5.3/kernel/dev.c: line=3D83= 8: function=3Dfuse_dev_readv=0Afuse-2.5.3/kernel/dev.c: line=3D562: func= tion=3Dfuse_copy_init=0Afuse-2.5.3/kernel/dev.c: line=3D619: function=3Df= use_copy_fill=0Afuse-2.5.3/kernel/dev.c: line=3D724: function=3Dfuse_copy= _one=0Afuse-2.5.3/kernel/dev.c: line=3D724: function=3Dfuse_copy_one=0Afu= se-2.5.3/kernel/dev.c: line=3D745: function=3Dfuse_copy_args=0Afuse-2.5.3= /kernel/dev.c: line=3D885: function=3Dfuse_dev_readv=0Aunique: 1, opcode:= INIT (26), nodeid: 0, insize: 48=0AINIT: 7.5=0A=0Afuse-2.5.3/kernel/dev.c:= line=3D562: function=3Dfuse_copy_init=0Afuse-2.5.3/kernel/dev.c: line= =3D619: function=3Dfuse_copy_fill=0A INIT: 7.5=0A=0A unique: 1, error:= 0 (Success), outsize: 40=0Afuse-2.5.3/kernel/dev.c: line=3D724: function= =3Dfuse_copy_one=0Afuse-2.5.3/kernel/dev.c: line=3D920: function=3Dreques= t_find=0Afuse-2.5.3/kernel/dev.c: line=3D390: function=3Dlen_args=0Afuse-= 2.5.3/kernel/dev.c: line=3D619: function=3Dfuse_copy_fill=0Afuse-2.5.3/ke= rnel/dev.c: line=3D724: function=3Dfuse_copy_one=0Afuse-2.5.3/kernel/dev.= c: line=3D745: function=3Dfuse_copy_args=0Afuse-2.5.3/kernel/dev.c: line= =3D227: function=3Dfuse_release_background=0Afuse-2.5.3/kernel/dev.c: lin= e=3D250: function=3Dprocess_init_reply=0Afuse-2.5.3/kernel/dev.c: line=3D= 192: function=3Dfuse_putback_request=0Afuse-2.5.3/kernel/dev.c: line=3D20= 4: function=3Dfuse_put_request=0Afuse-2.5.3/kernel/dev.c: line=3D294: fu= nction=3Drequest_end=0Afuse-2.5.3/kernel/dev.c: line=3D1048: function=3Df= use_dev_writev=0Afuse-2.5.3/kernel/dev.c: line=3D904: function=3Dfuse_dev= _read=0Afuse-2.5.3/kernel/dev.c: line=3D819: function=3Dfuse_dev_readv=0A= fuse-2.5.3/kernel/dev.c: line=3D758: function=3Drequest_wait=0Afuse-2.5.3= /kernel/dev.c: line=3D766: function=3Drequest_wait=0Afuse-2.5.3/kernel/de= v.c: line=3D904: function=3Dfuse_dev_read=0Afuse-2.5.3/kernel/dev.c: lin= e=3D819: function=3Dfuse_dev_readv=0Afuse-2.5.3/kernel/dev.c: line=3D758:= function=3Drequest_wait=0Afuse-2.5.3/kernel/dev.c: line=3D766: function= =3Drequest_wait=0A=0A=0AOne more thing I noticed that request_wait() is cal= led twice in the =0Aend.=0AAt first occurence when when scheduler is called= , it is scheduling =0Afunction =0Afuse_dev_read (notice last 7 lines of deb= ug message), and againg it =0Alend to same function.=0AThis time it stucks = after scheduler call.=0A=0Afunction request_wait() in file fuse-2.5.3/kerne= l/dev.c where it =0Astucks=0A/* Wait until a request is available on the pe= nding list */=0Astatic void request_wait(struct fuse_conn *fc)=0Ahi all,=0A= =0AI have cross-compiled fuse for freescale i.MX processor (ARM9 core).=0AT= he compiler used for it is gcc-3.4.4 with uclibc.=0AThe kernel used is 2.6.= 11.4.=0Afuse version I tryed are fuse-2.5.2, fuse2.5.3 and fuse-2.6.0-pre2= =0AAlso patche given by Miklos and Ryan are tried.=0Aactually I am trying t= o make it work for djmount (that mount upnp =0Amedia-server as a file syste= m).=0A=0AI am not able to make it work even for example programs (fusexmp &= =0Ahello). With dynamic linking of libraries examlple programs gives =0Aer= ror message...=0Afusermount: mount failed - invalid argument. after tracing= it I found =0Athat ".," argument is passed to mount system call.=0A=0AThis= problem is solved by static linking but when I execute the test =0Aprogram= , shell command prompt do not come. Shell prompt come back =0Aafter clt-C. = =0AAfter tracing in the program execution sequence, I found that it is =0As= tukking in the kernel module. =0AI inserted printk debug message in every f= unction of the kernel module=0Ato trace the execution sequence. I found tha= t system stucks in =0Afunction request_wait() in file fuse-2.5.3/kernel/dev= .c when it come =0Aacross system call schedule(); It seams this function is= not scheduled =0Aback again.=0A=0AThanks in advance.=0ATarun=0A=0AOn penti= um machine=0A$ export =0AC_INCLUDE_PATH=3D/usr/arm-linux/include/fuse:/usr/= arm-linux/include=0A$ arm-linux-gcc -static fusexmp.c -o =0Afusexmp.out -lf= use -lpthread -D_FILE_OFFSET_BITS=3D64 -DFUSE_USE_VERSION=3D25=0A=0AOn ARM9= machine=0A/tmp # mkdir /tmp/new=0A/tmp # fusexmp.out /tmp/new -d=0A=0Afuse= -2.5.3/kernel/inode.c: line=3D820: function=3Dfuse_get_sb=0Afuse-2.5.3/ke= rnel/inode.c: line=3D747: function=3Dfuse_fill_super=0Afuse-2.5.3/kernel/= inode.c: line=3D442: function=3Dparse_fuse_opt=0Afuse-2.5.3/kernel/inode.= c: line=3D752: function=3Dfuse_fill_super=0Afuse-2.5.3/kernel/inode.c: l= ine=3D770: function=3Dfuse_fill_super=0Afuse-2.5.3/kernel/inode.c: line= =3D601: function=3Dget_conn=0Afuse-2.5.3/kernel/inode.c: line=3D606: fun= ction=3Dget_conn=0Afuse-2.5.3/kernel/dev.c: line=3D51: function=3Dfuse_re= quest_alloc=0Afuse-2.5.3/kernel/dev.c: line=3D51: function=3Dfuse_request= _alloc=0Afuse-2.5.3/kernel/dev.c: line=3D51: function=3Dfuse_request_allo= c=0Afuse-2.5.3/kernel/dev.c: line=3D51: function=3Dfuse_request_alloc=0Af= use-2.5.3/kernel/dev.c: line=3D51: function=3Dfuse_request_alloc=0Afuse-2= .5.3/kernel/dev.c: line=3D51: function=3Dfuse_request_alloc=0Afuse-2.5.3/= kernel/dev.c: line=3D51: function=3Dfuse_request_alloc=0Afuse-2.5.3/kerne= l/dev.c: line=3D51: function=3Dfuse_request_alloc=0Afuse-2.5.3/kernel/dev= .c: line=3D51: function=3Dfuse_request_alloc=0Afuse-2.5.3/kernel/dev.c: = line=3D51: function=3Dfuse_request_alloc=0Afuse-2.5.3/kernel/inode.c: lin= e=3D592: function=3Dnew_conn=0Afuse-2.5.3/kernel/inode.c: line=3D612: fu= nction=3Dget_conn=0Afuse-2.5.3/kernel/inode.c: line=3D778: function=3Dfus= e_fill_super=0Afuse-2.5.3/kernel/inode.c: line=3D637: function=3Dget_root= _inode=0Afuse-2.5.3/kernel/inode.c: line=3D860: function=3Dfuse_inode_ini= t_once=0Afuse-2.5.3/kernel/inode.c: line=3D860: function=3Dfuse_inode_ini= t_once=0Afuse-2.5.3/kernel/inode.c: line=3D860: function=3Dfuse_inode_ini= t_once=0Afuse-2.5.3/kernel/inode.c: line=3D860: function=3Dfuse_inode_ini= t_once=0Afuse-2.5.3/kernel/inode.c: line=3D860: function=3Dfuse_inode_ini= t_once=0Afuse-2.5.3/kernel/inode.c: line=3D860: function=3Dfuse_inode_ini= t_once=0Afuse-2.5.3/kernel/inode.c: line=3D860: function=3Dfuse_inode_ini= t_once=0Afuse-2.5.3/kernel/inode.c: line=3D860: function=3Dfuse_inode_ini= t_once=0Afuse-2.5.3/kernel/inode.c: line=3D860: function=3Dfuse_inode_ini= t_once=0Afuse-2.5.3/kernel/inode.c: line=3D860: function=3Dfuse_inode_ini= t_once=0Afuse-2.5.3/kernel/inode.c: line=3D860: function=3Dfuse_inode_ini= t_once=0Afuse-2.5.3/kernel/inode.c: line=3D860: function=3Dfuse_inode_ini= t_once=0Afuse-2.5.3/kernel/dev.c: line=3D51: function=3Dfuse_request_allo= c=0Afuse-2.5.3/kernel/inode.c: line=3D86: function=3Dfuse_alloc_inode=0Af= use-2.5.3/kernel/inode.c: line=3D226: function=3Dfuse_inode_set=0Afuse-2.= 5.3/kernel/inode.c: line=3D197: function=3Dfuse_init_inode=0Afuse-2.5.3/k= ernel/inode.c: line=3D170: function=3Dfuse_change_attributes=0Afuse-2.5.3= /kernel/inode.c: line=3D272: function=3Dfuse_iget=0Afuse-2.5.3/kernel/ino= de.c: line=3D794: function=3Dfuse_fill_super=0Afuse-2.5.3/kernel/dev.c: = line=3D159: function=3Ddo_get_request=0Afuse-2.5.3/kernel/dev.c: line=3D3= 38: function=3Dbackground_request=0Afuse-2.5.3/kernel/dev.c: line=3D390: = function=3Dlen_args=0Afuse-2.5.3/kernel/dev.c: line=3D417: function=3Dqu= eue_request=0Afuse-2.5.3/kernel/dev.c: line=3D457: function=3Drequest_sen= d_nowait=0Afuse-2.5.3/kernel/dev.c: line=3D475: function=3Drequest_send_b= ackground=0Afuse-2.5.3/kernel/dev.c: line=3D500: function=3Dfuse_send_ini= t=0Afuse-2.5.3/kernel/inode.c: line=3D803: function=3Dfuse_fill_super=0Af= use-2.5.3/kernel/dev.c: line=3D904: function=3Dfuse_dev_read=0Afuse-2.5.3= /kernel/dev.c: line=3D819: function=3Dfuse_dev_readv=0Afuse-2.5.3/kernel/= dev.c: line=3D777: function=3Drequest_wait=0Afuse-2.5.3/kernel/dev.c: li= ne=3D823: function=3Dfuse_dev_readv=0Afuse-2.5.3/kernel/dev.c: line=3D827= : function=3Dfuse_dev_readv=0Afuse-2.5.3/kernel/dev.c: line=3D833: funct= ion=3Dfuse_dev_readv=0Afuse-2.5.3/kernel/dev.c: line=3D838: function=3Dfu= se_dev_readv=0Afuse-2.5.3/kernel/dev.c: line=3D562: function=3Dfuse_copy_= init=0Afuse-2.5.3/kernel/dev.c: line=3D619: function=3Dfuse_copy_fill=0Af= use-2.5.3/kernel/dev.c: line=3D724: function=3Dfuse_copy_one=0Afuse-2.5.3= /kernel/dev.c: line=3D724: function=3Dfuse_copy_one=0Afuse-2.5.3/kernel/d= ev.c: line=3D745: function=3Dfuse_copy_args=0Afuse-2.5.3/kernel/dev.c: l= ine=3D885: function=3Dfuse_dev_readv=0Aunique: 1, opcode: INIT (26), nodei= d: 0, insize: 48=0AINIT: 7.5=0A=0Afuse-2.5.3/kernel/dev.c: line=3D562: fu= nction=3Dfuse_copy_init=0Afuse-2.5.3/kernel/dev.c: line=3D619: function= =3Dfuse_copy_fill=0A INIT: 7.5=0A=0A unique: 1, error: 0 (Success), out= size: 40=0Afuse-2.5.3/kernel/dev.c: line=3D724: function=3Dfuse_copy_one= =0Afuse-2.5.3/kernel/dev.c: line=3D920: function=3Drequest_find=0Afuse-2.= 5.3/kernel/dev.c: line=3D390: function=3Dlen_args=0Afuse-2.5.3/kernel/dev= .c: line=3D619: function=3Dfuse_copy_fill=0Afuse-2.5.3/kernel/dev.c: lin= e=3D724: function=3Dfuse_copy_one=0Afuse-2.5.3/kernel/dev.c: line=3D745: = function=3Dfuse_copy_args=0Afuse-2.5.3/kernel/dev.c: line=3D227: functio= n=3Dfuse_release_background=0Afuse-2.5.3/kernel/dev.c: line=3D250: functi= on=3Dprocess_init_reply=0Afuse-2.5.3/kernel/dev.c: line=3D192: function= =3Dfuse_putback_request=0Afuse-2.5.3/kernel/dev.c: line=3D204: function= =3Dfuse_put_request=0Afuse-2.5.3/kernel/dev.c: line=3D294: function=3Dreq= uest_end=0Afuse-2.5.3/kernel/dev.c: line=3D1048: function=3Dfuse_dev_writ= ev=0Afuse-2.5.3/kernel/dev.c: line=3D904: function=3Dfuse_dev_read=0Afuse= -2.5.3/kernel/dev.c: line=3D819: function=3Dfuse_dev_readv=0Afuse-2.5.3/k= ernel/dev.c: line=3D758: function=3Drequest_wait=0Afuse-2.5.3/kernel/dev.= c: line=3D766: function=3Drequest_wait=0Afuse-2.5.3/kernel/dev.c: line= =3D904: function=3Dfuse_dev_read=0Afuse-2.5.3/kernel/dev.c: line=3D819: = function=3Dfuse_dev_readv=0Afuse-2.5.3/kernel/dev.c: line=3D758: function= =3Drequest_wait=0Afuse-2.5.3/kernel/dev.c: line=3D766: function=3Drequest= _wait=0A=0A=0AOne more thing I noticed that request_wait() is called twice = in the =0Aend. At first occurence when when scheduler is called, it is =0As= cheduling function fuse_dev_read (notice last 7 lines of debug =0Amessage),= and againg it lend to same function. This time it stucks =0Aafter schedule= r call.=0A=0Afunction request_wait() in file fuse-2.5.3/kernel/dev.c where = it =0Astucks =0A/* Wait until a request is available on the pending list */= =0Astatic void request_wait(struct fuse_conn *fc)=0A{=0A DECLARE_WAITQUEUE(= wait, current);=0A=0A add_wait_queue_exclusive(&fc->waitq, &wait);=0A while= (fc->mounted && list_empty(&fc->pending)) {=0A=0A printk("\n%s: line=3D%d= : =0Afunction=3D%s\n",__FILE__,__LINE__,__FUNCTION__);//line=3D758=0A=0A = set_current_state(TASK_INTERRUPTIBLE);=0A if (signal_pending(current))=0A = break;=0A=0A spin_unlock(&fuse_lock);=0A=0A printk("\n%s: line=3D%d: = =0Afunction=3D%s\n",__FILE__,__LINE__,__FUNCTION__);//line=3D766=0A=0A sch= edule(); ////******** Stucks here **********=0A=0A printk("\n%s: line=3D%d= : =0Afunction=3D%s\n",__FILE__,__LINE__,__FUNCTION__);=0A=0A spin_lock(&f= use_lock);=0A }=0A set_current_state(TASK_RUNNING);=0A remove_wait_queue(&f= c->waitq, &wait);=0A=0Aprintk("\n%s: line=3D%d: =0Afunction=3D%s\n",__FIL= E__,__LINE__,__FUNCTION__);=0A=0A}=0A=0A=0A=0A=0A=0A=0A=0A=0A=0A=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D=0ATARUN KUM= AR PARIHAR=0D=0AII M.Tech CEDT,=0D=0AIndian Institute of Science,=0D=0ABang= alore-12=0D=0AContact no. +91 9242258877=0D=0ALab- Motorola Digital DNA Lab= 22932970 Ext. 208=0D=0A=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=0D=0A |
From: Christian M. <ma...@ma...> - 2006-05-24 10:06:54
|
On Wed, 2006-05-24 at 09:36 +0000, tarunkumar parihar wrote: > > hi all, > > I have cross-compiled fuse for freescale i.MX processor (ARM9 core). > The compiler used for it is gcc-3.4.4 with uclibc. > The kernel used is 2.6.11.4. > fuse version I tryed are fuse-2.5.2, fuse2.5.3 and fuse-2.6.0-pre2 > Also patche given by Miklos and Ryan are tried. > actually I am trying to make it work for djmount (that mount upnp > media-server as a file system). > > I am not able to make it work even for example programs (fusexmp & > hello). With dynamic linking of libraries examlple programs gives > error message... > fusermount: mount failed - invalid argument. after tracing it I found > that ".," argument is passed to mount system call. Which patches did you apply? I have compiled fuse-2.6.0-pre2 for my Linksys NSLU2, and then I had to apply a patch to fix a cpu-cache problem. http://home.mag.cx/nslu2/source/fuse-2.6.0-pre2.diff.txt Depending which kernel you have, flush_cache_page() has 2 or 3 arguments. Similar patch could be applied to 2.5.3 if you want to use that version. # cat /proc/cpuinfo Processor : XScale-IXP425/IXC1100 rev 1 (v5b) BogoMIPS : 131.48 Features : swp half thumb fastmult edsp Hardware : Intel IXDP425 Development Platform Revision : 0000 Serial : 0000000000000000 # cat /proc/version Linux version 2.4.22-xfs (un...@un...) (gcc version 3.4.4) #1 Mon Apr 10 18:17:11 PDT 2006 That patch solved the problem I had with hanging fuse-applications... but I don't know if that's the same problem you have... /Christian |
From: Miklos S. <mi...@sz...> - 2006-05-24 10:30:18
|
> One more thing I noticed that request_wait() is called twice in the > end. At first occurence when when scheduler is called, it is > scheduling function fuse_dev_read (notice last 7 lines of debug > message), and againg it lend to same function. This time it stucks > after scheduler call. It's just waiting for a request. What happens if you try to list the contents of the mount? Miklos |