Andy928 Posted February 12, 2014 Author Share #26 Posted February 12, 2014 Починил. Врагам проект покоя не даёт ! Постоянно то жалуются, то испортить что-то норовят Но мы не сдаёмся! Quote Link to comment Share on other sites More sharing options...
shurin Posted May 23, 2014 Share #27 Posted May 23, 2014 Спасибо за инструкцию! Только чем отредактировать synobios.ko? Quote Link to comment Share on other sites More sharing options...
Andy928 Posted May 26, 2014 Author Share #28 Posted May 26, 2014 Спасибо за инструкцию! Только чем отредактировать synobios.ko? Сначала его надо дизассемблировать, найти адреса инструкций и отпатчить любым HEX редактором. Я использую IDA Pro для дизассемблирования и HIEW для редактирования. Quote Link to comment Share on other sites More sharing options...
shurin Posted June 10, 2014 Share #29 Posted June 10, 2014 Andy, давай может общими усилиями попытаемся сделать подробную инструкцию по сборке загрузчика под новые прошивки? Бродя по форуму то и дело постоянно натыкаюсь на сообщения "не работает то, не работает это" Я например не разобрался, как с помощью IDA и HIEW подредактировать synobios.ko Сделав такую инструкцию, практически каждый сможет собрать себе загрузчик под свое железо. Тем более не всегда можно включить все оборудование в .config Например: у меня стоит контроллер I/O ITE8728, в конфиге можно включить либо ITE87XX, либо ITE8728. То есть универсально уже не получается. Вот мои наработки, точнее очень ранние наработки nanoboot. Но ничего не работает... Загружается и сразу poweroff http://sendfile.su/989149 Quote Link to comment Share on other sites More sharing options...
wellby Posted August 5, 2014 Share #30 Posted August 5, 2014 Доброго времени суток. Подсобите новичку, пожалуйста. Появилась необходимость добавить в существующеее ядро драйвер САС-контроллера. На выходе получился bzImage размером 2.4 Мб. На загрузочной флешке с Nanoboot размер zImage порядка 12 Мб. В связи с этим вопрос: просто подменить на флешку zImage не представляется возможным? Необходимо собирать полностью pat файл и переставлять систему? Или я где-то промахнулся? Заранее благодарю. Quote Link to comment Share on other sites More sharing options...
vapet Posted November 19, 2014 Share #31 Posted November 19, 2014 В zImage кроме ядра включен еще ram-диск, который отрабатывает между загрузкой ядра и запуском DSM. В nanoboot в этот диск встроена подмена файлов и прочая борьба с защитой Syno. Чтобы подменить ядро на свое нужна след. последовательность действий: 1. В исходниках ядра есть утиль scripts/extract-vmlinux, которая распаковывает ядро в исходный вид. 2. Ищем в файле ядра magic для образа cpio - строка "0707" (второе вхождение, первое попадает в код). Запоминаем смещение. Ищем конец образа cpio - строка "TRAILER!!!". Вычисляем размер. 3. Вытаскиваем этот образ, например с помощью dd. 4. Если в рам-диске менять ничего не надо, оставляем его до лучших времен в покое, лучше с расширением cpio, чтобы он обратно в ядро собрался. 5. Собираем ядро (вот тут все волшебные пузырьки, не имея родных патчей и конфигурации от автора nanoboot, я ни разу пока не смог собрать ядро, которое бы без проблем грузилось, то модули не все грузятся, то synobios на символы ругается). 6. Собрали да? Зря торопились, надо было не забыть в конфигурации ядра указать файл рам-диска в параметре init_ramdisk (где-то в General kernel parameters)... 7. Получаем в boot/bzImage ядро с уже встроенным рам-диском, переименовываем на флэшку в zImage, профит. Еще раз повторяю я пока успеха со сборкой и загрузкой ядра не достиг. Хотя очень хочу. У меня мать ASRock Z87 Extreme 11/ac c 22 каналами SATA и корпус на 22 диска простаивают. Всего-то надо драйвер для LSI 3008 встроить. Из ядра 3.12.32 я его уже в 3.2.40 перенес. Ядро пока собрать до конца не научился, чтобы nanoboot с ним заработал. Либо сам методом тыка за пару лет разберусь, либо авторы сжалятся и дадут патчи и конфиг ядра. Quote Link to comment Share on other sites More sharing options...
Vortex Posted November 19, 2014 Share #32 Posted November 19, 2014 vapet, а откуда Вы берете ядро для моификации? Quote Link to comment Share on other sites More sharing options...
vapet Posted November 19, 2014 Share #33 Posted November 19, 2014 Если вы про исходники, то те которые Synology выложили synogpl-4458-bromolow.tbz. Если про nanoboot, то скачал где-то Nanoboot-5.3.1-fat.img. Нашел еще в форуме архив xpenology.zip, в нем как я понял alpha9 исходники сборки от trantor, попробую еще к нему пристроить сборку ядра с драйвером. Quote Link to comment Share on other sites More sharing options...
Vortex Posted November 19, 2014 Share #34 Posted November 19, 2014 Не, я про исходники ядра из которых Вы пытаетесь собрать нанобут, добавив рамдиск. Где то на гитхабе есть максимально приближенные к нанобуту исходники ядра со всеми патчами (кажется, автор liwei). Вот из них нужно собирать все воедино, а не из оригиналов синолоджи. Quote Link to comment Share on other sites More sharing options...
vapet Posted November 19, 2014 Share #35 Posted November 19, 2014 Я уже нашел несколько вариантов, в том числе и liwei, сейчас пробую по очереди собирать. Свежее июня нигде исходников нет. Корни у них вроде бы одни и те же, в основном что-то в конфиге ядра правится. Quote Link to comment Share on other sites More sharing options...
vapet Posted November 19, 2014 Share #36 Posted November 19, 2014 Да, вариант с liwei прокатил. Если кому интересно как собирать свое ядро в nanoboot: 1. Берем исходники отсюда https://github.com/liwei/xpenology-3.x. Я брал не последнюю версию, лучше берите версию на 01.06, дальше liwei стал зачем-то экспериментировать с aufs, больше ничего содержательного для DSM не менялось. 2. Собираем свое ядро (если не умеем идем читать начало этой ветки). 3. Подменяем ядро в nanoboot по процедуре, которую я описал на 4 поста выше. 4. Не все изменения в ядре так легко прокатят, например доп. модули придется вставлять в ram-диск и прописывать там в modules.d и т.п. Я этот путь пока не проходил, меня волнует только один драйвер, который я компильнул прямо в ядро. В принципе это возможно, но надо будет повозиться с рапаковкой-запаковкой рам-диска через cpio (не потеряв по дороге спец.файлы в папке /dev рам-диска!!!). Если я этой инструкцией обидел авторов nanoboot, прошу прощения. Надо было четче высказывать свою позицию на просьбы народа выдать исходники. Тут как везде - либо вы оперативно реагируете на чаяния народа, либо народ пойдет своим путем . Quote Link to comment Share on other sites More sharing options...
Vortex Posted November 20, 2014 Share #37 Posted November 20, 2014 Я не думаю, что Вы обидели авторов нанобута. Было бы совсем круто, если бы Вы собрали воедино Ваше ядро, сpio рамдиск и скрипты по сборке нанобута в одном месте (на том же гитхабе или здесь) чтобы каждый мог вносить изменения в загрузчик. Quote Link to comment Share on other sites More sharing options...
demon_sl Posted November 20, 2014 Share #38 Posted November 20, 2014 Не, я про исходники ядра из которых Вы пытаетесь собрать нанобут, добавив рамдиск.Где то на гитхабе есть максимально приближенные к нанобуту исходники ядра со всеми патчами (кажется, автор liwei). Вот из них нужно собирать все воедино, а не из оригиналов синолоджи. Он же cancome, ссылку эту он же и дал, после того как его сайт перестал работать и поднялась шумиха, в шапке темы нанобут скачать давно висит. А вот скрипты так и не дал, сами мол делайте свой нанобут Quote Link to comment Share on other sites More sharing options...
Vortex Posted November 20, 2014 Share #39 Posted November 20, 2014 Ну и сделаем сами свой нанобут Потому то и прошу полный комплект. Мне нужно стабильная платформа для сборки полноценной текущей версии нанобута для экспериментов с защитй новой версии DSM 5.1 У меня, к сожалению, мало времени все самому настраивать и сводить воедино. А так, глядишь и дела с защитой DSM 5.1 быстрей пойдут. Quote Link to comment Share on other sites More sharing options...
vapet Posted November 20, 2014 Share #40 Posted November 20, 2014 Собирать-то я ядро научился, а драйвер так и не заработал. Не могу понять, в ядро он собирается нормально, а при загрузке его в dmesg вообще нету, как будто и не было. Придется учиться все таки модули в nanoboot пихать. Quote Link to comment Share on other sites More sharing options...
vapet Posted November 20, 2014 Share #41 Posted November 20, 2014 В виде модуля пашет, диски увиделись, SMART читается, форматируется. Так что если кому еще нужен драйвер под LSI 3008 (3108 и 3004), могу рассказать как его в 3.2.40 ядро вставить. Выложить у меня собственно кроме вышенаписанного особо нечего, я в самих потрохах nanoboot (всякие скрипты на ramdisk для подмены файлов, обхода защиты и т.п.) пока не ковырялся. Но судя по тому что в githab у самого sancome валяется, он взял за основу скрипты сборки gnoboot, правил только начинку. Начинку его можно достать из ramdisk вышеописанным способом, распаковать с помощью cpio. Quote Link to comment Share on other sites More sharing options...
jundar Posted April 23, 2015 Share #42 Posted April 23, 2015 Может кто нибудь подсказать где бы можно было скачать рабочие исходники для пересборки ядра? Я безпедельно уважаю всю проделанную oгромную работу и не хочу никак обидеть этой просьбой уважайиемых авторов проекта, и лишь хочу собрать 3.2.40 kernel и иметь возможность добавить или убрать с него нужное/ненужное для моего железа. Я перепробовал изходники 5.0 версии найденые на Github ,но мне не удалось добиться функционала как у оригинальных загрущиков - на ESXI 5.5 VM загружчик загружается нo PAT файл инсталировать нe удаеться То же самое случается и с готовыми IMG файлами найдeнами на Github архивах. Заранее огромное спосибо!! UPADTE: Очень странно для меня то, что загрузчики (Nanoboot 4458, 4493, 4528) с перекомпилированными ядрами успешно работают на железе, но не позволяют мне инсталировать DSM на ESXI VM. Может кто нибудь сталкивался с подобной проблемой? Скореее всего я должен включить каки ту настройке ядра в конфиг ноу немогу найти какие. Помогите можалуйста. PS: Quote Link to comment Share on other sites More sharing options...
Fox_exe Posted April 8, 2016 Share #43 Posted April 8, 2016 Забавно, что в сорцах для arm девайсов никакой защиты нет вообще - на WDMyCloud Mirror заставил работать поменяв в ядре буквально 20 строк (под особенности железа). И всё. Ни рамдиск, ни образ самой системы не трогал. Только заменил updater в pat файле, дабы он u-boot не заменил на загрузчик synology. Кстати, инфы по "Взлому" чёт маловато. Может стоит создать темку со всей инфой по особеностям ядра и прочего? Да и переписать synobios тож не помешает, т.к. он отвечает за некоторые "Жлезные" фичи, вроде управления светодиодами, вентилятором и прочей перефирией (Хотя ядро линукса и так всё это умеет и для x86_64 synobios по сути является только прослойкой между фичами ядра и DSM. Вообще я ещё много чего могу рассказать про DSM... Но интересно ли это комуто ещё кроме меня? Quote Link to comment Share on other sites More sharing options...
Vortex Posted April 8, 2016 Share #44 Posted April 8, 2016 Интересно, расскажите. Quote Link to comment Share on other sites More sharing options...
PRIMAS4UNO Posted April 8, 2016 Share #45 Posted April 8, 2016 Забавно, что в сорцах для arm девайсов никакой защиты нет вообще - на WDMyCloud Mirror заставил работать поменяв в ядре буквально 20 строк (под особенности железа). И всё. Ни рамдиск, ни образ самой системы не трогал. Только заменил updater в pat файле, дабы он u-boot не заменил на загрузчик synology.Кстати, инфы по "Взлому" чёт маловато. Может стоит создать темку со всей инфой по особеностям ядра и прочего? Да и переписать synobios тож не помешает, т.к. он отвечает за некоторые "Жлезные" фичи, вроде управления светодиодами, вентилятором и прочей перефирией (Хотя ядро линукса и так всё это умеет и для x86_64 synobios по сути является только прослойкой между фичами ядра и DSM. Вообще я ещё много чего могу рассказать про DSM... Но интересно ли это комуто ещё кроме меня? Во первых кажется спасибо именно вам за https://drive.google.com/folderview?id= ... FpYS2dzMEE Во вторых (заранее извиняюсь, что не смог найти сам). Есть способ поменять MAC сетевой карточки на WD cloud перешитом под DSM? В третьих периодически на Xpeno-водов нападает зуд задействовать HDMI (для KODI или GUI DSM). http://xpenology.com/forum/viewtopic.php?f=5&t=9913 http://xpenology.com/forum/viewtopic.php?f=5&t=11637 в принципе можно на каком-то железе получить https://www.synology.com/en-global/products/NVR216 ? А если укажите направление для x86 народ придет в полный восторг... Quote Link to comment Share on other sites More sharing options...
Vortex Posted April 8, 2016 Share #46 Posted April 8, 2016 хм.... думаю, разумно вам будет создать отдельную тему про WDMyCloud Mirror и там обсудить. чтобы не заходить в оффтопик. Quote Link to comment Share on other sites More sharing options...
tsygam Posted April 9, 2016 Share #47 Posted April 9, 2016 Вообще я ещё много чего могу рассказать про DSM... Но интересно ли это комуто ещё кроме меня? Весьма интересно, и про ARM и про DSM Quote Link to comment Share on other sites More sharing options...
Fox_exe Posted April 10, 2016 Share #48 Posted April 10, 2016 Не понимаю, зачем все ковыряют ядро Synology, когда можно взять список изменений (.diff), выкинуть из него платформо-зависимый код и спокойно накотить, что останется на (почти) любую версию ядра. Собственно, с этим я сейчас и эксперементирую. Правда я нефига не прогер, такчто хз, что получится Платформо-зависимый код - это почти 80% всех изменений (То, что в ветке /arch). В лучшем случае оттуда можно оставить gpio либы, чтобы DSM могла обращятсья к вентиляторам, светодиодам и прочей переферии через свои костыли. Хотя на работу системы это не влияет. ocf, crypto-linux - исключительно для arm девайсов и на томже х86_64 нафиг не сдались. (~10% кода) dwc-otg - Вообще используется только Comcerto (arm). Тоесть в сухом остатке - aufs, btrfs (конкретно допилен), да SynoACL (Требуется для Samba, FTP и чего то ещё). Всё остальное можно смело выкидывать на мусор. Ну и, конечноже, всё, что связано с synobios. Хотя код этого модуля частично есть в наличии (synobios dummy module). Можно дописать, добавив все нужные системные вызовы. По факту - оставить внутри лиш "заглушки". В идеале - переписать так, чтобы этот модуль брал все данные из нормальных мест - из /sys например и из стандартных драйверов) *** Вот такой патч получился. Возможно потребуется допилить чегонить ещё. Quote Link to comment Share on other sites More sharing options...
valsha Posted April 12, 2016 Share #49 Posted April 12, 2016 может просто все сведется к тому что можно будет сделать свой обычный дистр с фичами синолоджи? и не нужен будет загрузчик? Quote Link to comment Share on other sites More sharing options...
Fox_exe Posted April 12, 2016 Share #50 Posted April 12, 2016 может просто все сведется к тому что можно будет сделать свой обычный дистр с фичами синолоджи? и не нужен будет загрузчик? Собственно, он и не нужен. По крайней мере на ARM... Сама DSM общяется с железом через synobios и моификации в ядре. Модификации в ядре перенести на другое ядро не проблема (При должном знании C++). Synobios можно вообще написать с нуля (Список функций получить легко, список правильных "Ответов" тоже можно подсмотреть). Есть даже готовый модуль-заглушка, в который лиш требуется дописать платформо-зависимые фичи. К примеру - Мне потребовалось лиш подменить нумерацию Gpio в ядре, чтобы оно спокойно загрузилось. Плюсом - написал свой скрипт "updater" (т.к. родной наверняка перезапишит загрузчик, что может кончится весьма плачевно). Всё. Система работает! Даже Synobios спокойно определил девайс как DS213j (WDMyCloud Mirror изначально) При портировании DSM5 на WDMC (gen1) я пошёл немного другим путём - выкинул из ядра Synology всё платформо-зависимое и сравнил оставшееся с ядром WD. Заработало с 5й попытки... Почти полноценно. Причём тут я вообще без Synobios всё завёл - Но пришлось немного поправить загрузочные скрипты и пропатчить inex.cgi (Спасибо Vortex'у), который падал, пытаясь получить данные от synobios. Если чуть проще - Synology в своё ядро добавили только SynoACL (Требуется для Samba, FTP и других файловых служб. Теоритически можно забить, подменив исполняемые файлы указанных служб на собранные вручную из обычных исходников). Всё остальное - поддержка особенностей своего железа. Synobios тут как посредник используется. Программная прослойка. В частости в ARM нет управления питанием. За это отвечает MicroP (Специальный микроконтроллер, управляемый через UART). Онже реализует поддержку спящего режима и WOL. Иногда через него реализуют термоконтроль и управление вентилятором (Если проц сам не умеет). Кароче - теории я набрался по самое нехочу, но вот реализовывать на практике все эти фичи выходит с трудом - я не прогер и C++ знаю лиш на уровне общего синтаксиса с другими ЯП. Нужны прогеры, желательно знакомые с написанием модулей ядра (Хотя и это не особо требуется - по ядру доков море, а примеров того, что мне нужно в сети валом - от RaspberyPI и всяких Arduino. Мне просто знаний самого C++ нехватает для реализации) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.