Chinaunix首页 | 论坛 | 博客
  • 博客访问: 25154
  • 博文数量: 5
  • 博客积分: 245
  • 博客等级: 二等列兵
  • 技术积分: 80
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-07 10:50
文章分类
文章存档

2015年(2)

2012年(1)

2008年(2)

我的朋友

分类: LINUX

2008-11-10 16:05:24

我的RHEL5 RDAC 安装经历
硬件x4200,Linux内核版本2.6.21.3,内存4G
第一次在sun网站上下了linuxrdac-09.01.B2.31的源码包,出现以下错误:

/linuxrdac-09.01.B2.31/mpp_linux_sys_headers/MPP_Sysdep.h:48:26: 错误:linux/config.h:没有那个文件或目录

/linuxrdac-09.01.B2.31/mpp_linux_sys_headers/MPP_Sysdep.h:79:31: 错误:scsi/scsi_request.h:没有那个文件或目录

操作:

 

在/usr/src/linux-2.6.21.3/linux-2.6.21.3/include/linux 目录下

#touch config.h

注:/usr/src/linux-2.6.21.3/linux-2.6.21.3/是我的系统Linux内核源码目录

在/usr/src/linux-2.6.21.3/linux-2.6.21.3/include/scsi 目录下

#vi scsi_request.h (录入一下内容)

#ifndef _SCSI_SCSI_REQUEST_H

#define _SCSI_SCSI_REQUEST_H

 

#include

 

struct request;

struct scsi_cmnd;

struct scsi_device;

struct Scsi_Host;

 

/*

* This is essentially a slimmed down version of Scsi_Cmnd.  The point of

* having this is that requests that are injected into the queue as result

* of things like ioctls and character devices shouldn't be using a

* Scsi_Cmnd until such a time that the command is actually at the head

* of the queue and being sent to the driver.

*/

struct scsi_request {

int     sr_magic;

int     sr_result;   /* Status code from lower level driver */

unsigned char sr_sense_buffer[SCSI_SENSE_BUFFERSIZE];      /* obtained by REQUEST SENSE

* when CHECK CONDITION is

* received on original command

* (auto-sense) */

struct Scsi_Host *sr_host;

struct scsi_device *sr_device;

struct scsi_cmnd *sr_command;

struct request *sr_request;   /* A copy of the command we areworking on */

unsigned sr_bufflen;   /* Size of data buffer */

void *sr_buffer;      /* Data buffer */

int sr_allowed;

enum dma_data_direction sr_data_direction;

unsigned char sr_cmd_len;

unsigned char sr_cmnd[MAX_COMMAND_SIZE];

void (*sr_done) (struct scsi_cmnd *);   /* Mid-level done function */

int sr_timeout_per_command;

unsigned short sr_use_sg;   /* Number of pieces of scatter-gather */

unsigned short sr_sglist_len;   /* size of malloc'd scatter-gather list */

unsigned sr_underflow;   /* Return error if less thanthis amount is transferred */

void *upper_private_data;   /* reserved for owner (usually upperevel driver) of this request */

};

extern struct scsi_request *scsi_allocate_request(struct scsi_device *, int);

extern void scsi_release_request(struct scsi_request *);

extern void scsi_do_req(struct scsi_request *, const void *cmnd,

         void *buffer, unsigned bufflen,

         void (*done) (struct scsi_cmnd *),

int timeout, int retries);

/*struct scsi_mode_data {

__u32   length;

__u16   block_descriptor_length;

__u8    medium_type;

__u8    device_specific;

__u8    header_length;

__u8    longlba:1;

};*/

extern int __scsi_mode_sense(struct scsi_request *SRpnt, int dbd,

int modepage, unsigned char *buffer, int len,

int timeout, int retries,

 struct scsi_mode_data *data);

#endif /* _SCSI_SCSI_REQUEST_H */

继续

#make clean

#make

报以下错误

/linuxrdac-09.01.B2.31/MPP_hba.c: 在函数 mpp_AnalyseFailoverError 中:

/linuxrdac-09.01.B2.31/MPP_hba.c:920: 错误:赋值运算中的左值无效

晕,源码级错误,我可无法解决,长久等待

一日,突然发现有新的源码包

软件包下载地址:

决定下来试试

#make clean

#make

#make install

然后编辑/boot/grub/grub.conf,添加如下内容

title Red Hat Linux (2.6.21.3) with MPP support

                root (hd0,5)

                kernel /vmlinuz-2.6.21.3 ro root=LABEL=RH9

                initrd /mpp-2.6.21.3.img

重启系统

 

阅读(1449) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~