免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6057 | 回复: 0
打印 上一主题 下一主题

[samba] Ubuntu 8.10 samba打印机的设置使用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-23 10:35 |只看该作者 |倒序浏览
1、        测试打印机为  Star 3200+
2、        系统为Ubuntu 8.10

一、        首先安装打印机驱动程序
目前,在Ubuntu8.10下没有对Star 3200+的驱动,唯有选择Epson 24-Pin的驱动。
安装测试成功。

二、        安装配置samba

1、        安装samba   
sudo apt-get install samba
2、        安装,smbclient
sudo apt-get install smbclient
3、        安装smbfs
sudo apt-get install smbfs. 
4、        装完以后配置smb.conf文件(命令:sudo gedit /etc/samba/smb.conf),
需要修改的几个主要地方: 
workgroup=域名    /*如果机器不在域中就填写workgroup名*/ 
netbios name=计算机名   /*这个不用说了,别的电脑可以通过//计算机名直接来访问,就不用去记IP了。*/ 
passwd program=/etc/samba/smbpasswd   /具体我的配置没有找到这项,可能是samba的版本不同吧
security =user    /*这是验证和登录方式,本来有很多种方式,user是比较常用的一种,它需要管理员手动设置一个smb帐户和密码;share方式是不要用户名和密码,这种非常不安全基本不使用;server就是由Samba服务器或NT服务器来验证,我感觉这个有点类似于windows域中的用户检验机制,但是应该会更加复杂。 
[homes]段需要修改 browseable=yes 这样才能让人浏览。
添加共享可以在系统——系统管理——共享的文件夹里面设置,也可以直接编辑上面的smb.conf。 
添加SMB帐户:
 首先要添加一个ubuntu帐户 
sudo adduser -a bunorte(这里就是添加一个名为bunorte的帐户,enter后要求输入帐户密码。) 
然后在把bunorte添加为smb帐户 
sudo smbpasswd -a bunorte(enter后要求输入smb密码,这个密码是从别的电脑访问时需要输入的,可以跟上面的帐户密码不同)
注意:这里是我偷懒啦,直接copy别人的。他这里所说的所做的,是为了在samba下添加
一个名为bunorte的用户,同时它的目录位于/home/bunorte,并且他对该目录有读写权限。这样基本上就大功告成,可以先在windows里面ping一下ubuntu机器,如果能通说明samba服务正常。然后可以在运行里输入\\IP地址或者\\计算机名来访问,第一次需要输入先前设置的smb用户名和密码。
有几个命令:
sudo   /etc/init.d/smb restart    重启samba  
 sudo /pkill smbd 停止samba

5、        添加windows客户端打印机程序
开始----运行---\\ IP地址或者\\计算机名来访问,这时你就会看到,你梦寐已久的打印机啦,当你选择“连接”时,windows系统会提示你安装驱动,你选择相应的驱动程序。OK啦,现在就可以开始你的samba打印机之旅啦。
这就是我的samba打印机的配置方法。但是我在网络上看了,很多网友的帖子,他们的配置方法很多,我也遇到很多问题,我们可以共同探讨一下:


一、首先:Cups 在samba打印机中的作用
以前用samba共享打印机,但用一段时间就有问题,在网上搜索,发现直接用cups就可共享打印机,不需要samba。
1、安装samba cupsys
shell>sudo apt-get install samba cupsys

如果缺少什么包,你可以到下面的这个网址里面查询包的名称
http://packages.ubuntu.com/

2、配置cupsys
shell>sudo vim /etc/cups/cupsd.conf
Listen 631
# Restrict access to the server...
<Location />
  Order allow,deny
  Allow all
</Location>
# Restrict access to the admin pages...
<Location /admin>
  Order allow,deny
  Allow from 192.168.0.205    #你所允许访问你的cups服务的电脑,默认的话,仅有本机可以访问
</Location>

这里只列举关键代码,其它默认。重启cupsys

shell>sudo /etc/init.d/cupsys restart

访问CUPS配置页面配置打印机,这里可能会要求你使用机器里设置的域名来访问,可能会出现打不开的问题,到时候你自己改一下就行了,或者修改你的/etc/hosts文件,添加相应的条目即可。
启动cups服务后:在浏览器里直接输入(注:这个是是本机操作)
http://127.0.0.1:631
里选Administration,选上
Show printers shared by other systems
Share published printers connected to this system
新版本的还有一个也选上
Allow printing from the Internet
然后在客户机上,不管是win还是linux,添加打印机,选ipp打印机,格式如下:
ipp://X.X.X.X:631/printers/打印机名 (linux下测试成功)
http://X.X.X.X:631/打印机名 (win下测试成功)

X.X.X.X为提供打印服务的机器IP。

这样是不是很方便?


二、 现在可以来配置并测试我们的打印机了,我使用的是一台HPLaserJet1200的usb接口打印机,对于目前较新的内核(使用udev系统的),打印机插上马上就能识别了,除非你的内核不支持usb!,如果想看看是不是真的认出来了,可以用以下命令:

#lsusb(需要安装pci-utils软件包)
或者查看dmesg:
#dmesg |grep usb
如果是刚插到电脑上,也可以这样:
#dmesg |tail

如果你的打印机采用其他接口,而系统内核又不支持的,请先获取内核支持(加载相关模块或直接编译入内核中),这时你可能需要其他的帮助了。




现在要配置cups了,cups提供了一个基于web的配置界面,对于桌面用户而言简直是太方便了。如果你不能安装桌面系统,对不起,这里暂时不提供帮助。确保cups服务进程已经启动起来了,在浏览器(随便,你喜欢的,我用firefox)中输入localhost:631,cups的配置界面就启动了!对于不熟悉英文的同学我要表示遗憾了,因为这个界面好像还没有被汉化。

点击“add printer”添加打印机,进入下个页面后要求输入"name","location","description"三个填空,其实都是可以随便写的,name当然就是打印机的名字了,选个专业又好记的名字就行,location描述打印机在哪里(就在自己身上挂着,我就写localhost啦),discription是打印机描述,可以空着。点击continue之后进入下一个页面。

这一步选择打印设备,最关键的一步了,如果按照前面的说明你已经找到了你的打印机,那在这里就很好找了,点击下拉菜单,里面肯定有一个是你的打印机,选上,然后continue。

这一步是选择驱动,一般来说系统已经带有了你的打印机驱动并推荐了几个给你了,按照推荐的选择一个最象的(不行回头改就是了),如果没有提供你的打印机驱动,你需要去这里看看,搜索你的打印机驱动并下载相应的ppd文件, 存放起来,然后点browse...手动添加驱动。添加完驱动后,下一步就是“add printer”

这里需要输入root用户名和密码,输入之,敲击enter之后,恭喜你,打印机添加成功了!这时候该做的就是赶紧打印一页测试页看看打印机干不干活。

三、 cups配置完成后,还需要启动samba服务来共享这个打印机。(注意:samba服务器只是提供共享,便于查看)首先当然是安装samba并启动samba服务了,方法和安装cups完全类似。不过samba服务启动之前要配置/etc/samba/smb.conf。samba提供了一个默认的配置文件在/etc/samba/smb.conf.default(或许是其他位置,总归一般是有一个的),你可以复制过去作为你的配置文件模板,稍作修改就行了。配置的方法网上五花八门的介绍都有,不过为了让打印机共享不需要那么多花哨,只需要设置如下几行:
shell>sudo gedit /etc/samba/smb.conf
[global]
workgroup=yourgroupname  #这个是想共享的目录名
server string=abc
security=share
load printers = yes

[printers]
printing = cups
printcap name = cups
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = yes
read only = yes
writable = no
printable = yes
create mask = 0700

   # Windows clients look for this share name as a source of downloadable
# printer drivers
[print$]
   comment = Printer Drivers
   path = /var/lib/samba/printers
   browseable = yes
   read only = yes
   guest ok = no
# Uncomment to allow remote administration of Windows print drivers.
# Replace 'ntadmin' with the name of the group your admin users are
# members of.
   write list = root

配置完成之后启动samba服务,手动启动的方法如下:

# /etc/init.d/samba restart
如果是arch,服务启动脚本放在/etc/rc.d/下面。

最后将samba加入启动进程中,服务器端配置就算是完成了。

四、为windows客户机提供驱动
(理论上来说,完成这一步就可以在连接网络打印机里免驱动了,然而这一步我没有成功,但写出来共享一下,说不定有成功的案例呢)
参考网址:http://www.enterprisenetworkingp ... article.php/3621876
这时要提示的是,要在samba的配置文件中将root用户开启,security不要更改,默认为user。如果改成了share,那么在cupsaddsmb时,会出现如下提示
Server not using user level security and no password supplied.
文件不能多也不能少,文件名不能错,不能大写。文件列表

shell>ls /usr/share/cups/drivers

cups6.inf cupsps6.dll ps5ui.dll pscript.ntf
cups6.ini cupsui6.dll pscript.hlp pscript5.dll
可以使用下面的命令测试root用户及密码

smbclient -L localhost -U root

如果成功,那么可以进行下一步

shell>sudo cupsaddsmb -U root -a -v

如果成功,说明已经可以为windows 用户提供驱动了。当然你也可以查看/var/lib/samba/printers/W32X86目录查看文件是否已经复制成功。
我把所有一切都做完了,当客户机连接SAMBA共享打印机时还是提示驱动不正确,而且使用windows下的驱动程序安装里也提示不正确。经过研究,发现大部分情况下安装Winstchs.exe就行了,如果不行可以通过http://ipaddress/printer/printer_name来连接打印机,这个地址可以通过前面CUPS的设置处获得。
总结,连接CUPS+SAMBA的打印机有两种情况,一种是通过SAMBA共享,需要Winstchs.exe提供的驱动;另一种是通过CUPS提供的网络打印机地址来连接,这种要打印机在windows 下的驱动。
Winstchs.exe是Adobe公司提供的Postscript drivers,下载地址如下:http://www.adobe.com/support/dow ... 4&platform=W...
注:关于这部分的内容可以参见
Export Printers to Samba
https://ipaddress:631/admin/?op=export-samba
This page allows you to export printers to Samba so that Windows clients can access them through the Network Neighborhood or Network Places icons on their desktop. You must previously install the Windows PostScript printer drivers as described in the cupsaddsmb( man page.

注:CUPS 命令
http://www.cups.org/documentation.php/options.html


五、接下来讲客户端如何配置:

1. Windows客户端的配置是非常的简单了,直接在开始菜单中的“打印机与传真”里面,点击“添加打印机”,选择“网络打印机...”然后浏览打印机,找到一个和先前服务器端设置的server string一样的计算机,点击以下,共享的打印机就下拉下来啦,选中它,安装,这时候系统会提示安装打印驱动,在弹出来的列表窗口中选择打印机生产商,然后侧边打印机型号,然后安装,过一小会就OK了!新安装的打印机可能会显示拒绝访问,无法连接之类的,不用理它,这是因为samba设置了不可浏览的原因,不影响打印。接下来,测试,如果ok了就恭喜了。

2. Linux客户端的配置稍微麻烦那么一点点,那就是同样需要cups和samba(samba或许不需要,没有测试过),在cups中添加打印机的时候,在选择打印设备的时候选择“Windows printer via samba”,然后下一个界面要求你输入网络中的位置,由于我们是通过samba服务共享的,当然是以smb://开头啦,但是后面怎么写曾经难了我很长时间,现在我知道一招啦:

利用smbclient:
$ smbclient -L (server string)
server string是先前设置的samba服务器名。

这时候会列出服务器端共享的所有资源。找到打印机并记下它的名字,比如我的是HPLaserJ,这样我的位置就这样写:smb://(server string)/HPLaserJ。在Linux下可能需要用户验证(如果没有guest用户的话),这样的话最好在服务器端为Linux用户添加一个用户账号,并将这个账号添加到samba用户中去:

#smbpasswd -a username

如果是这样,需要在位置中写下用户名和密码,例如smb://username:passwd@(server string)/HPLaserJ。
其他配置和服务器端配置是一样的,在这里不累述。
如果一切顺利,那是最好最好的事情了!在Linux下面很少有很顺利的事情的。坚持再坚持就一定会成功的。


由于我的测试仅做了,第一部分,所以对于其他存在大的问题,欢迎大家交流
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP