个人工具

UbuntuHelp:AppleTalk

来自Ubuntu中文

Wikibot讨论 | 贡献2008年4月23日 (三) 10:27的版本

跳转至: 导航, 搜索

Introduction

Some people using AppleTalk printers or running Mac OS 9 still want to use AppleTalk. While the AppleTalk protocol suite is considered deprecated by Apple these days, the large number of legacy devices makes discarding the protocol unfeasible.

Installing AppleTalk Daemons

Installation is easy, just use apt-get to install Netatalk.

sudo apt-get install netatalk

In case you get an error similar to:

Starting Netatalk services (this will take a while): nbp_rgstr: Förbindelsen dog ut (timeout)
Can't register laptop:Workstation@*
invoke-rc.d: initscript netatalk, action "start" failed.
dpkg: fel vid hantering av netatalk (--configure):
 underprocess post-installation script gav felkod 1
Fel uppstod vid hantering:
 netatalk
E: Sub-process /usr/bin/dpkg returned an error code (1)

Then try adding your AppleTalk connected interface (eth0, eth1 etc) to the end of /etc/netatalk/atalkd.conf and then retry starting the services:

sudo /etc/init.d/netatalk start

Reference

AppleTalk Printing

Getting your Ubuntu installation to print to an AppleTalk printer is relatively easy. With netatalk installed, run nbplkup to find the names of the AppleTalk printers on your network. Make a note of these names. Edit /etc/cups/printers.conf (as root) to add the printer. Here's an example for a printer named "Laser Writer Select 360". The "LW360" you see is the name you'd like to see in Ubuntu. It can be almost anything. The "Laser Writer Select 360" name you see in the URL must be exactly the name that nbplkup gave you for the printer.

# Printer configuration file for CUPS v1.1.23
# Written by cupsd on Mon 25 Apr 2005 02:02:39 PM PDT
<Printer LW360>
Info LW360
Location Local zone
DeviceURI pap://Laser%20Writer%20Select%20360
State Idle
Accepting Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
</Printer>

This example assumes a single, default AppleTalk zone. If you have more than one zone, the printer URL should end with %40 followed by the zone name.

# Printer configuration file for CUPS v1.1.23
# Written by cupsd on Mon 25 Apr 2005 02:02:39 PM PDT
<Printer LW360>
Info LW360
Location Local zone
DeviceURI pap://Laser%20Writer%20Select%20360%40zonefour
State Idle
Accepting Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
</Printer>

The last step is to provide CUPS with a working PAP (the Netatalk printing methodology) backend. You may download one from here. Once you have that file, cd to where that file is stored and:

sudo chmod +x pap
sudo mv pap /usr/lib/cups/backend

Now all you need to do is restart CUPS. You can do this with

sudo /etc/init.d/cupsys restart

This should provide you with AppleTalk printing. Open the Printing admin tool and ensure the printer appears there. Try sending a test page. If all is well, the only remaining step is to ensure Mozilla variant browsers will print. Mozilla uses a newer Ghostscript engine than most Apple printers will support. If an error page stating this comes from the printer when you try to print from Firefox/Mozilla, change the default print string in Firefox/Mozilla's printing prefs to

gs -q -sDEVICE=pswrite -sOutputFile=- -dNOPAUSE -dBATCH -dMozConvertedToLevel2=true - | lpr ${MOZ_PRINTER_NAME:+'-P'}${MOZ_PRINTER_NAME}"

There you go. AppleTalk printing from Ubuntu! Enjoy.

Finding Your Printer URI

You can find the correct URI for your printer by calling the backend without argument :

/usr/lib/cups/backend/pap

AppleTalk Names

An Ubuntu node will show up on the AppleTalk network as 'localhost'. This is due to 'hostname -s' returning localhost instead of using the real name (in /etc/init.d/netatalk). To remedy this, change the appropriate line in /etc/hosts and move the real hostname in front of 'localhost.localdomain', for example:

127.0.0.1  realname localhost.localdomain localhost

There's an open bug report documenting the problem with said order in /etc/hosts that is causing trouble with other programs, too. https://launchpad.net/distros/ubuntu/+source/netcfg/+bug/8980