# [solved] kernel errors with highpoint 2640x4 hdd controller

## Newt

I'm trying to make an ftp server (low usage) and bought the highpoint 2640x4 controller card since it has native linux drivers and very good reviews.

My problem is that I need to build the driver from the open source driver, and running 'make' throws up lots of kernel-related errors:

```
make[1]: Entering directory `/usr/src/linux-2.6.26-gentoo-r2'

  CC [M]  /root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/os_linux.o

  CC [M]  /root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.o

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c: In function 'scsicmd_buf_get':

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c:445: error: 'Scsi_Cmnd' has no member named 'use_sg'

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c:446: error: 'Scsi_Cmnd' has no member named 'request_buffer'

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c:458: error: 'Scsi_Cmnd' has no member named 'request_buffer'

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c:459: error: 'Scsi_Cmnd' has no member named 'request_bufflen'

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c: In function 'scsicmd_buf_put':

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c:467: error: 'struct scsi_cmnd' has no member named 'use_sg'

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c: In function 'do_mode_sense':

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c:512: error: 'Scsi_Cmnd' has no member named 'request_bufflen'

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c: In function 'os_cmddone':

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c:581: error: 'Scsi_Cmnd' has no member named 'use_sg'

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c:584: error: 'Scsi_Cmnd' has no member named 'request_buffer'

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c:585: error: 'Scsi_Cmnd' has no member named 'use_sg'

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c:592: error: 'Scsi_Cmnd' has no member named 'request_bufflen'

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c: In function 'os_buildsgl':

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c:630: error: 'Scsi_Cmnd' has no member named 'request_buffer'

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c:635: error: 'Scsi_Cmnd' has no member named 'use_sg'

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c:661: error: 'Scsi_Cmnd' has no member named 'use_sg'

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c:674: error: 'Scsi_Cmnd' has no member named 'use_sg'

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c:679: error: 'Scsi_Cmnd' has no member named 'request_buffer'

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c:680: error: 'Scsi_Cmnd' has no member named 'request_bufflen'

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c:685: error: 'Scsi_Cmnd' has no member named 'use_sg'

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c:693: error: 'Scsi_Cmnd' has no member named 'use_sg'

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c:725: error: 'Scsi_Cmnd' has no member named 'request_buffer'

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c:726: error: 'Scsi_Cmnd' has no member named 'request_bufflen'

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c:733: error: 'Scsi_Cmnd' has no member named 'request_bufflen'

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c: In function 'hpt_queuecommand':

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c:962: error: 'Scsi_Cmnd' has no member named 'request_bufflen'

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c:965: error: 'Scsi_Cmnd' has no member named 'use_sg'

/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.c:968: error: 'Scsi_Cmnd' has no member named 'request_buffer'

make[2]: *** [/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build/osm_linux.o] Error 1

make[1]: *** [_module_/root/rr26xx-linux-src-v1.0-080402-1403/rr26xx-linux-src-v1.0/product/rr2640/linux/.build] Error 2

make[1]: Leaving directory `/usr/src/linux-2.6.26-gentoo-r2'

make: *** [rr26xx.ko] Error 2

```

Googling and such, I've come to the conclusion that the driver is too outdated for my system, with various parts no longer included in the kernel (use_sg, etc). I'm running gentoo-source-2.6.26-r2 but have tried it with 2.6.25-r7 and get the same errors.

Below is some info on my system that might or might not be useful:

My controller card:

```
excessum ~ # lspci | grep -i 264

02:00.0 SCSI storage controller: Triones Technologies, Inc. Device 2640 (rev 02)
```

```
excessum ~ # cat /usr/src/linux/.config | grep -i raid

CONFIG_RAID_ATTRS=y

# CONFIG_BLK_DEV_3W_XXXX_RAID is not set

# CONFIG_SCSI_AACRAID is not set

CONFIG_MEGARAID_NEWGEN=y

# CONFIG_MEGARAID_MM is not set

# CONFIG_MEGARAID_LEGACY is not set

CONFIG_MEGARAID_SAS=y

# CONFIG_MD_RAID0 is not set

# CONFIG_MD_RAID1 is not set

# CONFIG_MD_RAID10 is not set

CONFIG_MD_RAID456=y

CONFIG_MD_RAID5_RESHAPE=y

```

```
excessum ~ # cat /usr/src/linux/.config | grep -i raid

CONFIG_RAID_ATTRS=y

# CONFIG_BLK_DEV_3W_XXXX_RAID is not set

# CONFIG_SCSI_AACRAID is not set

CONFIG_MEGARAID_NEWGEN=y

# CONFIG_MEGARAID_MM is not set

# CONFIG_MEGARAID_LEGACY is not set

CONFIG_MEGARAID_SAS=y

# CONFIG_MD_RAID0 is not set

# CONFIG_MD_RAID1 is not set

# CONFIG_MD_RAID10 is not set

CONFIG_MD_RAID456=y

CONFIG_MD_RAID5_RESHAPE=y

```

```
excessum ~ # cat /usr/src/linux/.config | grep -i scsi

# SCSI device support

CONFIG_SCSI=y

CONFIG_SCSI_DMA=y

# CONFIG_SCSI_TGT is not set

CONFIG_SCSI_NETLINK=y

# CONFIG_SCSI_PROC_FS is not set

# SCSI support type (disk, tape, CD-ROM)

# Some SCSI devices (e.g. CD jukebox) support multiple LUNs

# CONFIG_SCSI_MULTI_LUN is not set

CONFIG_SCSI_CONSTANTS=y

# CONFIG_SCSI_LOGGING is not set

# CONFIG_SCSI_SCAN_ASYNC is not set

CONFIG_SCSI_WAIT_SCAN=m

# SCSI Transports

CONFIG_SCSI_SPI_ATTRS=y

CONFIG_SCSI_FC_ATTRS=y

# CONFIG_SCSI_ISCSI_ATTRS is not set

# CONFIG_SCSI_SAS_LIBSAS is not set

# CONFIG_SCSI_SRP_ATTRS is not set

CONFIG_SCSI_LOWLEVEL=y

# CONFIG_ISCSI_TCP is not set

# CONFIG_SCSI_3W_9XXX is not set

# CONFIG_SCSI_ACARD is not set

# CONFIG_SCSI_AACRAID is not set

# CONFIG_SCSI_AIC7XXX is not set

# CONFIG_SCSI_AIC7XXX_OLD is not set

CONFIG_SCSI_AIC79XX=y

# CONFIG_SCSI_AIC94XX is not set

# CONFIG_SCSI_DPT_I2O is not set

# CONFIG_SCSI_ADVANSYS is not set

# CONFIG_SCSI_ARCMSR is not set

CONFIG_SCSI_HPTIOP=y

# CONFIG_SCSI_BUSLOGIC is not set

# CONFIG_SCSI_DMX3191D is not set

# CONFIG_SCSI_EATA is not set

# CONFIG_SCSI_FUTURE_DOMAIN is not set

# CONFIG_SCSI_GDTH is not set

# CONFIG_SCSI_IPS is not set

# CONFIG_SCSI_INITIO is not set

# CONFIG_SCSI_INIA100 is not set

# CONFIG_SCSI_MVSAS is not set

# CONFIG_SCSI_STEX is not set

# CONFIG_SCSI_SYM53C8XX_2 is not set

# CONFIG_SCSI_IPR is not set

# CONFIG_SCSI_QLOGIC_1280 is not set

# CONFIG_SCSI_QLA_FC is not set

# CONFIG_SCSI_QLA_ISCSI is not set

# CONFIG_SCSI_LPFC is not set

# CONFIG_SCSI_DC395x is not set

# CONFIG_SCSI_DC390T is not set

# CONFIG_SCSI_DEBUG is not set

# CONFIG_SCSI_SRP is not set

# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'

# CONFIG_ISCSI_IBFT_FIND is not set
```

========

Any help would be greatly appreciated! I think its going to boil down to changing some c++ code somewhere. I'm a bit of a noob when it comes to kernels (especially 'hacking' them) so please bare that in mind if you do have some help to offer   :Embarassed: 

Thanks!

========

edit:

solved this by just using an old kernel (gentoo-sources 2.6.20-r10 seemingly works so far, as does vanilla-sources-2.6.19)... jsut a pity an old kernel is messing up other stuff I need... but oh well!Last edited by Newt on Wed Oct 22, 2008 3:22 pm; edited 1 time in total

----------

## danomac

For my 2320 I had to download a new revision of the drivers from highpoint-tech.com to build against 2.6.25. Have you looked to see if there was an update?

----------

## Newt

I had a quick look (and googled) but couldn't see anything. I've also written an email to their support about it but I'm not all too hopeful there. Really hope I don't have to use fedora & the like to get it working  :Crying or Very sad: 

----------

## danomac

Failing that, you might have to figure out what kernel was used against those drivers and use that instead... the only problem is that you'll be tied to an old kernel.

----------

