设为首页 收藏本站
查看: 1055|回复: 0

[经验分享] HP 打印机驱动移植到Fedora 9,以及其它新系统(无包管理工具)

[复制链接]

尚未签到

发表于 2015-10-6 11:23:55 | 显示全部楼层 |阅读模式
实现目标: fedora 9 上支持hp officejet 100 mobile driver,并且移植到新的x系统上(无包管理工具)

由于HP官方网站打印机驱动仅支持Fedora17,18,19,20,还好HP提供了驱动源码,我们可以自己编译和安装。下面是我将HP驱动移植到Fedora9上的过程,供各位参考。

1. 安装环境的配置  

su -c "yum -y -d 10 -e 1 install avahi-tools cups cups-devel dbus-devel gcc-c++ ghostscript openssl-devel libjpeg-devel net-snmp-devel glibc-headers libtool libusb1-devel make wget python-imaging polkit polkit-gnome PyQt4 dbus-python pygobject2 python-devel notify-python python python-reportlab sane-backends sane-backends-devel sane-frontends xsane"

因为Fedora9支持yum安装,所以很方便可以在线安装上述的软件包;


2. 删除旧的su -c "rpm -ev --nodeps libsane-hpaio"

su -c "rpm -ev hplip-gui"
su -c "rpm -ev hplip"
su -c "rpm -ev hpijs"


3. 下载hplip-3.14.4 4. 确定libusb版本号

确定系统中安装的libusb的版本号,由于fedora9 自带libusb0.1 ,而hplib-3.14.4需要libusb1.0支持,因此下一步需要安装libusb1.0,并将安装目录设置到/usr/lib下,否则找不到


下载libusb1.0.8

./configure  --libdir=/usr/lib --includedir=/usr/include/ ;

Make ; make install

5. 配置 hplip-3.14.4

./configure--with-hpppddir=/usr/share/cups/model/HP --prefix=/usr --enable-qt4--disable-libusb01_build --enable-doc-build --enable-cups-ppd-install--enable-foomatic-drv-install --enable-foomatic-ppd-install--enable-hpijs-install --disable-udev_sysfs_rules --disable-policykit--enable-cups-drv-install --enable-hpcups-install --enable-network-build--enable-dbus-build --enable-scan-build --enable-fax-build

与官网不同的地方是,支持了以下--enable-cups-ppd-install--enable-foomatic-drv-install --enable-foomatic-ppd-install --enable-hpijs-install功能,这样为了能够找到所有HP支持的打印机驱动的gz(在/usr/share/cups/model/HP下)

6. make && make install 即可。


上面是有网络和支持包管理工具的情况下进行的配置和安装,我们这次主要的挑战是没有网络环境,也不存在包管理工具。

1) 首先让yum包管理工具仅下载,不安装

2) 将安装后的hp打印机驱动类库提取出来

针对第一个问题,yum提供了yum-downloadonly插件,yum -y install yum-downloadonly 插件;然后可以用rpm –q yum-downloadonly查询一下是否安装成功;

然后就可以加入downloadonly参数,进行只下载,不安装;其中—downloaddir=dir 下载目录;

如下所示:

su -c "yum -y -d 10 -e 1 install--downloadonly --downloaddir=/root/printer  avahi-tools cups cups-develdbus-devel gcc-c++ ghostscript openssl-devel libjpeg-devel net-snmp-develglibc-headers libtool libusb1-devel make wget python-imaging polkitpolkit-gnome PyQt4 dbus-python pygobject2 python-devel notify-python pythonpython-reportlab sane-backends sane-backends-devel sane-frontends xsane"

其次即可在下载的目录中进行安装,用rpm -Uvh 或者rpm -ivh *.rpm , 如果存在依赖关系,可以加入参数--force 或者删除 --nodeps,然后重新安装

针对第二个问题,我们利用虚拟机的快照机制来提取类库的增量,我们选取的是vmware,上面环境为fedora9,

首先安装fedora9,并保存快照-1,;

其次在fedora9上安装上述下载的包,并编译hplip-3.14.4,然后安装,执行make install之后所有包都会mv到/usr/之下,或者其它目录;保存快照-2;

第三对比快照-1和快照-2下文件的不同;

功能也很简单:首先 在快照-1中执行find . / > 1.txt 找到所有/目录下文件名

在快照-2中执行同样的操作,得到2.txt

对比diff 1.txt 2.txt> 3.txt 得到所递增的所有文件

由于每次快照执行时会产生许多动态文件,如在/proc  /sys  /tmp  (内存文件系统) /dev(设备文件系统) 下都是动态产生的文件,每次系统启动都会不同,因此我们进行预处理,将动态产生的文件进行删除;主要保存/usr /lib /etc 下文件,根据经验进行合理选择。

预处理之后,对预处理文件进行解析,将增加的文件拷贝到制定目录下的对应目录中;如/usr/lib/x  拷贝到 /UD/usr/lib/x

拷贝代码如下(),一个python处理文件处理脚本。

if __name__ == '__main__':

  if len(sys.argv) != 3:

    print "python program file path"

    exit(0)

  ofile = sys.argv[1]

  path = sys.argv[2]

  fp = open(ofile)

  fp1 = open("sub.txt","a")

  fp2 = open("add.txt","a")

  for line in fp:

    line = line.strip()

    if len(line) == 0:

      continue

    if line[0]!= '<' and line[0]!='>':

      continue

    if line[0] == '<':

      fp1.write(line[1:])

    if line[0] == '>':

      fp2.write(line[1:])

    line = line[2:]

    filename = os.path.basename(line)

    filepath = os.path.dirname(line)

    path1 = path + '/' + filepath

    if os.path.exists(path1) == False:

      os.makedirs(path1)

    shutil.copyfile(line,path1+'/'+filename)

fp1.close()

fp2.close()

fp.close()

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-123299-1-1.html 上篇帖子: Hp自学整理html 下篇帖子: hp服务器只能ping通,不能连接,网卡配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表