本机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?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值