Lexmark S305 스캐너/프린터

Lexmark S305 스캐너/프린터

Lexmar Impact S305 스캐너/프린터를 구입했습니다. 상자에는 지원되는 시스템에 작은 펭귄과 "Linux"라는 단어가 있습니다. 문제는 공식 드라이버가 Debian 기반 및 RPM 기반 배포판에서만 사용할 수 있다는 것입니다. 아직 비공식 드라이버를 찾지 못했습니다.

그래픽 설치 프로그램이 있습니다. 내 배포판(Arch Linux)에서는 승리하지 못하지만 Mint Debian이 있는 가상 머신에 설치하면 프린터가 작동합니다. 또한 설치 프로그램에서 일부 파일(ppd, bin)을 추출했습니다.

내 질문.

프린터를 설정하려면 무엇이 필요합니까? ppd만으로는 부족한 것 같습니다.


업데이트 2011년 8월 3일

deb 파일에서 스크립트를 추출했습니다. 3개의 파일이 있습니다: control, postinst(17k) 및 prerm(4,2k).

# ./postinst 
Executing postin scripts ...
./postinst: line 73: [: ==: unary operator expected
sudo: unknown user: /usr/local/lexmark/legacy/bin/.scripts/demon
sudo: unable to initialize policy plugin

새 쉘에 들어갑니다.

sh-4.2# exit
exit
cp: cannot stat `/usr/local/lexmark/legacy/etc/lxS800.ppd': No such file or directory
cp: cannot stat `/usr/local/lexmark/legacy/etc/lxS800.ppd': No such file or directory

이 것이 마지막이다.

업데이트 2011년 3월 13일

70-82행:

#run device monitor
#TODO: investigate other ways to run daemon
#/bin/sh ${script}
if [ $username == "root" ]; then
    #/bin/sh /usr/local/lexmark/legacy/bin/.scripts/demon
    /bin/sh $script
else
    sudo -u $username /usr/local/lexmark/legacy/bin/.scripts/demon
    if [ $? -ne 0 ]; then
        #/bin/sh /usr/local/lexmark/legacy/bin/.scripts/demon
        /bin/sh $script
    fi
fi;

답변1

관련된 모든 스크립트를 게시하면 도움이 되지만 추측해 보겠습니다. 이는 bash 스크립트이지만 /bin/sh시스템에서 bash가 아닌 dash에 의해 실행됩니다. #!/bin/sh스크립트 상단의 행을 로 변경 #!/bin/bash하고 명시적 호출을 으로 /bin/sh변경 합니다 /bin/bash.

73행의 오류의 직접적인 원인은 $username설정되지 않았기 때문에 [명령이 피연산자 ==root(마지막 ])을 확인한다는 것입니다. 구문 오류입니다. 스크립트를 더 자세히 살펴보지 않으면 변수가 설정되지 않은 이유를 알 수 없습니다.

(귀하의 게시물에 포함된 스크립트의 작은 발췌문을 보면 작성자가 유닉스 셸 스크립트 작성 경험이 많지 않음을 알 수 있습니다. 제가 다른 곳에서 본 바에 따르면 이는 일반적으로 드라이버의 나머지 Linux 배포판에도 적용됩니다. 버전에서 제공되는 소스 드라이버는 제조업체에서 제공하는 드라이버보다 품질이 훨씬 좋은 경우가 많지만 안타깝게도 선택의 여지가 없는 것 같습니다.)

답변2

DEB 파일 내부를 살펴보고 DEBIAN 디렉터리로 이동합니다. 여기에서 패키지를 설치할 때 dpkg가 수행하는 작업을 배우고 해당 단계를 수동으로 복제해 봅니다. 그들은쉘 스크립트.

관련 정보