diff -uNr smartmontools-orig/dev_legacy.cpp smartmontools/dev_legacy.cpp
old
|
new
|
|
416 | 416 | set_err(EINVAL, "AMCC/3ware controller, please try changing device to %s,N", get_dev_name()); |
417 | 417 | #else |
418 | 418 | set_err(EINVAL, "AMCC/3ware controller, please try adding '-d 3ware,N',\n" |
419 | | "you may need to replace %s with /dev/twaN or /dev/tweN", get_dev_name()); |
| 419 | "you may need to replace %s with /dev/twlN, /dev/twaN or /dev/tweN", get_dev_name()); |
420 | 420 | #endif |
421 | 421 | return this; |
422 | 422 | } |
diff -uNr smartmontools-orig/os_linux.cpp smartmontools/os_linux.cpp
old
|
new
|
|
196 | 196 | " smartctl --all --device=3ware,2 /dev/sda\n" |
197 | 197 | " smartctl --all --device=3ware,2 /dev/twe0\n" |
198 | 198 | " smartctl --all --device=3ware,2 /dev/twa0\n" |
| 199 | " smartctl --all --device=3ware,2 /dev/twl0\n" |
199 | 200 | " (Prints all SMART info for 3rd ATA disk on 3ware RAID controller)\n" |
200 | 201 | " smartctl --all --device=hpt,1/1/3 /dev/sda\n" |
201 | 202 | " (Prints all SMART info for the SATA disk attached to the 3rd PMPort\n" |
… |
… |
|
1216 | 1217 | enum escalade_type_t { |
1217 | 1218 | AMCC_3WARE_678K, |
1218 | 1219 | AMCC_3WARE_678K_CHAR, |
1219 | | AMCC_3WARE_9000_CHAR |
| 1220 | AMCC_3WARE_9000_CHAR, |
| 1221 | AMCC_3WARE_9700_CHAR |
1220 | 1222 | }; |
1221 | 1223 | |
1222 | 1224 | linux_escalade_device(smart_interface * intf, const char * dev_name, |
… |
… |
|
1389 | 1391 | |
1390 | 1392 | bool linux_escalade_device::open() |
1391 | 1393 | { |
1392 | | if (m_escalade_type == AMCC_3WARE_9000_CHAR || m_escalade_type == AMCC_3WARE_678K_CHAR) { |
| 1394 | if (m_escalade_type == AMCC_3WARE_9700_CHAR) { |
| 1395 | // the device nodes for these controllers are dynamically assigned, |
| 1396 | // so we need to check that they exist with the correct major |
| 1397 | // numbers and if not, create them |
| 1398 | const char * node = "twl"; |
| 1399 | const char * driver = "3w-sas"; |
| 1400 | if (setup_3ware_nodes(node, driver)) |
| 1401 | return set_err((errno ? errno : ENXIO), "setup_3ware_nodes(\"%s\", \"%s\") failed", node, driver); |
| 1402 | } |
| 1403 | else if (m_escalade_type == AMCC_3WARE_9000_CHAR || m_escalade_type == AMCC_3WARE_678K_CHAR) { |
1393 | 1404 | // the device nodes for these controllers are dynamically assigned, |
1394 | 1405 | // so we need to check that they exist with the correct major |
1395 | 1406 | // numbers and if not, create them |
… |
… |
|
1461 | 1472 | memset(ioctl_buffer, 0, TW_IOCTL_BUFFER_SIZE); |
1462 | 1473 | |
1463 | 1474 | // TODO: Handle controller differences by different classes |
1464 | | if (m_escalade_type==AMCC_3WARE_9000_CHAR) { |
| 1475 | if (m_escalade_type==AMCC_3WARE_9700_CHAR) { |
| 1476 | tw_ioctl_apache = (TW_Ioctl_Buf_Apache *)ioctl_buffer; |
| 1477 | tw_ioctl_apache->driver_command.control_code = TW_IOCTL_FIRMWARE_PASS_THROUGH; |
| 1478 | tw_ioctl_apache->driver_command.buffer_length = 512; /* payload size */ |
| 1479 | passthru = (TW_Passthru *)&(tw_ioctl_apache->firmware_command.command.oldcommand); |
| 1480 | } |
| 1481 | else if (m_escalade_type==AMCC_3WARE_9000_CHAR) { |
1465 | 1482 | tw_ioctl_apache = (TW_Ioctl_Buf_Apache *)ioctl_buffer; |
1466 | 1483 | tw_ioctl_apache->driver_command.control_code = TW_IOCTL_FIRMWARE_PASS_THROUGH; |
1467 | 1484 | tw_ioctl_apache->driver_command.buffer_length = 512; /* payload size */ |
… |
… |
|
1523 | 1540 | // in dwords by 1 to account for the 64-bit single sgl 'address' |
1524 | 1541 | // field. Note that this doesn't agree with the typedefs but it's |
1525 | 1542 | // right (agree with kernel driver behavior/typedefs). |
1526 | | if (m_escalade_type==AMCC_3WARE_9000_CHAR && sizeof(long)==8) |
| 1543 | if (m_escalade_type==AMCC_3WARE_9700_CHAR && sizeof(long)==8) |
| 1544 | passthru->size++; |
| 1545 | else if (m_escalade_type==AMCC_3WARE_9000_CHAR && sizeof(long)==8) |
1527 | 1546 | passthru->size++; |
1528 | 1547 | } |
1529 | 1548 | else if (in.direction == ata_cmd_in::no_data) { |
… |
… |
|
1535 | 1554 | passthru->sector_count = 0x0; |
1536 | 1555 | } |
1537 | 1556 | else if (in.direction == ata_cmd_in::data_out) { |
1538 | | if (m_escalade_type == AMCC_3WARE_9000_CHAR) |
| 1557 | if (m_escalade_type == AMCC_3WARE_9700_CHAR) |
| 1558 | memcpy(tw_ioctl_apache->data_buffer, in.buffer, in.size); |
| 1559 | else if (m_escalade_type == AMCC_3WARE_9000_CHAR) |
1539 | 1560 | memcpy(tw_ioctl_apache->data_buffer, in.buffer, in.size); |
1540 | 1561 | else if (m_escalade_type == AMCC_3WARE_678K_CHAR) |
1541 | 1562 | memcpy(tw_ioctl_char->data_buffer, in.buffer, in.size); |
… |
… |
|
1548 | 1569 | passthru->byte0.sgloff = 0x5; |
1549 | 1570 | passthru->size = 0x7; // TODO: Other value for multi-sector ? |
1550 | 1571 | passthru->param = 0xF; // PIO data write |
1551 | | if (m_escalade_type==AMCC_3WARE_9000_CHAR && sizeof(long)==8) |
| 1572 | if (m_escalade_type==AMCC_3WARE_9700_CHAR && sizeof(long)==8) |
| 1573 | passthru->size++; |
| 1574 | else if (m_escalade_type==AMCC_3WARE_9000_CHAR && sizeof(long)==8) |
1552 | 1575 | passthru->size++; |
1553 | 1576 | } |
1554 | 1577 | else |
… |
… |
|
1556 | 1579 | |
1557 | 1580 | // Now send the command down through an ioctl() |
1558 | 1581 | int ioctlreturn; |
1559 | | if (m_escalade_type==AMCC_3WARE_9000_CHAR) |
| 1582 | if (m_escalade_type==AMCC_3WARE_9700_CHAR) |
| 1583 | ioctlreturn=ioctl(get_fd(), TW_IOCTL_FIRMWARE_PASS_THROUGH, tw_ioctl_apache); |
| 1584 | else if (m_escalade_type==AMCC_3WARE_9000_CHAR) |
1560 | 1585 | ioctlreturn=ioctl(get_fd(), TW_IOCTL_FIRMWARE_PASS_THROUGH, tw_ioctl_apache); |
1561 | 1586 | else if (m_escalade_type==AMCC_3WARE_678K_CHAR) |
1562 | 1587 | ioctlreturn=ioctl(get_fd(), TW_CMD_PACKET_WITH_DATA, tw_ioctl_char); |
… |
… |
|
1607 | 1632 | |
1608 | 1633 | // If this is a read data command, copy data to output buffer |
1609 | 1634 | if (readdata) { |
1610 | | if (m_escalade_type==AMCC_3WARE_9000_CHAR) |
| 1635 | if (m_escalade_type==AMCC_3WARE_9700_CHAR) |
| 1636 | memcpy(in.buffer, tw_ioctl_apache->data_buffer, in.size); |
| 1637 | else if (m_escalade_type==AMCC_3WARE_9000_CHAR) |
1611 | 1638 | memcpy(in.buffer, tw_ioctl_apache->data_buffer, in.size); |
1612 | 1639 | else if (m_escalade_type==AMCC_3WARE_678K_CHAR) |
1613 | 1640 | memcpy(in.buffer, tw_ioctl_char->data_buffer, in.size); |
… |
… |
|
2695 | 2722 | if (!memcmp(req_buff + 8, "3ware", 5) || !memcmp(req_buff + 8, "AMCC", 4)) { |
2696 | 2723 | close(); |
2697 | 2724 | set_err(EINVAL, "AMCC/3ware controller, please try adding '-d 3ware,N',\n" |
2698 | | "you may need to replace %s with /dev/twaN or /dev/tweN", get_dev_name()); |
| 2725 | "you may need to replace %s with /dev/twlN, /dev/twaN or /dev/tweN", get_dev_name()); |
2699 | 2726 | return this; |
2700 | 2727 | } |
2701 | 2728 | |
… |
… |
|
2997 | 3024 | static const char * lin_dev_scsi_tape1 = "ns"; |
2998 | 3025 | static const char * lin_dev_scsi_tape2 = "os"; |
2999 | 3026 | static const char * lin_dev_scsi_tape3 = "nos"; |
| 3027 | static const char * lin_dev_3ware_9700_char = "twl"; |
3000 | 3028 | static const char * lin_dev_3ware_9000_char = "twa"; |
3001 | 3029 | static const char * lin_dev_3ware_678k_char = "twe"; |
3002 | 3030 | static const char * lin_dev_cciss_dir = "cciss/"; |
… |
… |
|
3080 | 3108 | strlen(lin_dev_scsi_tape3))) |
3081 | 3109 | return new linux_scsi_device(this, name, ""); |
3082 | 3110 | |
| 3111 | // form /dev/twl* |
| 3112 | if (!strncmp(lin_dev_3ware_9700_char, dev_name, |
| 3113 | strlen(lin_dev_3ware_9700_char))) |
| 3114 | return missing_option("-d 3ware,N"); |
| 3115 | |
3083 | 3116 | // form /dev/twa* |
3084 | 3117 | if (!strncmp(lin_dev_3ware_9000_char, dev_name, |
3085 | 3118 | strlen(lin_dev_3ware_9000_char))) |
… |
… |
|
3122 | 3155 | return 0; |
3123 | 3156 | } |
3124 | 3157 | |
3125 | | if (!strncmp(name, "/dev/twa", 8)) |
| 3158 | if (!strncmp(name, "/dev/twl", 8)) |
| 3159 | return new linux_escalade_device(this, name, linux_escalade_device::AMCC_3WARE_9700_CHAR, disknum); |
| 3160 | else if (!strncmp(name, "/dev/twa", 8)) |
3126 | 3161 | return new linux_escalade_device(this, name, linux_escalade_device::AMCC_3WARE_9000_CHAR, disknum); |
3127 | 3162 | else if (!strncmp(name, "/dev/twe", 8)) |
3128 | 3163 | return new linux_escalade_device(this, name, linux_escalade_device::AMCC_3WARE_678K_CHAR, disknum); |
diff -uNr smartmontools-orig/smartctl.8.in smartmontools/smartctl.8.in
old
|
new
|
|
65 | 65 | \fB"/dev/sg*"\fP. For SATA disks accessed with libata, use |
66 | 66 | \fB"/dev/sd[a\-z]"\fP and append \fB"\-d ata"\fP. For disks behind |
67 | 67 | 3ware controllers you may need \fB"/dev/sd[a\-z]"\fP or |
68 | | \fB"/dev/twe[0\-9]"\fP or \fB"/dev/twa[0\-9]"\fP: see details |
| 68 | \fB"/dev/twe[0\-9]"\fP, \fB"/dev/twa[0\-9]"\fP or \fB"/dev/twl[0\-9]"\fP: see details |
69 | 69 | below. For disks behind HighPoint RocketRAID controllers you may need |
70 | 70 | \fB"/dev/sd[a\-z]"\fP. For disks behind Areca SATA RAID controllers, |
71 | 71 | you need \fB"/dev/sg[2\-9]"\fP (note that smartmontools interacts with |
… |
… |
|
303 | 303 | .nf |
304 | 304 | \fBsmartctl \-a \-d 3ware,1 /dev/twa0\fP |
305 | 305 | .fi |
| 306 | .nf |
| 307 | \fBsmartctl \-a \-d 3ware,1 /dev/twl0\fP |
| 308 | .fi |
306 | 309 | where in the argument \fI3ware,N\fP, the integer N is the disk number |
307 | 310 | (3ware \'port\') within the 3ware ATA RAID controller. The allowed |
308 | 311 | values of N are from 0 to 127 inclusive. The first two forms, which |
… |
… |
|
314 | 317 | /dev/twa0\-15, must be used with 3ware 9000 series controllers, which |
315 | 318 | use the 3w\-9xxx driver. |
316 | 319 | |
317 | | Note that if the special character device nodes /dev/twa? and |
318 | | /dev/twe? do not exist, or exist with the incorrect major or minor |
| 320 | The devices /dev/twl0\-15 must be used with the 3ware/LSI 9750 series |
| 321 | controllers which use the 3w-sas driver. |
| 322 | |
| 323 | Note that if the special character device nodes /dev/twl?, /dev/twa? |
| 324 | and /dev/twe? do not exist, or exist with the incorrect major or minor |
319 | 325 | numbers, smartctl will recreate them on the fly. Typically /dev/twa0 |
320 | 326 | refers to the first 9000\-series controller, /dev/twa1 refers to the |
321 | | second 9000 series controller, and so on. Likewise /dev/twe0 refers to |
322 | | the first 6/7/8000\-series controller, /dev/twa1 refers to the second |
| 327 | second 9000 series controller, and so on. The /dev/twl0 devices refers |
| 328 | to the first 9750 series controller, /dev/twl1 resfers to the second |
| 329 | 9750 series controller, and so on. Likewise /dev/twe0 refers to |
| 330 | the first 6/7/8000\-series controller, /dev/twe1 refers to the second |
323 | 331 | 6/7/8000 series controller, and so on. |
324 | 332 | |
325 | 333 | Note that for the 6/7/8000 controllers, \fBany\fP of the physical |
… |
… |
|
354 | 362 | instructions. Alternatively, use the character device /dev/twe0\-15 interface. |
355 | 363 | |
356 | 364 | The selective self\-test functions (\'\-t select,A\-B\') are only supported |
357 | | using the character device interface /dev/twa0\-15 and /dev/twe0\-15. |
| 365 | using the character device interface /dev/twl0\-15, /dev/twa0\-15 and /dev/twe0\-15. |
358 | 366 | The necessary WRITE LOG commands can not be passed through the SCSI |
359 | 367 | interface. |
360 | 368 | |
… |
… |
|
1688 | 1696 | .nf |
1689 | 1697 | .B smartctl \-a \-d 3ware,0 /dev/twa0 |
1690 | 1698 | .fi |
1691 | | Examine all SMART data for the first ATA disk connected to a 3ware |
1692 | | RAID 9000 controller card. |
| 1699 | Examine all SMART data for the first ATA disk connected to a |
| 1700 | 3ware RAID 9000 controller card. |
| 1701 | .PP |
| 1702 | .nf |
| 1703 | .B smartctl \-a \-d 3ware,0 /dev/twl0 |
| 1704 | .fi |
| 1705 | Examine all SMART data for the first SATA (not SAS) disk connected to a |
| 1706 | 3ware RAID 9750 controller card. |
1693 | 1707 | .PP |
1694 | 1708 | .nf |
1695 | 1709 | .B smartctl \-t short \-d 3ware,3 /dev/sdb |
diff -uNr smartmontools-orig/smartd.8.in smartmontools/smartd.8.in
old
|
new
|
|
606 | 606 | .B \ \ /dev/twa0 -d 3ware,1 -a -s L/../../7/02 |
607 | 607 | .B # |
608 | 608 | .nf |
| 609 | .B # Two SATA (not SAS) disks on a 3ware 9750 controller. |
| 610 | .B # Start long self-tests Sundays between midnight and |
| 611 | .B # 1am and 2-3 am |
| 612 | .B \ \ /dev/twl0 -d 3ware,0 -a -s L/../../7/00 |
| 613 | .B \ \ /dev/twl0 -d 3ware,1 -a -s L/../../7/02 |
| 614 | .B # |
| 615 | .nf |
609 | 616 | .B # Three SATA disks on a HighPoint RocketRAID controller. |
610 | 617 | .B # Start short self-tests daily between 1-2, 2-3, and |
611 | 618 | .B # 3-4 am. |
… |
… |
|
695 | 702 | status fails, or if new errors appear in the self-test log. |
696 | 703 | |
697 | 704 | .B If a 3ware controller is used |
698 | | then the corresponding SCSI (/dev/sd?) or character device (/dev/twe? |
699 | | or /dev/twa?) must be listed, along with the \'\-d 3ware,N\' Directive |
700 | | (see below). The individual ATA disks hosted by the 3ware controller |
701 | | appear to \fBsmartd\fP as normal ATA devices. Hence all the ATA |
702 | | directives can be used for these disks (but see note below). |
| 705 | then the corresponding SCSI (/dev/sd?) or character device (/dev/twe?, |
| 706 | /dev/twa? or /dev/twl?) must be listed, along with the \'\-d 3ware,N\' |
| 707 | Directive (see below). The individual ATA disks hosted by the 3ware |
| 708 | controller appear to \fBsmartd\fP as normal ATA devices. Hence all |
| 709 | the ATA directives can be used for these disks (but see note below). |
703 | 710 | |
704 | 711 | .B If an Areca controller is used |
705 | 712 | then the corresponding SCSI generic device (/dev/sg?) must be listed, |
… |
… |
|
783 | 790 | |
784 | 791 | ATA disks behind 3ware controllers may alternatively be accessed via a |
785 | 792 | character device interface /dev/twe0-15 (3ware 6000/7000/8000 |
786 | | controllers) and /dev/twa0-15 (3ware 9000 series controllers). Note |
787 | | that the 9000 series controllers may \fBonly\fP be accessed using the |
788 | | character device interface /dev/twa0-15 and not the SCSI device |
789 | | interface /dev/sd?. Please see the \fBsmartctl\fP(8) man page for |
790 | | further details. |
| 793 | controllers), /dev/twa0-15 (3ware 9000 series controllers) and |
| 794 | /dev/twl0-15 (3ware 9750 series controllers). Note that the 9000 series |
| 795 | controllers may \fBonly\fP be accessed using the character device |
| 796 | interface /dev/twa0-15 and not the SCSI device interface /dev/sd?. |
| 797 | Please see the \fBsmartctl\fP(8) man page for further details. |
791 | 798 | |
792 | 799 | Note that older 3w-xxxx drivers do not pass the \'Enable Autosave\' |
793 | 800 | (\fB-S on\fP) and \'Enable Automatic Offline\' (\fB-o on\fP) commands |
… |
… |
|
798 | 805 | patch to older versions. See |
799 | 806 | \fBhttp://smartmontools.sourceforge.net/\fP for instructions. |
800 | 807 | Alternatively use the character device interfaces /dev/twe0-15 (3ware |
801 | | 6/7/8000 series controllers) or /dev/twa0-15 (3ware 9000 series |
802 | | controllers). |
| 808 | 6/7/8000 series controllers), /dev/twa0-15 (3ware 9000 series |
| 809 | controllers) or /dev/twl0-15 (3ware 9750 series controllers). |
803 | 810 | |
804 | 811 | .I areca,N |
805 | 812 | \- the device consists of one or more SATA disks connected to an Areca |
diff -uNr smartmontools-orig/smartd.conf smartmontools/smartd.conf
old
|
new
|
|
76 | 76 | #/dev/sdc -d 3ware,2 -a -s L/../../7/03 |
77 | 77 | #/dev/sdc -d 3ware,3 -a -s L/../../7/04 |
78 | 78 | |
79 | | # Monitor 2 ATA disks connected to a 3ware 9000 controller which uses |
80 | | # the 3w-9xxx driver (Linux, FreeBSD). Start long self-tests Tuesdays |
| 79 | # Monitor 2 ATA disks connected to a 3ware 9000 controller which |
| 80 | # uses the 3w-9xxx driver (Linux, FreeBSD). Start long self-tests Tuesdays |
81 | 81 | # between 1-2 and 3-4 am. |
82 | 82 | #/dev/twa0 -d 3ware,0 -a -s L/../../2/01 |
83 | 83 | #/dev/twa0 -d 3ware,1 -a -s L/../../2/03 |
84 | 84 | |
| 85 | # Monitor 2 SATA (not SAS) disks connected to a 3ware 9000 controller which |
| 86 | # uses the 3w-sas driver (Linux, FreeBSD). Start long self-tests Tuesdays |
| 87 | # between 1-2 and 3-4 am. |
| 88 | #/dev/twl0 -d 3ware,0 -a -s L/../../2/01 |
| 89 | #/dev/twa0 -d 3ware,1 -a -s L/../../2/03 |
| 90 | |
85 | 91 | # Same as above for Windows. Option '-d 3ware,N' is not necessary, |
86 | 92 | # disk (port) number is specified in device name. |
87 | 93 | # NOTE: On Windows, DEVICESCAN works also for 3ware controllers. |
diff -uNr smartmontools-orig/smartd.conf.5.in smartmontools/smartd.conf.5.in
old
|
new
|
|
182 | 182 | .B \ \ /dev/twa0 -d 3ware,1 -a -s L/../../7/02 |
183 | 183 | .B # |
184 | 184 | .nf |
| 185 | .B # Two SATA (not SAS) disks on a 3ware 9750 controller. |
| 186 | .B # Start long self-tests Sundays between midnight and |
| 187 | .B # 1am and 2-3 am |
| 188 | .B \ \ /dev/twl0 -d 3ware,0 -a -s L/../../7/00 |
| 189 | .B \ \ /dev/twl0 -d 3ware,1 -a -s L/../../7/02 |
| 190 | .B # |
| 191 | .nf |
185 | 192 | .B # Three SATA disks on a HighPoint RocketRAID controller. |
186 | 193 | .B # Start short self-tests daily between 1-2, 2-3, and |
187 | 194 | .B # 3-4 am. |
… |
… |
|
271 | 278 | status fails, or if new errors appear in the self-test log. |
272 | 279 | |
273 | 280 | .B If a 3ware controller is used |
274 | | then the corresponding SCSI (/dev/sd?) or character device (/dev/twe? |
275 | | or /dev/twa?) must be listed, along with the \'\-d 3ware,N\' Directive |
276 | | (see below). The individual ATA disks hosted by the 3ware controller |
277 | | appear to \fBsmartd\fP as normal ATA devices. Hence all the ATA |
278 | | directives can be used for these disks (but see note below). |
| 281 | then the corresponding SCSI (/dev/sd?) or character device (/dev/twe?, |
| 282 | /dev/twa? or /dev/twl?) must be listed, along with the \'\-d 3ware,N\' |
| 283 | Directive (see below). The individual ATA disks hosted by the 3ware |
| 284 | controller appear to \fBsmartd\fP as normal ATA devices. Hence all the |
| 285 | ATA directives can be used for these disks (but see note below). |
279 | 286 | |
280 | 287 | .B If an Areca controller is used |
281 | 288 | then the corresponding SCSI generic device (/dev/sg?) must be listed, |
… |
… |
|
359 | 366 | |
360 | 367 | ATA disks behind 3ware controllers may alternatively be accessed via a |
361 | 368 | character device interface /dev/twe0-15 (3ware 6000/7000/8000 |
362 | | controllers) and /dev/twa0-15 (3ware 9000 series controllers). Note |
363 | | that the 9000 series controllers may \fBonly\fP be accessed using the |
364 | | character device interface /dev/twa0-15 and not the SCSI device |
365 | | interface /dev/sd?. Please see the \fBsmartctl\fP(8) man page for |
366 | | further details. |
| 369 | controllers), /dev/twa0-15 (3ware 9000 series controllers), and |
| 370 | /dev/twl0-15 (3ware 9750 series controllers). Note that the 9000 series |
| 371 | controllers may \fBonly\fP be accessed using the character device |
| 372 | interface /dev/twa0-15 and not the SCSI device interface /dev/sd?. |
| 373 | Please see the \fBsmartctl\fP(8) man page for further details. |
367 | 374 | |
368 | 375 | Note that older 3w-xxxx drivers do not pass the \'Enable Autosave\' |
369 | 376 | (\fB-S on\fP) and \'Enable Automatic Offline\' (\fB-o on\fP) commands |
… |
… |
|
374 | 381 | patch to older versions. See |
375 | 382 | \fBhttp://smartmontools.sourceforge.net/\fP for instructions. |
376 | 383 | Alternatively use the character device interfaces /dev/twe0-15 (3ware |
377 | | 6/7/8000 series controllers) or /dev/twa0-15 (3ware 9000 series |
378 | | controllers). |
| 384 | 6/7/8000 series controllers), /dev/twa0-15 (3ware 9000 series |
| 385 | controllers) or /dev/twl0-15 (3ware 9750 series controllers). |
379 | 386 | |
380 | 387 | .I areca,N |
381 | 388 | \- the device consists of one or more SATA disks connected to an Areca |