HP Gen8 + Epson L211 + Ubuntu 搭建内部服务器

Stella981
• 阅读 531

周末出差回来,洋洋跟我说,共享的服务器挂掉了。之前是用的联想的一台小机器在内部共享的服务器,装得是xp,接的是Epson L211的打印和扫描一体机。这台机器跑了有四年多了,cpu的风扇不行了,温度过高,系统自动关机。

咋整呢?再买一台机器?有点浪费。正好去年入手一台HP的Gen8微型服务器,装的是Ubuntu 14.04的系统,闲来无事,搞搞吧。

目标:使用Gen8这台机器来做团队内部的文件共享、打印机共享、扫描仪共享、DNS缓存服务器。

第一步先搞定打印机,先找找ubuntu有没有内置的驱动吧。

$ apt-cache search epson
printer-driver-escpr - printer driver for Epson Inkjet that use ESC/P-R

看样子也不像,到网上搜索驱动。搜来搜去,网上的包都是这个epson-inkjet-printer-201207w包。Gen8的系统是64位的,下载64位的deb安装包。可以在这个网站找到驱动:Printer: Epson L210 Series

下载下来之后,直接安装,需要依赖lsb这个包。我也没有仔细去研究这个包的作用,网上搜了下,大概的意思是新版本的linux都不用这个包了。继续搜索吧。

http://askubuntu.com网站上找到了这样一篇文章:printing - How to install Epson printer drivers on Ubuntu 16.04?

思路就是使用trusty这个版本的源。

sudo nano /etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu/ trusty main 
sudo apt-get update
sudo apt-get install lsb
sudo dpkg -i epson-inkjet-printer-201207w_1.0.0-1lsb3.2_amd64.deb

安装lsb的时候会安装很多的依赖包,网络慢的话估计会花时间。

好,到这一步的话,驱动安装上了,第二个问题,怎么把打印机跑起来呢?

第二步:配置CUPS服务

继续在网络上搜索,发现linux下面现在用的最多的是CUPS 这个服务。继续安装。大家可以参考这篇文章:CUPS (简体中文)

总体来讲CUPS的完善度还是很不错的,有web控制界面。

sudo apt-get install cups

就可以把包安装上。cups的web界面的端口是631,但默认只能本机访问。一开始还没有搞清楚他们的配置文件,先想办法看看它的web界面吧。怎么办呢,用ssh的端口转发,直接转发到我的机器的631端口。

然后打开浏览器,访问http://localhost:631,就能看到cups的页面了。默认配置是需要用root帐号登录的。

进去之后,选择Add printer添加打印机。

添加打印机的时候,cups会自动检测到EPSON L211的打印机。

然后下一步是选择型号驱动,cups自带的驱动里面并没有,这时候就需要我们来选择ppd文件了。将刚才下载下来的deb包解压缩,找到L210的这个文件,再解压缩,会得到一个ppd的文件,然后将这个文件在cups的页面上传上去。

如果顺利的话,打印机就可以正常工作了。你可以在cups里面打印测试页。

第三步:配置打印机共享

配置打印机共享有两种方式,一种是使用samba来提供共享服务,还有一种就是直接使用cups的服务。实际测试过程中,发现samba提供打印共享服务响应速度比较慢,我就采用了第二种。

打开/etc/cups/cupsd.conf文件,在里面加上访问的限制。

9 <Location />
 10   Order allow,deny
 11   Allow From 192.168.1.0/24
 12 </Location>
 13 <Location /admin>
 14   Order allow,deny
 15   Allow From 192.168.1.0/24
 16 </Location>

其中的Allow from根据实际的网络情况来配置就行。

然后重启cups服务,添加打印机的时候,直接把 http://192.168.1.22:631/printers/epson这样的地址来当作打印机的地址就可以了。

windows客户端需要自己下载驱动,然后在添加打印机的时候,选择从磁盘安装,这个就不赘述了。顺利的话,就可以打印了。

搞定了打印机,下面我们来搞扫描仪。

第四步,安装扫描仪的驱动。

linux下面扫描的程序是sane这个包,先来安装。

sudo apt-get install sane sane-utils

sane-utils里面提供了一个命令行的扫描工具scanimage,我们后面会用到。

sane默认带的驱动还是不支持L211系列,没办法,继续搜索驱动。Linux Scanner Driver Download 到这个地址下载驱动,然后安装。这个下载解压缩之后,有一个install.sh,直接执行这个脚本就好了。

安装成功之后,会在/etc/sane.d/dll.d里面安装了一个文件。

这时候如果顺利的话,执行下面的命令,就可以看到相应的设备了。

sudo scanimage -L 
device `epkowa:usb:001:004' is a Epson L210/L350/L351 Series flatbed scanner

这时候可以尝试的扫描下:

sudo scanimage -d epkowa:usb:001:004 >/tmp/test.pnm

如果顺利的话,就能扫描到文件了。

第五步,共享扫描仪。

sane其实也是一个c/s架构的,所以可以在window下面安装sane的客户端,然后连接到sane服务器来完成扫描功能。sane本身并没有提供守候进程的接口,所以需要用到xinetd。在sane的文档里面有讲述,大家也可以参考这篇文章:How to share a scanner on your network

我考虑到还需要在每个机器上安装客户端(兼容性问题比较多),还不如做一个web界面的。和小鲁说了下,给用户提供了一个php的界面,上面一个按钮,点一下扫描,就触发扫描事件,然后将扫描后的文件放到一个共享的目录下面,自己去取。

同事可以站在扫描仪前面,用手机访问这个扫描的页面,点一下,扫描,然后再换要扫描的文档,也不错。

在搜索过程中,还发现了一个比较好玩的东东,叫做Scanbuttond。它可以响应扫描仪的按键事件,来触发相应的脚本。不过可惜的是它现在还不支持L211系列,放弃。

第六步:配置共享服务器

这个网络上的资料有很多,我就不赘述了。

第七步:配置DNS服务器

大家可以参考这篇文章:How To Configure Bind as a Caching or Forwarding DNS Server on Ubuntu 14.04

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这