古い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つあって
- 手持ちのUSBフラッシュメモリの容量不足
- 足りないパッケージや環境などを自分で構築するため
のためなので、特にそういった目的不要であれば フルパッケージ版を入れてもいいと思います。
イメージファイルをUSBフラッシュメモリに書き込む
次にイメージファイルをUSBフラッシュメモリに書き込みます。 書き込む方法は「MacでLinuxのISOファイルをUSBフラッシュメモリに書き込む 」をご覧ください。
BIOSのブート順序を変える
- PCの電源を入れてF2を押しておき、F12が押せるように設定を変更
- 再起動して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
で確認できる
- 管理者向けの「プリンターとクラスの追加」
- プリンターの「プリンターの追加」
- 権限エラーページが出るので表示されたURLにアクセス
- 再度「プリンターの追加」
- rootアカウント情報を入力
- プリンターに接続しているローカルプリンターを選択
- 「このプリンターを共有する」を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の再起動を試してみてください。