NO.240 By anonyさん (H23.10.20)
プリント・サーバーをノートPCで!
<<FreeBSDを活用した>>
ども、Dynaです。今更ですがプリント・サーバーがほしいのです。昔は利用していたのですが、プリンターがみん
なUSB接続になってしまい、パラレル接続用のプリント・サーバーが使えなくなってしまたのです。今は家内のPC
と当方のPCにと2台バラバラに利用しています。しかし、子供達がリビングで使うときにとても不便なんですね。
そこで、昔使用していたパラレル用のサーバーを加工できないか検討したのですが無理でした。秋葉原でもジャ
ンクを探したのですが、数も少なく、意外にお高いので「やーめた」状態です。
そんな折に、anonyさんから低スペックノートを利用した自作プリント・サーバーのレポートを送っていただきまし
た。ありがとうございます。思わず、「やったー!」とばかり喜んだのですが、あれ?のFreeBSDですね。これは、
大昔Webサーバーを自作しようとして、頓挫したOSです。専門書を買ったのですが、未だに??????だらけ
なので、悩ましいです。でも、気になりますので、早速に拝見しましょう。 By Dyna メール
いつも楽しませていただいております。anonyです。
先週のお宝発見隊でDyna様がプリントサーバをお探しとのことでした。これを拝見させていただいて、古いPC
の活用にもってこいだと思われたので試してみたました。結果、それなりに使えるようになりましたので備忘録的
にまとめてみました。
<< プリント・サーバーをノートPCで!>>
1 はじめに
捨てるにもお金がかかるし、貰い手もないような古いPCをプリントサーバにしてみました。どの程度のスペックで
実用になるかの実験も兼ねているため、USBポートのあるPCのなかでもっともスペックの低い物の一台を実験台
にしました。
2 使用機器
選んだPCはBIBLO NUV16と言う機種で、CPUはPentiumMMX166MHzですが、以前に200MHzにクロックアッ
プしています。しかし、液晶はもともとTFTだったものを別の物に移植してしまったためにDSTNのものに変わって
います。
メモリは64MB、HDDは1.6GBで、CDROMドライブはOSのインストールの時だけ別のPCから借り、LANカードは
余っていたPCカードのものを使いました。
3 OSの選択
インストールするOSは、ハードが低スペック(特にメモリ)ということもあり、一番慣れているFreeBSDにしました。
ハードのスペックがもう少し良いのであれば、Linuxの方がインストールは簡単だと思います。
この文章を書いている時点でのFreeBSDの最新RELEASEは8.2です。FreeBSDのサイトからインストールCDの
isoイメージをダウンロードしてきてCD-Rに焼いてインストールCDを作成します。CDROMドライブが無い場合はFD
からインストールすることも出来ます。
4 FreeBSDのインストール
インストール方法は詳しいサイトがいろいろあるのでそちらに譲りますが、最小構成のminimalでインストールし、
HDDの容量が少ないのでスライスはマニュアルで設定しました。HDD容量がある程度(3GB位)以上あるならば推
奨値でいいと思います。また、このプリントサーバのIPアドレスは"192.168.0.20"としておきますが、ご使用の環境
に合わせて変更してください。
インストールの途中でpackageの追加をたずねられたらprint/cupsをインストールしておきます。
FreeBSDのインストールが済みましたら、環境を設定します。低スペックなので使用しないサービスを止めたり
します。気休めというか、自己満足なところもありますので、しなくても構わないと思います。その場合はcupsの設
定から読んでください。
5 FreeBSDの設定
設定は基本的にスーパーユーザで行います。
ログインしたら、"%"もしくは"$"が表示されていると思います。
% su
password:インストール時に設定したスーパーユーザ(root)のパスワードを入力する。
ホスト名 #
[su.jpg]
これでスーパーユーザになりました。
ついでに、電源を切るときは、
# shutdown -p now
再起動は、
# shutdown -r now
です。
(1)起動時間の短縮
まずは、起動時間を少しでも短くしたいので、起動時に出るカウントダウンを短縮します。
# ee /boot/loader.conf
として、eeというエディタで/bootディレクトリにあるloader.confというファイルを開きます。最初はなにも記述され
ていないと思いますが、そこに下記を追記します。
autoboot_delay="3"
[loader.jpg]
追記しましたらESCキーを押します。メニューが開きますので、"a) leave editor"を選択し、"a) save changes"
を選択する事でファイルが変更できます。
これで、起動時のカウントダウンが10秒から3秒に変更されました。ただし、これを0秒にするのはおすすめできま
せん。
(2)メモリの節約
メモリを節約するために仮想ターミナルの数を減らします。
# ee /etc/ttys
として、/etc/ttysというファイルのttyv3からttyv7の"cons25 on secure"の部分の"on"を"off"に書き換えます。
ttyv3 "/usr/libexec/getty Pc" cons25 off secure
:
ttyv7 "/usr/libexec/getty Pc" cons25 off secure
[ttys.jpg]
書き換え後再起動すれば仮想ターミナルの数が減っているはずです。
使っているメモリの量はtopコマンドで確認できます。topコマンドは"q"で終了します。
[top.jpg]
さらに使用しないsendmailを止めます。
# ee /etc/rc.conf
として、/etc/rc.confに以下を追記します。
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
[rcconf.jpg]
(3)電源管理
電源ボタンでshutdownさせる。(APM版)
プリントサーバをshutdownさせるためにいちいちログオンするのは面倒なので、電源ボタンでshutdownできるよ
うにします。BIBLO NUV16ではacpiがうまく動かなかったためapmで実現します。acpiが動作していれば必要あり
ません。acpiがちゃんと動作していれば、設定を変更しなくても電源ボタンを押せばshutdownが実行されて、電
源が切れるはずです。
# ee /boot/device.hints
として、/boot/device.hintsの以下を追記と書き換えをします。
hint.acpi.0.disabled="1" ←追記
hint.apm.0.disabled="0" ←書き換え
以下同様に、/boot/loader.confに以下を追記します。
apm_load="YES"
/etc/rc.confに以下を追記します。
apmd_enable="YES"
/etc/apmd.confで以下の部分を書き換えます。
apm_event USERSUSPENDREQ {
exec "sync && sync && sync";
exec "sleep 1";
exec "shutdown -p now"; ←書き換え
}
(4)kernelの軽量化
一通り設定が済んだら欲が出て、kernelも軽量化したくなりましので、kernelの再構築をすることにします。
sysinstallでConfigure→Distribution→srcでsysにチェックをいれてソースファイルをダウンロードします。
# cd /sys/i386/conf
# cp GENERIC MYKERNEL
# ee MYKERNEL
として設定ファイル(MYKERNEL)を編集します。使わないデバイスをガシガシコメントアウトします。
# config MYKERNEL
# cd ../compile/MYKERNEL
# make cleandepend && make depend && make
としてkernelの再構築をはじめます。これは時間がかかるので寝ます。
翌日、makeに成功していたら。"make intall"するのですが、HDDが一杯でmakeに失敗してしまいました。orz
HDDの容量が足りないのでkernelの再構築はあきらめます。orz
(5)cupsの設定
cupsの設定
プリントサーバの肝、cupsの設定を行います。cupsはFreeBSDをインストールした時にpackagesで追加インスト
ールしておきました。
インストールし忘れた場合はsysinstallもしくはpkg_addでインストールします。ちなみに、portsでインストールする
と依存ファイルも含めインストールにまる1日以上はかかります。(^^)
# ee /etc/rc.conf
として、/etc/rc.confに以下を追記します。
cupsd_enable="YES"
devfs_system_ruleset="localrules"
以下同様に/etc/devfs.confに以下を追記します。
perm ulpt0 0666
/etc/devfs.rulesに以下を追記します。
[localrules=10]
add path 'ulpt*' mode 0666
/usr/local/etc/cups/cupsd.confで以下の部分を追記と書き換え。追記するネットワークアドレスは使用する環
境に合わせてください。
# Only listen for connections form the local machime.
Listen 631 ←書き換え
# Restrict access to the server...
<Location />
Order allow,deny
Allow 192.168.0.0/24 ←追記
</Location>
# Restrict access to the admin pages...
<Location /admin>
Order allow,deny
Allow 192.168.0.0/24 ←追記
</Location>
# Restrict access to configuration files...
<Location /admin/conf>
AuthType Default
:
Order allow,deny
Allow 192.168.0.0/24 ←追記
</Location>
/usr/local/etc/cups/mime.typesで以下がコメントアウトされていないか確認します。
application/octet-stream
/usr/local/etc/cups/mime.convsで以下がコメントアウトされていないか確認します。
application/octet-stream application/vnd.cups-raw 0 -
設定が終わったら再起動します。
# shutdown -r now
(6)プリンタの追加・設定
(cupsの設定)
クライアントのPCでブラウザを起動し、アドレスバーに[http://192.168.0.20:631]を入力してプリントサーバにア
クセスします。
"192.168.0.20"の部分は実際のプリントサーバのIPアドレスに変更してください。
cupsの設定画面が表示されますので、「管理者向け」のところの「プリンターとクラスの追加」をクリックします。
[cups1.jpg]
管理の画面が表示されますので、「プリンター」のところの「プリンターの追加」をクリックします。
[cups2.jpg]
ユーザ名とパスワードを求められますので、ユーザ名には"root"と入力し、パスワードにはFreeBSDで設定した
スーパーユーザのパスワードを入力してください。
「プリンターの追加」の画面の「ローカルプリンター:」のところに接続されているプリンタが表示(USB Printer #1)
されているので、選択して「続ける」をクリックします。
[cups3.jpg]
「新しいプリンターの追加」の画面
「名前:」「説明:」「場所:」に適当な情報を入力して、共有にチェックを入れ、「続ける」をクリックします。
[cups4.jpg]
「プリンターの追加」
メーカー:Raw
を選択し、続けるをクリックします。
[cups5.jpg]
モデル:Raw Queue (en)
を選択し、プリンターの追加をクリックします。
[cups6.jpg]
「デフォルトオプションの追加」
適当な情報を入力して(今回は何も変更しませんでした)「デフォルトオプション」の設定をクリックします。
[cups7.jpg]
これで、cupsの設定は終わりです。
6
Windowsの設定
「スタート」から「コントロールパネル」「プリンタとFAX」とクリックします。
「プリンターのインストール」をクリックし、「プリンタ追加のウィザード」を起動します。
「次へ」をクリックし、「ネットワークプリンタ、または他のコンピュータに接続されているプリンタ」をチェックして「次
へ」をクリックします。
「インターネット上または自宅/会社のネットワーク上のプリンタに接続する」をチェックして「URL:」のところに
http://192.168.0.20:631/printers/MP540
"192.168.0.20"のところはプリントサーバのIPアドレスを記述し、MP540のところはcupsの「新しいプリンターの追
加」の画面のところの「名前:」で設定したものを記述して「次へ」をクリックします。
[win3.jpg]
使用するプリンタを選択し「OK」をクリックします。
[win4.jpg]
「このプリンタを通常使うプリンタとして使いますか?」で「はい」or「いいえ」を選択して「次へ」をクリックします。
[win5.jpg]
「プリンタの追加ウィザードの完了」で「完了」をクリックして設定は完了です。
実際にプリントして動作確認してみてください。
追加情報です。
@プリントサーバの無線LAN化 anonyさん (H23.11.01)
今時のプリンタは、無線LANで接続できたりするみたいです。
無線LANならプリントサーバで共有したプリンタをリビングなどに置いたりするときでも、配線をしなくてもいいので、
とても便利そうです。
と、いうわけで、この前仕立てたプリントサーバも無線LAN化したほうが便利かな〜と思ったので無線LAN化してみました。
とはいっても、FreeBSDが対応した無線LANアダプタがあれば設定はとても簡単です。
1 設定等
使用したのはicomのSL-5000という無線LANアダプタで、FreeBSDをインストールしたPCに挿すとath0として認識します。
[sl5k.jpg]
[ath.jpg]
SL-5000は11aと11bの通信方式に対応していますが、今回は11bとして使います。暗号方式はWPA-PSKを使用します。
# ee /etc/rc.conf
として、以下を追記します。
# ifconfig_dc0="inet 192.168.0.20 netmask 255.255.255.0" ←行頭に"#"を追記してコメントアウトします。
wlans_ath0="wlan0"
ifconfig_wlan0="WPA inet 192.168.0.20 netmask 255.255.255.0 mode 11b"
[rcconf1.jpg]
# ee /etc/wpa_supplicant.conf
として、以下を記入します。
network={
ssid="使用するssid"
scan_ssid=1
key_mgmt=WPA-PSK
psk="共有キー"
}
このwpa_supplicant.confファイルには共有キーが記述されていますから、ファイルの所有者以外は内容を見られない
ようにアクセス権を変更しておきます。
# chmod 600 /etc/wpa_supplicant.conf
とすると、ファイルの所有者以外はファイルの内容を見ることが出来なくなります。
試しに一般ユーザでファイルを開いてみます。
# exit
% less /etc/wpa_supplicant.conf
/etc/wpa_supplicant.conf: Permission denied
%
となってファイルは開けません。
これで無線LANの設定はお終いです。再起動すると、無線LANで使えるようになりました。
2 問題発生
無線LANの設定も簡単になったもんだな〜と、なめていたら問題が起きていました。
無線LAN化によって電源ボタンでshutdownが出来なくなってしまいました。apmの問題ではないかと、いろいろ試したの
ですが、解決方法を見つけることは出来ませんでした。
結局、acpiが動作するPCでなら問題ないことはわかったので、BIBLO NUV16はあきらめて、acpiが動作するBIBLO
5233
NUに変更してしまいました。
3 注意点
最後に注意点ですが、FreeBSDで使用できる無線LANアダプタはあまり多くありません。特に、USBタイプの無線LANア
ダプタは動作しない物がほとんどです。
PCカードの物でも11g対応のアダプタでは動く物と動かない物が半々と言うところです。
11aに対応したアダプタはAtherosのチップを使った物が多いようなので、動く場合が多いです。
11bのアダプタなら、ほとんど動作すると思います。ただ、暗号方式にWEPしか使えないようです。
あと、FreeBSDが対応していないアダプタでもndisgenを使うことで動作させることが出来る場合があるようですが、安定し
ない場合もあるようです。
あとがき
ども、Dynaです。FreeBSDによるプリント・サーバー自作レポートありがとうございました。
んー!何度読んでも、読むだけでは、よく分からない部分がありますね。しかし、低スペックのノートでも使えるの
で気になります。やはり、実際に動かしてみて経験しながら進めるのがベストでしょうか。
古いノートをあさって、検討してみます。 By Dyna メール