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

实现目标: 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-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"

其次即可在下载的目录中进行安装,用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()

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

时间: 2025-01-04 03:09:28

HP 打印机驱动移植到Fedora 9,以及其它新系统(无包管理工具)的相关文章

Linux下hp打印机驱动hplip分析

Hplip分析 版本是2.14,源码位置:http://hplipopensource.com.图的来源:http://hplipopensource.com/node/128. 1.D-Bus初始化流程 D-Bus的初始化同样是在ui4/devmgr5.py开始的. ui4/devmgr5.py 01 class DevMgr5(QMainWindow,  Ui_MainWindow): 02     ...... 03     # TODO: Make sbus init mandatory

hp打印机的连接

最近连接hp打印机,怎么连接怎么失败,安装驱动也安装不上. 后来发现一个简单的方法可以通过windows的更新直接安装就可以了,我用的win7操作系统. 具体过程如下: 一开始的时候,怎么弄,都失败: 后来通过更新安装就成功了: 点击上图的'Windows Update',就会出现下图,然后选择相应的驱动就可以了,不需要自己下载驱动什么的.

360或者金山毒霸可能会导致HP网络打印机驱动安装失败“数据无效”的解决办法

360或者金山毒霸可能会导致HP网络打印机驱动安装失败“数据无效”的解决办法     同事办公室的打印机是网线接口的那种网络打印机,不是直接连到电脑的那种,他电脑安装了360和金山毒霸,WIN10下安装网络打印机死活安装不上,提示“数据无效”.百度了下找到了解决办法:https://jingyan.baidu.com/article/a948d6513ef4200a2ccd2e50.html 右击桌面上我的电脑→管理→服务→把device install service和device setup

linux网卡驱动移植

这里重要的是物理层PHY receiver,MAC(media access control)层,这里与软件中的协议栈不同,在硬件上MAC是PHY的下一层.DM9000A将MAC和PHY做到一起,也可以像IIS设备那样,SOC内有IIS的控制器,而声卡UDA1341放在片外.网卡当然也有这种设计,它是把PHY的下层MAC放入SOC内,片外的是PHY,当然我暂时还没见过这种的.DM9000A的输入是并行的总线,可以和CPU直接IO.而IIS那种需要通过:CPU CORE BUS->I2S控制器->

AM335x(TQ335x)学习笔记——Nand&amp;&amp;网卡驱动移植

移植完成声卡驱动之后本想再接再励,移植网卡驱动,但没想到的是TI维护的内核太健壮,移植网卡驱动跟之前移植按键驱动一样简单,Nand驱动也是如此,于是,本人将Nand和网卡放在同一篇文章中介绍.介绍之前先感慨一下:TI的维护的内核真的很健壮,DTS真的很强大. 1. Nand驱动移植 阅读TQ335x的原理图可知,TQ335x的Nand连接到了GPMC上,且都是使用的相应引脚的MODE0复用功能,AM335x上上电复位后这些引脚的默认状态就处于MODE0模式,故无需进行pinmux设置,原始的DT

入侵HP打印机的文件系统

计算机入侵可听多了,然而打印机入侵相信大家可很少听过吧.如今,很大一部分的打印机已经网络化了,能入侵和控制打印机不仅能用来进行DDOS,而内部的文件系统更是绝好的秘密文件收藏空间.现在就来谈谈如何入侵HP型号的网络打印机,部分型号不支援文件系统, 但是能远端更改系统设定和传送显示信号.而能支援文件系统的,可以直接看见里面的文件夹和文件.里面的文件系统包含web server,configuration files,和HP内部的digital certificate.好了,废话少说,开始! 1.打

linux驱动移植(nand,yaffs2)

原文:http://blog.sina.com.cn/s/blog_7090b8670101b0bi.html linux驱动移植(nand,yaffs2) 在linux操作系统的顺利移植之后,linux的内核虽然在板子上跑了起来,但是此时linux还不支持板子的的各个硬件,比如说lcd,摄像头,声卡,usb等模块,我们必须要在板子上装入驱动程序后,才能上这些硬件在linux操作系统下工作. 这些驱动在内核中都有驱动的源码,我们要做的就是将这些驱动源码编译到内核中,当然在编译之前是需要对驱动源码

DM9000驱动移植在mini2440(linux2.6.29)和FS4412(linux3.14.78)上的实现(deep dive)篇一

关于dm9000的驱动移植分为两篇,第一篇在mini2440上实现,基于linux2.6.29,也成功在在6410上移植了一遍,和2440非常类似,第二篇在fs4412(Cortex A9)上实现,基于linux3.14.78,用设备树匹配,移植过程中调试和整体理解很重要,一路上幸有良师益友指点,下面详细介绍: 1.物理时序分析相关 DM9000芯片是DAVICOM公司生产的一款以太网处理芯片,提供一个通用的处理器接口.一个10/100M自适应的PHY芯片和4K双字的SRAM.内部框架如下,涉及

GUI图形屏在emWin应用中的LCD驱动移植

1.1 建立emWin工程目录 1.2 添加文件到目录 (1)demo_emwin\emwin\config: (2)demo_emwin\emwin\driver: (3)demo_emwin\emwin\inc: (4)demo_emwin\emwin\lib: (5)demo_emwin\emwin\os: (6)demo_emwin\emwin\user: (7)demo_emwin\emwin\neqee: (8)demo_emwin\application: 1.2 添加文件到MDK