Raspberry PiをAirPrintサーバ化して、iPadでAirPrint非対応プリンタで印刷するまで
iPad用の業務アプリ開発中で、印刷させる必要があるのですが、プリンタがAirPrint非対応なのでラズベリーパイをAirPrintサーバ化しました。
Mac、WindowsPCをサーバ化すればもっと簡単にできそうなのですが、できるだけコンパクトな構成でとのことでしたので・・・
現状は、有線LanでDHCP接続の状態です。
Raspbianインストール
Raspbianダウンロード
公式から最近のRaspbianをダウンロードします。
デスクトップ環境はいらなかったので、LITEの方にしました。
zipだと1時間くらいかかりそうだったので、torrentにしましたが、こっちだと5分くらいで終わりました。
検証
$ shasum 2016-02-26-raspbian-jessie-lite.zip
出力結果とDL元に掲載されている値を比較する。
インストール
名前やサイズから判断して認識されているデバイス確認する。
$ diskutil list
フォーマット
$ diskutil eraseDisk FAT32 RPI /dev/disk2
アンマウント
$ diskutil unmountDisk /dev/disk2
書き込み
$ tar zxvf 2016-02-26-raspbian-jessie-lite.zip
$ sudo dd bs=1024m if=2016-02-26-raspbian-jessie-lite.img of=/dev/rdisk2
起動
電源刺して起動する。
モニタ、外付けキーボードがない場合
sshで接続するので、モニタはいらないが、IPアドレスがわからないので、MacをDHCPサーバに一時的にする。
LanケーブルをラズベリーパイとMacを接続する。
(Macbook pro 13 late 2013ならこれで繋げられる)
システム環境設定->共有 で設定する。(AX88xはPLANEXのアダプタ。)
$ arp -a
? (192.168.2.102) at 0:a0:de:31:48:77 on en0 ifscope [ethernet]
? (192.168.2.255) at (incomplete) on en0 ifscope [ethernet]
? (192.168.3.3) at b8:27:eb:2e:67:66 on bridge100 ifscope [bridge]
255は違う。102もたぶん違う。という感じでそれらしいIPアドレスを探す。
sshで接続
$ ssh [email protected]
起動後(user:pi pass:raspberry)
$ sudo raspi-config
- Expand Filesystem
- Internationalisation Options
- Change Locale
- 「en_GB.ISO-8859-15 ISO 8859-15」「ja_JP.EUC-JP EUC-JP」「ja_JP.UTF-8 UTF-8」
- デフォルト「ja_JP.UTF-8」
- Change Timezone
- Asia, Tokyo
- Change Locale
$ sudo shutdown -r now
アップデート、アップグレード
sudo apt-get update; sudo apt-get upgrade -y
sudo shutdown -r now
Firewall設定
sudo apt-get update; sudo apt-get upgrade -y
sudo shutdown -r now
Port 631はcups用
$ sudo apt-get install -y ufw
$ sudo ufw allow 22
$ sudo ufw allow 80
$ sudo ufw allow 8080
$ sudo ufw allow 631
Apacheインストール
$ sudo apt-get install -y apache2
$ sudo apt-get install -y apache2
Webブラウザで、http://(ラズベリーパイのIPアドレス)でApacheの動作確認。
Vimインストール
$ sudo apt-get install -y vim
cups, avahi-discoverのインストール、設定
$ sudo apt-get install -y cups cups-pdf python-cups avahi-discover
$ sudo usermod -aG lpadmin pi
$ sudo /etc/init.d/cups start
$ sudo /etc/init.d/avahi-daemon start
$ sudo vim /etc/cups/cupsd.conf
#Listen localhost:631を下記にする
Port 631
# Allow @Localを入れる
# Restrict access to the server...
<Location />
Order allow,deny
Allow @Local
</Location>
# Restrict access to the admin pages...
<Location /admin>
Order allow,deny
Allow @Local
</Location>
# Restrict access to configuration files...
<Location /admin/conf>
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow @Local
</Location>
$ sudo /etc/init.d/cups restart
$ sudo apt-get install -y vim
$ sudo apt-get install -y cups cups-pdf python-cups avahi-discover
$ sudo usermod -aG lpadmin pi
$ sudo /etc/init.d/cups start
$ sudo /etc/init.d/avahi-daemon start
$ sudo vim /etc/cups/cupsd.conf
#Listen localhost:631を下記にする
Port 631
# Allow @Localを入れる
# Restrict access to the server...
<Location />
Order allow,deny
Allow @Local
</Location>
# Restrict access to the admin pages...
<Location /admin>
Order allow,deny
Allow @Local
</Location>
# Restrict access to configuration files...
<Location /admin/conf>
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow @Local
</Location>
$ sudo /etc/init.d/cups restart
http://IPアドレス:631 にアクセス。
ラズベリーパイとプリンタを有線で接続しておく。(OS起動前に接続しておいた方がいいかも)
プリンターとクラスの追加 > プリンターの追加
プリンタ選択する。
このプリンターを共有するにチェックを入れる。
モデルを選択する。
プリンターを追加して、最後にデフォルトの設定をする。
iPadから印刷。
AirPrint非対応のEPSON PM-G860が選択できています。
プリンタが選択できても印刷が開始されない場合
これで印刷できる・・・はず
$ sudo /etc/init.d/cups restart
$ sudo /etc/init.d/avahi-daemon restart
Author And Source
この問題について(Raspberry PiをAirPrintサーバ化して、iPadでAirPrint非対応プリンタで印刷するまで), 我々は、より多くの情報をここで見つけました https://qiita.com/KO1987/items/35172a731f932444e1fa著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .