操作系统

当前位置:金沙棋牌 > 操作系统 > 用Linux开源内核打造自己的LINUX发行版,内核编译

用Linux开源内核打造自己的LINUX发行版,内核编译

来源:http://www.logblo.com 作者:金沙棋牌 时间:2019-09-06 13:32

在这一有的涉及多少个第一模块的布局请,特别注意.一般用"make menuconfig"命令来配置内核.

  

 

 

  也要挑选本身声卡对应的驱动编写翻译进基本,相比较常见的声卡是i810_audio,以下正是这种声卡的配备,以供参谋

# make menuconfig (配置基本各选拔)

                          

  三、 编写翻译进度

  1. 解压

      title Red Hat Linux (2.***)

  <*> OSS Mixer API

   VMware6:6.01 build-55017

  以上三项必定要选上,而且要内建(即标*). 那几个丰盛首要,在配置完后自然要检查一下.config文书有未有"CONFIG_EXT3_FS=y"这一项. 倘诺不是"CONFIG_EXT3_FS=y"而是"CONFIG_EXT3_FS=m",你在运转基本时就能够遇上以下错误: pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed

  在这一部分关联多少个根本模块的配备请,特别注意.一般用"make menuconfig"命令来安排内核.输入以上命令后现身一个菜单分界面,顾客能够对急需的模块.上边器重讲多少个基本点的安插。

# ln –s linux-2.6.18.8 linux

00:07.3 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI (rev 08)

  if [ $usb = "1" ]; then

  1. 下载内核

                          

  rpmbuild -bb /usr/src/redhat/SPECS/modutils.spec

是因为在vmware中使用模拟的SCSI硬盘和AMD PCnet32网卡,由此须求“SCSI disk support”、“BusLogin SCSI support”、“AMD PCnet32 PCI support”的帮助,最佳编写翻译进基本,并非编写翻译为内核模块[U1] 。

                          

  remove snd-intel8x0

# make dep (塑造编译时所需的依据文件。注意:如若基本从未编写翻译过,此步可跳过)

请务要求选中ext3文件系统,

  Ethernet (10 or 100Mbit) --->

互联网上关于vmware上linux内核build的篇章很多,首要难题在于buildc成功后不可能符合规律运维水源,那是vmware的一个bug,近些日子...

  Sound --->

  alias char-major-14 soundcore

   Hard driver: IDE

 

  make bzImage

Ext2 extended attributes

tar –jxvf  linux-2.6.18.2.tar.bz2

  <*> OSS PCM (digital audio) API[*] OSS Sequencer API

# make mrproper (该命令可确定保证源代码目录下并未有不科学的.o文件,倘诺是新解压的水源,此步可免)

配备2.6.0内核时假设您的主板是速龙微电路的话,你用暗许配制大概就足以收获二个壮志未酬的内核哦。做法是make  menuconfig后离开时精选保存。

  timeout=10

 

 

  alias snd-card-0 snd-intel8x0

# cd linux

  [*] Ext3 journalling file system support

  2)Sound问题

# tar –jxvf linux-2.6.18.8.tar.bz2

#make oldconfig (假使只想在原来根本配置的根基上修修改改部分小地点,会省去过多劳神)

  rpm -i modutils-2.4.21-23.src.rpm

# cd /usr/src/

 

  Networking support--->

 

00:07.0 ISA bridge: Intel Corp. 82371AB/EB/MB PIIX4 ISA (rev 08)

  1)文件系统

 

 

  root (hd0,0)

# make install (安装新基础)

#make menuconfig (基于文本选单的陈设分界面)

  3)安装module-init-tools. 它会代表depmod [/sbin/depmod]和任何工具.

 

#make bzImage

  alias sound-slot-0 snd-intel8x0

[U1]“Device Drivers   --->SCSI device support” set as * firstly

  请必需把自身网卡对应的驱动编写翻译进基本,相比宽泛的网卡是realtek 8139,以下正是这种网卡的铺排,以供参谋

  install snd-intel8x0 /sbin/modprobe --ignore-install sound-slot-0 &&

 

#make dep (确定保证注重文件在科学的岗位) 2.5.*-2.6.0都没有要求了。其实2.4.*一些内核也不须求了。

  <*> Sequencer support

 

  

  cd linux-2.6.7

Ext2 Security Labels

00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 01)

  make modules_install

 

3)声卡驱动

  # all kernel and initrd paths are relative to /boot/, eg.

 

                          

  请务供给选中ext3文件系统,

# make modules (编译可加载模块)

  Open Sound System --->

  tar xvfj linux-2.6.7.tar.bz2

File system--->(以下9个挑选是关于ext2和ext3文件系统计划,全体选上)

#make module_install (将编写翻译后的模块转移到系统正式地点)

  ◆ 将/usr/bin/vmware-config.pl中颇具的“/proc/ksyms”替换为“/proc/kallsyms”。使用“sed”命令能够完毕那几个目标。

Ext3 journalling file system support

    &

  <*> RTC Timer support

条件计划

 (3)调用mkinitrd程序创造基础的initrd映象. 对于GRUB来说, 将要/boot/grub/grub.conf配置文件增添如下类似的配备行:

  rpm -Fi /usr/src/redhat/RPMS/i386/modutils-2.4.21-23.i386.rpm

 

  <*> RealTek RTL-8139 PCI Fast Ethernet Adapter support

  < > Sequencer dummy client

 

                          

  一 编写翻译前准备

Ext3 POSIX Access Control Lists

    将与主导其余一些涉及较远且分外应用的一部分机能代码编写翻译成为可加载模块,有助于减小内核的长短,减小内核消耗的内部存款和储蓄器,简化该功用相应的境况改换时对根本的震慑。多数功力都足以如此管理,举个例子像上面提到的网卡的支撑、对FAT等文件系统的支撑。

  error: cannot open Packages database in /var/lib/rpm

在/usr/src/linux-2.6.18.8目录下,试行以下命令就能够编写翻译。编写翻译要求一段时间,给本人倒杯茶耐心等候吧!

输入以上命令前边世叁个菜单分界面,客户能够对亟待的模块.下边珍视讲多少个尊敬的布局

  title Red Hat Linux (2.4.20-8)

   RHLS 5

#make config (基于文本的最佳守旧的配备分界面)

  2)网卡驱动

 

举个例子选取了可加载模块,编写翻译完内核后,要对采用的模块进行编写翻译:

  error: db4 error(11) from dbenv->open: Resource temporarily unavailable

 

 (1)把减掉内核映象拷贝到/boot目录下, 并成立相应的System.map符号链接;

  <*> Sound card support

 

  <*> RealTek RTL-8139 C PCI Fast Ethernet Adapter support (EXPERIMENTAL)

  3)VMware问题

 

 “N”- 不将该功效编写翻译进基本

  ./configure --prefix=/sbin

 

实则现在编译内核最要害的地点就是布置基本。笔者一般用make menuconfig配置基本。

  initrd /initrd-2.6.7.img

 

      kernel /boot/vmlinuz-2.*** ro root=LABEL=/

  # grub.conf generated by anaconda

 

  <*> OSS PCM (digital audio) API[*] OSS Sequencer API

  2) 下载最新版本的module-init-tools( "module-init-tools-3.0.tar.gz" and "modutils-2.4.21-23.src.rpm")

 

1)文件系统

  Advanced Linux Sound Architecture --->

  1. 配置

                          

  1)下载一份内核源代码,笔者下的是linux-2.6.7.tar.bz2,你可在如下地址下载它照旧是翻新的版本.

 

  File systems--->

  tar -zxvf module-init-tools-3.0.tar.gz

 

  <*> Intel i8x0/MX440, SiS 7012; Ali 5455; NForce Audio; AMD768/8111

  alias sound-service-0-0 snd-mixer-oss

 

 

  # NOTICE: You have a /boot partition. This means that

 

上边包车型大巴通令"make install"将:

  make install

 

在急需内核协助很多的外设和成效时,内核或许变得异常的大,此时得以编写翻译大内核:

  < > Open Sound System (DEPRECATED)

Ext2 POSIX Access Control Lists

新基础能够在

  二、 编写翻译配置

Ext3 extended attributes

 “M”- 将该效率编写翻译成可以在急需时动态插入到基础中的模块。

  ◆ 再一次把vmnet-only目录用上边包车型地铁一声令下重新打包为vmmon.tar:

 

  [*] Ext3 Security Labels

  # initrd /initrd-version.img

安装成功后,系统会在/lib/modules目录下生成三个2.6.18.8子目录,里面存放着新基础的全体可加载模块。

 

  #

 

  PCI devices --->

  action $"Initializing USB HID interfa

EXT3也是必需编写翻译进基本,而无法编写翻译为模块

                          

  1)RPM问题

  1. 伊始编译

如上三项配置关系到新水源能或无法健康运作,请备加注意.别的的计划假诺不是很明白,大能够按默许的选取.

  

Device Drivers   --->SCSI device support   ---><*>    SCSI disk support

先把linux-2.6.18.2.tar.bz2 复制到/usr/src/ 的下面 tar –jxvf linux-2.6.18.2.tar.bz2 cd linux-2.6.18.2 make mrproper 把原来...

  make modules

 

先把linux-2.6.18.2.tar.bz2 复制到/usr/src/ 的下面

  default=1

 

                          

  <*> RealTek RTL-8139 C PCI Fast Ethernet Adapter support (EXPERIMENTAL)

5. ok了,你能够用命令reboot重启了,重启之后选择极其2.6.18.8的水源版本就行了。

#make modules (编写翻译选用的模块)

  kernel /vmlinuz-2.6.7 ro root=LABEL=/

 

00:10.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01)

  <*> Advanced Linux Sound Architecture

一旦编写翻译为模块,initrd则是必得的,不然运维进程中会出现“VFS:unable to mounting root fs”.程序包mkinitrd依赖于程序包device-mapper,而先后包device-mapper又依赖于lvm2,因而要求同不经常候下载mkinitrd、device-mapper、lvm2程序包。

  Ethernet (10 or 100Mbit) --->

  <*> RealTek RTL-8139 PCI Fast Ethernet Adapter support

 

那边的难题是pci,如若你硬盘是IDE的那必将在选用好您主板上南桥晶片。SCSI的话便是要挑选上你的SCSI卡型号。

  cd /usr/src

 

00:07.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01)

  /sbin/modprobe -r --ignore-remove sound-slot-0

 

  <*> OSS Mixer API

  然后举行“modprobe sound”加载声音模块,并运用下列命令查验声卡驱动:

ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.8.tar.bz2

  < > Sequencer dummy client

  踏向编写翻译好的根本后,与RPM相关的授命有个别无法动用,并冒出下列错误:

Build procedures

                          

  title Red Hat Linux (2.6.7)

 

                          

  alias sound-service-0-8 snd-seq-oss

 

                          

  #cat /proc/asound/cards

 

cd linux-2.6.18.2

  按如下命令编写翻译,大概须要一个多钟头,大能够好好放松一下:-)

 

  <*> Sound card support

  action $"Initializing USB 1.1 host controller: " modprobe ohci-hcd 2> /dev/null

 

                          

  initrd /initrd-2.4.20-8.img

Ext3 Security Labels

#make xconfig (基于图形窗口格局的布署分界面)

  SiS SI7012 at 0xdc00, irq 11

 

编写翻译的年月与机械和工具的硬件标准及基础的配备等要素有关,所得到的内核的职分在/usr/src/linux/arch/i386/boot目录下,当然这里假若客商的CPU是x86型的。

  #boot=/dev/hdc

互连网上有关vmware上linux内核build的稿子比较多,主要难点在于buildc成功后不可能平常运转水源,那是vmware的二个bug,方今尚未观望好的化解办法。以下内核build并打响运维,关键首要在于:VMware使用ide硬盘。

                          

  0 [SI7012]: ICH - SiS SI7012

   Kernel version:2.6.18.8

选拔相应的布署时,有三种选取,它们各自代表的意义如下:

  

 

  也要挑选本身声卡对应的驱动编写翻译进基本,比较常见的声卡是i810_audio,以下便是这种声卡的配备,以供参谋

  以上三项配置关系到新基础能或不可能符合规律运作,请备加注意.其余的配置若是否很领会,大能够按默许的选择.

 

00:00.0 Host bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01)

  alias sound-service-0-1 snd-seq-oss

# make bzImage (注意分寸写。这一步才是的确编写翻译内核)

00:07.2 USB Controller: Intel Corp. 82371AB/EB/MB PIIX4 USB

  3)声卡驱动

 

  <*> Sequencer support

  新的2.6.0内核中使用的USB模块大很多早已改名,由此供给修改/etc/rc.sysinit中对USB子系统开端化的代码。将该文件中具有的 “keybdev”改为“usbkbd”、“mousedev”改为“usbmouse”、“/proc/bus/usb”改为 “/sys/bus/usb”,并在/etc/init.d/halt中张开一样的退换。其它,还要在/etc/rc.sysinit中找到 “needusbstorage”,做如下修改:

Device Drivers   ---> Networking support   --->Ethernet (10 or 100Mbit)   ---> <*>    AMD PCnet32 PCI support

 (2)修改bootloader的安排文件;

  显示结果如下:

根本编译成功后,会在/usr/src/linux/arch/i386/boot目录中生成八个新水源的影象文件bzImage。借使用make zImage编写翻译,内核异常的大的话,系统会提醒您选取make bzImage命令来编写翻译,所以自身直接用make bzImage来编译。

  Advanced Linux Sound Architecture --->

  no packages

Second extended fs support

[[email protected] boot]# lspci

  请必得把温馨网卡对应的驱动编写翻译进基本,相比较广泛的网卡是realtek 8139,以下就是这种网卡的布局,以供参谋

 

# make install

  # root (hd0,0)

# make clean (清除根本编写翻译的靶子文件。注意:即使基本从未编写翻译过,此步可跳过)

 

  假设总局方的操作还是败北,另一消除方法是到

 

make mrproper 把原来编译发生的废料删除

  needusbstorage=

VMware上Linux内核build方法

#make clean (确认保证全体关于文件都地处最新版本状态)

  声音有个别的模块名也转移了。作者的记录簿原本的声卡驱动是i810_audio,未来已改为snd-intel8x0。因而须要把上面包车型地铁内容增加到/etc/modprobe.conf中:

 

  [*] JBD (ext3) debugging support

  Sound --->

# make modules_install (安装可加载模块)

 “Y”- 将该意义编写翻译进基本

  ◆ 重国民党的新生活运动行该脚本,使用内核头文件编写翻译新的内核模块。在编写翻译进程中如产生错误,应该步入/usr/lib/vmware/modules/source,使用下边包车型地铁通令将vmnet.tar解包:

 

  Device Drivers --->

  消除办法是:

Device Drivers   --->SCSI device support   --->SCSI low-level drivers   ---> <*> BusLogic SCSI support

      root(hd0, 1)

  File systems--->[*] Ext3 journalling file system support[*] Ext3 Security Labels[*] JBD (ext3) debugging support

 

  Networking support--->

  alias sound-service-0-12 snd-pcm-oss

上面包车型大巴陈设提议选上:

  < > Open Sound System (DEPRECATED)

  alias sound-service-0-3 snd-pcm-oss

JBB (ext3) debugging support

  <*> RTC Timer support

  Device Drivers--->

还恐怕有正是网卡,声卡集成电路的型号了,他们的型号你都能够用lspci 查找到比方自身的是。

  alias sound snd-intel8x0

2)网卡驱动

  splashimage=(hd0,0)/grub/splash.xpm.gz

00:12.0 Multimedia audio controller: Ensoniq ES1371 [AudioPCI-97] (rev 02)

  5)解压缩内核源代码.把下载的源代码包放到目录/usr/src下,然后

 

  4)安装modutils-2.4.21-23.src.rpm. 你只怕会看出"user rusty and group rusty not existing"的警告. 不妨,你只需强制安装正是了.要是你不对Redhat 9和Redhat 8做这几步, 你将会在"make modules_install"这一步时出现难点.

编写翻翻译并配词置

  PCI devices --->

  Device Drivers--->

  Open Sound System --->

                          

  # Note that you do not have to rerun grub after making changes to this file

配备基本能够依靠供给与爱好使用上面发号施令中的一个:

  ./generate-modprobe.conf /etc/modprobe.conf

  <*> Advanced Linux Sound Architecture

  ◆ 走入vmnet-only目录修改bridge.c文件。将“atomic_add(skb->truesize, &sk->wmem_alloc);”修改为“atomic_add(skb->truesize, &sk->sk_wmem_alloc);”,并用周围的章程将“protinfo”改为“sk_protinfo”。

#make zImage (编译压缩格局的木本)

  4)USB问题

00:11.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10)

  cd module-init-tools-3.0

00:0f.0 VGA compatible controller: VMware Inc [VMware SVGA II] PCI Display Adapter

  { /bin/aumix-minimal -f /etc/.aumixrc -S >/dev/null 2>&1; /bin/true; };

张开布局时,大多数选用能够利用其缺省值,独有小部分须求根据客商分裂的急需采取。举个例子,倘诺急需内核援助DOS分区的文件系统,则要在文件系统部分选取FAT或DOS系统协助;系统一旦配有网卡、PCMCIA卡等,要求在互连网布局中挑选相应卡的品类。

  root (hd0,0)

  error: cannot open Packages index using db3 - Resource temporarily unavailable (11)

  四、 运营基础的广阔难点

  <*> Intel i8x0/MX440, SiS 7012; Ali 5455; NForce Audio; AMD768/8111

  #tar cvf vmmon.tar vmnet-only。

  以上三项应当要选上,况且要内建(即标*). 这几个可怜首要,在布署完后肯定要检查一下.config文书有未有"CONFIG_EXT3_FS=y"这一项. 如若不是"CONFIG_EXT3_FS=y"而是"CONFIG_EXT3_FS=m",你在运营基本时就能够遇上以下错误: pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed

  其实,编写翻译内核准际不是一件难事.假使能依照科学的格局来操作,最多花上三个半钟头就会消除.是否十分受鼓劲呀。那今日自己就带我们一起制作三个协调的基础系统.

  消除办法是实践“export LD_ASSUME_KEPAJERONEL =2.2.25”命令,也得以将其写入/etc/bashrc。

  make install

...

  make

  运营新水源在此之前,请检查一下/boot/grub/grub.conf的从头到尾的经过,上边包车型客车安插可作参谋

  rpmdb: unable to join the environment

  kernel /vmlinuz-2.4.20-8 ro root=LABEL=/

  Device Drivers --->

  needusbstorage=`LC_ALL=C grep -e "^I.*Cls=08" /sys/bus/usb/devices 2>/dev/null`

  # kernel /vmlinuz-version ro root=/dev/hdc3

  { /bin/aumix-minimal -f /etc/.aumixrc -L >/dev/null 2>&1; /bin/true; }

  #tar xvf vmnet.tar

本文由金沙棋牌发布于操作系统,转载请注明出处:用Linux开源内核打造自己的LINUX发行版,内核编译

关键词:

上一篇:金沙棋牌附改进说明,及卸载多余内核

下一篇:没有了