Fedora Users Forum

Fedoraユーザのためのサポートフォーラム
現在時刻 - 2019年7月21日(日) 15:39

All times are UTC + 9 hours





新しいトピックを投稿する トピックへ返信する  [ 4 件の記事 ] 
作成者 メッセージ
 記事の件名: [解決済み]Fedora11でのプリンタ設定方法(Canon Satera LBP5300)
投稿記事Posted: 2009年7月25日(土) 07:40 
オフライン
プライベートメッセージ送信  メール  プロフィール

登録日時: 2009年3月19日(木) 14:31
記事: 46

Sponsored Links

 Fedora11をインストールしました。プリンタはCanon Satera LBP5300というレーザープリンタを使おうとしています。
 SELinux無効下でテストページが印刷できたのですが、その後、トラブルに見舞われました。まずテストページを連続して印刷するように指示すると、エラーがこう出ました(http://localhost:631/printers/LBP5300より転記)。


LBP5300-2 testprint root 1k 不明 Sat Jul 25 07:22:01 2009
から保留中
"/usr/lib/cups/backend/ccp failed"

 また、「プリンターの開始」を選択していない場合は、このようなエラーが出る場合もありました。

Sat Jul 25 08:13:29 2009
から保留中
"Can't open FIFO: Permission denied"


  「プリンタの開始」を選択すると、エラー内容は以下のように変わりました。

 "/usr/lib/cups/backend/ccp failed"



 印刷が必要になる度に(PCを再起動する度に)、http://localhost:631/printers/LBP5300にアクセスして、「プリンタの開始」を選択するのは、非常に面倒です。自動で選択してくれる方法はないものかと悩んでおります。


 印刷に失敗した後のプリンタの状態は以下のとおりです。

LBP5300 (一時停止中, ジョブを受け付け中, 共有)



 印刷のために行ったコマンドはこれです。

# lpr -P LBP5300 /usr/share/cups/data/testprint

 その一回だけ成功した印刷というのも、英数字の部分のみ印刷されて、文字が豆腐□になっている部分がありました。
 他、Linuxを再起動後に(SELinux有効下で)印刷する場合は、http://localhost:631/printers/LBP5300にアクセスして「プリンタの開始」を選択する必要がありました。大抵のファイルは印刷できるのですが、Thunderbirdで受信したメールが印刷できません。印刷しようとすると、給紙ボタンが点滅します(紙は充分補充してあります)。http://localhost:631/jobs/を見ると何も表示されておらず、「完了したジョブを表示」を見ると、もう終わったものとして表示されています。メールを印刷することは多いので、これは大問題です。他にも、印刷できないファイル形式があるのかもしれません。

 これでは使い物にならないので、どなたかご教示をお願い致します。どんな些細なことでも構いません。

 参考までに、プリンタの設定で行ったことを以下に明記します。これは以前立てた解決済みトピック(Fedora10でのプリンタ設定方法)でも書いていることです。以前私が立てプリンタ関係のトピックをお読みになっている方は、内容が重複するので以下は読み飛ばしていただいても構いません。



------- ここから、プリンタの設定で行ったこと -------



プリンタ設定方法(Canon Satera LBP5300)
1) Linuxを起動して、SELinux を Permissive に設定する

# /usr/sbin/setenforce 0
SELinuxが無効化される

# getenfortce
Permissive
と返ってくる

2)Canonの以下のURLから、以下のrpmパッケージを /tmp にダウンロードする。
 http://cweb.canon.jp/drv-upd/lasershot/linux/captlinux.html

 ・cndrvcups-capt-1.80-1.i386.rpm
 ・cndrvcups-common-1.80-1.i386.rpm

3)rootでログインし、作業フォルダに移動する(ここでは /tmp )。

 $ su
 # cd /tmp

4)CUPSドライバ共通モジュールをインストールする。

 # rpm -ivh cndrvcups-common-1.80-1.i386.rpm

5)プリンタドライバモジュールをインストールする。

 # rpm -ivh cndrvcups-capt-1.80-1.i386.rpm

6)CUPSを再起動する。

 # /etc/init.d/cups restart

7)プリントスプーラにプリンタ(PPD)を登録する。

 # lpadmin -p LBP5300 -m CNCUPSLBP5300CAPTJ.ppd -v ccp:/var/ccpd/fifo0 -E

8)ccpdデーモンの設定ファイルにプリンタを登録する。

 # ccpdadmin -p LBP5300 -o /dev/usb/lp0

9)ccpdデーモンを起動する。

 # /etc/init.d/ccpd start

 これででプリンタの登録が完了する。

 この時点で印刷は可能になるが、Linuxを再起動したら(マニュアルにあるまま実行しただけだと)ccpdが起動してないせいで印刷できない。そこでccpdを自動起動するように設定するわけだが、ReadMeでは /etc/rc.local に

 /etc/init.d/ccpd start

 を追記する方法を紹介してある。

10)

 # vi /etc/rc.local

 --- /etc/rc.local の最後に以下の一文を追記する ---

 /etc/init.d/ccpd start

 ---- 追記終了 ---

 終了。手順11)以降に進む。

----

[その他の諸注意]
a)Vine Linux 4.2と同様の手順でプリンタの設定を行ってしまった場合。とくに以下を行った場合
  ---- ここから ----
 以下はマニュアルに書かれていないが、ccpdデーモンが自動起動設定になっていないので、/etc/init.d/ccpd の冒頭部分に
 # chkconfig: 2345 80 10
 # description: Canon Printing Daemon for CUPS
 と追記してから、以下のコマンドを実行する
 # chkconfig --add ccpd
 # service ccpd start
 ---- ここまで ----


 # ls /etc/rc5.d/*ccpd

 の出力結果になにか返ってきたら、

 # chkconfig ccpd off

 を実行する。/etc/init.d/ccpdに追記した部分は、放っておいても大丈夫。

 ここまでくれば、プリンタの登録はもうされているので、Linux起動時に毎度コマンド操作等でプリンタ設定やcups,ccpdの再起動を行う必要はない。/etc/rc.local には /etc/init.d/ccpd start だけ追記してあればよい。


b)自分が追加した覚えのないLBP5300があったら削除する。HALが自動登録する場合がある。

(統合デスクトップ環境がGnomeの場合)
 # system-config-printer &

 とコマンドを打ってプリンタ設定を立ち上げ、LBP5300を削除する。



11) 対象プリンタへ印刷を行う
例)LBP5300 へ CUPS テスト文書を印刷
# lpr -P LBP5300 /usr/share/cups/data/testprint.ps
印刷が正しく行われる
SELinux無効継続

12)以下、cncapt.teとしてテキストファイルに記述する。書き込み権限のあるディレクトリであれば、特にどのディレクトリ配下で記述しても構わない。

--- cncapt.te ---
module cncapt 1.0;

require {
type cupsd_t;
type var_t;
type tmpfs_t;
class process { execstack execmem };
class fifo_file write;
class file { write read };
}

#============= cupsd_t ==============
allow cupsd_t self:process { execstack execmem };
allow cupsd_t tmpfs_t:file { read write };
allow cupsd_t var_t:fifo_file write;
--- End ---

13)cncapt.teを記述した後、次のコマンドでポリシーモジュールを生成する(注:cncapt.teが存在するディレクトリに移動して作業を行うこと)。
# checkmodule -M -m -o cncapt.mod cncapt.te
# semodule_package -o cncapt.pp -m cncapt.mod

14)これでcncapt.ppが生成されるので、モジュールを組み込む。
# semodule -i cncapt.pp

15)これでSELinuxのEnforcing下で印刷できるかどうかを確認する。SELinuxを再び有効にするには、Linuxを再起動すれば良い。

SELinuxが再度有効となったかどうかの確認方法

# getenforce
Enforcing
と返ってくる

テストページを印刷する。印刷出来れば終了。

[補足1] ルール生成ファイルは一時的なものである。最終的にsemoduleでインストールしてしまえば、途中生成される.te/.mod/.ppファイルは削除してもOK。

[補足2]SELinuxのモジュールは、
# semodule -l
で組み込まれているセキュリティモジュール一覧を確認できる。
通常、自分で組み込むモジュールはlocal.ppとして組み込むことが多いが、無論用途別に名前を変更しても問題はない。
ちなみにモジュールを外す場合、
# semodule -r {モジュール名}
で外すことができる。SELinuxの設定を失敗した場合などは、これで削除することが出来る。



------- ここまで、プリンタの設定で行ったこと -------

 以上です。どうしてもFedora11で上述のプリンタを使いたいので、ご指導ご鞭撻よろしくお願い致します。


最後に編集したユーザー [ 2009年8月02日(日) 15:29 ], 累計 3 回

トップへ
 
 記事の件名: Re: Fedora11でのプリンタ設定方法(Canon Satera LBP5300)
投稿記事Posted: 2009年7月25日(土) 21:21 
オフライン
プライベートメッセージ送信  WWW  プロフィール

登録日時: 2008年9月13日(土) 12:37
記事: 250
ドライバのインストールが済んでしまっている状態では、実機がないと検証が難しいですね…。

解決策ではなく、その場しのぎの対策ではありますが、印刷がしたいというだけであれば、VirtualBoxやKVMにてゲストOSにFedora10を入れ、そちらで印刷をできるようにしておくという手があります。

その後、じっくりと調べていくというところですね。とりあえず印刷がしたいということであれば選択肢として悪くはないかと。

Sponsored links



トップへ
 
 記事の件名: Re: Fedora11でのプリンタ設定方法(Canon Satera LBP5300)
投稿記事Posted: 2009年7月28日(火) 04:44 
オフライン
プライベートメッセージ送信  メール  プロフィール

登録日時: 2009年3月19日(木) 14:31
記事: 46
 その後、 code_air_edgeさんのご協力のもと、Fedora11にプリンタのドライバモジュールをソースからリビルドすることを考えました。そうするとFedora11のSELinux無効下では印刷が可能でした。しかしSELinuxを有効にすると、印刷不能になり、プリンタが停止します。
 これまでにやったことを以下に記します。


$ su
# yum install rpm-build
# exit
$ mkdir -p $HOME/rpm/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
$ echo "%_topdir /home/rkamiyoshi/rpm" > $HOME/.rpmmacros

 ドライバモジュールのソース(tar.gz)を、以下のURLから/tmpにダウンロード
http://cweb.canon.jp/drv-upd/lasershot/linux/linuxsource.html

$ rpmbuild -tb /tmp/cndrvcups-capt-1.80-1.tar.gz
$ rpmbuild -tb /tmp/cndrvcups-common-1.80-1.tar.gz
$ su
# rpm -e cndrvcups-capt (先にインストールしていたi386版を削除)
# rpm -e cndrvcups-common (先にインストールしていたi386版を削除)
# cd /$HOME/rpm/RPMS/i586/
# rpm -ivh cndrvcups-common-1.80-1.i586.rpm
# rpm -ivh cndrvcups-capt-1.80-1.i586.rpm
# /etc/init.d/cups restart
# lpadmin -p LBP5300 -m CNCUPSLBP5300CAPTJ.ppd -v ccp:/var/ccpd/fifo0 -E
# ccpdadmin -p LBP5300 -o /dev/usb/lp0
# /etc/init.d/ccpd start
# setenforce 0
# lpr -P LBP5300 /usr/share/cups/data/testprint (印刷に成功!)


# cd /tmp
# vi cncapt.te

--- cncapt.te ---
module cncapt 1.0;

require {
type cupsd_t;
type var_t;
type tmpfs_t;
class process { execstack execmem };
class fifo_file write;
class file { write read };
}

#============= cupsd_t ==============
allow cupsd_t self:process { execstack execmem };
allow cupsd_t tmpfs_t:file { read write };
allow cupsd_t var_t:fifo_file write;
--- End ---



# checkmodule -M -m -o cncapt.mod cncapt.te
# semodule_package -o cncapt.pp -m cncapt.mod
# semodule -i cncapt.pp

Linuxを再起動。SELinuxは有効になる。

$ su
# gentenforce
Enforcing

# lpr -P LBP5300 /usr/share/cups/data/testprint (印刷に失敗。ジョブは保留になる)

# setenforce 0

 localhost:631にアクセスし、プリンタを開始する。
 SELinuxを無効にすると、ジョブ保留になっていたテストページが印刷される。



 Fedora10のときは、audit2allowコマンドでの-lオプションがひっかかり、うまくルールが生成されないということが起こりました。SELinuxでのエラーは
/var/log/autid/audit.logからルールを生成する際に文法が間違っていることを意味する、と指摘されたことができました。ルール生成に失敗しているので、次の
semoduleも当然うまくいかなくなる、とのことでした。その際、原因を解析していただくために、Fedoraに詳しい方でaudit.logをメールで転記しました。そしてその方にcncapte.teを書いていただきました。私自身は、文法など書き方を全く知りません。

 どなたかcncapte.teの文法間違いを指摘してくださいませんでしょうか?上述のFedora10に詳しい方とは現在連絡がとれず、困っております。必要があれば、dmesgや/var/log/messages /var/log/autid/audit.logの内容を、ここに転記か添付します。ただし長文になるので、どのファイルやコマンドのどのような実行結果の表示を引っ張ってくればいいのか指示してください。

 以上です。宜しくお願いします。


トップへ
 
 記事の件名: Re: Fedora11でのプリンタ設定方法(Canon Satera LBP5300)
投稿記事Posted: 2009年8月02日(日) 15:00 
オフライン
プライベートメッセージ送信  メール  プロフィール

登録日時: 2009年3月19日(木) 14:31
記事: 46
---------
その後、他の方からのご協力もあって、Fedora11から直接印刷できるようになりました。

以下、手順を記します。

1) まずソース(tar.gz)を/tmpにダウンロード
http://cweb.canon.jp/drv-upd/lasershot/linux/linuxsource.html

$ su
# yum install rpm-build
# exit
$ mkdir -p /home/ユーザー名/rpm/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
$ echo "%_topdir /home/ユーザー名/rpm" > /home/ユーザー名/.rpmmacros
$ rpmbuild -tb /tmp/cndrvcups-capt-1.80-1.tar.gz
$ rpmbuild -tb /tmp/cndrvcups-common-1.80-1.tar.gz
$ su
# rpm -e cndrvcups-capt (このとき出る警告は無視)
# rpm -e cndrvcups-common
# cd /home/ユーザー名/rpm/RPMS/i586/
# rpm -ivh cndrvcups-common-1.80-1.i586.rpm
# rpm -ivh cndrvcups-capt-1.80-1.i586.rpm
# /etc/init.d/cups restart
# lpadmin -p LBP5300 -m CNCUPSLBP5300CAPTJ.ppd -v ccp:/var/ccpd/fifo0 -E
# ccpdadmin -p LBP5300 -o /dev/usb/lp0
# /etc/init.d/ccpd start
# setenforce 0
# lpr -P LBP5300 /usr/share/cups/data/testprint


2)次にルールを作る。
以下、cncapt.teとしてテキストファイルに記述する。書き込み権限のあるディレクトリであれば、特にどのディレクトリ配下で記述しても構わない。


// ----- cncapt.te -----
module cncapt 1.0;

require {
type port_t;
type cupsd_t;
type cups_pdf_t;
type anon_inodefs_t;
type var_t;
type tmpfs_t;
class process { execstack execmem };
class fifo_file { write open };
class file { write read };
class udp_socket name_bind;
}

#============= cups_pdf_t ==============
allow cups_pdf_t anon_inodefs_t:file { read write };

#============= cupsd_t ==============
allow cupsd_t port_t:udp_socket name_bind;
allow cupsd_t self:process { execstack execmem };
allow cupsd_t tmpfs_t:file { read write };
allow cupsd_t var_t:fifo_file { write open };



3)cncapt.teを記述した後、次のコマンドでポリシーモジュールを生成する(注:cncapt.teが存在するディレクトリに移動して作業を行うこと)。
# checkmodule -M -m -o cncapt.mod cncapt.te
# semodule_package -o cncapt.pp -m cncapt.mod

4)これでcncapt.ppが生成されるので、モジュールを組み込む。
# semodule -i cncapt.pp

5)これでSELinuxのEnforcing下で印刷できるかどうかを確認する。SELinuxを再び有効にするには、Linuxを再起動すれば良い。

SELinuxが再度有効となったかどうかの確認方法

# getenforce
Enforcing
と返ってくる

テストページを印刷する。印刷出来れば終了。

-------------------------------------------------------

[注意]テストページの印刷は出来ても、Thunderbirdで受信するメールが印刷できない場合があります。その場合は、PCを再起動したり、プリンタのUSBコネクタを抜き差しして、印刷を再度試します。メールの印刷に成功した場合でも、Fedora10のときと比べて、文字が大きく印刷されるという不具合が発生します。対策として、印刷時のオプション「拡大/縮小」で文字の大きさを調整します。倍率を70%くらいに調整しておくと、ちょうど良い文字の大きさになります。再起動しても何してもメールの印刷に失敗する場合は、プリンタボタンを押すなり、Ctrl+Pを押すなり、右クリックで印刷ってやるなりしたら出てくるダイアログ印刷>全般タブで「ファイルに出力」を選んで、PDFファイルに変換して、それを印刷する方法をとります。たとえばmail.pdfという名前でファイル出力した場合

$ lpr -P LBP5300 mail.pdf

 と端末で打ちます。この場合も、Fedora10と比べて文字が大きく印刷される場合があります。適宜、拡大/縮小して調整する必要があります。pdfファイルに変更しているので、コマンドを使わず、Adobe Readerなどで開いてメニューから「印刷」を選んで印刷することもできます。


 ご協力くださった皆様方、ありがとうございました。とくにソースからビルドするあたり、メールの印刷方法については、code_air_egdeさんのアドバイスを参考にさせていただきました。重ねてお礼申し上げます。


トップへ
 
期間内表示:  ソート  
新しいトピックを投稿する トピックへ返信する  [ 4 件の記事 ] 

All times are UTC + 9 hours


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[0人]


トピック投稿: 不可
返信投稿: 不可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
cron

無料でマイフォーラムを作成する! · php-BB© · Internationalization Project · 不正利用を報告する · 使用条件/プライバシーポリシー
© Forums-Free.com 2009