AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 708894
Accepted
Enzo Damato
Enzo Damato
Asked: 2022-07-07 13:47:40 +0800 CST2022-07-07 13:47:40 +0800 CST 2022-07-07 13:47:40 +0800 CST

对没有设备的 PCI 驱动程序进行逆向工程

  • 772

是否可以为没有的设备逆向工程 PCI 驱动程序?

有问题的设备是一个 PCI ESCON 卡,它允许您将大型机 ESCON 通道连接到专用 unix 计算机。据我所知,这款设备从未公开发布过任何驱动程序,但仍使用标准 PCI 总线。

是否可以在没有现有集合的情况下将驱动程序放在一起进行逆向工程?

任何信息,将不胜感激。

drivers pci
  • 1 1 个回答
  • 36 Views

1 个回答

  • Voted
  1. Best Answer
    etosan
    2022-07-07T14:28:25+08:002022-07-07T14:28:25+08:00

    这一切都取决于设备的复杂性,但即使设备非常简单,您也低估了所需工作的性质。

    在现实生活中,有些东西与设备设计和编程相关,无法从其暴露的 PCI 接口中推断出来,即设备无论出于何种意图和目的都是一个黑匣子。此外,诸如此类的事情需要大量的资源和时间,所需的努力通常是非常不对称的(即需要数百万(小时、金钱、人员)来解决)。

    一个简单的例子是没有可用文档的 nvidia 硬件。阅读有关 nvidia 的 nouveau 驱动程序的信息,了解它是如何在成千上万人的帮助下进行逆向工程的,即使在几十年后,仍然可以认为它仅在 alpha/beta 级别上表现不佳。

    Linux 图形堆栈中充满了这样的故事,可通过的 gfx 硬件(尤其是在移动设备中)带有糟糕的制造商驱动程序,无法跟上内核开发的步伐。制造商因某些“商业”原因(硅设计许可/专利、驱动子组件许可/专利、纯粹的贪婪)而无法发布驱动程序开放,并且他们自己无法完全支持它。这种硬件,通常虽然存在,但同样无用。

    请记住,在移动芯片组市场的营业额是多少,最多一年两年?在两年内公司甚至不在乎。芯片的大部分钱已经赚了,而当前的“消费者”是落后的廉价中国生产商,他们销售运行过时软件的蹩脚产品,这甚至无关紧要。

    所以真正的回答是,是的,没有什么是不可能的,真正的问题是你将在哪里找到金钱、人才和最重要的时间来进行这项努力?

    你最好的选择是找到一个已经尝试过解决给定问题的社区和人才(例如在 Linux 上处理类似的 escon 设备),并以某种方式说服他们调查你的另一个案例。

    与其逆向,不如尝试从制造商那里获取硬件寄存器级别的文档并找到内核驱动程序开发人员根据该文档开发驱动程序可能会稍微更有效率。但请意识到:逆向是“只是”信息收集,即使有完整的文档,您仍然必须编写新的驱动程序并使其工作,而使其性能完全处于另一个层次。

    通常,制造商有特定版本操作系统的驱动程序,您可以向他们索取,然后让运行过时操作系统的“中间”锁定主机与产品接口,并让一些具有冒险精神和进步的小型开发人员制作软件“接口”。连接器”通过一些软件 API 将其连接到现代系统的世界。

    我已经看到这种方法效果最好。

    • 1

相关问题

  • DEBIAN - 如何清理已知的 wifi 接口列表

  • Debian Buster Coffee Lake 处理器上的屏幕分辨率问题

  • 如何为新的 WaRP7 (imx7s-solo) 连接 LCD?

  • 对于没有 X 的最小 CLI 系统,我是否需要帧缓冲驱动程序?

  • 设置似乎没有 I/O 端口的 PCIe 串行卡

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve