Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по Linux (http://forum.oszone.net/forumdisplay.php?f=9)
-   -   Чайный вопрос: наименьшими усилиями пропатчить загрузочную флешку (http://forum.oszone.net/showthread.php?t=326425)

bredych 01-05-2017 20:00 2733408

Чайный вопрос: наименьшими усилиями пропатчить загрузочную флешку
 
Появилась задача: взять загрузочную флешку
https://github.com/Jajcus/pld-new-rescue/releases
или подобную,
и внести небольшие изменения в ядро:

Код:

    ---
    drivers/scsi/sd.h |    2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)
   
    Index: linux/drivers/scsi/sd.h
    ===================================================================
    --- linux.orig/drivers/scsi/sd.h
    +++ linux/drivers/scsi/sd.h
    @@ -23,7 +23,7 @@
    /*
      * Number of allowed retries
      */
    -#define SD_MAX_RETRIES        5
    +#define SD_MAX_RETRIES        0
    #define SD_PASSTHROUGH_RETRIES 1
   
    /*

Поскольку никогда в жизни не имел дела с загрузочными флешками на никсах, а вообще пробовал собирать что-то единственный раз или два в далёком 2004 году, не представляю, с какой стороны подойти к решению
Можно-ли как-то взять кусок сорса и просто подменить некий (какой?) пропатченный файл в готовом образе? Или надо с нуля собирать ядро, интегрировать к нему программы и лепить загрузочную флешку с нуля? Или как-то еще?

(какую категорию темы выбрать - не представляю так же. В текстовое описание пакета залез - не вижу, к какой его причислить)

MakaBooka 02-05-2017 13:11 2733509

Цитата:

Цитата bredych
Можно-ли как-то взять кусок сорса и просто подменить некий (какой?) пропатченный файл в готовом образе? »

Можно наложить патч на исходники и собрать с ним. Если ядро собрано с модулями, достаточно подменить модуль. Если заданная подсистема вкомпилена в ядро - нужно подменять ядро.
Цитата:

Цитата bredych
Или надо с нуля собирать ядро, »

не очень понятно, что стоит за выражением "собирать с нуля".
Ядро можно пересобрать:
- полностью (со всеми модулями)
- только модули
- отдельный модуль (по аналогии http://forum.ubuntu.ru/index.php?topic=59378.0)
разницы между этими тремя способами принципиальной нет, вопрос во времени сборки.

если вы не знаете откуда взять конфиг текущего ядра, как наложить патч, как работать с исходниками на github или используете ОС Windows лучше самому это не делать. Если вышеперечисленное для вас понятно, готов ответить на конкретные вопросы.

P.S.
насколько я могу судить в вашем случае речь о модуле sd_mod.ko
Код:

74 config BLK_DEV_SD 
75      tristate "SCSI disk support" 
76        depends on SCSI 
77        ---help--- 
78          If you want to use SCSI hard disks, Fibre Channel disks, 
79          Serial ATA (SATA) or Parallel ATA (PATA) hard disks, 
80          USB storage or the SCSI or parallel port version of 
81          the IOMEGA ZIP drive, say Y and read the SCSI-HOWTO, 
82          the Disk-HOWTO and the Multi-Disk-HOWTO, available from 
83          <http://www.tldp.org/docs.html#howto>. This is NOT for SCSI 
84          CD-ROMs. 
85 
86          To compile this driver as a module, choose M here and read 
87          <file:Documentation/scsi/scsi.txt>. 
88          The module will be called sd_mod.


bredych 02-05-2017 21:40 2733592

Цитата:

Цитата MakaBooka
если вы не знаете откуда взять конфиг текущего ядра, как наложить патч, как работать с исходниками на github или используете ОС Windows лучше самому это не делать. »

Увы, под виндой сижу. Потому сразу предупредил, что полный чайник в никсах.
Но инструмент, который хочу получить этим действием, мне нужен уже "вчера", так что, всё равно как-то придется решать вопрос.

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

bredych 07-05-2017 12:52 2734795

для выполнения процедур из
https://github.com/Jajcus/pld-new-re...rent/README.md
- надо понимать, только линуксовый воркэраунд годится, под вынью не сделать?

Некие extra RPM packages needed to build this release - это https://github.com/Jajcus/pld-new-re...extra_packages ? А там что? Так несколько папок и какой брать - хз.. Кроме того, там только текстовой keep вместо тарболов.
В Edit the build.conf file according to your needs файле никаких упоминаний про константы (сколько пассов и сколько повторных попыток) - не нашел. Или утиль патч должна как-то сама найти, куда пихать? Смысл 23.7 и sd.h - также не понял. Там что-то подменяется? И откуда?

MakaBooka 10-05-2017 11:16 2735581

Цитата:

Цитата bredych
- надо понимать, только линуксовый воркэраунд годится, под вынью не сделать? »

проще под линуксом. уровень геморроя под вендой заметно выше среднего.
Цитата:

Цитата bredych
Или утиль патч должна как-то сама найти, куда пихать? »

насколько я понял смотреть надо в гит их ядра http://git.pld-linux.org/?p=packages....git;a=summary
сначала вам надо разобраться как оно билдится вообще, безо всяких патчей.
если получилось сгенерить рабочий образ, тогда уже делать патч.

bredych 11-05-2017 09:18 2735806

Цитата:

Цитата MakaBooka
сначала вам надо разобраться как оно билдится вообще, безо всяких патчей. »

можно направить? Бо как и говорил, в линях чайник и даже без свистка.
И еще вопрос: загрузочный исо на флешку чем резать? Когда-то вроде юзал pe2usb, но как поглядел, оно или не работает вовсе (новые версии), или требует разборки на файлы (старые версии).

Цитата:

Цитата MakaBooka
проще под линуксом. »

любым? Нет каких-то подводных камней насчет "не тот шелл, не тот дистр" и т.д.?

MakaBooka 11-05-2017 12:25 2735862

Цитата:

Цитата bredych
можно направить? »

на сайт за документацией? :) прошу понять меня правильно - я с удовольствием поделюсь тем что знаю и умею, но изучать некий дистр, чтобы потом вам скинуль список действий как что сделать это сильно накладно. Понимаю, что в новую тему без поддержки въезжать тяжело. самый рабочий вариант - форум этого pld-linux. Зарегаться, почитать доку, faq, задать вопрос.

Цитата:

Цитата bredych
загрузочный исо на флешку чем резать? »

сейчас все исошники гибридные (по идее), поэтому лучший вариант:
dd if=<isoфайл> of=<устройство>
например:
dd if=~/Загрузки/my-cool-mega-super-distro.iso of=/dev/sde

Цитата:

Цитата bredych
любым? Нет каких-то подводных камней насчет "не тот шелл, не тот дистр" и т.д.? »

ну как сказать. если есть некий минимальный уровень знаний и понимания - практически всё равно. если его нет - вопросы будут возникать в обязательном порядке в неожиданных местах.

там дело не в дистре как таковом, а в "обвязке". большинство binary-based дистрибутивов средств разработки "по дефолту" не имеют, и их нужно ставить. обычно это не проблема. Source-based (gentoo, например) как правило уже всё имеют в комплекте, но требуют чуть более вдумчивого отношения и чуть более глубокого понимания "что происходит".

рискну предположить, что pld-linux умеет собирать сам себя и содержит в себе всё необходимое.

bredych 11-05-2017 14:13 2735913

Цитата:

Цитата MakaBooka
рискну предположить, что pld-linux умеет собирать сам себя и содержит в себе всё необходимое. »

увы, нет. как писал выше, сорсы там размером в килобайты, а в факе указано
Цитата:

Цитата bredych
extra RPM packages needed to build this release .. Там несколько папок и какой брать - хз.. Кроме того, там только текстовой keep вместо тарболов»


bredych 11-05-2017 18:59 2735966

да, еще момент, нашел никсовую машину, пытаюсь там что-то сделать в консоли (рут имею) -на удивление символ "=" не отображается.
Как производить запись и всё прочее?
пардон, та проблема решилась: идиотизм заключался в установленной по дефолту литовской клавиатуре. Никогда не видел, чтоб в консоли по дефолту был не английский..

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

Attempting boot from usb
Grub _

И всё. Это вообще не редактированный, это готовый взятый с сайта разрабов.

апд, пробовал разные флешки, разные дистрибутивы, разные машины.
В итоге или non system disk or disk error,
или вон тот груб и молчание.
Где я косячу?


Время: 01:16.

Время: 01:16.
© OSzone.net 2001-