【c – 在linux上加载多个类似的共享库】教程文章相关的互联网学习教程文章

linux – 如何在运行时加载模块?【代码】

我刚刚编译了qcserial模块,它是Gobi USB调制解调器的驱动模块.现在我有几个问题. >现在我有两个文件:drivers / usb / serial / qcserial.ko和drivers / usb / serial / qcserial.o哪一个是正确的驱动程序?>另外,据我所知,它需要进入/lib/modules/3.11.6/kernel/drivers/但是如何从那里知道哪些子目录?>我应该只能复制文件,然后使用modprobe qcserial加载? 到目前为止我尝试了什么:root@ariag25:~# mkdir /lib/modules/3.11.6/...

linux – 为什么我有时会在控制台中看到“INIT:版本2.88重新加载”?【代码】

据我所知,当我使用init或某些依赖项(如libc6)更新包时,init应自动重启. 为什么我看到INIT:版本2.88在控制台重新加载而没有安装最近重要的东西?解决方法:这可能是由每天运行预链接造成的:# grep init /etc/cron.*/* /etc/cron.daily/prelink: # Restart init if needed /etc/cron.daily/prelink: [ -n "$(find `ldd /sbin/init | awk 'NF == 4 { print $3 }'` /sbin/init -ctime -1 2>/dev/null )" ] && /sbin/telinit u ....

linux – 可能加载“不同意符号版本”的内核模块

我下载了我的内核的源代码,应用了补丁并重建了它,现在我有一个内核模块,当我尝试insmod时,抱怨“模块中的未知符号”与dmesg给出错误“不同意符号的版本.. “. 无需寻找此模块的源代码并针对我的内核重建它是否有可能以某种方式迫使内核接受此模块? 我意识到这将是危险的,但如果可能,我会承担风险.解决方法:insmod不是加载模块的最佳工具 – 使用modprobe,它更聪明.在modprobe‘s man page中,您会发现它有一个–force选项,可能会加...

linux – 当加载操作系统时,内核是否继续作为普通程序运行?

我在这里有一个类似的问题:https://stackoverflow.com/questions/43819072/does-the-kernel-stop-running-on-its-own-when-the-os-is-fully-loaded,但它有相互矛盾的答案(所以请不要将此问题标记为重复). 回到我的问题.我知道当计算机开机时,BIOS开始运行,BIOS将运行引导加载程序,引导加载程序将运行内核. 现在内核开始作为普通程序运行(通过“正常程序”我的意思是内核不仅仅是其他程序调用的一组函数,而是它自己运行的程序).现在...

linux udev规则为客户端驱动程序加载小工具模块【代码】

我很难自动加载小工具模块并将usb0设备作为eth接口启动.有问题的接口是g_ether,用于嵌入式Linux设备并连接到PC. 我想有一种方法可以从插件中查看事件并使用udev运行脚本.当我将设备插入PC时,我看不到任何事件.我尝试了udevadm监视器的不同变体,我不知道如何找出我可以用作moddebe小工具模块的udev规则. 我试图加载otg模块的部分原因是因为我们主要使用g_ether.我想使用avahi-autoipd,但它在插入之前获得了一个IP地址.如果我在网络接...

linux – 哪个内核重新加载?【代码】

我正在使用ssh远程访问某些机器.这些机器安装了自定义内核(基于2.6.28源代码).但是,每当我尝试使用sudo reboot重新启动计算机时,系统都会使用kexec并加载2.6.28-19通用内核,该内核也会安装在计算机上. 那么如何指定重启后加载哪个内核映像? 编辑:我在机器上安装了ubuntu 9.04,有grub 1.something.自定义内核基于2.6.28源代码,名称为2.6.28.10-custom-1.1.机器2.6.28-19-generic和2.6.28-6-386上安装了另外两个内核.我已经检查过,...

如何从Linux运行引导加载程序?

我想从Linux重启到另一个系统(我目前需要的可引导CD).我不想修改当前的引导程序,也不想修改BIOS设置. 某些Linux CD可以从Windows运行(Windows停止运行,Linux从CD运行).我怎么能从Linux做同样的事情?解决方法:您可以使用kexec进行装配. 是的,kexec旨在启动内核,但没有什么可以阻止你从kexec到任何二进制文件(一个“静态链接的”二进制文件,它不依赖于库或现有运行的操作系统,并且意味着在预启动条件下运行)你想要的,无论是引导加载...

linux如何为内置驱动程序模块加载firmeware【代码】

参见英文答案 > Custom kernel: fails to load firmware when module built-in 1个我了解到固件子系统使用udevd将固件复制到创建的sysfs’data’条目. 但是,如果内置的驱动程序模块udevd还没有启动,它是如何工作的? 我使用的是3.14内核. TIA!解决方法:我仔细阅读了内核源代码,特别是drivers / base / firmware_class.c,并发现了这一点CONFIG_FW_LOADER_USER_HELPER 将激活udev固件加载变量(显...

linux – 我怎么知道加载了哪个unistd.h文件?【代码】

我的Ubuntu Linux中有几个unistd.h文件.我在/usr/include/asm/unistd.h上有一个.这个文件有这个指令:# ifdef __i386__ # include "unistd_32.h" # else # include "unistd_64.h" # endif在该文件夹中,我可以找到这些文件(unistd_32.h和unistd_64.h). 但是在/usr/src/linux-headers-2.6.31-22/include/asm-generic/中有另一个以这个指令开头的unistd.h:#if !defined(_ASM_GENERIC_UNISTD_H) || defined(__SYSCALL) #define _ASM...

linux – 整个内核是否在启动时加载到内存中?

我阅读了this popular IBM doc(我在网上经常看到它),解释了初始RAM磁盘的功能. 我在概念化它的工作方式上遇到了障碍. 在文档中说The boot loader, such as GRUB, identifies the kernel that is to beloaded and copies this kernel image and any associated initrd intomemory我已经困惑了:它是将整个内核复制到内存还是只是部分内核?如果整个内核在内存中,为什么我们甚至需要初始RAM磁盘? 我认为initrd的目的是能够拥有一个小...

linux中环境变量和系统加载环境变量的顺序【代码】

系统环境变量: /etc/profile :这个文件预设了几个重要的变量,例如PATH, USER, LOGNAME, MAIL, INPUTRC, HOSTNAME, HISTSIZE, umask等等。 /etc/bashrc :这个文件主要预设umask以及PS1。这个PS1就是我们在敲命令时,前面那串字符了,例如 [root@localhost ~]#, 用户环境变量: .bash_profile :定义了用户的个人化路径与环境变量的文件名称。每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一...

linux – 操作系统存储在磁盘上的位置以及引导加载程序如何定位它?

这可能是操作系统特定的我不确定(我在Linux上工作).当BIOS将引导加载程序带入内存并且CPU开始执行它时,它如何定位操作系统?它是存储在特殊的磁盘分区/知名扇区等吗?如果它存储在文件系统上,则引导加载程序需要与存储在OS中的文件系统代码交互.这个鸡蛋问题怎么解决了?解决方法:引导程序分为几个部分.首先,BIOS获取一些匹配非常特殊格式的代码,称为MBR(主引导记录).记住您的旧计算机:您必须告诉BIOS它将以何种顺序浏览某些设备以...

linux – 在流式传输时重新加载ffserver.conf【代码】

我想动态更新ffserver.conf以向其添加新的流源. 无论如何在ffserver中重新加载ffserver.conf而不停止运行的流?解决方法:ffserver不支持重新加载“ffserver.conf”配置文件.它看起来没有重启代码. 有ffserver的来源:ffmpeg/ffserver.c第4020行:4020 static int parse_ffconfig(const char *filename)配置解析器只被调用一次 – 来自main():4710 int main(int argc, char **argv) 4711 { ... 4735 if ((ret = parse_ffconfig...

将ELF共享库和自定义binfmt可执行文件加载到相同的Linux地址空间中

我正在开发一个项目来加载和运行Linux平台上的自定义二进制格式可执行文件(在我的例子中是PE).到目前为止,我已经成功地完成了这项工作,首先加载可执行文件,然后加载一个调用可执行文件起始地址然后安全退出的小型ELF共享库. 不过,出于某些原因,我真的不想自己装ELF.首先,我使用的共享库是用汇编语言编写的(我不能使用任何其他东西,因为我没有链接到libc等),这将是非常特定于平台的,我想摆脱它并使用C所以我可以编译任何平台.此外,使...

linux – 可以配置Tmux加载〜/ .bashrc而不是〜/ .bash_profile吗?

现在,当我登录Tmux时,只有?/ .bash_profile被加载. 我想改为调用?/ .bashrc. 那可能吗?解决方法:此问题与tmux无关.要解决它,请确保将source~ / .bashrc添加到.bash_profile,就是这样. 您可以在此处了解有关bash初始化及其加载的文件以及顺序的更多信息:https://github.com/sstephenson/rbenv/wiki/Unix-shell-initialization#bash 正如您所看到的,当bash以登录模式启动时,.bashrc甚至不在列表中,这就是我们从列表中的文件(.bash_...