当前位置:首页 » 编程软件 » 编译x86

编译x86

发布时间: 2023-01-18 17:34:34

⑴ 如何编译x86版本的bionic

oid5.0 SDK 64bit 编译报错
【秋佳节】码云陪起赏花赏月拿豪礼>>> ?
错误信息:
In file included from bionic/libc/kernel/uapi/linux/signal.h:21:0,
from bionic/libc/include/signal.h:45,
from bionic/libc/include/sys/select.h:35,
from bionic/libc/include/unistd.h:34,
from external/iproute2/tc/tc.c:18:
bionic/libc/include/signal.h:85:18: error: expected ':', ',', ';', '}' or '__attribute__' before '.' token
sighandler_t sa_handler;
^
2 warnings generated.
target C: tc <= external/iproute2/tc/tc_qdisc.c
target C: tc <= external/iproute2/tc/q_cbq.c
make: *** [out/target/proct/generic_arm64/obj/EXECUTABLES/tc_intermediates/tc.o] Error 1
make: *** Waiting for unfinished jobs....
In file included from bionic/libc/kernel/uapi/linux/signal.h:21:0,
from bionic/libc/include/signal.h:45,
from bionic/libc/include/sys/select.h:35,
from bionic/libc/include/unistd.h:34,
from external/iproute2/tc/tc_qdisc.c:15:
bionic/libc/include/signal.h:85:18: error: expected ':', ',', ';', '}' or '__attribute__' before '.' token
sighandler_t sa_handler;
^
In file included from bionic/libc/kernel/uapi/linux/signal.h:21:0,
from bionic/libc/include/signal.h:45,
from bionic/libc/include/sys/select.h:35,
from bionic/libc/include/unistd.h:34,
from external/iproute2/tc/q_cbq.c:15:
bionic/libc/include/signal.h:85:18: error: expected ':', ',', ';', '}' or '__attribute__' before '.' token
sighandler_t sa_handler;
^
make: *** [out/target/proct/generic_arm64/obj/EXECUTABLES/tc_intermediates/tc_qdisc.o] Error 1

make: *** [out/target/proct/generic_arm64/obj/EXECUTABLES/tc_intermediates/q_cbq.o] Error 1
朋友碰signal.h:
....
typedef __sighandler_t sig_t; /* BSD compatibility. */
typedef __sighandler_t sighandler_t; /* glibc compatibility. */

#define si_timerid si_tid /* glibc compatibility. */

#if defined(__LP64__)
struct sigaction {
unsigned int sa_flags;
union {
sighandler_t sa_handler;
void (*sa_sigaction)(int, struct siginfo*, void*);
};
sigset_t sa_mask;
void (*sa_restorer)(void);
};
#elif defined(__mips__)
struct sigaction {
unsigned int sa_flags;
union {
sighandler_t sa_handler;
void (*sa_sigaction) (int, struct siginfo*, void*);
};
sigset_t sa_mask;
};
#endif

⑵ 编译x86-Qtopia-2.2.0错误.求教大神

先说明一下几个QT的区别:

从Qt4.1开始,Qt/Embedded改名为Qtopia Core,又从Qt4.4.1开始,Qtopia Core又改名为Qt for Embedded Linux。

我们通常所说的 Qt 都是指的用于 Linux/Unix 的 Qt/X11,真正意义上Qt 是泛指 Qt 的所有版本的图像界面库,比如 Qt/X11,Qt Windows, Qt Mac 等。

Qt/Embeded 的概念:它是用于嵌入式 Linux 系统的 Qt 版本,Qt/Embeded 也简称 Qte 或 Qt/EQte 去掉了 X Lib 的依赖而直接工作在 Framebuffer 上,虽然它是 Qt 的嵌入式版本,但是它不是 Qt/X11 的子集,它有部分机制(比如 QCOP 等)就不能用于 Qt/X11 中。
Qtopia 是一个基于 Qte 的类似桌面系统的应用环境,包含有 PDA 版本和 Phone 版本。实质上 Qtopia Core 还是基础类库,相当于 Qte。
最近 Qtopia Core 改名了,新名字叫做:qt-embeded-linux-xxxxxx。

以下的内容结合《基于 SKY2440/TQ2440 的 Qt/Embeded 应用程序开发完全手册》

编译 PC 版本的 Qtopia-2.2.0

1、准备编译器

知道你的ubuntu10.04默认安装的是gcc4.4,现在我们要使用gcc3.4

#apt-get install gcc-3.4

安装后/usr/bin下就多出了gcc-3.4,原先这里有个gcc,它是指向gcc-4.4的软链接,现在我们要让它指向gcc-3.4

#rm gcc

#ln -s /usr/bin/gcc-3.4 /usr/bin/gcc

测试一下

$gcc -v

注意:在编译PC版本的qt4.5时我们又需要把gcc的版本从3.4升到4.4

2、解压

#tar xvfj Qte_20110601.tar.bz2 -C /

在“Linux 资源\Linux 平台开发工具包\”里面

?arm-qtopia-2.2.0_build:将 qtopia-2.2.0.tar.bz2 源码编译成 ARM 版本,并且编译 tslib-1.4.1.tar.bz2 源码和 EmbedSky_apps.tar.bz2 源码。

? arm-qtiopia-2.2.0-konqueror_build:在 arm-qtopia-2.2.0_build 的基础上增加了 konqueror.tar.bz2 的 编 译 。

? setARM_QpeEnv:设置 ARM 版本的环境变量的脚本

? setX86_QpeEnv:设置 X86 版本的环境变量的脚本。

? x86-qtopia-2.2.0_build:将 qtopia-2.2.20tar.bz2 源码编成 PC 版本。

? x86-qtopia-2.2.0-konqeror_build:在 x86-qtopia-2.2.0_build 的基础上增加了 konqueror.tar.bz2 的编译。

? EmbedSky_apps.tar.bz2:后面几个章节讲到的应用程序的源码合集(Makefile 文件基于 ARM 的,可以利用该源码包自行生成 x86 版本的 Makefile 文 件 )。

? konqueror.tar.bz2:Web 浏览器的源码。

? qtopia-2.2.0.tar.bz2:qtopia-2.2.0 的源码。

? test_x86:当 PC 版本的 Qtopia-2.2.0 编译成功后,仿真时运行该脚本。

? tslib-1.4.1.tar.bz2:触摸校正的源码

3、#./x86-qtopia-2.2.0-kongqueror_build

这一步会发生很多错误,下面几步来修正。

以下内容参照



4、修改几处代码源文件

修改x86-qtopia-2.2.0/qt2/src/tools/qmemoryfile_unix.cpp 143行

if (!f)
f = ::pen(tmpFile.latin1(), O_CREAT | O_WRONLY);
修改为
if (!f)
f = ::pen(tmpFile.latin1(), O_CREAT | O_WRONLY, 0666);

修改x86-qtopia-2.2.0/qtopia/src/libraries/qtopia/qmemoryfile_unix.cpp 141行

if (!f)
f = ::pen(tmpFile.latin1(), O_CREAT | O_WRONLY);
修改为
if (!f)
f = ::pen(tmpFile.latin1(), O_CREAT | O_WRONLY, 0666);

修改/x86-qtopia-2.2.0/qtopia/src/libraries/qtopia/backend/vobject.cpp:419行
char *dot = strrchr(g,'.');

char *dot = (char*)strrchr(g,'.');

修正/x86-qtopia-2.2.0/qtopia/src/plugins/codecs/wavplugin/wavplugin.cpp:435行
char *ext = strrchr( path.latin1(), '.' );
改为
char *ext = (char*)strrchr( path.latin1(), '.' );

修改x86-qtopia-2.2.0-konqueror_biuld的第26行,

. setQpeEnv
改为
./setQpeEnv

5、安装一些包

# sudo apt-get install libx11-dev x11proto-xext-dev libqt3-mt-dev uuid-dev

6、手动设置环境变量,然后执行脚本

#source ./x86-qtopia-2.2.0/setQpeEnv

#./x86-qtopia-2.2.0-kongqueror_build

7、PC 仿真 Qtopia-2.2.0

#./test_x86

编译 ARM 版本的 Qtopia-2.2.0

1、准备交叉编译器

#tar xvfj EABI_4.3.3_EmbedSky_20091210.tar.bz2 -C /

然后新的交叉编译器就在/opt/EmedSky/4.3.3/bin下面,把这个路径放到/etc/environment中,source一下

#which arm-linux-gcc;确保当前的交叉编译器就是/opt/EmedSky/4.3.3/bin下的那个,因为你之前可能装过其他版本的交叉编译器,并且把它的路径也放到了PATH中,并且还在/opt/EmedSky/4.3.3/bin在前面,那就不对了。

2、#./arm-qtopia-2.2.0-kongqueror_build

这一步过程中会有一些错误,下面几步来修正

3、 修改arm-qtopia-2.2.0/qt2/src/tools/qmemoryfile_unix.cpp 143行

if (!f)
f = ::pen(tmpFile.latin1(), O_CREAT | O_WRONLY);
修改为
if (!f)
f = ::pen(tmpFile.latin1(), O_CREAT | O_WRONLY, 0666);

4、手动设置环境变量,然后执行脚本

# source ./arm-qtopia-2.2.0/setQpeEnv

#./arm-qtopia-2.2.0-kongqueror_build

最后显示done!成功。

至于2.3节所讲的制作包含 Qtopia-2.2.0 的文件系统工作就不需要做了天嵌制作好的文件系统里面已经包含了。

开发第一个Qt程序

依照天嵌资料第三章讲的去做。不过有三点需要注意

(1)在main.cpp中印少了一个右括号

(2)Makefile文件要改的地方不仅仅是红色标注的地方。红色标注的只是要添加的内容,还有一些地重复了,要删除。直接把资料上给的Makefile复制过来也有一些问题。如果是自己改注意最后一下文件项后面不能要“\",比如

OBJECTS = first.o \

main.o

main.o后面就不能要“\"。

(3)当编译好arm版本的first程序后,first、first.png、first.desktop是在资料所说的三个位置,但是“把三个文件放到开发板的相应位置”怎么理解呢?

把first放到开发板的/opt/Qtopia/bin/ 下;first.png放到/opt/Qtopia/pics/下;first.desktop放到/Qtopia/apps/EmbedSky/下

⑶ 如何编译android x86模拟器

首先你需要设置一下emulator工具的目录之类的
要在.bashrc中新增环境变量,如下
ANDROID_PRODUCT_OUT=~/android/out/target/proct/generic
ANDROID_PRODUCT_OUT_bin=~/android/out/host/linux-x86/bin
这里是设置你的输出文件的位置和bin工具目录
然后在命令行输入:
export path=${path}:${ANDROID_PRODUCT_OUT_bin}:${ANDROID_PRODUCT_OUT};
上面是导入了相关的配置,然后使之生效。
source ~/.bashrc
接着切换到输出的system文件夹
cd ~/android/out/target/proct/generic
然后来创建模拟器
emulator -system system.img -data userdata.img -ramdisk ramdisk.img
如果你运气够好的话,也许现在已经在运行了,不过我运气明显不够好。
提示一:
emulator: ERROR: You did not specify a virtual device name, and the system
directory could not be found.
If you are an Android sdk user, please use ‘@<name>’ or ‘-avd <name>’
to start a given virtual device (see -help-avd for details).
Otherwise, follow the instructions in -help-disk-images to start the emulator

既然人家提示了,那就按照步骤走吧,输入命令:
emulator -help-avd
接着提示如下:
use ‘-avd <name>’ to start the emulator program with a given Android
Virtual Device (a.k.a. AVD), where <name> must correspond to the name
of one of the existing AVDs available on your host machine.
See -help-virtual-device to learn how to create/list/manage AVDs.
As a special convenience, using ‘@<name>’ is equivalent to using
‘-avd <name>’.
跟着提示继续走,输入命令:
emulator -help-virtual-device
又是提示了:
An Android Virtual Device (AVD) models a single virtual
device running the Android platform that has, at least, its own
kernel, system image and data partition.
Only one emulator process can run a given AVD at a time, but
you can create several AVDs and run them concurrently.
You can invoke a given AVD at startup using either ‘-avd <name>’
or ‘@<name>’, both forms being equivalent. For example, to launch
the AVD named ‘foo’, type:
emulator @foo
The ‘android’ helper tool can be used to manage virtual devices.
For example:
android create avd -n <name> -t 1 # creates a new virtual device.
android list avd # list all virtual devices available.
Try ‘android –help’ for more commands.
Each AVD really corresponds to a content directory which stores
persistent and writable disk images as well as configuration files.
Each AVD must be created against an existing sdk platform or add-on.
For more information on this topic, see -help-sdk-images.

延伸1):
Android x86模拟器Intel Atom x86 System Image配置与使用方法

大家现在开发使用的Android 模拟器模拟的是 arm 的体系结构(arm-eabi),因此模拟器并不是运行在x86上而是模拟的arm,所以我们调试程序的时候经常感觉到非常慢,大部分开发者应该都深有体会。
针对这种情况,前段时间intel推出了支持x86的Android模拟器,这将大大提高启动速度和程序的运行速度,这将允许Android模拟器能够以原始速度(真机运行速度)运行在使用intel x86处理器的电脑中,各位开发者有福了,下面将为大家展示使用方法。

一、首先下载intel提供的 intel® Hardware Accelerated Execution Manager 1.0.1(R2)

requirement:
1. requires the Android* SDK to be installed (version 17 or higher). SDK17或者以上
2.intel® processor with support for VT-x, EM64T, and Execute Disable (XD) bit functionality intel的cpu:并支持VT-X(虚拟化技术)、可扩展64位、Execute Disable bit。(均需要保证在bios中开启Enable)
3. At least 1 gb of available ram 1G以上内存,否则安装不了

满足硬件和软件要求之后,就可以开始安装了,一直下一步至安装成功。途中有个地方选择分配给HAXM内存大小,一般默认就好,分太多会拖慢整机速度。

安装成功后命令行输入sc query intelhaxm,查看运行状态: state is: “4 RUNNING” ,即代表安装成功。需要更改分配内存,重新运行一下安装程序选择change即可修改。
还可以使用以下指令手动开启和关闭:
Stop: sc stop intelhaxm

Start:
sc start intelhaxm

满足软硬件条件,若提示如下Error:but intel Execute Disable bit (XD) is not turned on......
(需要开启系统数据执行保护功能dep,下午纠结了好久才查到。官网原文:Windows* hosts may need to enable dep (Data Execution Prevention) in addition to intel XD)
命令行使用指令:bcdedit.exe /set nx optin 打开即可,需要重启电脑

二、下载Intel Atom x86 System Image
1. 从SDK Manager下载:打开SDK Manager,展开至Android2.3.3(API10)(注意:目前只有2.3.3和4.0.3(Ice Cream Sandwich)有x86的Image),需要和2.3.3的SDK Platform配合使用。

2.使用avd Manager创建一个新的avd: Hardware Property里面选择gpu emulation yes 还有 Keyboard support yes

3.开始使用飞速的模拟器吧,各种爽歪歪
好的工具可以更有效率的开发APP,让我们从此告别那龟速的模拟器吧

⑷ 大家编译一个x86的Linux内核需要多长时间

make 时加参数 -jX
X 是你的 CPU 核心数量 +1 。
可以加快你的编译速度。

我的本本 T5450 编译需要 10 分钟。我的内核是针对机器剪裁了的。不剪裁的全功能内核貌似我就需要 30 分钟了。

⑸ 怎么编译linux x86

首先你需要设置一下emulator工具的目录之类的,这个不细说了,
要在.bashrc中新增环境变量,如下
ANDROID_PRODUCT_OUT=~/android/out/target/proct/generic
ANDROID_PRODUCT_OUT_BIN=~/android/out/host/linux-x86/bin
这里是设置你的输出文件的位置和bin工具目录,不用多解释吧?
然后在命令行输入:
export PATH=${PATH}:${ANDROID_PRODUCT_OUT_BIN}:${ANDROID_PRODUCT_OUT};
上面是导入了相关的配置,然后使之生效。
source ~/.bashrc
接着切换到输出的system文件夹
cd ~/android/out/target/proct/generic
然后来创建模拟器
emulator -system system.img -data userdata.img -ramdisk ramdisk.img
如果你运气够好的话,也许现在已经在运行了,不过我运气明显不够好。
提示一:
emulator: ERROR: You did not specify a virtual device name, and the system
directory could not be found.
If you are an Android SDK user, please use ‘@<name>’ or ‘-avd <name>’
to start a given virtual device (see -help-avd for details).
Otherwise, follow the instructions in -help-disk-images to start the emulator

既然人家提示了,那就按照步骤走吧,输入命令:
emulator -help-avd
接着提示如下:
use ‘-avd <name>’ to start the emulator program with a given Android
Virtual Device (a.k.a. AVD), where <name> must correspond to the name
of one of the existing AVDs available on your host machine.
See -help-virtual-device to learn how to create/list/manage AVDs.
As a special convenience, using ‘@<name>’ is equivalent to using
‘-avd <name>’.
跟着提示继续走,输入命令:
emulator -help-virtual-device
又是提示了:
An Android Virtual Device (AVD) models a single virtual
device running the Android platform that has, at least, its own
kernel, system image and data partition.
Only one emulator process can run a given AVD at a time, but
you can create several AVDs and run them concurrently.
You can invoke a given AVD at startup using either ‘-avd <name>’
or ‘@<name>’, both forms being equivalent. For example, to launch
the AVD named ‘foo’, type:
emulator @foo
The ‘android’ helper tool can be used to manage virtual devices.
For example:
android create avd -n <name> -t 1 # creates a new virtual device.
android list avd # list all virtual devices available.
Try ‘android –help’ for more commands.
Each AVD really corresponds to a content directory which stores
persistent and writable disk images as well as configuration files.
Each AVD must be created against an existing SDK platform or add-on.
For more information on this topic, see -help-sdk-images.

⑹ XCode12 编译x86_64的framework

参考以下步骤 单独编译x86_64

1.找到需要编译的target 切换到build Settings中将

更改为

2.将

⑺ 如何编译linux的x86内核

Gcc编译器, Linux-2.6.29内核

步骤:

(一):清除临时文件,中间文件和配置文件等(刚从网上下载下来的文件这步可省略)。

make clean

删除大多数的由编译生成的文件、但会保留内核的配置文件.config。

make mrproper

删除所有的编译生成的文件,还有内核配置文件,再加上各种备份文件。

make distclean

mrproper删除的文件,加上编辑备份文件和一些补丁文件。

(二)选择参考配置文件

使用正在运行的内核配置文件作为参考配制文件,该配置文件在/boot目录下,使用命令

cp /boot/config-2.6.18-53.el5 .config。

(三)配置内核

配置内核有如下命令:

make config:基于文件模式的交互式配置(也就是一问一答)。

make menuconfig:基于文本模式的菜单式配置(强烈推荐)。

make oldconfig:使用已有的配置文件(.config)但是会询问新增的配置选项。

make xconfig:图形化配置(需要安装图形化系统)。

make menuconfig是最为常用的内核配置方式,使用方法如下:

1、使用方向键在各选项间移动;

2、使用“Enter”键进入下一层选单;每个选项上的高亮字母是键盘快捷方式,使用它可以快速地到达想要设置的选单项。

3、在括号中按“y”将这个项目编译进内核中,按“m”编译为模块,按“n”为不选择(按空格键也可在编译进内核、编译为模块和不编译三者间进行切换),按“h”将显示这个选项的帮助信息,按“Esc”键将返回到上层选单。

内核配置通常在一个已有的配置文件基础上,通过修改得到新的配置文件Linux内核提供了一系列可供参考的内核配置文件,位于Arch/$cpu/configs

注意:要运行make menuconfig的界面需要调整终端的窗口大小,至少为80*19。

(四)编译内核

(1):make zImage

(2):make bzImage

区别:在X86平台,在zImage只能用于小于512Kd的内核(注意是X86平台)

如需获取详细编译信息,可使用:

make zImage V=1

make bzImage V=1

编译好的内核位于arch/<cpu>/boot目录下

(五)编译内核模块

使用命令make moles

内核模块编译的时间比较长,一般需要1~2小时的时间。这些模块源于使用命令make menuconfig启动的菜单型配置界面中选择<m>的项。

(六)安装内核模块

使用命令:make moles_install,完成安装后,编译好的内核模块会从内核源代码目录拷贝至/lib/moles/2.6.29目录下。

(七)制作init ramdisk

使用cd跳动linux-2.6.29/,目录的上层目录,使用命令:mkinitrdinitrd-$version $version(mkinitrd initrd-2.6.29 2.6.29)将上一步中产生的模块目录/lib/moles/2.6.29制作成initrd-2.6.29。

提示:initrd是“initial ramdisk”的缩写,initrd是在实际根文件系统可用之前挂载到系统中的一个初始根文件系统。在桌面或服务器Linux系统中,initrd是一个临时的文件系统。其生命周期很短,只会用作真实文件系统的一个桥梁。在没有存储设备的嵌入式系统中,initrd可以是永久的根文件系统。

Linux的众多发行版之所以使用initrd主要是为了在内核启动之后能够判断哪些硬件驱动需要加载,哪些不需要,文件系统有没有问题等,最终使得根分区能顺利加载。在scsi和sata设备上启动,usb启动盘,无盘服务器等都需要initrd来做判断,这样可以提高Linux内核的通用性。

(八)安装内核

由于Linux系统启动时,会从/boot目录下寻找内核文件与init ramdisk,所以需要将内核和initrd拷贝至/boot目录。使用命令:

cp initrd-2.6.29 /boot

cp linux-2.6.29/arch/x86/boot/bzImage /boot/vmlinuz-2.6.29

(九)修改/etc/grub.conf或者/etc/lilo.conf

为了让grub在启动时能提供一项我们自己制作的linux内核的选项,需要修改grub的配置文件/etc/grub.conf。(添加的代码为title My Linux(2.6.29)以下的)

注意:/etc/grub.conf实际上是/boot/grub/grub.conf的一个链接,因此真正的配置文件存在与/boot/grub目录下。

⑻ x86linux 怎么编译内核

内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。Linux作为一个自由软件,
在广大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定
制一个更高效,更稳定的内核,就需要重新编译内核。本文将以RedHat Linux 6.0(kernel
2.2.5)为操作系统平台,介绍在Linux上进行内核编译的方法。

一、 下载新内核的源代码

目前,在Internet上提供Linux源代码的站点有很多,读者可以选择一个速度较快的站点下载。笔者是从站点 上下载了Linux的最新开发版内核2.3.14的源代码,全部代码被压缩到一个名叫Linux-2.3.14.tar.gz的文件中。

二、 释放内核源代码

由于源代码放在一个压缩文件中,因此在配置内核之前,要先将源代码释放到指定的目录下。首先以root帐号登录,然后进入/usr/src子目录。如果用户在安装Linux时,安装了内核的源代码,则会发现一个linux-2.2.5的子目录。该目录下存放着内核2.2.5的源代码。此外,还会发现一个指向该目录的链接linux。删除该连接,然后将新内核的源文件拷贝到/usr/src目录中。

(一)、用tar命令释放内核源代码

# cd /usr/src

# tar zxvf Linux-2.3.14.tar.gz

文件释放成功后,在/usr/src目录下会生成一个linux子目录。其中包含了内核2.3.14的全部源代码。

(二)、将/usr/include/asm、/usr/inlude/linux、/usr/include/scsi链接到/usr/src/linux/include目录下的对应目录中。

# cd /usr/include

# rm -Rf asm linux

# ln -s /usr/src/linux/include/asm-i386 asm

# ln -s /usr/src/linux/include/linux linux

# ln -s /usr/src/linux/include/scsi scsi

(三)、删除源代码目录中残留的.o文件和其它从属文件。

# cd /usr/src/linux

# make mrproper

三、 配置内核

(一)、启动内核配置程序。

# cd /usr/src/linux

# make config

除了上面的命令,用户还可以使用make menuconfig命令启动一个菜单模式的配置界面。如果用户安装了X window系统,还可以执行make xconfig命令启动X window下的内核配置程序。

(二)、配置内核

Linux的
内核配置程序提供了一系列配置选项。对于每一个配置选项,用户可以回答"y"、"m"或"n"。其中"y"表示将相应特性的支持或设备驱动程序编译进内
核;"m"表示将相应特性的支持或设备驱动程序编译成可加载模块,在需要时,可由系统或用户自行加入到内核中去;"n"表示内核不提供相应特性或驱动程序
的支持。由于内核的配置选项非常多,本文只介绍一些比较重要的选项。

1、Code maturity level options(代码成熟度选项)

Prompt for development and/or incomplete code/drivers
(CONFIG_EXPERIMENTAL) [N/y/?]
如果用户想要使用还处于测试阶段的代码或驱动,可以选择“y”。如果想编译出一个稳定的内核,则要选择“n”。

1、 Processor type and features(处理器类型和特色)

(1)、Processor family (386, 486/Cx486, 586/K5/5x86/6x86, Pentium/K6/TSC, PPro/6x86MX) [PPro/6x86MX] 选择处理器类型,缺省为Ppro/6x86MX。

(2)、Maximum Physical Memory (1GB, 2GB) [1GB] 内核支持的最大内存数,缺省为1G。

(3)、Math emulation (CONFIG_MATH_EMULATION) [N/y/?] 协处理器仿真,缺省为不仿真。

(4)、MTRR (Memory Type Range Register) support (CONFIG_MTRR) [N/y/?]

选择该选项,系统将生成/proc/mtrr文件对MTRR进行管理,供X server使用。

(5)、Symmetric multi-processing support (CONFIG_SMP) [Y/n/?] 选择“y”,内核将支持对称多处理器。

2、 Loadable mole support(可加载模块支持)

(1)、Enable loadable mole support (CONFIG_MODULES) [Y/n/?] 选择“y”,内核将支持加载模块。

(2)、Kernel mole loader (CONFIG_KMOD) [N/y/?] 选择“y”,内核将自动加载那些可加载模块,否则需要用户手工加载。

3、 General setup(一般设置)

(1)、Networking support (CONFIG_NET) [Y/n/?] 该选项设置是否在内核中提供网络支持。

(2)、PCI support (CONFIG_PCI) [Y/n/?] 该选项设置是否在内核中提供PCI支持。

(3)、PCI access mode (BIOS, Direct, Any) [Any] 该选项设置Linux探测PCI设备的方式。选择“BIOS”,Linux将使用BIOS;选择“Direct”,Linux将不通过BIOS;选择“Any”,Linux将直接探测PCI设备,如果失败,再使用BIOS。

(4)Parallel port support (CONFIG_PARPORT) [N/y/m/?] 选择“y”,内核将支持平行口。

4、 Plug and Play configuration(即插即用设备支持)

(1)、Plug and Play support (CONFIG_PNP) [Y/m/n/?] 选择“y”,内核将自动配置即插即用设备。

(2)、ISA Plug and Play support (CONFIG_ISAPNP) [Y/m/n/?] 选择“y”,内核将自动配置基于ISA总线的即插即用设备。

5、 Block devices(块设备)

(1)、Normal PC floppy disk support (CONFIG_BLK_DEV_FD) [Y/m/n/?] 选择“y”,内核将提供对软盘的支持。

(2)、Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support (CONFIG_BLK_DEV_IDE) [Y/m/n/?] 选择“y”,内核将提供对增强IDE硬盘、CDROM和磁带机的支持。

6、 Networking options(网络选项)

(1)、Packet socket (CONFIG_PACKET) [Y/m/n/?] 选择“y”,一些应用程序将使用Packet协议直接同网络设备通讯,而不通过内核中的其它中介协议。

(2)、Network firewalls (CONFIG_FIREWALL) [N/y/?] 选择“y”,内核将支持防火墙。

(3)、TCP/IP networking (CONFIG_INET) [Y/n/?] 选择“y”,内核将支持TCP/IP协议。

(4)The IPX protocol (CONFIG_IPX) [N/y/m/?] 选择“y”,内核将支持IPX协议。

(5)、Appletalk DDP (CONFIG_ATALK) [N/y/m/?] 选择“y”,内核将支持Appletalk DDP协议。

8、SCSI support(SCSI支持)

如果用户要使用SCSI设备,可配置相应选项。

9、Network device support(网络设备支持)

Network device support (CONFIG_NETDEVICES) [Y/n/?] 选择“y”,内核将提供对网络驱动程序的支持。

10、Ethernet (10 or 100Mbit)(10M或100M以太网)

在该项设置中,系统提供了许多网卡驱动程序,用户只要选择自己的网卡驱动就可以了。此外,用户还可以根据需要,在内核中加入对FDDI、PPP、SLIP和无线LAN(Wireless LAN)的支持。

11、Character devices(字符设备)

(1)、Virtual terminal (CONFIG_VT) [Y/n/?] 选择“y”,内核将支持虚拟终端。

(2)、Support for console on virtual terminal (CONFIG_VT_CONSOLE) [Y/n/?]

选择“y”,内核可将一个虚拟终端用作系统控制台。

(3)、Standard/generic (mb) serial support (CONFIG_SERIAL) [Y/m/n/?]

选择“y”,内核将支持串行口。

(4)、Support for console on serial port (CONFIG_SERIAL_CONSOLE) [N/y/?]

选择“y”,内核可将一个串行口用作系统控制台。

12、Mice(鼠标)

PS/2 mouse (aka "auxiliary device") support (CONFIG_PSMOUSE) [Y/n/?] 如果用户使用的是PS/2鼠标,则该选项应该选择“y”。

13、Filesystems(文件系统)

(1)、Quota support (CONFIG_QUOTA) [N/y/?] 选择“y”,内核将支持磁盘限额。

(2)、Kernel automounter support (CONFIG_AUTOFS_FS) [Y/m/n/?] 选择“y”,内核将提供对automounter的支持,使系统在启动时自动 mount远程文件系统。

(3)、DOS FAT fs support (CONFIG_FAT_FS) [N/y/m/?] 选择“y”,内核将支持DOS FAT文件系统。

(4)、ISO 9660 CDROM filesystem support (CONFIG_ISO9660_FS) [Y/m/n/?]

选择“y”,内核将支持ISO 9660 CDROM文件系统。

(5)、NTFS filesystem support (read only) (CONFIG_NTFS_FS) [N/y/m/?]

选择“y”,用户就可以以只读方式访问NTFS文件系统。

(6)、/proc filesystem support (CONFIG_PROC_FS) [Y/n/?] /proc是存放Linux系统运行状态的虚拟文件系统,该项必须选择“y”。

(7)、Second extended fs support (CONFIG_EXT2_FS) [Y/m/n/?] EXT2是Linux的标准文件系统,该项也必须选择“y”。

⑼ 编译在X86平台下运行的linux内核出错 make: Warning: File `.config' has modification time 6.5e+02 s in

出现这种错误有可能是因为工程在别的电脑上一直到当前的电脑上,进行编译出现的。主要是因为两个环境的时间不对应。

原因:window的时间和虚拟机上的时间有差异。
解决:修改虚拟机上的时间。
指令1:sudo date -s 02/19/2021 //月、日、年
指令2:sudo date -s 14:46:00 //时、分、秒

⑽ 大家编译一个x86的Linux内核需要多长时间

make
时加参数
-jX
X
是你的
CPU
核心数量
+1

可以加快你的编译速度。
我的本本
T5450
编译需要
10
分钟。我的内核是针对机器剪裁了的。不剪裁的全功能内核貌似我就需要
30
分钟了。

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:705
制作脚本网站 发布:2025-10-20 08:17:34 浏览:969
python中的init方法 发布:2025-10-20 08:17:33 浏览:677
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:830
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:738
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1077
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:309
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:189
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:875
python股票数据获取 发布:2025-10-20 07:39:44 浏览:831