Linux内核__setup()宏介绍

Linux内核__setup()宏介绍,第1张

Linux 内核中可使用宏 __setup() 处理内核的启动参数 cmdline 的解析。

文件: include/linux/init.h

定义:

通过宏展开可以看出:宏 __setup() 主要是定义了一个 obs_kernel_param 类型的结构体变量 __setup_fn 。

以 RockPI 4A 单板 Debian 系统 Linux 4.4 内核为例,介绍 init 参数的解析方法。

1、cmdline参数

在 Debian 系统中,通过 extlinux.conf 文件传递启动参数,其中 init=/sbin/init ,如下:

2、__setup()宏定义

在 Linux 内核中,解析 init 参数的 __setup() 实现如下:

3、__setup()宏展开

展开宏 __setup("init=", init_setup) ,即:

内核编译完成后,在内核符号表 System.map 文件中,可以看到 __setup_init_setup :

4、函数调用流程

内核启动后, init_setup() 函数的调用流程如下:

Libx265在windows+linux下的编译

1. Windows编译

1.1 系统环境

Win7 64位,旗舰版 SP1

1.2 需要工具

(1) cmake-3.5.0-rc1-win32-x86.msi

直接安装即可。

(2) mercurial-3.7.1-x86.msi

直接安装即可。

(3) tortoisehg-3.2.4-x64.msi

直接安装即可。我电脑是64位的,刚开始下载的32位程序,发现用不了。

32位下载64位下载

(4) vld-2.5-setup.exe

直接安装即可。

(5) yasm-1.3.0-win32.exe

将名字修改为yasm.exe,然后放到system32中。

1.3 下载代码

x265-src.tar.gz

1.4 编译

将上面5个工具安装完之后,就可以编译了。编译很简单。

进入到代码的build目录,找到你使用的visual studio的目录,进去双击执行build-all.bat,然后会d出CMake的配置对话框。

点击“Generate”,当看到“Configuring done 、Generating done”时,说明vs的工程文件已经生成好了。

此时,把CMake关闭掉,cmd对话框还会继续编译,直到编译完毕,cmd会自动退出。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7215473.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存