古いPCにLinux(CentOS 7)をUSBメモリでインストールしてプリンターサーバーとして再生させる

古いPCにLinux(CentOS 7)をUSBメモリでインストールしてプリンターサーバーとして再生させる

Table of Contents

こないだ断捨離してたら独身の頃買ったネットブックを発見。 長らく使っておらず今後も予定なかったので、破棄も考えたのですが比較的使っているプリントサーバとして勉強がてら復活させました。

色々ネットで調べながら構築したのですが、ネットでは見つからなかったり、躓いたり、情報が散らばって進めにくかったのでまとめました。

環境

機器 名称
PC acer の Aspire 1410
プリンター iP2700
OS Windows 7 64bits版
作業PC Mac
USBメモリ 4GB

構築したプリントサーバ

Windows 7 がインストールされてる 内部HDD を CentOS 7 64bits Minimal で上書き。 GUIはなしです。 プリンターはPCにUSBケーブルで接続します。 system-config-printer は GUI なのでそれ以外の方法で構築します

注意

PC内のデータやOSは全て削除されます。

イメージファイルをダウンロード

特別記載することはないですね。 CentOS のページからダウンロードするだけです。 Download CentOS ちなみに Minimal にした理由は2つあって

  1. 手持ちのUSBフラッシュメモリの容量不足
  2. 足りないパッケージや環境などを自分で構築するため

のためなので、特にそういった目的不要であれば フルパッケージ版を入れてもいいと思います。

イメージファイルをUSBフラッシュメモリに書き込む

次にイメージファイルをUSBフラッシュメモリに書き込みます。 書き込む方法は「MacでLinuxのISOファイルをUSBフラッシュメモリに書き込む 」をご覧ください。

BIOSのブート順序を変える

  1. PCの電源を入れてF2を押しておき、F12が押せるように設定を変更
  2. 再起動してF12を押しておき、ブートディスクをUSBメモリを1番上に移動

yum を使う準備

$ yum update
$ yum install epel-release
$ yum install wget

権限エラーの場合はsudo つけてください

CUPSをインストール

$ yum install cups cups-devel

権限エラーの場合はsudo つけてください

次のような必要ファイルが見つからない場合は

実行コマンド = rpm -Uvh ./packages/cnijfilter-common-3.30-1.i386.rpm
エラー: 依存性の欠如:
	libcups.so.2 は cnijfilter-common-3.30-1.i386 に必要とされています
	libpopt.so.0 は cnijfilter-common-3.30-1.i386 に必要とされています
$ yum provides libcups.so.2

のようにすることで内包してるパッケージ名を確認できます。

PCからプリンタのUSBケーブルを抜くとCUPSの設定が無効になる

CUPSウェブ管理上では変化ないが印刷しても反応しない 再設定すると印刷される

Macのプリンタ設定で見つからない場合

プリンターサーバーに avahi をインストールしてみてください。

CUPSを設定

vi /etc/cups/cupsd.conf

Listen localhost:631

# Listen localhost:631
Listen 631

にする

<Location /></Location>

の間に Allow From All 末尾を追加

<Location /admin></Location>

の間に Allow From All 末尾を追加

<Location /admin/conf></Location>

の間に Allow From All 末尾を追加

CUPS起動

プリンタ電源を入れておこう

USBにプリンタが接続されているか確認

lsusb
$ systemctl start cups

Firewalld で IPP のポートを開ける

サービス確認

$ firewall-cmd --get-services

IPP が定義されてれば追加

$ firewall-cmd --add-service=ipp --permanent
$ firewall-cmd --reload

Linux用プリンタードライバーをインストール

[https://cweb.canon.jp/drv-upd/ij-sfp/bjlinux330-ip2700.html:title] から rpm をダウンロードします

$ wget http://pdisp01.c-wss.com/gdl/WWUFORedirectTarget.do?id=MDEwMDAwMjcxNjAx&cmp=ACM&lang=JA

ダウンロードしたファイルはホームフォルダにあります。 適宜名前を変更してください。

$ rpm -vhU --nodeps --force <rpm name>

CentOSの再起動が必要です。

CUPS設定

ブラウザで http://サーバーアドレス:631 にアクセス サーバーアドレスは

$ ip a

で確認できる

  1. 管理者向けの「プリンターとクラスの追加」
  2. プリンターの「プリンターの追加」
  3. 権限エラーページが出るので表示されたURLにアクセス
  4. 再度「プリンターの追加」
  5. rootアカウント情報を入力
  6. プリンターに接続しているローカルプリンターを選択
  7. 「このプリンターを共有する」をONにする

PCのスリープをOFF

vi /etc/systemd/logind.conf を編集する

#HandleLidSwitch=suspend
#HandlePowerKey=poweroff
#HandleSuspendKey=suspend
#HandleHibernateKey=hibernate

# PCを閉じた
HandleLidSwitch=ignore
# パワーキーを押した
HandlePowerKey=ignore
# サスペンドキーを押した
HandleSuspendKey=ignore
# ハイバネートキーを押した
HandleHibernateKey=ignore

再起動する

$ systemctl restart systemd-logind.service

プリンタの自動電源OFF機能を無効化

iP2700だと自動電源がデフォルトでONになってる 調べた感じCUI上からだと変更はできなさそう。

少しセキュリティを強固にする

yum-cron で定期 yum update 実行

$ yum install yum-cron

除外設定 vi /etc/yum.conf

[main] より下に除外したい項目を追加

[main]
exclude=kernel*

自動更新を設定 /etc/yum/yum-cron.conf

apply_updates = no

を yes にする

セキュリティ関連に限定するために

update_cmd = default

を security にする

自動起動にする

$ systemctl start yum-cron
$ systemctl enable yum-cron

不要サービスを止める

起動中サービスを確認

$systemctl list-unit-files -t service

サービスを止める

$ systemctl disable <service name>

root ユーザーのログイン無効化

/etc/ssh/sshd_config 内の

#PermitRootLogin yes

PermitRootLogin no

に変更する

再起動する

$ systemctl reload sshd.service

何かインストールしても変わらない場合

OSの再起動を試してみてください。

参考URL

このエントリーをはてなブックマークに追加