我正在尝试为嵌入式 Linux 图像编写 MIPI CSI-2 相机传感器驱动程序。当然,Github 等网站上有大量驱动程序源代码,但我很难理解相机传感器在编程方面的工作原理。
我认为如果有人粗略地一步步解释驱动程序如何与相机传感器配合使用,对每个人都会有所帮助。如果您能澄清使用 I2C 设置寄存器的主题,我会非常高兴。
我正在谈论像流程图一样抽象的解释。
感谢所有感兴趣的人。
我正在尝试为嵌入式 Linux 图像编写 MIPI CSI-2 相机传感器驱动程序。当然,Github 等网站上有大量驱动程序源代码,但我很难理解相机传感器在编程方面的工作原理。
我认为如果有人粗略地一步步解释驱动程序如何与相机传感器配合使用,对每个人都会有所帮助。如果您能澄清使用 I2C 设置寄存器的主题,我会非常高兴。
我正在谈论像流程图一样抽象的解释。
感谢所有感兴趣的人。
我的问题是:如果我正在组装一台 PC 并且想要在其上使用 Linux,我可以为其选择 NVIDIA 卡吗,或者 AMD Radeon 是更好的选择?
我在一些 PC 构建论坛上问了这个问题,他们告诉我 AMD 有更好的开源驱动程序,他们听说过 NVIDIA gpu 的一些“麻烦”。但是我读了很多关于 NVIDIA 也发布开源驱动程序的文章,如何让它在 Wayland 上工作等等。所以,由于这些 PC 硬件论坛中的大多数人都是 Windows 用户,我想从软件方面听听我的意见:在 2024 年在 Linux 上使用 NVIDIA Geforce GPU 仍然是一个坏主意吗?它会带来什么“麻烦”?
当说“Linux”时,我首先指的是 Mint/Ubuntu,我读到使用命令安装 NVIDIA 驱动程序很容易ubuntu-drivers
,但也许我还想尝试一些 Arch 或其他发行版,我想我必须在那里手动安装它们,但它似乎也不太复杂。
使用专有驱动程序没有任何问题,并且我更喜欢真正的 NVIDIA 驱动程序而不是 Nouveau。
我使用我的发行版(Zorin OS)在首次安装时提供的选项在我的 PC 上安装了专有的 NVIDIA 驱动程序。不幸的是,驱动程序的签名未注册到 MOK,这导致安全启动阻止其加载。
运行modinfo nvidia
告诉我驱动程序确实已签名,但mokutil --list-enrolled
在任何地方都没有显示驱动程序的签名。所以一直没有被录取。
之后如何将驱动程序签名注册到MOK?我只找到了有关自己签署模块,然后将自己的签名注册到 MOK 的解决方案 - 但我已经签署了它,我只是找不到一种方法将签名从modinfo
MOK 中获取。
提前致谢!
我已在包含 Intel PRO/1000 卡的计算机上安装了 Solaris 10 1/13。我的问题是操作系统似乎无法识别该设备, ifconfig -a 只给我环回适配器(lo0),我可以找到建议应包含驱动程序的信息,并且系统有一个手册页设备
man e1000g
我尝试搜索有关安装驱动程序的信息,但由于某种原因我找不到太多信息,大多数信息都是关于 Solaris 11 的。
如何启用 e1000g 驱动程序?任何帮助将不胜感激!
我的朋友刚刚在他的笔记本电脑(Lenovo Ideapad Slim 3 14)上安装了 Debian。他有 Linux 版本6.1.0-12-amd64
。
然而,他的集成触摸板和键盘不起作用。该问题在 Wayland 和 Xorg 上以及 TTY 模式下都会发生。Ubuntu 23.04 live 上也会发生这种情况。
两者都可以在 Windows 11 中使用,并且键盘可以在 GRUB 中使用。
不过,通过 USB 连接的外部键盘确实可以在 Linux 上使用。
首先,当查看 dmesg 时,我们看到了这些消息:
i8042: PNP: PS/2 Controller [PNP0303:KBC0] at 0x60,0x64 irq 1
i8042: PNP: PS/2 appears to have AUX port disabled, if this is incorrect please boot with i8042.nopnp
所以我们将该i8042.nopnp
选项添加到内核参数中。重新启动时,消息消失了,并且这些消息被写入 dmesg:
input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0
但键盘还是不行。
我们尝试添加以下每个内核参数,但没有任何改变:
i8042.dumbkbd=1
i8042.direct
i8042.dritek=1
pci.norcs
这是键盘的输入/proc/bus/input/devices
:
I: Bus=0011 Vendor=0001 Product=0002 Version=ab00
N: Name="AT Raw Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input0
U: Uniq=
H: Handlers=sysrq kbd event0
B: PROP=0
B: EV=100013
B: KEY=402000000 3803078f800d001 feffffdfffefffff fffffffffffffffe
B: MSC=10
我们可以看到键盘的设备文件是/dev/input/event0
. 他尝试使用cat
该文件并使用键盘,但键盘没有在终端上打印任何内容。它确实在我的笔记本电脑上打印了一些东西。
i8042
没有出现在lsmod
. modprobe i8042
不打印任何内容并且不能解决问题。
您有进一步调查该问题的想法吗?
我已将包含 openSUSE Leap 15.5 的硬盘从一台笔记本电脑移至另一台笔记本电脑。这两台笔记本电脑来自两个不同的制造商。
该操作系统在新笔记本电脑上运行良好。但这里那里也存在一些小问题。如何确保操作系统驱动程序与新笔记本电脑兼容?
此前,我有过在笔记本电脑之间移动包含 Windows 10 的硬盘的经历。搬家后,我必须根据新硬件更新Windows上的设备驱动程序。我基本上正在寻找与 openSUSE 等效的方法。我不确定,这有意义吗?
一个故障示例是通过 HDMI 电缆连接第二个显示器时显示器冻结。现在这个故障已经自行解决了。我不知道为什么。也许重新启动或重新启动应用程序可以解决问题。
假设有一个像 sn65dsi86 这样的视频桥。它在内核源代码树中有一个驱动程序 ti-sn65dsi86.c。应该使用设备树启用它。有一个设备树的例子。但它并不完整。
有什么地方功能齐全的例子吗?(除了文档中的 ti-sn65dsi86.yaml 之外)
这个关于端口、端点、远程端点的故事是什么意思?
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
edp_bridge_in: endpoint {
remote-endpoint = <&dsi_out>;
};
};
port@1 {
reg = <1>;
edp_bridge_out: endpoint {
data-lanes = <2 1 3 0>;
lane-polarities = <0 1 0 1>;
remote-endpoint = <&edp_panel_in>;
};
};
};
我有一个 USB 温度计,我在 Windows XP 中使用了捆绑的驱动程序。它只是读取空气温度,PC 读取该值。
现在我想在 Linux 下使用它,例如在 Raspberry Pi 中。我将其插入,唯一能弄清楚的是从系统日志中获取设备信息:
Jan 25 10:31:01 pi kernel: [ 202.825771] usb 1-1.1.2: new full-speed USB device number 7 using dwc_otg
Jan 25 10:31:01 pi kernel: [ 202.916413] usb 1-1.1.2: New USB device found, idVendor=413d, idProduct=2107
Jan 25 10:31:01 pi kernel: [ 202.916443] usb 1-1.1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
Jan 25 10:31:01 pi kernel: [ 202.922898] input: HID 413d:2107 as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1/1-1.1.2/1-1.1.2:1.0/0003:413D:2107.0004/input/input2
Jan 25 10:31:01 pi mtp-probe: checking bus 1, device 7: "/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1/1-1.1.2"
Jan 25 10:31:01 pi mtp-probe: bus: 1, device: 7 was not an MTP device
Jan 25 10:31:01 pi kernel: [ 202.976409] hid-generic 0003:413D:2107.0004: input,hidraw1: USB HID v1.11 Keyboard [HID 413d:2107] on usb-3f980000.usb-1.1.2/input0
Jan 25 10:31:01 pi kernel: [ 202.981627] hid-generic 0003:413D:2107.0005: hiddev96,hidraw2: USB HID v1.10 Device [HID 413d:2107] on usb-3f980000.usb-1.1.2/input1
Jan 25 10:31:01 pi mtp-probe: checking bus 1, device 7: "/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1/1-1.1.2"
Jan 25 10:31:01 pi mtp-probe: bus: 1, device: 7 was not an MTP device
由于我不具备编写驱动程序代码的技能,因此我认为使用该日志中的文件我可以读取数据,就像我通常对 或 中的文件/proc
所做的/dev
那样,但我不了解这些文件和目录。
这可能吗?Linux 将设备识别为 HID 设备是否有帮助?
我已经使用 Ubuntu/Mint/POP OS 大约 20 年了,现在我被迫使用 Windows,因为我的音频芯片无法在 Linux 上运行。
我做了一个探测 ( https://linux-hardware.org/?id=pci:8086-3198-2782-0204 ) 并且检测到芯片但在主要发行版上不工作。
我有两个问题:
对不起,愚蠢的问题。我真的不知道事情是如何运作的,我的意思是,从人类组织的角度来看,谁负责做出这些决定。这些年来,当我遇到问题时,我一直在网络上进行研究,然后尝试解决问题,但这超出了我的知识范围。