Tag: 编译

  • 单独编译 kernel 中某些 ko 的方法

    更改 Linux kernel 驱动每次重编 kernel 引导非常费力。为了便于调试,可以通过已经有的 Makefile 使用 gcc 来对特定 module 进行编译。这样只需要将 module 以模块方式加载。可以在 linux 环境下进行简单的调试。 命令: make -C $src_path M=$(pwd) modules 例如: make -C /home/edwin/rpmbuild/BUILD/kernel-2.6.40.fc15/ M=$(pwd) modules [root@localhost ata]# ls acard-ahci.c         libahci.mod.c       pata_artop.c    pata_it821x.c        pata_piccolo.c      sata_inic162x.c ahci.c               libahci.mod.o       pata_at32.c     pata_ixp4xx_cf.c     pata_platform.c     sata_mv.c ahci.h               libahci.o           pata_at91.c     pata_jmicron.c       pata_pxa.c          sata_mv.ko ahci.ko              libata-acpi.c       pata_atiixp.c   pata_legacy.c        pata_qdi.c          sata_mv.mod.c…

  • 【转】Linux Kernel 内核编译安装

    一、获取内核源码文件。 从http://www.kernel.org下载内核源码包(linux-2.6.26.tar.gz)。 # cp linux-2.6.26.tar.gz /usr/src # tar -xvzf linux-2.6.26.tar.gz # ln -s linux-2.6.26  linux-2.6 二、配置内核。 1. 进入内核文件所在目录。     # cd /usr/src/linux-2.6 2. 编辑 /usr/src/linux-2.6/Makefile 文件的EXTRAVERSION的值。     EXTRAVERSION = No_Power_Management_Support   # 以此标识内核 3. 运行命令make mrproper,以确保源文件处于一致、干净的状态。这个命令会删除内核配置文件.config(如果有的话)。 4. 保存默认的配置文件(/usr/src/linux-2.6/arch/x86/i386_defconfig)到安全位置,比如软盘,以便必要时恢复默认配置。 5. 使用配置工具设置内核选项。 #make config(基于文本的最为传统的配置界面,由于有几百个问题要回答,一般使用其它的配置工具。) #make menuconfig(基于文本选单的配置界面) #make xconfig(基于图形窗口模式的配置界面) #make oldconfig(使用已有的内核配置文件,仅提示一些新的特性。) 选择相应的配置时,有三种选择:    “Y”- 将该功能编译进内核  “N”- 不将该功能编译进内核…

  • dvd+rw-tools (growisofs) 交叉编译 cross compile

    交叉编译环境需要提前安装完毕。 Ubuntu 下 可以通过 apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueab 来完成安装。 从官网获得最新的 dvd+rw-tools。 # wget http://fy.chalmers.se/~appro/linux/DVD+RW/tools/dvd+rw-tools-7.1.tar.gz # tar -zxvf dvd+rw-tools-7.1.tar.gz # cd dvd+rw-tools-7.1 dvd+rw-tools 在某些平台(比如 Ubuntu、OpenSuSE)上需要打上 patch 才能正常编译。 # wget http://www.linuxfromscratch.org/patches/blfs/svn/dvd+rw-tools-7.1-headers-1.patch # patch < dvd+rw-tools-7.1-headers-1.patch 修改 Makefile.m4 中相关编译器配置。 # vim Makefile.m4 查找 Linux section 位置,修改为如下配置。 ifelse(OS,Linux,[ # # Linux section # CC =arm-linux-gnueabi-gcc CFLAGS +=$(WARN) -O2 -D_REENTRANT…

  • Compile pciutils (lspci, setpci) in Windows x86,在 Windows x86 平台下编译 pciutils (lspci, setpci)

    pciutils 是 Linux 下查看 PCI/PCIe 设备的利器。可以用来 dump PCI configuration space,可惜在 Windows 平台下类似功能的工具寥寥无几。在 pcituils 的官网(http://mj.ucw.cz/pciutils.html)说明中提到了可以在 Windows 平台下工作。那下面来介绍 Windows 下编译 pciutils 的经验。遗憾的是在 x86_64/amd64 下没有成功,如果各位有成功的经验希望留言来描述下,谢谢。 下载 pciutils source code。在 ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci/ 可以下载到最新的版本。 然后需要找到编译环境,这里推荐使用 mingw 来编译。mingw 也有许多版本,我是用的是 mplayer 项目的压缩包。(http://nchc.dl.sourceforge.net/project/mplayer-win32/MinGW/MinGW%20BE%20gcc%204.2.5/MinGW-full-gcc-4.2.5-Dec-2010.7z ) 再者由于 pciutils 原生是在 Linux 下运用的,在 Windows 下需要提供能够访问 kernel space 的接口,pciutils 使用了 WinIO 来实现这个。所以还要去下载 WinIO,地址在这里 http://www.internals.com/utilities/WinIo.zip。 好了解压好三个包后,运行 mingw 下的 msys.bat。看到的命令行就是操作的环境。其中已经包含了所要使用的 gcc…

  • FileBench Linux 编译 与 FSL’s Filebench

    最近在搞一套 Linux 自动化测试框架,case 中有个被要求用 filebench,好稀奇的东西。Google 了一下,Sun for Solaris 的。移植到 Linux上可有一番难度了。 具体指导可以参考这里:http://cid-2d1eff4af53272ba.spaces.live.com/blog/cns!2D1EFF4AF53272BA!5438.entry 可是我啃啊啃啊的按照他做了几个添加,最后多出来了个 yacc 的编译错误。上边可根本没提啊。Port 失败。然后仔细研读官网文档。有了惊人的发现哦,看这里:http://www.solarisinternals.com/wiki/index.php/FileBench#Linux_Port FSL's Filebench Port 下载:http://www.fsl.cs.sunysb.edu/~vass/filebench/ 不过前面有几步还是很重要的: 安装 libtecla 函数库:http://www.astro.caltech.edu/~mcs/tecla/ automake 安装 安装么也就傻瓜式的 ./configure && make && make install。 不过安装之后由于 libtecla 可能在不同 Linux 下路径的不统一,我在 CentOS 下需要拷贝到 /usr/lib 下边。可以通过 whereis 来定位需要的库文件的原始位置,复制之即可。