在Ubuntu上建立Arm Linux 开发环境
时间:2008-03-20
来源:互联网
从linux-2.6.32开始可以使用make localmodconfig自动精简内核, 菜鸟也能轻松精简内核到十几MB
如果想手动精简看3楼

最新NV驱动才能在2.6.34及其以后的内核上使用
ATI官方(受限)显卡驱动无法在最新内核上运行
一、下载源代码和编译软件准备
下载内核源代码:http://www.kernel.org/
注意,点击2.6.34内核的Full source版,即完整版。
如果你懒得去网站点链接,运行下列命令:
wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.bz2
安装有关编译程序。安装make ,gcc, make-kpkg,运行xconfig等等和编译内核相关的工具。安装不了,请检查/etc/apt/sources.list 文件。
有关命令:
二、解压源代码并打上补丁
注意,很多教程上说应该解压到 /usr/src, 但是实际上解压到任何目录上都可以。
/usr/src下面需要root权限反而容易出问题.
你要把'~/linus'改成你自己解压linux-2.6.34.tar.bz2的目录,
注意目录容量要到达1.5G
现在,源代码就在 ~/linus/linux-2.6.34/
进入源代码的目录,准备下一步的工作。后面都在这个目录里面进行。
升级内核可以参考下面的附件(这项暂时没用, 不用看)
三、开始编译前的准备工作。
首先,清理以前编译时留下的临时文件,如果是刚刚解开的包,据我的实践,不需要执行这步。执行与否,自己考虑。
相关命令如下:
很多教程上说把现在使用的内核的config拷贝过来参考,据我的实践,也不需要,ubuntu还有debian会自动做这步。
不过ubntu的config存在很多问题, 建议改用附件中arch的2.6.23的config
里面的config是32位的config, 里面的config.x86_64是64位的config
把kernel26-config.tar.xz里的解压出来, 然后把config和config.x86_64复制到源代码目录, 然后如果你是32位系统
命令如下:
如果你是64位系统
四、开始配置内核选项。
从linux-2.6.32开始可以使用make localmodconfig自动精简内核, 菜鸟也能轻松精简内核到十几MB
首先自动精简内核模块(如果想手动精简看3楼)[/size]
注意: 该方法会自动去掉一些从开机到当前没用使用的模块(主要是驱动模块),
所以你可以使用一下你的摄像头, 挂载一下iso文件.....
以保证需要的模块不会被精简掉, 否则使用新内核时会发现不能挂载iso文件, 不能使用某些外设等等.
命令如下:
然后就可以直接跳到后面的第五段进行编译了.
也可以再使用qconfig检查一下
相关命令
make xconfig
上面这个qconfig是qt3的, 如果要用qt4的看后面的附2.
选项意义:圆中点是编译成可以随时加人的模块(以下简称M),方块中一勾是编译进入内核(以下简称Y),空就是不要(简称N)。(如下图)
1、在“General setup”里面,有几项普通用户可以放心的去掉,
分别是:POSIX Message Queues 、Cpuset Support、Create deprecated sysfs files、Kernel->user space relay support (formerly relayfs)
2、在“ Timer frequency ”里,默认是250Hz,最好选择1000Hz以提高gui响应
3、其他的具体看3楼
全部设置完成,请保存设置。按照我的习惯,先在上一层目录保存一个备份,文件名类似 ../config
然后保存到当起目录,文件名 .config
退出设置程序。
五、开始编译内核。
ubuntu的工具是make-kpkg,和其他的发行版相比,步骤相对简单。
相关命令:
fakeroot make-kpkg --initrd --append-to-version=gould0.76 kernel_image
上述命令中的gould0.76大家用自己喜欢的字符代替.
输完上述命令回车之前,建议大家把浏览器还有别的运用程序都关掉,机器开始的工作比较艰苦。我的p4 1.7G机器用了30分钟。
六、安装内核
编译完成就是安装工作。编译好的内核在上一层目录。我的是linux-image-2.6.34gould0.76_2.6.34gould0.76-10.00.Custom_i386.deb
sudo dpk -i linux-image-2.6.34gould0.76_2.6.34gould0.76-10.00.Custom_i386.deb
文件名很长,如果不用tab自动补足是不可能的,tab键万岁。
安装完成后和老内核比较一下大小
注意:安装完后先不要动linux-2.6.34的目录,可能还要安装驱动
七、重新启动验证新内核。
sudo reboot
八、如果。。。
grub菜单上选用老内核启动机器,推倒重来
附1, 重启后N卡驱动安装
最新NV驱动才能在2.6.34内核上使用
让系统在内核升级时自动安装nvdia驱动的方法:http://forum.ubuntu.org.cn/viewtopic.php?t=141431&start=0&postdays=0&postorder=asc&highlight=
重启后不能直接进入X11,先编译nvidia驱动官方(先删除旧的驱动)
如果显示找不到内核源码用
如
sudo sh NV******.run --kernel-source-path=/home/david/linus/linux-2.6.34
具体安装方法见http://wiki.ubuntu.org.cn/Nvidia%E6%89%8B%E5%86%8C(看了wiki还解决不了N卡驱动楼下提问)
附2, 把qconfig改成qt4界面
下载下面的补丁
解压到源码目录, 然后使用命令
如果之前编译过xconfig, 先用下面的命令清除编译残留.
然后需要安全qt4编译环境, 不过我现在在arch下, 不清楚编译依赖, 应该就是qt4的dev包, ls有清楚的请补充.
安装好qt4编译环境后, 编译命令如下.
ATI官方(受限)显卡驱动不支持新内核
inter显卡和用开源驱动(没装受限驱动)打开特效的ati显卡编译内核后不需要安装驱动
drcom-1.4.8才支持linux-2.6.28以上内核
http://forum.ubuntu.org.cn/viewtopic.php?t=115048&start=15&postdays=0&postorder=asc&highlight=
补充1:如果编译内核后,只是希望修改某些模块(M)选项,可以不用完全重新编译。
只需要执行
make xconfig
然后之添加或减少模块(M)选项
然后(不要执行make mrproper和sudo make-kpkg clean),
直接执行编译命令如
sudo make-kpkg -initrd --initrd --append-to-version=david0.68 kernel_image #整条命令要和上次编译时一样
make就会在原来编译的基础上,编译新选上的模块(如果有的话),而不会全部重新编译。
这样可以节省大量时间和能源,尤其是你电脑不是很快的话。
欢迎大家提意见
作者: syrano 发布时间: 2008-03-20
作者: qiang_liu8183 发布时间: 2008-03-27
linux-image的deb包的小于10MB。
高级目标
linux-image的deb包的小于3MB。
启动时间减少10%~20%。
资料
刘少侠的2.6.28中文手册(比较新且详细完全)
被下载 166 次
金步国翻译的资料:内核编译配置选项。(很老, 但比较简化, 可以参考)
网址:http://lamp.linux.gov.cn/Linux/kernel_options.html
(已经添加到附件)
准备
配置内核我用的是xconfig,如果你也是用的xconfig,先在opion里选上show name(显示模块名)。
安装hardinfo
第一步,简单优化。
1.如果不需要拨号上网(pppoe,电信,铁通等的上网方式),就把EXPERIMENTAL前的勾去>掉。
如果需要pppoe,现去掉EXPERIMENTAL前的勾,然后保存并推出;然后重启xconfig,勾上EXPERIMENTAL,然后勾上pppoe(这样做是为了只选上pppoe,而去掉其他development and/or incomplete code/drivers)
2.打开hardinfo,查看你的cpu的family,然后在processor family里把你的cpu的family选>上。
3.如果没有4G内存,勾上NOHIGHMEM;
如果想加快gui程序响应,勾上HZ_1000
4.如果不是上个世纪的硬件,去掉APM
根据附件中的文件,逐项精简内核。(拿不准的模块,可以先不删)
第二步,硬件驱动模块优化(这一步可以最大限度减少启动时间和内核大小)
1.(风险很小)
输入
sudo lshw
根据显示的硬件所需的模块(“module=”后面的模块名),勾上模块并去掉其他不需要的,>和所需的硬件模块平行的硬件模块。
如
。
。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。
*-multimedia
description: Multimedia audio controller
product: VT8233/A/8235/8237 AC97 Audio Controller
vendor: VIA Technologies, Inc.
physical id: 11.5
bus info: pci@0000:00:11.5
version: 30
width: 32 bits
clock: 33MHz
capabilities: pm cap_list
configuration: driver=VIA 82xx Audio latency=0 module=snd_via82xx
比如这部分是声卡,
显示声卡是VT8233/A/8235/8237 AC97 Audio Controller
所用的模块是snd_via82xx(在xconfig里设置显示模块名,就可以在xconfig里面找到这个>模块;当然也可以使用查找)
然后就可以把和这个模块并列的其他硬件驱动模块去掉。
cdrom 硬盘......类似。(不过不要把cdrom,硬盘支持也去掉了)
2.去掉你不需要的硬件类型I2C,Telephony................
(这一步比上一步减少的模块数可能更多)
测试
根据
lsmod
精简无用模块。
其他
如果启动新内核后,有些功能不正常,可以搜google,查找出需要的模块。
如果有些软件不正常,还可以查看软件的帮助文档,README.......,找出需要的模块。
范例
硬件如下,deb包在附件里(编译时间9min)
被下载 569 次
david-desktop
description: Desktop Computer
product: NF61S-M2A
vendor: BIOSTAR Group
version: 1.0
width: 32 bits
capabilities: smbios-2.4 dmi-2.4 smp-1.4 smp
configuration: boot=normal chassis=desktop cpus=1 uuid=00E04D2F-4FD4-FFFF-FFFF-FFFFFFFFFFFF
*-core
description: Motherboard
product: NF61S-M2A
vendor: BIOSTAR Group
physical id: 0
version: 1.0
*-firmware
description: BIOS
vendor: Phoenix Technologies, LTD
physical id: 0
version: 6.00 PG (02/08/2007)
size: 128KiB
capacity: 448KiB
capabilities: isa pci pnp apm upgrade shadowing cdboot bootselect socketedrom edd int13floppy360 int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int9keyboard int14serial int17printer int10video acpi usb ls120boot zipboot biosbootspecification
*-cpu
description: CPU
product: AMD Sempron(tm) Processor 3000+
vendor: Advanced Micro Devices [AMD]
physical id: 3
bus info: cpu@0
version: 15.15.2
slot: Socket M2
size: 1608MHz
capacity: 3GHz
width: 64 bits
clock: 201MHz
capabilities: boot fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt rdtscp x86-64 3dnowext 3dnow up pni cx16 lahf_lm extapic cr8_legacy ts ttp tm stc
*-cache:0
description: L1 cache
physical id: c
slot: Internal Cache
size: 128KiB
capacity: 128KiB
capabilities: synchronous internal write-back
*-cache:1
description: L2 cache
physical id: d
slot: External Cache
size: 256KiB
capacity: 256KiB
capabilities: synchronous internal write-back
*-memory:0
description: System Memory
physical id: 1f
slot: System board or motherboard
size: 512MiB
*-bank:0
description: DIMM [empty]
product: None
vendor: None
physical id: 0
serial: None
slot: A0
width: 64 bits
*-bank:1
description: DIMM
product: None
vendor: None
physical id: 1
serial: None
slot: A1
size: 512MiB
width: 64 bits
*-bank:2
description: DIMM [empty]
product: None
vendor: None
physical id: 2
serial: None
slot: A2
width: 64 bits
*-bank:3
description: DIMM [empty]
product: None
vendor: None
physical id: 3
serial: None
slot: A3
width: 64 bits
*-memory:1 UNCLAIMED
description: RAM memory
product: MCP61 Memory Controller
vendor: nVidia Corporation
physical id: 6
bus info: pci@0000:00:00.0
version: a1
width: 32 bits
clock: 66MHz (15.2ns)
capabilities: ht bus_master cap_list
configuration: latency=0
*-isa
description: ISA bridge
product: MCP61 LPC Bridge
vendor: nVidia Corporation
physical id: 1
bus info: pci@0000:00:01.0
version: a2
width: 32 bits
clock: 66MHz
capabilities: isa bus_master
configuration: latency=0
*-serial
description: SMBus
product: MCP61 SMBus
vendor: nVidia Corporation
physical id: 1.1
bus info: pci@0000:00:01.1
version: a2
width: 32 bits
clock: 66MHz
capabilities: pm cap_list
configuration: driver=nForce2_smbus latency=0 module=i2c_nforce2
*-memory:2 UNCLAIMED
description: RAM memory
product: MCP61 Memory Controller
vendor: nVidia Corporation
physical id: 1.2
bus info: pci@0000:00:01.2
version: a2
width: 32 bits
clock: 66MHz (15.2ns)
configuration: latency=0
*-usb:0
description: USB Controller
product: MCP61 USB Controller
vendor: nVidia Corporation
physical id: 2
bus info: pci@0000:00:02.0
version: a2
width: 32 bits
clock: 66MHz
capabilities: pm ohci bus_master cap_list
configuration: driver=ohci_hcd latency=0 maxlatency=1 mingnt=3 module=ohci_hcd
*-usb:1
description: USB Controller
product: MCP61 USB Controller
vendor: nVidia Corporation
physical id: 2.1
bus info: pci@0000:00:02.1
version: a2
width: 32 bits
clock: 66MHz
capabilities: debug pm ehci bus_master cap_list
configuration: driver=ehci_hcd latency=0 maxlatency=1 mingnt=3 module=ehci_hcd
*-pci:0
description: PCI bridge
product: MCP61 PCI bridge
vendor: nVidia Corporation
physical id: 4
bus info: pci@0000:00:04.0
version: a1
width: 32 bits
clock: 66MHz
capabilities: pci ht subtractive_decode bus_master cap_list
*-multimedia
description: Audio device
product: MCP61 High Definition Audio
vendor: nVidia Corporation
physical id: 5
bus info: pci@0000:00:05.0
version: a2
width: 32 bits
clock: 66MHz
capabilities: pm msi ht bus_master cap_list
configuration: driver=HDA Intel latency=0 maxlatency=5 mingnt=2 module=snd_hda_intel
*-ide:0
description: IDE interface
product: MCP61 IDE
vendor: nVidia Corporation
physical id: a
bus info: pci@0000:00:06.0
version: a2
width: 32 bits
clock: 66MHz
capabilities: ide pm bus_master cap_list
configuration: driver=pata_amd latency=0 maxlatency=1 mingnt=3 module=pata_amd
*-bridge
description: Ethernet interface
product: MCP61 Ethernet
vendor: nVidia Corporation
physical id: 7
bus info: pci@0000:00:07.0
logical name: eth0
version: a2
serial: 00:e0:4d:2f:4f:d4
size: 100000000
capacity: 100000000
width: 32 bits
clock: 66MHz
capabilities: bridge pm msi ht bus_master cap_list ethernet physical mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=forcedeth driverversion=0.61 duplex=full latency=0 link=yes maxlatency=20 mingnt=1 module=forcedeth multicast=yes port=MII speed=100MB/s
*-ide:1
description: IDE interface
product: MCP61 SATA Controller
vendor: nVidia Corporation
physical id: 8
bus info: pci@0000:00:08.0
logical name: scsi2
version: a2
width: 32 bits
clock: 66MHz
capabilities: ide pm msi ht bus_master cap_list emulated
configuration: driver=sata_nv latency=0 maxlatency=1 mingnt=3 module=sata_nv
*-disk
description: ATA Disk
product: WDC WD800JD-75MS
vendor: Western Digital
physical id: 0.0.0
bus info: scsi@2:0.0.0
logical name: /dev/sda
version: 10.0
serial: WD-WMAM9RM85579
size: 74GiB (80GB)
capabilities: partitioned partitioned:dos
configuration: ansiversion=5 signature=d5b3d5b3
*-volume:0
description: Windows NTFS volume
physical id: 1
bus info: scsi@2:0.0.0,1
logical name: /dev/sda1
version: 3.1
serial: 946fcaea-dbcb-9e4c-bf89-672ead2acd22
size: 10001MiB
capacity: 10001MiB
capabilities: primary bootable ntfs initialized
configuration: clustersize=4096 created=2008-04-24 19:50:37 filesystem=ntfs state=clean
*-volume:1
description: Extended partition
physical id: 2
bus info: scsi@2:0.0.0,2
logical name: /dev/sda2
size: 62GiB
capacity: 62GiB
capabilities: primary extended partitioned partitioned:extended
*-logicalvolume:0
description: HPFS/NTFS partition
physical id: 5
logical name: /dev/sda5
capacity: 5271MiB
*-logicalvolume:1
description: W95 FAT32 partition
physical id: 6
logical name: /dev/sda6
logical name: /media/disk-1
capacity: 14GiB
configuration: mount.fstype=vfat mount.options=rw,nosuid,nodev,relatime,uid=1000,fmask=0077,dmask=0077,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8 state=mounted
*-logicalvolume:2
description: W95 FAT32 partition
physical id: 7
logical name: /dev/sda7
logical name: /media/disk
capacity: 11GiB
configuration: mount.fstype=vfat mount.options=rw,nosuid,nodev,relatime,uid=1000,fmask=0077,dmask=0077,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8 state=mounted
*-logicalvolume:3
description: Linux filesystem partition
physical id: 8
logical name: /dev/sda8
logical name: /boot
capacity: 125MiB
configuration: mount.fstype=ext3 mount.options=rw,relatime,data=ordered state=mounted
*-logicalvolume:4
description: Linux filesystem partition
physical id: 9
logical name: /dev/sda9
logical name: /
logical name: /dev/.static/dev
capacity: 8918MiB
configuration: mount.fstype=xfs mount.options=rw,relatime,ikeep,noquota state=mounted
*-logicalvolume:5
description: Linux swap / Solaris partition
physical id: a
logical name: /dev/sda10
capacity: 745MiB
capabilities: nofs
*-logicalvolume:6
description: Linux filesystem partition
physical id: b
logical name: /dev/sda11
logical name: /home/david/store
capacity: 21GiB
configuration: mount.fstype=xfs mount.options=rw,relatime,ikeep,noquota state=mounted
*-volume:2
description: Linux filesystem partition
physical id: 3
bus info: scsi@2:0.0.0,3
logical name: /dev/sda3
logical name: /var
capacity: 1058MiB
capabilities: primary
configuration: mount.fstype=xfs mount.options=rw,relatime,ikeep,noquota state=mounted
*-volume:3 UNCLAIMED
description: Linux filesystem partition
physical id: 4
bus info: scsi@2:0.0.0,4
capacity: 1608MiB
capabilities: primary
*-pci:1
description: PCI bridge
product: MCP61 PCI Express bridge
vendor: nVidia Corporation
physical id: 9
bus info: pci@0000:00:09.0
version: a2
width: 32 bits
clock: 33MHz
capabilities: pci pm msi ht pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport-driver
*-pci:2
description: PCI bridge
product: MCP61 PCI Express bridge
vendor: nVidia Corporation
physical id: b
bus info: pci@0000:00:0b.0
version: a2
width: 32 bits
clock: 33MHz
capabilities: pci pm msi ht pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport-driver
*-pci:3
description: PCI bridge
product: MCP61 PCI Express bridge
vendor: nVidia Corporation
physical id: c
bus info: pci@0000:00:0c.0
version: a2
width: 32 bits
clock: 33MHz
capabilities: pci pm msi ht pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport-driver
*-display
description: VGA compatible controller
product: GeForce 6100 nForce 405
vendor: nVidia Corporation
physical id: d
bus info: pci@0000:00:0d.0
version: a2
width: 64 bits
clock: 66MHz
capabilities: pm msi vga_controller bus_master cap_list
configuration: driver=nvidia latency=0 module=nvidia
*-pci:4
description: Host bridge
product: K8 [Athlon64/Opteron] HyperTransport Technology Configuration
vendor: Advanced Micro Devices [AMD]
physical id: 100
bus info: pci@0000:00:18.0
version: 00
width: 32 bits
clock: 33MHz
*-pci:5
description: Host bridge
product: K8 [Athlon64/Opteron] Address Map
vendor: Advanced Micro Devices [AMD]
physical id: 101
bus info: pci@0000:00:18.1
version: 00
width: 32 bits
clock: 33MHz
*-pci:6
description: Host bridge
product: K8 [Athlon64/Opteron] DRAM Controller
vendor: Advanced Micro Devices [AMD]
physical id: 102
bus info: pci@0000:00:18.2
version: 00
width: 32 bits
clock: 33MHz
*-pci:7
description: Host bridge
product: K8 [Athlon64/Opteron] Miscellaneous Control
vendor: Advanced Micro Devices [AMD]
physical id: 103
bus info: pci@0000:00:18.3
version: 00
width: 32 bits
clock: 33MHz
configuration: driver=k8temp module=k8temp
作者: syrano 发布时间: 2008-03-27
lz不如在贴一个失败后恢复旧内核的方法,这样就可以放心的去试了
作者: eos 发布时间: 2008-03-28
lz不如在贴一个失败后恢复旧内核的方法,这样就可以放心的去试了
旧内核又没有删除,在grub选择旧内核就可以了
grub菜单上选用老内核启动机器,推倒重来
作者: syrano 发布时间: 2008-03-28
作者: 黄金时代 发布时间: 2008-03-28
作者: Leonj 发布时间: 2008-03-29
这么好的帖子
作者: Yizer 发布时间: 2008-03-30
mark先。
作者: hyy_m 发布时间: 2008-03-30
作者: skyx 发布时间: 2008-03-30
一直在找编译内核详细的帖子....LZ让我感激涕零~~~~~
谢谢!
作者: 旺财 发布时间: 2008-03-30
楼主这里看一下有没有笔误?我看过帖子说是这样:“编译进入内核”=Y “编译成模块”=M
作者: 旺财 发布时间: 2008-03-30
楼主这里看一下有没有笔误?我看过帖子说是这样:“编译进入内核”=Y “编译成模块”=M
谢谢ls
你看的帖子中配置内核的工具是用的比较麻烦的文本界面的menuconfig,
里面“编译进入内核”显示的是“Y” ,“编译成模块”显示的是“M”,
我用的是比较方便的图形界面的xconfig
里面“编译进入内核”显示的是圆中点,“编译进入内核”显示的是方块中一勾。
作者: syrano 发布时间: 2008-03-30
作者: hyy_m 发布时间: 2008-03-31
初用ubuntu,由于工作关系,需要涉及很多模块编译的工作,以前都是用rhel的。
作者: sepnic 发布时间: 2008-03-31
我的P4机启动从22s减少到20s,gui响应快了30%
作者: syrano 发布时间: 2008-03-31
就是呀,不过看的人还比较多,
再不就是我写的太详细了

支持你 我用我再去网上搜索了 有个很好的教程
作者: ppp1982 发布时间: 2008-04-02
作者: cfd2006 发布时间: 2008-04-03
这样编译以后就有了image 和headers两个包,要编译一些软件,比如drcom,headers包也是不能少的。
作者: reshine 发布时间: 2008-04-04
这样编译以后就有了image 和headers两个包,要编译一些软件,比如drcom,headers包也是不能少的。
貌似我每次编译headers包时都出错,
而如果不编译kernel_headers,那么内核的源码目录和headers包的作用时一样的.
所以编译drcom不需要headers包
make -C drcomc
make[1]: Entering directory `/home/david/drcom-1.3.7/drcomc'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/david/drcom-1.3.7/drcomc'
make -C drcomd
make[1]: Entering directory `/home/david/drcom-1.3.7/drcomd'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/david/drcom-1.3.7/drcomd'
make -C kmod
make[1]: Entering directory `/home/david/drcom-1.3.7/kmod'
make -C /lib/modules/2.6.24.4david5/build M=/home/david/drcom-1.3.7/kmod modules
make[2]: Entering directory `/home/david/linus/linux-2.6.24.4'
#这时候make进入内核源码目录~/david/linus/linux-2.6.24.4
CC [M] /home/david/drcom-1.3.7/kmod/init.o
CC [M] /home/david/drcom-1.3.7/kmod/proc.o
CC [M] /home/david/drcom-1.3.7/kmod/proto.o
/home/david/drcom-1.3.7/kmod/proto.c: In function ‘init_hijack’:
/home/david/drcom-1.3.7/kmod/proto.c:454: warning: assignment from incompatible pointer type
/home/david/drcom-1.3.7/kmod/proto.c:455: warning: assignment from incompatible pointer type
/home/david/drcom-1.3.7/kmod/proto.c: In function ‘cleanup_hijack’:
/home/david/drcom-1.3.7/kmod/proto.c:462: warning: comparison of distinct pointer types lacks a cast
/home/david/drcom-1.3.7/kmod/proto.c:463: warning: assignment from incompatible pointer type
LD [M] /home/david/drcom-1.3.7/kmod/drcom.o
Building modules, stage 2.
MODPOST 1 modules
CC /home/david/drcom-1.3.7/kmod/drcom.mod.o
LD [M] /home/david/drcom-1.3.7/kmod/drcom.ko
make[2]: Leaving directory `/home/david/linus/linux-2.6.24.4'
#这时候make离开内核源码目录~/david/linus/linux-2.6.24.4
make[1]: Leaving directory `/home/david/drcom-1.3.7/kmod'
david@austria:~/drcom-1.3.7$
作者: syrano 发布时间: 2008-04-04
作者: yooh 发布时间: 2008-04-04
作者: lifuhai 发布时间: 2008-04-05
作者: seabee 发布时间: 2008-04-07
作者: yun_2008 发布时间: 2008-04-10
作者: lonez 发布时间: 2008-04-12
HOSTCC scripts/basic/fixdep
在包含自 /usr/include/bits/posix1_lim.h:153 的文件中,
从 /usr/include/limits.h:145,
从 /usr/lib/gcc/i486-linux-gnu/4.1.3/include/limits.h:122,
从 /usr/lib/gcc/i486-linux-gnu/4.1.3/include/syslimits.h:7,
从 /usr/lib/gcc/i486-linux-gnu/4.1.3/include/limits.h:11,
从 scripts/basic/fixdep.c:115:
/usr/include/bits/local_lim.h:36:26: 错误: linux/limits.h:No such file or directory
在包含自 /usr/include/sys/socket.h:35 的文件中,
从 /usr/include/netinet/in.h:24,
从 /usr/include/arpa/inet.h:23,
从 scripts/basic/fixdep.c:117:
/usr/include/bits/socket.h:311:24: 错误: asm/socket.h:No such file or directory
scripts/basic/fixdep.c: 在函数 ‘use_config’ 中:
scripts/basic/fixdep.c:206: 错误: ‘PATH_MAX’ 未声明 (在此函数内第一次使用)
scripts/basic/fixdep.c:206: 错误: (即使在一个函数内多次出现,每个未声明的标识符在其
scripts/basic/fixdep.c:206: 错误: 所在的函数内只报告一次。)
scripts/basic/fixdep.c:206: 警告: 未使用的变量 ‘s’
scripts/basic/fixdep.c: 在函数 ‘parse_dep_file’ 中:
scripts/basic/fixdep.c:306: 错误: ‘PATH_MAX’ 未声明 (在此函数内第一次使用)
scripts/basic/fixdep.c:306: 警告: 未使用的变量 ‘s’
make[1]: *** [scripts/basic/fixdep] 错误 1
make: *** [scripts_basic] 错误 2
才开始就这样。。。
作者: hnlsjxpz 发布时间: 2008-04-13
作者: alpha.gu 发布时间: 2008-04-17
作者: yaska 发布时间: 2008-04-17
作者: laszo 发布时间: 2008-04-21
HOSTCC scripts/basic/fixdep
在包含自 /usr/include/bits/posix1_lim.h:153 的文件中,
从 /usr/include/limits.h:145,
从 /usr/lib/gcc/i486-linux-gnu/4.1.3/include/limits.h:122,
从 /usr/lib/gcc/i486-linux-gnu/4.1.3/include/syslimits.h:7,
从 /usr/lib/gcc/i486-linux-gnu/4.1.3/include/limits.h:11,
从 scripts/basic/fixdep.c:115:
/usr/include/bits/local_lim.h:36:26: 错误: linux/limits.h:No such file or directory
在包含自 /usr/include/sys/socket.h:35 的文件中,
从 /usr/include/netinet/in.h:24,
从 /usr/include/arpa/inet.h:23,
从 scripts/basic/fixdep.c:117:
/usr/include/bits/socket.h:311:24: 错误: asm/socket.h:No such file or directory
scripts/basic/fixdep.c: 在函数 ‘use_config’ 中:
scripts/basic/fixdep.c:206: 错误: ‘PATH_MAX’ 未声明 (在此函数内第一次使用)
scripts/basic/fixdep.c:206: 错误: (即使在一个函数内多次出现,每个未声明的标识符在其
scripts/basic/fixdep.c:206: 错误: 所在的函数内只报告一次。)
scripts/basic/fixdep.c:206: 警告: 未使用的变量 ‘s’
scripts/basic/fixdep.c: 在函数 ‘parse_dep_file’ 中:
scripts/basic/fixdep.c:306: 错误: ‘PATH_MAX’ 未声明 (在此函数内第一次使用)
scripts/basic/fixdep.c:306: 警告: 未使用的变量 ‘s’
make[1]: *** [scripts/basic/fixdep] 错误 1
make: *** [scripts_basic] 错误 2
才开始就这样。。。
sudo aptitude install libncurses5-dev #使用menuconfig需要安装依赖的libncurses5
如果不是完全文本界面,建议用xconfig
作者: syrano 发布时间: 2008-04-21
作者: wxlsty323 发布时间: 2008-04-24
用什么参数才能实现增量编译呢?
作者: wuxb 发布时间: 2008-04-24
作者: wxlsty323 发布时间: 2008-04-25
用什么参数才能实现增量编译呢?
修改代码后,直接输入命令
sudo make-kpkg -initrd --initrd --append-to-version=name5 kernel_image
就不会重新编译了。
注意:
整条命令要和之前编译的一样。
作者: syrano 发布时间: 2008-04-27
作者: 寂寞杀手 发布时间: 2008-04-29
作者: lonelycorn 发布时间: 2008-04-30
不能编译什么呢?
偶目前还没有发现。
作者: syrano 发布时间: 2008-04-30
作者: lonelycorn 发布时间: 2008-04-30
问题二 头一次按照这个文章编译成功了 但是似乎我的内核文件变的很大,原来系统那个似乎是7M吧,我那个40多M啊崩溃
问题三 编译好之后原先上网不能了 是不是要驱动 网络配置方面我没有改过config啊,不知道怎么弄
作者: ioiomi 发布时间: 2008-05-01
问题二 头一次按照这个文章编译成功了 但是似乎我的内核文件变的很大,原来系统那个似乎是7M吧,我那个40多M啊崩溃
问题三 编译好之后原先上网不能了 是不是要驱动 网络配置方面我没有改过config啊,不知道怎么弄
请仔细看贴
No.1
配置文件时是解压的目录里得.config
用下面命令可以把当前系统用的内核的config复制到你解压的目录
No.2 在系统原装内核的基础上理智修改.config就不会出现问题二了。
No.3 网卡驱动没有选上。(注意看与网络相关的选项)
作者: syrano 发布时间: 2008-05-01
如果用原来的配置文件是否就不用动这一项了?
还有网上的2.6.25核心后面的mm1代表的是什么意思 是不是补丁[/list]
作者: ioiomi 发布时间: 2008-05-01
作者: xjj 发布时间: 2008-05-02
再次求教
作者: ioiomi 发布时间: 2008-05-02
再次求教
不大呀,我编译出来的都比默认的小。
可以用2.6.24的配置。
你没有把声音选上,(直接复制8.04系统默认内核的配置文件,里面居然没有选上声音,不知道什么回事,我也只好自己选上的。看来不能迷信默认内核的配置了)
最后由 syrano 编辑于 2008-05-02 20:37,总共编辑了 1 次
作者: syrano 发布时间: 2008-05-02
作者: solcomo 发布时间: 2008-05-02
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28