1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Raspberry Piでプリントサーバーを構築し、くっそ古いプリンター(Canon LBP3100)をネットワークプリンターにする

1
Posted at

はじめに

ひょんなことから未使用品のレーザープリンターCanon LBP3100を入手。2008年発売のくっそ古いプリンターだけど、2026年現在でも互換トナーが2,000円未満で入手できて非常にコスパが良さそうなので活用することにした。ただ、くっそ古いプリンターなので、いまどき当たり前のネットワークプリンター機能が付いていないのが不便。オプション品の外付け型プリントサーバーは当然販売終了で、中古でも数万円する。仕方ないので、余っていたRaspberry Pi 4を使ってプリントサーバーを構築することにした。すんなりとはいかず色々と試行錯誤したが、LBP3100のネットワークプリンター化に成功。備忘録として構築手順を残しておく。

構築手順概要

  1. Raspberry PiにRaspberry Pi OSをインストール
  2. CUPSをインストール
  3. LBP3100の非公式CAPTドライバーをインストール
  4. LBP3100のセットアップ
  5. LBP3100を共有プリンター化
  6. その他
    • (Mac用) Avahiのインストール
    • 印刷余白の設定

1. Raspberry PiにRaspberry Pi OSをインストール

まず、Raspberry Pi Imagerを入手し、microSDカードにRaspberry Pi OSのイメージを書き込む。OSにはFull版とLite版、32-bit版と64-bit版、があるが、プリントサーバー用途なのでLite版で十分。32-bitと64-bitの選択については、ChatGPTが「Canonの古いCAPTドライバは、arm64 で動かないことがあります。なので Raspberry Pi OS は 32bit版 (armhf) を選ぶのが安全です。」とか言うので32-bit版を選んだ。実際、試行錯誤している途中で64-bit版だとうまくビルドできないパッケージがあったりしたので1

OSイメージをmicroSDに書き込んだら、Raspberry Piに差し込んで電源を入れる。
OS起動後、コンソールから直接ログインするか、他PCからsshでログインし、OSを最新版に更新する。

sudo apt update && sudo apt upgrade -y

2. CUPSをインストール

CUPS(カップス)は印刷サーバーで、Raspberry PiにUSB接続したプリンターを他のPCに共有するのに使う。
以下、CUPSのインストールと基本設定。

CUPSのインストール

sudo apt install cups -y

ユーザーをlpadmin(プリンター管理グループ)に追加

piユーザーを追加する場合

sudo usermod -aG lpadmin pi

CUPSの管理画面をリモートからアクセス可能にする

CUPSの設定ファイルをエディタで開き、リモートから管理画面にアクセスできるようにする。

sudo nano /etc/cups/cupsd.conf

まず、localhostからのアクセスに限定している下記設定を

Listen localhost:631

次のように変更する。

port 631

次に、LANからのアクセスを許可するために、<Location /><Location /admin>, <Location /admin/conf>を探して下記のように設定する(無ければ追加)。

<Location />
  Order allow,deny
  Allow all
</Location>

<Location /admin>
  Order allow,deny
  Allow all
</Location>

<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order alloww,deny
  Allow all
</Location>

/etc/cups/cupsd.confを上書き保存したら、CUPSを再起動する。

sudo systemctl restart cups

他のPCからWebブラウザでhttp://<Raspberry PiのIPアドレス>:631にアクセスし、CUPSの管理画面が表示されたらOK。

3. LBP3100の非公式CAPTドライバーをインストール

LBP3100のドライバーは「CAPTドライバー」というものらしい。CAPTドライバーはWindows/Mac/Linux向けに提供されていたが、x86向けしか無く、arm64向けは無いらしい。なので、有志が開発した非公式ドライバーをインストールする。

sudo apt install git build-essential autoconf libtool cups libcups2-dev libcupsimage2-dev

git clone https://github.com/mounaiban/captdriver.git
cd captdriver
autoreconf -i
./configure
make
sudo make install

makeを実行すると、captdriverディレクトリにCanon-LBP3010-3018-3050.ppd2というテキストファイルが生成される。このファイルは後ほどプリンターの設定時に使用するので、PCにコピーしておく。

4. LBP3100のセットアップ

  1. まず、Raspberry PiにLBP3100をUSBケーブルで接続し、プリンターの電源を入れる

  2. Webブラウザでhttps://<Raspberry PiのIPアドレス>:631/adminにアクセスし、CUPSの管理画面を開く

  3. プリンターの追加ボタンをクリックする

  4. ローカルプリンターからCanon LBP3100を選択して続けるボタンをクリック

  5. 接続の箇所に、LBP3100の接続用URLを入力して続けるボタンをクリック。URLはRaspberry Pi上で下記コマンドを実行して取得する

    lpinfo -v
    

    実行結果の中からdirect usb://で始まるURLが見つかるので、usb://以降を全て接続の箇所に入力すれば良い。

    例えば、下記実行結果の場合はusb://Canon/LBP3100/LBP3108/LBP3150?serial=0000B1E039J5がプリンターキューのURLとなる。

    network beh
    direct vnc:/
    file cups-brf:/
    serial serial:/dev/ttyS0?baud=115200
    network https
    network ipps
    network lpd
    network ipp
    network socket
    direct hp
    network http
    direct usb://Canon/LBP3100/LBP3108/LBP3150?serial=0000B1E039J5
    
  6. プリンターの名前を入力し(例:LBP3100)、このプリンターを共有するにもチェックを入れる

  7. 3. LBP3100の非公式CAPTドライバーをインストールでbuildし、PCにコピーしておいたプリンターのPPDファイルをアップロードして続くボタンをクリック

  8. プリンターを追加ボタンをクリック

  9. プリンターオプションの設定で、用紙サイズや解像度を設定し、デフォルトオプションの設定ボタンをクリックする

設定が完了したら、再度CUPSのWeb管理画面https://<Raspberry PiのIPアドレス>:631/adminにアクセスし、プリンタータブをクリック→LBP3100をクリックし、メンテナンスのプルダウンからテストページの印刷を実行する。プリンターが印刷を正常に実行できたらOK。

5. LBP3100を共有プリンター化

CUPSの設定ファイルをエディタで開く。

sudo nano /etc/cups/cupsd.conf

下記設定を追加して保存する。

Browsing Yes
DefaultShared Yes

プリンターの設定ファイルをエディタで開く。

sudo nano /etc/cups/printers.conf

<DefaultPrinter LBP3100>タグの中に下記設定を追加して保存する。

Shared Yes

CUPSを再起動する。

sudo systemctl restart cups

これでネットワークプリンター化は完了。
Windows PCでプリンターの追加を行う際は、LBP3100の電源をONにしておく。
設定のプリンターとスキャナーからプリンターの追加を行うと、LBP3100が候補として見つかるので追加する。ドライバーのインストールは不要。

6. その他

(Mac用) Avahiのインストール

MacやiPhone向けにプリンター共有する場合は、Bonjour/AirPrint向け設定が必要。
プリンターの設定ファイルをエディタで開く。

sudo nano /etc/cups/printers.conf

下記の設定を追加して、上書き保存する。

BrowseLocalProtocols dnssd

CUPSを再起動する。

sudo systemctl restart cups

Macの設定からプリンタとスキャナを開き、プリンターの追加を行うと、候補にLBP3100が出てくるので追加すればOK。

iPhoneやiPadから印刷する際は、アプリの印刷機能からプリンターの選択でLBP3100を選べばOK。

印刷余白の設定

色々印刷してみたら、どうも用紙の上の方がはみ出して印刷されてしまう。どうやら3. LBP3100の非公式CAPTドライバーをインストールでbuildしたドライバーが原因らしい。
こういう時は、CAPTドライバーのPPDファイルを修正し、用紙のマージンを変更すれば良いらしい。

エディタでLBP3100のPPDファイルを開く。

sudo nano /etc/cups/ppd/LBP3100.ppd

PPDファイルの仕様によると、用紙のマージンはImageableAreaという項目で設定されており、用紙上部のマージンはuryの値(4番目の数値)を大きくすれば良いらしい。

The syntax for defining imageable area is as follows:

*ImageableArea mediaOption: "llx lly urx ury "
*DefaultImageableArea: mediaOption | Unknown

ll stands for lower left corner and ur for upper right corner. The bounding box value of *ImageableArea is given as four real numbers, representing the x and y coordinates of the lower left and upper right corners of the region, respectively, in the PostScript language default user space coordinate system. The x and y axes of a given page size correspond to the x and y axes of that page size in the *PaperDimension entry.

なので、A4用紙のImageableAreaを以下のように、4番目の数値を10くらい大きくしてみた。

/etc/cups/ppd/LBP3100.ppd (変更前)
*ImageableArea A4/A4: "13.35000038147 13.35000038147 581.650024414062 828.650024414062"
/etc/cups/ppd/LBP3100.ppd (変更後)
*ImageableArea A4/A4: "13.35000038147 13.35000038147 581.650024414062 838.650024414062"

PPDファイルを上書き保存したら、例のごとくCUPSを再起動。

sudo systemctl restart cups

その後、テスト印刷してみたところ、上部がはみ出さずにきれいに印刷できた。

使い心地

いやあ、これは素晴らしく便利。プリンターの電源を入れてから印刷可能になるまで10秒かからないくらい。印刷も速い。きれい。もうインクジェットプリンターには戻れない。
プリントサーバーがあるおかげで、プリンターの電源を切っていても印刷データはCUPSサーバーがキューにためてくれていて、プリンターの電源を後からONにすれば印刷を開始してくれるのもよい。互換トナーが販売され続ける限り使い倒したい。

  1. 後から構築手順を振り返ると、最終的に必要だったパッケージやドライバーのビルドは64-bit版でも問題ない気がする。試してないけど。

  2. LBP3100はこのPPDファイルで使えると記載あり

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?