Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Парковка головок винчестера, собсно как это сделать програмно 
:(
    Опции темы
smalcom
Дата 23.1.2007, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 494
Регистрация: 16.10.2004
Где: Dnepr

Репутация: нет
Всего: 7



есть необходимость програмно отгонять головки в зону парковки, а потом при чтении они по идее опять вернуться туда куда им надо над блинам после чтения инфы я их опять припаркую и так пока невыключат свет.
Винт работает в условиях что прочтенная с него информация превращается в вибрацию и жеивет он в среднем год изза таких издевательств. вот хачу облегчить ему жизнь. пробовал поискать по нету, но там все про современные технологии, про то что головки сами паркуюца, но мне нада програмно. вот собсно все


--------------------
What DA F...???
PM MAIL WWW Skype Jabber   Вверх
MAKCim
Дата 23.1.2007, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



скорее тебе в "assembler" надо, чем в *NIX


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
En_t_end
Дата 23.1.2007, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: нет
Всего: 20



smalcom, 
Есть большая вероятность, что эту работу выполняет контролер самого жесткого диска. Т.е. через стандартный интерфейс обмена ЖЕСТКИЙ ДИСК<->КОНТРОЛЕР(PC), врядли, удасться управлять этой функцией.
PM MAIL ICQ Skype GTalk Jabber   Вверх
smalcom
Дата 23.1.2007, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 494
Регистрация: 16.10.2004
Где: Dnepr

Репутация: нет
Всего: 7



я помню в какойто книжке или фаронова или еще когото был примерчик на асме как парковать головки, качнул седня фаронова - ненашел. учитывая что я под рутом то ассемблерные вставки очень вполне, но незнаю какие порты и что куда. а за идею по асму сенкс ща копну по этой теме на сайтах.


--------------------
What DA F...???
PM MAIL WWW Skype Jabber   Вверх
MAKCim
Дата 23.1.2007, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



Цитата

учитывая что я под рутом то ассемблерные вставки очень вполне, но незнаю какие порты и что куда.

рут здесь не поможет, тебе надо ring0, чтобы в порты писать из protected mode, т. е без модуля ядра не обойтись


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Goganchic
Дата 24.1.2007, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 678
Регистрация: 18.6.2004

Репутация: нет
Всего: 5



По-моему, все это само делается, так что нет необходимости что-либо писать, а потом если свет выключат во время чтения то ничего все равно не поможет.
PM Jabber   Вверх
smalcom
Дата 24.1.2007, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 494
Регистрация: 16.10.2004
Где: Dnepr

Репутация: нет
Всего: 7



Цитата

рут здесь не поможет, тебе надо ring0, чтобы в порты писать из protected mode, т. е без модуля ядра не обойтись


у мня программа пишет и читает в порты COM,LPT.

Цитата

По-моему, все это само делается, так что нет необходимости что-либо писать, а потом если свет выключат во время чтения то ничего все равно не поможет.

ээх, мне от вибрации во время работы нада защитится - сабвуфер недолеко от винта - такой конструктив


посарел я немного в нете - делается это через инты биоса, но блин неудобно.
был на васм.ру там пример как низком уровни читать инфу с винта итд. ладно еще раз изучу доку буду добить контролер винта


--------------------
What DA F...???
PM MAIL WWW Skype Jabber   Вверх
nickless
Дата 24.1.2007, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 4
Всего: 181



Цитата(smalcom @ 24.1.2007,  22:18)
ээх, мне от вибрации во время работы нада защитится - сабвуфер недолеко от винта - такой конструктив

А не вариант подвесить винт на резине и окружить чем-нибудь шумоподавляющим? Всё же меньше вибрация будет.


--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
kirjanov
Дата 25.1.2007, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 22.1.2006
Где: Dark wood of erro r

Репутация: 3
Всего: 15



тест на парковку
Цитата

t isn't too pretty to rely on such unreliable timing anyways. I'm 
>>>>not too crazy about spinning the disk down either, it's useless wear 
>>>>compared to just parking the head.
>>>
>>>Fully agreed, and that's the approach the IBM Windows driver seems to
>>>take - you just hear the disk park its head when the sensor kicks in
>>>(you can hear it) - the disk does not spin down when this happens.
>>>
>>>Could this be some reserved ATA command that only works with certain#
>>>drives?
>>
>>Perhaps the IDLE or IDLEIMMEDIATE commands imply a head parking, that
>>would make sense. As you say, you can hear a drive parking its head.
>>Here's a test case, it doesn't sound like it's parking the hard here.
> 
> 
> ATA7 defines a park maneuvre, I don't know how well supported it is yet
> though. You can test with this little app, if it says 'head parked' it
> works. If not, it has just idled the drive.

Код

#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include <sys/ioctl.h>
#include <linux/hdreg.h>
 
int main(int argc, char *argv[])
{
    unsigned char buf[8];
    int fd;
 
    if (argc < 2) {
        printf("%s <dev>\n", argv[0]);
        return 1;
    }
 
    fd = open(argv[1], O_RDONLY);
    if (fd == -1) {
        perror("open");
        return 1;
    }
 
    memset(buf, 0, sizeof(buf));
    buf[0] = 0xe1;
    buf[1] = 0x44;
    buf[3] = 0x4c;
    buf[4] = 0x4e;
    buf[5] = 0x55;
 
    if (ioctl(fd, HDIO_DRIVE_TASK, buf)) {
        perror("ioctl");
        return 1;
    }
 
    if (buf[3] == 0xc4)
        printf("head parked\n");
    else
        printf("head not parked %x\n", buf[3]);
 
    close(fd);
    return 0;
 }


Еще интересное по HDIOCTL
http://developer.osdl.org/dev/robustmutexe.../ioctl/hdio.txt
@
вот патчик  =)
http://www.uwsg.iu.edu/hypermail/linux/ker...612.1/0568.html


Это сообщение отредактировал(а) kirjanov - 25.1.2007, 10:20
PM MAIL   Вверх
Goganchic
Дата 27.1.2007, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 678
Регистрация: 18.6.2004

Репутация: нет
Всего: 5



А все же, проблему надо решать не программно, а аппаратно.
PM Jabber   Вверх
smalcom
Дата 6.2.2007, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 494
Регистрация: 16.10.2004
Где: Dnepr

Репутация: нет
Всего: 7



полазил по нету никак не могу найти список АТА команд


--------------------
What DA F...???
PM MAIL WWW Skype Jabber   Вверх
regis
Дата 6.3.2007, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 12.12.2005
Где: Москва, Россия

Репутация: нет
Всего: 7



А может, вполне достаточно прочитать логический сектор #0 с диска? Тогда, по идее, головки должны выйти на нулевую дорожку.
Впрочем, в современных ОС с кешированием данные все равно будут читаться из кеша, а не физически с носителя.

--------------------
В. В чем разница между hardware и software?О. В отличие от второго, по первому можно двинуть кулаком или пнуть ногой.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0718 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.