本机ubuntu 32bit 编译linux kernel成功

本文详细介绍了如何根据Android官方指南下载并编译Linux Kernel源代码。从Git下载内核及预构建工具开始,到设置环境变量、选择配置、执行编译全过程。特别解决了编译过程中遇到的权限错误。

按照android官网上的Guide,下载linux kernel代码,编译成功:

1. Guide:

http://source.android.com/source/building-kernels.html

2. Git download kernel source code:

$ git clone https://android.googlesource.com/kernel/omap.git

3. Git download android prebuilt tool文件:(之前已经下载过android platform的代码了,就直接把prebuilt文件夹copy过来了。)

$ git clone https://android.googlesource.com/platform/prebuilt
$ export PATH=$(pwd)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH
4.开始编译内核:

$ export ARCH=arm
$ export SUBARCH=arm
$ export CROSS_COMPILE=arm-eabi-
$ cd omap
$ make panda_defconfig
$ make
5.编译中遇到error trying to exec 'cc1': execvp: 没有该文件或目录的错误 的修改方法:

比如我的prebuilt文件夹放在了android_prebuilt路径下面,需要执行chmod -R 777 android_prebuilt  修改权限。


<think>我们被要求查看Ubuntu系统中已安装的kernelheaders的位置或版本。根据之前的引用和知识,我们可以通过以下步骤进行:1.**查看当前运行内核的版本**:因为通常安装的kernelheaders需要与运行中的内核版本匹配,所以先确定当前内核版本。```bashuname-r```2.**检查已安装的kernelheaders包**:在Ubuntu中,我们可以使用`dpkg`命令来列出已安装的与`linux-headers`相关的包。```bashdpkg-l|greplinux-headers```3.**查看kernelheaders的安装位置**:通常,kernelheaders会安装在`/usr/src`目录下,以内核版本命名的目录中。例如,对于内核版本`5.4.0-80-generic`,头文件目录可能是`/usr/src/linux-headers-5.4.0-80-generic`。4.**验证特定版本的头文件是否存在**:我们可以直接检查`/usr/src`目录下的内容,或者使用`find`命令。具体步骤:###1.确定当前内核版本```bashuname-r```假设输出为:`5.4.0-80-generic`###2.列出已安装的kernelheaders包```bashdpkg-l|greplinux-headers```这将列出所有已安装的linux-headers包。我们可以从中看到与当前内核版本匹配的包。###3.检查kernelheaders的安装位置kernelheaders通常安装在`/usr/src`目录下,目录名为`linux-headers-<kernel-version>`。我们可以直接查看:```bashls/usr/src```或者查看特定版本的头文件目录是否存在:```bashls/usr/src/linux-headers-$(uname-r)```###4.验证头文件的存在如果上述目录存在,并且其中包含`include`等子目录,则表明头文件已安装。###5.使用apt命令验证我们也可以使用apt命令来查看特定版本的头文件包是否安装:```bashaptlist--installed|greplinux-headers```###示例输出如果当前内核版本是`5.4.0-80-generic`,那么:-已安装的包名可能是:`linux-headers-5.4.0-80-generic`-安装路径:`/usr/src/linux-headers-5.4.0-80-generic`###总结命令```bash#查看当前内核版本current_kernel=$(uname-r)echo"当前内核版本:$current_kernel"#检查对应的头文件目录是否存在if[-d"/usr/src/linux-headers-$current_kernel"];thenecho"已安装kernelheadersfor$current_kernel"echo"路径:/usr/src/linux-headers-$current_kernel"elseecho"未找到kernelheadersfor$current_kernel"fi#检查包安装状态dpkg-l|grep"linux-headers-$current_kernel"```###注意-如果系统安装了多个内核版本的headers,那么`/usr/src`目录下会有多个对应版本的目录。-有时候,我们可能需要为其他内核版本编译模块,所以可能安装了多个版本的headers。###相关问题1.如何安装与当前内核版本匹配的kernelheaders?2.如何卸载旧版本的kernelheaders?3.如何为特定内核版本安装kernelheaders?4.为什么需要kernelheaders?它们有什么作用?根据以上步骤,用户就可以查看已安装的kernelheaders的位置和版本了。</think>### 如何查看 Ubuntu 中已安装的 Kernel Headers 在 Ubuntu 中查看已安装的 kernel headers 的位置和版本,可通过以下方法操作: #### 1. **查看安装位置** kernel headers 默认安装在 `/usr/src` 目录下,以内核版本命名的文件夹中: ```bash ls /usr/src | grep linux-headers ``` 输出示例: ``` linux-headers-5.15.0-86 linux-headers-5.15.0-86-generic ``` 每个目录包含对应版本的头文件[^2]。 #### 2. **验证当前内核的 headers** 检查当前运行内核的 headers 是否存在: ```bash ls /usr/src/linux-headers-$(uname -r) ``` 如果目录存在且包含 `include/` 子目录,则 headers 已正确安装[^3]。 #### 3. **查看已安装的软件包版本** 使用 `dpkg` 列出所有已安装的 kernel headers 包: ```bash dpkg -l | grep linux-headers ``` 输出示例: ``` ii linux-headers-5.15.0-86-generic 5.15.0-86.96 amd64 Linux kernel headers for version 5.15.0 on 64 bit x86 SMP ``` #### 4. **检查特定版本是否安装** 直接查询指定版本(替换 `<version>` 为实际版本号): ```bash dpkg -l linux-headers-$(uname -r) ``` 输出中的 `ii` 状态表示已安装: ``` Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-===================-============-============-============================================ ii linux-headers-5.15.0-86-generic 5.15.0-86.96 amd64 Linux kernel headers for version 5.15.0 ``` #### 5. **验证头文件路径** 当编译驱动时需要的标准路径: ``` /usr/src/linux-headers-$(uname -r)/include ``` 这是大多数驱动编译工具(如 VMware Tools 或 NVIDIA 驱动)查找头文件的位置[^2]。 > **注意**:如果升级内核后未自动安装 headers,需手动执行 `sudo apt install linux-headers-$(uname -r)`[^3]。 --- ### 相关问题 1. 如何为 Ubuntu 中不同内核版本安装对应的 headers? 2. 升级内核kernel headers 未自动安装怎么办? 3. 为什么 NVIDIA 驱动安装需要特定版本的 kernel headers? 4. 如何安全卸载旧版本的 kernel headers?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值