用Manjaro硬件检测(mhwd)管理硬件和内核

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Manjaro硬件检测(mhwd)管理硬件和内核相关的知识,希望对你有一定的参考价值。

参考技术A

Manjaro硬件检测(mhwd)命令行工具是Manjaro Linux的独特功能。至于为什么叫mhwd,是因为这是 M anjaro H ard W are D etection的缩写。



当前有两种类型的mhwd命令:

1.  mhwd:用来对计算机硬件自动检测和配置。这包括通过pci连接的硬件(例如显卡)和通过USB接口连接的硬件(例如U盘)。

2.  mhwd-kernel:在系统上启用多个内核的安装并对其进行管理。

注意:mhwd命令仍在开发中,目前仅能安装通过pci内部连接的显卡驱动程序。


mhwd命令的功能包括:

1. 选择安装开源或闭源驱动程序

2. 识别并列出系统硬件信息

3. 识别并列出已安装的驱动程序

4. 列出可安装的驱动程序列表

5. 删除和安装驱动程序(自动选择,或者手动选择自己需要的驱动程序)


mhwd命令都是通过终端执行的,mhwd命令的语法为:


可用的mhwd选项包括:


要识别并列出计算机的硬件,语法为:


例如,可以通过输入以下命令获取硬件的详细信息:


也可以设置通过pci或usb连接的设备的过滤列表。以下命令会列出通过pci连接的硬件的详细列表:


要识别并列出Manjaro已安装的驱动程序,语法为:


例如,可以通过输入以下命令获取已安装驱动程序的详细列表:


可以通过命令来筛选已安装的驱动程序中哪些是通过pci连接,哪些是通过usb连接。以下命令将会列出通过pci连接的硬件所使用的驱动程序详细列表:



要列出所有可用的驱动程序(无论是否适用于你的系统),基本语法为:


例如,可以通过输入以下命令获取仅适用于USB设备的所有驱动程序的列表:


要仅列出适用于你系统的驱动程序,基本语法为:


例如,可以通过输入以下命令来获取所有可用驱动程序的列表,这些驱动程序用于通过pci连接在系统上的设备:


Manjaro内核编译

本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/manjaro_kernel_compile

重新编译内核可以修改编译时的参数,使内核在运行时更高效的支持本地硬件。Manjaro团队在gitlab上放了Manjaro内核的编译文件,稍加修改即可使用自己的选项编译。

主要参考论坛中Manjaro团队的philm的回答 https://forum.manjaro.org/t/how-to-compile-the-mainline-kernel-the-manjaro-way/51700/35

Gitlab 仓库

philm提到了manjaro在gitlab上编译内核的仓库。https://gitlab.manjaro.org/packages/core/linux56.git 后面使用不同的linux版本号。

仓库文件介绍

仓库中不同后缀文件的作用

  • files ending with .patch should be clear. These are adjustments we think will fit for our distro best.
  • files starting with config are our modified settings on how we configure the kernel on our end.
  • files starting with linux are specific files to post configure the system. They are used either by pacman or mkinitcpio, which configures the initramfs image.
  • files ending with .hook are used by pacman to pre- or post-configure the kernel.

主要的脚本文件为PKGBUILD,指定了包中包含的文件,需要执行的操作等。

内核编译参数的设置在config.x86_64文件中,需要改变的参数可以在这里修改。(PKGBUILD中新建了.config文件并将config.x86_64文件的内如cat进入)

主要编译过程

So here is a quick tutorial to compile your own kernel on Manjaro:

first you have to clone our package repo for linux417 via git clone https://gitlab.manjaro.org/packages/core/linux417.git

then change into that directory and execute makepkg -s. This will compile the kernel as I had configured it. You may want to stop the time.

If you however want to use our tools, you may install manjaro-tools-pkg and only change into the directory where you cloned the git-repo. No need to change into the linux417 folder. You simply may use then buildpkg -p linux417. This will create a new chroot on which the package gets compiled in a separate system to avoid any issues with other systems. Only used if you want to redistribute your package to somebody else.

大概流程为:

  1. git clone对应的仓库
  2. 修改编译参数config.x86_64
  3. makepkg编译内核

国内可能存在git下载代码非常慢的问题,可以通过网页端或其它镜像站下载代码文件到指定目录,然后修改PKGBUILD文件,将source=(后的链接替换成下载后的文件名。如果内核代码或其它文件(config.x86_64)修改过,还需要将sha256sums=(后的对应位置改为‘SKIP‘或者计算后的值。

为了避免编译器版本等造成的环境问题,manjaro还提供了manjaro-tool-pkg,在仓库所在的目录运行buildpkg -p linux56会新安装一个新的环境然后chroot使用独立的环境构建。

最好给新编译的内核一个重新的命名,否则在安装时会覆盖同名称的官方内核。需要改命令的地方不止在PKGBUILD,具体在哪也懒得找了…

[optional] give your kernel a different name so it can be easily installed alongside existing ones. For that, you have to replace every instance of -MANJARO with a name of your choice, this in every file, not only in PKGBUILD! You could use a simple ‘find and replace’ in your text editor, or use the sed command, e.g. sed -i -e “s|-MANJARO|-CUSTOM|” PKGBUILD. You also have to edit various other names, like

修改内核参数

zcat /proc/config.gz > .config 导出当前内核的配置。

在linux内核代码目录通过make可以得到内核的设置参数或设置界面:

  • make localmodconfig 获取当前的内核参数,这种方法能够得到一个非常精简的内核,但没有加载过的内核模块都不会被编译。(在我的笔记本上内核大小成了之前的25%,但是睡眠出问题)
  • make nconfig: 新的命令行 ncurses 界面
  • make xconfig: 用户友好的图形界面,需要安装 packagekit-qt4[断开的链接:package not found]。建议没有经验的用户使用此方法。
  • make gconfig: 和 xconfig 类似的图形界面,使用 gtk.

运行后会生成一个新的.config文件,将文件覆盖config.x86_64后,直接makepkg即可。

一些内核参数可以参考gentoo的wiki:

https://wiki.gentoo.org/wiki/Handbook:X86/Installation/Kernel

以上是关于用Manjaro硬件检测(mhwd)管理硬件和内核的主要内容,如果未能解决你的问题,请参考以下文章

安装manjaro,卡住“A start job is running for LiveMedia MHWD Script”

Manjaro内核编译

基于 Arch Linux 的发行 Manjaro Linux 16.08 发布

android怎么检测 cpu 硬件信息的

win10系统怎么安装manjaro

Liunx 系统启动和内核管理总结