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会自动退出。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)