QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3168|回复: 20

再问,如何将scsi驱动支持编译进内核

[复制链接]
发表于 2004-9-6 14:02:24 | 显示全部楼层 |阅读模式
在下想把scsi驱动编译进内核,从而避免使用initrd.img引导,但是试验了几次都不成功,还是出现“panic”错误,想必是scsi驱动还没做好的原因,请问要把哪些必要的选项打开才能将scsi驱动完全编译进内核支持中。
发表于 2004-9-6 22:29:18 | 显示全部楼层
你有没有scsi的设备阿?
scsi和initrd.img没有必然联系的
initrd是一个gzip压缩的loopback的ext2文件系统(RH)(所以,你如果想使用initrd.img必须要把ext2编译进内核,即便你没有ext2的分区),debian的是Compressed ROM(同理,debian需要把它彬译进内核才能使用initrd引导系统) 文件系统。一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。
mkinitrd时传递的版本号其实就是/lib/modules下的模块的目录,它就是依照此目录内的模块和/etc/modules.conf里定义的文件系统、IDE、SCSI、RAID模块条目生成initrd文件。
因为做发行版要兼顾到使用不同硬件的大众都能够普遍使用,但又不能把这些磁盘驱动和文件系统都编译进内核(会过于庞大),所以才使用initrd。自己编译的并不一定需要他(这要看你配置内核时的选择了)
回复

使用道具 举报

 楼主| 发表于 2004-9-9 13:11:36 | 显示全部楼层
我的硬盘是scsi的,并且分区格式使用了ext3,这样的话如果不建立initrd的话,引导程序就会找不到/分区,我尝试将ext3支持和scsi直接编译进内核,但是不用initrd引导还是找不到根分区,所以觉得是我编译的时候漏掉了某些支持的选项,才来求教的。其实使用initrd也不是不可以,我只是做个试验而已,在ext3和scsi环境下究竟能不能单内核文件引导成功。
回复

使用道具 举报

发表于 2004-9-9 13:18:10 | 显示全部楼层
应该可以吧。我没有那设备,也没试过。抱歉阿
回复

使用道具 举报

发表于 2004-9-10 14:17:39 | 显示全部楼层
我的机器就只有SCSI硬盘,initrd只是用来做bootsplash。
我的 .config 里面:

CONFIG_SCSI=y
CONFIG_SCSI_PROC_FS=y

CONFIG_BLK_DEV_SD=y

CONFIG_SCSI_AIC7XXX=y (我的SCSI卡是AIC-7899)
CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
CONFIG_AIC7XXX_RESET_DELAY_MS=2000
CONFIG_AIC7XXX_DEBUG_MASK=0
回复

使用道具 举报

发表于 2004-10-21 20:48:49 | 显示全部楼层
[quote:db741f8866="dannycat"]我的机器就只有SCSI硬盘,initrd只是用来做bootsplash。
我的 .config 里面:

CONFIG_SCSI=y
CONFIG_SCSI_PROC_FS=y

CONFIG_BLK_DEV_SD=y

CONFIG_SCSI_AIC7XXX=y (我的SCSI卡是AIC-7899)
CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
CONFIG_AIC7XXX_RESET_DELAY_MS=2000
CONFIG_AIC7XXX_DEBUG_MASK=0[/quote]


我的scsi也是AIC-7899,我的.config的scsi配置是这样的


#
# SCSI device support
#
CONFIG_SCSI=y
CONFIG_SCSI_PROC_FS=y


#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_ST=y
CONFIG_CHR_DEV_OSST=y
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=y

#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
CONFIG_SCSI_MULTI_LUN=y
CONFIG_SCSI_CONSTANTS=y
CONFIG_SCSI_LOGGING=y

#
# SCSI Transport Attributes
#
CONFIG_SCSI_SPI_ATTRS=y
CONFIG_SCSI_FC_ATTRS=y


#
# SCSI low-level drivers
#
CONFIG_BLK_DEV_3W_XXXX_RAID=m
# CONFIG_SCSI_3W_9XXX is not set
CONFIG_SCSI_7000FASST=y
CONFIG_SCSI_ACARD=y
CONFIG_SCSI_AHA152X=y
CONFIG_SCSI_AHA1542=y
CONFIG_SCSI_AHA1740=y
CONFIG_SCSI_AACRAID=y
CONFIG_SCSI_AIC7XXX=y
CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
CONFIG_AIC7XXX_RESET_DELAY_MS=15000
CONFIG_AIC7XXX_PROBE_EISA_VL=y
CONFIG_AIC7XXX_DEBUG_ENABLE=y
CONFIG_AIC7XXX_DEBUG_MASK=0
CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
CONFIG_SCSI_AIC7XXX_OLD=y
CONFIG_SCSI_AIC79XX=y
CONFIG_AIC79XX_CMDS_PER_DEVICE=32
CONFIG_AIC79XX_RESET_DELAY_MS=15000
# CONFIG_AIC79XX_ENABLE_RD_STRM is not set
# CONFIG_AIC79XX_DEBUG_ENABLE is not set
CONFIG_AIC79XX_DEBUG_MASK=0
CONFIG_AIC79XX_REG_PRETTY_PRINT=y
CONFIG_SCSI_DPT_I2O=m
CONFIG_SCSI_IN2000=m
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_SCSI_SATA is not set
CONFIG_SCSI_BUSLOGIC=m
# CONFIG_SCSI_OMIT_FLASHPOINT is not set
CONFIG_SCSI_DMX3191D=m
CONFIG_SCSI_DTC3280=m
CONFIG_SCSI_EATA=m
CONFIG_SCSI_EATA_TAGGED_QUEUE=y
# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
CONFIG_SCSI_EATA_MAX_TAGS=16
CONFIG_SCSI_EATA_PIO=m
CONFIG_SCSI_FUTURE_DOMAIN=m
CONFIG_SCSI_GDTH=m
CONFIG_SCSI_GENERIC_NCR5380=m
# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
# CONFIG_SCSI_GENERIC_NCR53C400 is not set
CONFIG_SCSI_IPS=m
CONFIG_SCSI_INIA100=m
CONFIG_SCSI_PPA=m
CONFIG_SCSI_IMM=m
# CONFIG_SCSI_IZIP_EPP16 is not set
# CONFIG_SCSI_IZIP_SLOW_CTR is not set
CONFIG_SCSI_NCR53C406A=m
CONFIG_53C700_IO_MAPPED=y
CONFIG_SCSI_SYM53C8XX_2=m
CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
# CONFIG_SCSI_IPR is not set
CONFIG_SCSI_PAS16=m
CONFIG_SCSI_PSI240I=m
CONFIG_SCSI_QLOGIC_FAS=m
CONFIG_SCSI_QLOGIC_ISP=m
CONFIG_SCSI_QLOGIC_FC=m
# CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set
CONFIG_SCSI_QLOGIC_1280=m
CONFIG_SCSI_QLA2XXX=y
# CONFIG_SCSI_QLA21XX is not set
# CONFIG_SCSI_QLA22XX is not set
# CONFIG_SCSI_QLA2300 is not set
# CONFIG_SCSI_QLA2322 is not set
# CONFIG_SCSI_QLA6312 is not set
# CONFIG_SCSI_QLA6322 is not set
CONFIG_SCSI_SIM710=m
CONFIG_SCSI_SYM53C416=m
# CONFIG_SCSI_DC395x is not set
CONFIG_SCSI_DC390T=m
CONFIG_SCSI_T128=m
CONFIG_SCSI_U14_34F=y
CONFIG_SCSI_U14_34F_TAGGED_QUEUE=y
CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y
CONFIG_SCSI_U14_34F_MAX_TAGS=8
CONFIG_SCSI_ULTRASTOR=y
CONFIG_SCSI_NSP32=y
CONFIG_SCSI_DEBUG=y


我的make部分都很正常,但是一到在make modules_install install时,就会出现以下问题


if [ -r System.map ]; then /sbin/depmod -ae -F System.map 2.6.9; fi
CHK include/linux/version.h
make[1]: `arch/i386/kernel/asm-offsets.s' is up to date.
CHK include/linux/compile.h
Kernel: arch/i386/boot/bzImage is ready
sh /usr/src/linux-2.6.9/arch/i386/boot/install.sh 2.6.9 arch/i386/boot/bzImage System.map ""
No module aic7xxx found for kernel 2.6.9
make[1]: *** [install] Error 1
make: *** [install] Error 2
请问这是为什么?

我没有scsi设备的机器,用2.6.9默认的没有出现这个问题
具体我的详细编译过程,请参见
http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&p=4194416#4194416

谢谢
回复

使用道具 举报

发表于 2004-10-21 22:04:34 | 显示全部楼层
AIC7XXX编译成模块,然后make modules_install;make install试试
回复

使用道具 举报

发表于 2004-10-22 07:21:55 | 显示全部楼层
[quote:8146f017b9="cnhnln"]AIC7XXX编译成模块,然后make modules_install;make install试试[/quote]

编译进内核,编译进模块都是过了,就是不行,不知道是哪里出的问题
回复

使用道具 举报

发表于 2004-10-22 14:12:08 | 显示全部楼层
不用 make install,自己手工 cp arch/i386/boot/bzImage 到 /boot 去,再修改 GRUB。

再死的话,panic 之前的启动信息给出来,能给多少给多少。


另,你的机器上有那么多种 SCSI 卡吗?干吗把那么多都编进内核?
回复

使用道具 举报

发表于 2004-10-29 11:24:09 | 显示全部楼层
现在再做群集,暂时就没有时间搞内核了,我查了一下资料,是不是因为我没有装 mkinitrd-3.5.24-1.i386.rpm
包的原因?
回复

使用道具 举报

发表于 2004-10-29 14:58:26 | 显示全部楼层
装上试试
回复

使用道具 举报

发表于 2004-11-5 10:44:25 | 显示全部楼层
今天去http://rpm.pbone.net/搜索了以下包
device-mapper-1.00.07-1.i386.rpm

lvm2-2.00.08-2.i386.rpm

lvm-1.0.3-17.i386.rpm

mkinitrd-3.5.15.1-2.i386.rpm

modutils-2.4.26-15.i386.rpm

initscripts-7.28-1.i386.rpm      

nfs-utils-1.0.5-1.i386.rpm


结果很多都是要PGP数字签名的郁闷


[root@test11 26]# rpm -ivh mkinitrd-3.5.24-1.i386.rpm
warning: mkinitrd-3.5.24-1.i386.rpm: V3 DSA signature: NOKEY, key ID 30c9ecf8
error: Failed dependencies:
        lvm2 is needed by mkinitrd-3.5.24-1
[root@test11 26]# rpm -ivh lvm2-2.00.25-1.i386.rpm
warning: lvm2-2.00.25-1.i386.rpm: V3 DSA signature: NOKEY, key ID 30c9ecf8
error: Failed dependencies:
        libdevmapper.so.1.00 is needed by lvm2-2.00.25-1
        libdevmapper.so.1.00(Base) is needed by lvm2-2.00.25-1
        libselinux.so.1 is needed by lvm2-2.00.25-1
        lvm < 1.0.3-19 conflicts with lvm2-2.00.25-1
回复

使用道具 举报

发表于 2004-11-5 12:56:11 | 显示全部楼层
现在以上包没装我就直接编译2.6了

我换了一台机器,SCSI卡是Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 07)

我把 make modules_install install 分成 make  modules_install 和make install两步,发现是在make  modules_install 出的错,而不是make install

我得.config如下

[code:1]CONFIG_SCSI=y
CONFIG_SCSI_PROC_FS=y
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_ST=m
CONFIG_CHR_DEV_OSST=m
CONFIG_BLK_DEV_SR=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=m
CONFIG_SCSI_CONSTANTS=y
CONFIG_SCSI_LOGGING=y
CONFIG_SCSI_SPI_ATTRS=y
CONFIG_SCSI_7000FASST=m
CONFIG_SCSI_ACARD=m
CONFIG_SCSI_AHA152X=m
CONFIG_SCSI_ACARD=m
CONFIG_SCSI_AHA152X=m
CONFIG_SCSI_AHA1542=m
CONFIG_SCSI_AHA1740=m
CONFIG_SCSI_AACRAID=m
CONFIG_SCSI_AIC7XXX=m
CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
CONFIG_AIC7XXX_RESET_DELAY_MS=15000
CONFIG_AIC7XXX_DEBUG_MASK=0
CONFIG_SCSI_AIC7XXX_OLD=m
CONFIG_SCSI_AIC79XX=m
CONFIG_AIC79XX_CMDS_PER_DEVICE=32
CONFIG_AIC79XX_RESET_DELAY_MS=15000
CONFIG_AIC79XX_DEBUG_MASK=0
CONFIG_SCSI_DPT_I2O=m
CONFIG_SCSI_IN2000=m
CONFIG_SCSI_BUSLOGIC=m
CONFIG_SCSI_DMX3191D=m
CONFIG_SCSI_DTC3280=m
CONFIG_SCSI_EATA=m
CONFIG_SCSI_EATA_TAGGED_QUEUE=y
CONFIG_SCSI_EATA_MAX_TAGS=16
CONFIG_SCSI_EATA_PIO=m
CONFIG_SCSI_FUTURE_DOMAIN=m
CONFIG_SCSI_EATA_PIO=m
CONFIG_SCSI_FUTURE_DOMAIN=m
CONFIG_SCSI_GDTH=m
CONFIG_SCSI_GENERIC_NCR5380=m
CONFIG_SCSI_IPS=m
CONFIG_SCSI_INIA100=m
CONFIG_SCSI_PPA=m
CONFIG_SCSI_IMM=m
CONFIG_SCSI_NCR53C406A=m
CONFIG_53C700_IO_MAPPED=y
[color=red]CONFIG_SCSI_SYM53C8XX_2=y
CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 [/color]
CONFIG_SCSI_PAS16=m
CONFIG_SCSI_PSI240I=m
CONFIG_SCSI_QLOGIC_FAS=m  
CONFIG_SCSI_QLOGIC_ISP=m  
CONFIG_SCSI_QLOGIC_FC=m
CONFIG_SCSI_QLOGIC_1280=m
CONFIG_SCSI_QLA2XXX=y
CONFIG_SCSI_SIM710=m
[color=red]CONFIG_SCSI_SYM53C416=y[/color]
CONFIG_SCSI_DC390T=m
CONFIG_SCSI_T128=m
CONFIG_SCSI_U14_34F=m
CONFIG_SCSI_U14_34F_MAX_TAGS=8
CONFIG_SCSI_ULTRASTOR=m
CONFIG_SCSI_NSP32=m
CONFIG_SCSI_DEBUG=m[/code:1]

出错信息和前面类似,不过这次只截留到下面这些信息

INSTALL net/wanrouter/wanrouter.ko
  INSTALL sound/soundcore.ko
if [ -r System.map ]; then /sbin/depmod -ae -F System.map  2.6.9; fi
回复

使用道具 举报

发表于 2004-11-5 13:22:28 | 显示全部楼层
不好意思,我用make modules_install install 居然成功了,但现在不能重启机器,明天早晨重启机器看看能不能启动

[root@test11 linux]# make modules_install install
  INSTALL drivers/scsi/3w-xxxx.ko
  INSTALL drivers/scsi/53c700.ko
  INSTALL drivers/scsi/BusLogic.ko
  INSTALL drivers/scsi/NCR53c406a.ko
  INSTALL drivers/scsi/a100u2w.ko
  INSTALL drivers/scsi/aacraid/aacraid.ko
  INSTALL drivers/scsi/aha152x.ko
  INSTALL drivers/scsi/aha1542.ko
  INSTALL drivers/scsi/aha1740.ko
  INSTALL drivers/scsi/aic7xxx/aic79xx.ko
  INSTALL drivers/scsi/aic7xxx/aic7xxx.ko
  INSTALL drivers/scsi/aic7xxx_old.ko
  INSTALL drivers/scsi/atp870u.ko
  INSTALL drivers/scsi/dmx3191d.ko
  INSTALL drivers/scsi/dpt_i2o.ko
  INSTALL drivers/scsi/dtc.ko
  INSTALL drivers/scsi/eata.ko
  INSTALL drivers/scsi/eata_pio.ko
  INSTALL drivers/scsi/fdomain.ko
  INSTALL drivers/scsi/g_NCR5380.ko
  INSTALL drivers/scsi/gdth.ko
  INSTALL drivers/scsi/ide-scsi.ko
  INSTALL drivers/scsi/imm.ko
  INSTALL drivers/scsi/in2000.ko
  INSTALL drivers/scsi/ips.ko
  INSTALL drivers/scsi/nsp32.ko
  INSTALL drivers/scsi/osst.ko
  INSTALL drivers/scsi/pas16.ko
  INSTALL drivers/scsi/pcmcia/aha152x_cs.ko
  INSTALL drivers/scsi/pcmcia/fdomain_cs.ko
  INSTALL drivers/scsi/pcmcia/nsp_cs.ko
  INSTALL drivers/scsi/pcmcia/qlogic_cs.ko
  INSTALL drivers/scsi/ppa.ko
  INSTALL drivers/scsi/psi240i.ko
  INSTALL drivers/scsi/qla1280.ko
  INSTALL drivers/scsi/qlogicfas.ko
  INSTALL drivers/scsi/qlogicfas408.ko
  INSTALL drivers/scsi/qlogicfc.ko
  INSTALL drivers/scsi/qlogicisp.ko
  INSTALL drivers/scsi/scsi_debug.ko
  INSTALL drivers/scsi/sg.ko
  INSTALL drivers/scsi/sim710.ko
  INSTALL drivers/scsi/sr_mod.ko
  INSTALL drivers/scsi/st.ko
  INSTALL drivers/scsi/t128.ko
  INSTALL drivers/scsi/tmscsim.ko
  INSTALL drivers/scsi/u14-34f.ko
  INSTALL drivers/scsi/ultrastor.ko
  INSTALL drivers/scsi/wd7000.ko


if [ -r System.map ]; then /sbin/depmod -ae -F System.map  2.6.9; fi
  CHK     include/linux/version.h
make[1]: `arch/i386/kernel/asm-offsets.s' is up to date.
  CHK     include/linux/compile.h
Kernel: arch/i386/boot/bzImage is ready
sh /usr/src/linux-2.6.9/arch/i386/boot/install.sh 2.6.9 arch/i386/boot/bzImage System.map ""
[root@test11 linux]# more /boot/grub/menu.lst
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda2
#          initrd /initrd-version.img
#boot=/dev/sda
default=1
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Enterprise Linux AS (2.6.9)
        root (hd0,0)
        kernel /vmlinuz-2.6.9 ro root=LABEL=/
        initrd /initrd-2.6.9.img
title Red Hat Enterprise Linux AS (2.4.21-4.ELsmp)
        root (hd0,0)
        kernel /vmlinuz-2.4.21-4.ELsmp ro root=LABEL=/
        initrd /initrd-2.4.21-4.ELsmp.img
title Red Hat Enterprise Linux AS-up (2.4.21-4.EL)
        root (hd0,0)
        kernel /vmlinuz-2.4.21-4.EL ro root=LABEL=/
        initrd /initrd-2.4.21-4.EL.img
[root@test11 linux]#
回复

使用道具 举报

发表于 2004-11-6 16:38:06 | 显示全部楼层
今天重新启动了服务器,一切正常,但是不知道为什么AIC-7899 SCSI卡的机器编译2.6过不去,现在那台机器也拿去生产了,现在就不方便试了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-9-19 19:32 , Processed in 0.104449 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表