<DIV>I&nbsp;have a&nbsp;Question&nbsp;that I&nbsp;encounter when I debug microtek2.c there is an Authorization function , when it will use ? is it when open xsane&nbsp;as a&nbsp;user&nbsp;not as a root so I must login first not as root and after that I can use the scanner , there is a problem that I don't understand where is goes wrong in this situation:</DIV>  <DIV>&nbsp;</DIV>  <DIV>1. when I use&nbsp;user login not root and then&nbsp;open xsane&nbsp; will have error the scanner I / O Port failed and the when I debug step by step to look for the error , it seems step into the sane_open function, and when after usb_open is open the handle device and after that step to usb_claim_interface it return error code. </DIV>  <DIV>&nbsp;</DIV>  <DIV>///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</DIV>  <DIV>sane_open (SANE_String_Const devicename, SANE_Handle *handle)<BR>{/*This function may return with one of the
 following status codes.<BR>&nbsp;1.SANE_STATUS_IO_ERROR: An error occured while communicating with the device.<BR>&nbsp;2.SANE_STATUS_NO_MEM: An insufficent amount of memory is available.<BR>&nbsp;3.SANE_STATUS_GOOD: XSane Open successfully.<BR>&nbsp;*/</DIV>  <DIV>&nbsp;Microtek_Scanner&nbsp;*ms = NULL;<BR>&nbsp;Microtek_Device&nbsp;&nbsp; &nbsp;*pdev;<BR></DIV>  <DIV>&nbsp;if (devicename[0])<BR>&nbsp;{/* selected */<BR>&nbsp;&nbsp;for(pdev = pdevFirst;pdev; pdev = pdev-&gt;next)<BR>&nbsp;&nbsp;&nbsp;if(!strcmp(devicename,pdev-&gt;sane.name))<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; /* no dynamic post-registration */<BR>&nbsp; &nbsp;}else<BR>&nbsp;{<BR>&nbsp;&nbsp;pdev=pdevFirst;<BR>&nbsp;}</DIV>  <DIV>&nbsp;if (!pdev)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;return SANE_STATUS_INVAL;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;ms = (Microtek_Scanner *)calloc(1,
 sizeof(Microtek_Scanner));<BR>&nbsp;if(!ms)<BR>&nbsp;&nbsp;return SANE_STATUS_NO_MEM;</DIV>  <DIV>&nbsp;ms-&gt;dev = pdev;<BR>&nbsp;ms-&gt;next = ms_first_handle; /* register open handle */<BR>&nbsp;ms_first_handle = ms;<BR>&nbsp;//ms-&gt;model = pdev-&gt;model; /* memorize model */<BR>&nbsp;/* open and prepare USB scanner handle */<BR>&nbsp;ms-&gt;hdev = usb_open(pdev-&gt;dev);</DIV>  <DIV>&nbsp;if (!ms-&gt;hdev)<BR>&nbsp;&nbsp; &nbsp;&nbsp;return SANE_STATUS_IO_ERROR;/*SetError(this,SANE_STATUS_IO_ERROR, "cannot open scanner device");&nbsp;&nbsp;&nbsp; */<BR><FONT color=#ff0000>&nbsp; &nbsp;if (usb_claim_interface(ms-&gt;hdev, 0))<BR>&nbsp;&nbsp; &nbsp;&nbsp;return SANE_STATUS_IO_ERROR</FONT><FONT color=#007f40>;/*SetError(this,SANE_STATUS_IO_ERROR, "cannot claim IF");&nbsp;&nbsp; */<BR></FONT>&nbsp; &nbsp;if (usb_set_configuration(ms-&gt;hdev, 1))<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;return SANE_STATUS_IO_ERROR;/*SetError(this,SANE_STATUS_IO_ERROR, "cannot set USB config 1");
 */</DIV>  <DIV>////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</DIV>  <DIV>&nbsp;</DIV>  <DIV>after has appear this SANE_STATUS_IO_ERROR , I try to plug off the USB cable or plug off &nbsp;the power adapter from scanner and after 2 seconds, I plug on it again&nbsp; and after that I re-run the xsane and it succesfull open xsane, but when I restart the computer and use other to login not root it still have the problem SANE _STATUS_IO_ERROR,&nbsp; where is goes wrong ? it seems need root authorization isn't it ? because I use root there is no problem with IO ERROR. </DIV>  <DIV>&nbsp;</DIV>  <DIV>I use REDHAT 9 kernel 2.4.20-8 and sane-backend 1.0.15 and xsane.0.97 </DIV>  <DIV>&nbsp;</DIV>  <DIV>Thanks for your help</DIV>  <DIV>&nbsp;</DIV>  <DIV>Best regards,</DIV>  <DIV>sofian</DIV><p>
                <hr size=1>New Yahoo! Messenger with Voice. <a href="http://us.rd.yahoo.com/mail_us/taglines/postman5/*http://us.rd.yahoo.com/evt=39666/*http://beta.messenger.yahoo.com">Call regular phones from your PC</a> and save big.