debian下配置dynamic printk以及重新编译内核
在以前的一篇博文《编译debian内核》已经提过了重新编译内核的方法,但是整个过程花费时间较长,并且生成deb包。
这里我采用稍微简单一些的方法,因为我并没有对内核或者驱动代码做任何修改,仅仅是在内核中选中一些未被选中的调试选项(以便于查看log信息)
先获取内核源码:
sudo apt-get source linux-source-3.2
会在当前文件夹下得到几个文件:
$ ls
linux-3.2. linux_3.2.57-+deb7u2.debian.tar.xz linux_3.2.57-+deb7u2.dsc linux_3.2.57.orig.tar.xz
查看当前内核配置:
$ uname -a
Linux debian 3.2.---pae # SMP Debian 3.2.- i686 GNU/Linux
查看当前系统中存在的内核配置文件:
$ ls /boot/config-3.2.--*
/boot/config-3.2.-- /boot/config-3.2.---pae
当前采用的内核是3.2.0-4.686-pae,其配置文件是/boot/config-3.2.0-4-686-pae。
进入linux-3.2.57,拷贝内核配置文件:
sudo cp /boot/config-3.2.0-4-686-pae .config
然后使用make menuconfig对当前配置进行修改:
sudo make menuconfig
选择Enable dynamic printk() support(使用该选项可以进行控制代码中的pr_debug和dev_dbg信息输出):
Kernel hacking --->
[*] Enable dynamic printk() support
然后选择Exit,再选择Exit,选择Yes保存即可。
然后进行编译内核和驱动:
sudo make
在编译过程中出现了一个编译错误,如下所示:
Building modules, stage .
MODPOST modules
ERROR: "__modver_version_show" [drivers/staging/rts5139/rts5139.ko] undefined!
WARNING: modpost: Found section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
make[]: *** [__modpost] 错误
make: *** [modules] 错误
重新编译:
sudo make CONFIG_DEBUG_SECTION_MISMATCH=y
但是编译过程中系统出现了死机现象(与内核代码无关,似乎是我的电脑其他部分出现问题,导致当cpu占用率长期过高时会死机)。
后来我又重新编译,但是多次出现了编译失败的现象,貌似是因为我同时打开了火狐狸,导致系统cpu利用率过低,从而引发了这个问题。
每次编译时使用sudo来进行编译有点怪异(因为默认解压后文件夹是root权限,对该文件夹下文件的操作都需要root权限),
先修改用户以及用户组(我的用户和用户组名称都是host,可以根据需要修改成自己的用户以及用户组名称):
chown -R host:host .
重新编译:
make CONFIG_DEBUG_SECTION_MISMATCH=y
sudo make modules_install
sudo make install
安装时默认会将内核镜像以及initrd文件还有驱动模块都安装到系统文件夹下,并自动在/boot/grub/grub.cfg中添加新的内核选项。
重启电脑后选择新的内核选项(我编译版本是linux-3.2.57,所以新选项是“Debian GNU/Linux,Linux 3.2.57”,默认光标也会停留在这个选项上),
按下回车键进入系统即可。
控制台下查看当前内核版本:
# uname -a
Linux debian 3.2. # SMP Fri Jun :: CST i686 GNU/Linux
当前内核版本是3.2.57了。
后注:
在家里的电脑上按照上面的步骤重新编译了linux内核,最后编译时忘记执行sudo make modules_install,
导致驱动程序没有安装到/lib/modules/linux-3.2.57下,使用新的菜单项进入系统时无法进入系统,
并且此时的/boot/initrd.img-3.2.57只有2M大小。
我重新执行了sudo make modules_install后再执行sudo make install,得到的/boot/initrd.img-3.2.57有100M大小。
debian下配置dynamic printk以及重新编译内核的更多相关文章
- debian下使用dynamic printk分析usb网卡驱动
在<debian下使用dynamic printk分析usb转串口驱动执行流程>中使用了usb转串口,当前例子使用usb网卡分析驱动(dm9601芯片). 仍然需要使能dynamic pr ...
- debian下使用dynamic printk分析usb转串口驱动执行流程
看了一篇文章<debug by printing>,文中提到了多种通过printk来调试驱动的方法,其中最有用的就是"Dynamic debugging". “Dyna ...
- Debian下配置防火墙iptables
debian下iptables输入命令后即时生效,但重启之后配置就会消失,可用iptables-save快速保存配置,因为Debian上iptables是不会保存规则的,然后在开机自动的时候让ipta ...
- debian下配置keepalived ha
抄袭自http://blog.51yip.com/server/1417.html,做了一些修改 可以参考http://blog.linuxphp.org/archives/1615/ 备注:NAT模 ...
- debian下配置nginx缓存
root权限下 新建/usr/nginx/cache/webpages目录 在/etc/nginx/sites-available下找到自己所需配置的文件,打开文件后在开头加上proxy_cache_ ...
- Win7平台下配置Sublime Text2 的C++编译环境
Sublime Text 是一个跨平台的编辑器,之前在 Mac 上成功配置了 C++ 在 Sublime Text 的编译环境,接下来介绍下载 windows 平台下的环境配置. 1. 首先判断机器上 ...
- Debian下配置SSH服务器的方法
Debian 503版本中实现的,Debian默认好像是没有ssh支持的. SSH的安装apt-get install openssh-serverapt-get install sshSSH的配置O ...
- debian下配置网络 安装无线网卡驱动 Broadcom BCMXX系列
解决方案来自于debian官网 https://wiki.debian.org/wl 1.加入源 deb http://http.debian.net/debian/ wheezy main c ...
- Debian下配置网络的方法
1.网络配置 配置网卡修改 /etc/network/interfaces 添加如下 # #号后面是备注,不要添加哦! auto eth0 #开机自动激活 iface eth0 inte static ...
随机推荐
- spark入门(helloworld插件)
1 http://www.cnblogs.com/openfire/archive/2013/04/26/3044722.html 2 在bulid文件夹下,(注意为主目录不是插件下的bulid.xm ...
- FormatFloat
http://www.delphibasics.co.uk/RTL.asp?Name=FormatFloat 1 function FormatFloat ( const Formatting : ...
- 关于TCP/IP,这十个问题你都知道,就入门了!
关于TCP/IP,必知必会的十个问题 本文整理了一些TCP/IP协议簇中需要必知必会的十大问题,既是面试高频问题,又是程序员必备基础素养. TCP/IP十个问题 一.TCP/IP模型 TCP/IP ...
- eclipse下构建maven spring项目
准备工作: 1.下载eclipse(Eclipse Java EE IDE for Web Developers,Version: Juno Service Release 2). 2.下载maven ...
- 解决ubuntukylin 13.10安装wine时无法解决软件包依赖问题
在ubuntukylin 13.10中,无论是在软件中心安装wine还是通过apt-get install安装wine都会出现软件包依赖问题且无法解决. 问题重现 在软件中心安装wine报错例如以下: ...
- linux的用户、群组
1. 用户及passwd文件 1) 掌握/etc/passwd文件的功能:存储所有用户的相关信息,该文件也被称为用户信息数据库(Database). 2) /etc/pa ...
- iOS swift objc_setAssociatedObject和objc_getAssociatedObject使用
oc中的AssociationsManager在swift中也是可以实现的 使用方法请看下面一个例子 import UIKit extension UIButton { func fk_addActi ...
- 浅谈Java数据结构和算法
今天的突然看集合底层的时候发现了好多算法和数据结构.再次就比较一下和汇总一下. 数据结构分类:线性结构和非线性结构 问题一: 什么是线性和非线性: 我个人的理解是:数据结构中线性结构指的是数据元素之间 ...
- UFLDL深度学习笔记 (三)无监督特征学习
UFLDL深度学习笔记 (三)无监督特征学习 1. 主题思路 "UFLDL 无监督特征学习"本节全称为自我学习与无监督特征学习,和前一节softmax回归很类似,所以本篇笔记会比较 ...
- ICloneable接口 Clone 深拷贝 浅拷贝
需要字段本身也实现了深拷贝Clone.应用场景不多,意义不大. 1. 隐含式地要求其子类和引用类也要实现ICloneable接口,如果引用层次比较深类似一个网状或树形接口,增加复杂性. 2. 考虑给s ...