Opened 3 years ago

Last modified 3 years ago

#705 new enhancement

Support for Hardware raid using JMB39X

Reported by: Avi Owned by:
Priority: minor Milestone: undecided
Component: all Version: 6.5
Keywords: jmicron jmb39x Cc:

Description

Hello
Would be nice to have the ability to monitor HDDs behind Jmicron Controllers JMB39X which are used in several Low budget external Raid cases.
I had found open source code which able to do that and would wish to have it as part of smartmontools.
Here is the link:
https://github.com/Am1GO/JMraidcon

Avi

Attachments (2)

smartctl.txt (5.7 KB) - added by Avi 3 years ago.
smartctl -x -r ioctl,2 output:
JMraidcon.txt (79.1 KB) - added by Avi 3 years ago.
JMraidcon out put

Download all attachments as: .zip

Change History (8)

comment:1 Changed 3 years ago by Christian Franke

Keywords: jmicron jmb39x added; Jmicron JMB393 JMB394 removed
Milestone: undecided
Priority: majorminor

Thanks for the info. The JMraidcon tool is apparently the result of reverse engineering and is not maintained since 2010.

The pass-through commands are issued via actual ATA READ/WRITE commands to a specific existing sector (0x21) of the logical RAID drive. This may damage data if not used carefully.

READ(0x21, old_sector);
WRITE(0x21, jm_wakeup_sector1);
WRITE(0x21, jm_wakeup_sector2);
WRITE(0x21, jm_wakeup_sector3);
WRITE(0x21, jm_wakeup_sector4);
WRITE(0x21, jm_pass_through_sector(cmd1));
READ(0x21, jm_result_sector);
WRITE(0x21, jm_pass_through_sector(cmd2));
READ(0x21, jm_result_sector);
...
WRITE(0x21, jm_pass_through_sector(cmdN));
READ(0x21, jm_result_sector);
WRITE(0x21, old_sector);

Is it safe if READ/WRITE commands from OS to other sectors are interleaved with the above sequence?

Please provide a sample output from JMraidcon and the output of smartctl -x -r ioctl,2 ... for the same drive as attachments to this ticket.

comment:2 Changed 3 years ago by Avi

I am not sure if it would be safe to use the above sequence while the OS performs READ and WRITE.
As far as I understand it is necessary to check for empty sector and use it instead of using 0X21.

Last edited 3 years ago by Avi (previous) (diff)

Changed 3 years ago by Avi

Attachment: smartctl.txt added

smartctl -x -r ioctl,2 output:

Changed 3 years ago by Avi

Attachment: JMraidcon.txt added

JMraidcon out put

comment:3 Changed 3 years ago by Christian Franke

The LBA 33 (0x21) is possibly selected carefully. It is never used for partitions and typically zero filled. LBA 33 is the last LBA of a GPT (entries 125-128). On disks with a MBR, LBA range 1-62 is unused or may be used for a boot manager (unlikely in this case).

comment:4 Changed 3 years ago by Christian Franke

I possibly will try to add this feature when I have more time and access to a device for testing.

comment:5 Changed 3 years ago by Avi

I can offer myself as a tester, just let me know what you need.

comment:6 Changed 3 years ago by Christian Franke

I sent a request for a spec to fae at jmicron.com 3 month ago. JMicron sent no reply.
They were more cooperative back in 2009 when I requested the spec for the USB pass-through command.

Note: See TracTickets for help on using tickets.