Следуя совету @Roland Smith, я создал портовую тюрьму на FreeNAS. Я дал portjail статический IP-адрес, отключил VIMAGE и установил шлюз по умолчанию. Затем я вошел в веб-оболочку FreeNAS и сделал следующее:
- Введите
jls
, запишите номер тюрьмы, а затем введите jexec [number] sh
.
- После того, как в тюрьме наберите
pkg install cups hplip py27-cups
.
Затем используйте CUPS.conf из учебника, упомянутого в моем вопросе:
cd /usr/local/etc/cups
mv cupsd.conf cupsd.conf.org
wget http://dl.dropbox.com/u/42238/pogoplug/cupsd.conf
Следуйте инструкциям в руководстве по FreeBSD для CUPS , за исключением части, касающейся совместного использования SMB, чтобы завершить настройку CUPS. Завершение запуска CUPS:
/etc/rc.d/devfs restart
/usr/local/etc/rc.d/cupsd restart
Затем войдите в http://[hostname]:631
и настройте принтер (к сожалению, автоматическое обнаружение сетевых устройств CUPS не работает в моей BSD-тюрьме , поэтому мне пришлось вручную настроить Brother MFC- 7820N с использованием опции HP JetDirect. Я распечатал тестовую страницу, чтобы убедиться, что мой принтер работает. Я установил общий доступ к принтеру во время установки и включил общий доступ на главной административной веб-странице CUPS.
Чтобы обеспечить поддержку iOS 6 и выше, введите следующее, небольшое изменение к наиболее распространенному исправлению в тюрьме оболочки:
echo "image/urf urf string(0,UNIRAST<00>)" > /usr/share/cups/mime/airprint.types
echo "image/urf application/vnd.cups-postscript 66 pdftops" > /usr/share/cups/mime/airprint.convs
Теперь используйте удобный генератор AirPrint для создания рекламного объявления службы Avahi:
cd /
wget -O airprint-generate.py --no-check-certificate https://raw.github.com/tjfontaine/airprint-generate/master/airprint-generate.py
python AirPrint-generate.py
Затем exit
из тюрьмы, чтобы вернуться на главный сервер. Затем я скопировал службу AirPrint в собственную серверную систему avahi (поскольку запуск Avahi в тюрьме , похоже, не работает надежно). Однако, поскольку папка /etc / воссоздается при каждом запуске FreeNAS , вместо того, чтобы копировать ее напрямую, нам нужно создать сценарий Pre-Init на FreeNAS, чтобы скопировать его при запуске. Для этого снова войдите в административный интерфейс FreeNAS, щелкните категорию "Система", а затем «Добавить сценарий инициализации / завершения работы», установите тип "Pre Init" и введите в качестве команды следующее:
cp [PathToYourJail]/usr/local/etc/avahi/services/AirPrint-*.service /etc/local/avahi/services
Нажмите "ОК", перезагрузитесь, и вы обнаружите, что ваши устройства AirPrint теперь транслируются FreeNAS.
Оттуда вам должно быть хорошо идти!
Я связал свои два оставшихся вопроса SuperUser, касающихся автоматического обнаружения CUPS и отключения Avahi в тюрьме. Если у кого-то есть предложения о том, как решить эти проблемы, я был бы признателен, однако те не мешают работе вышеупомянутого, они просто делают его излишне неэлегатным.
Я еще не пытался выяснить, можно ли получить поддержку аудио для работы с FreeNAS для AirPlay; Я могу попробовать это в какой-то момент еще.