Меню Рубрики

Bad arm linux zimage magic

Windows-терминалы WTware

Программа-клиент службы терминалов Windows Terminal Services, для бездисковых терминалов и загрузки по сети. Основной сайт http://www.wtware.ru

Загрузка исполняемых файлов ОС по сети в смешанной среде

Загрузка исполняемых файлов ОС по сети в смешанной среде

Сообщение Jackson » Вт дек 29, 2015 3:48 am

В одной и той же сети имеется некоторое кол-во тонких клиентов на платформе x86 (обычные ноуты) и некоторое кол-во Raspberry Pi 2.

Хотелось бы понимать существует ли вариант загрузки файлов ОС по сети одновременно и для x86 и для Pi2, чтобы при каждом новом релизе не приходилось перезаливать бинарники на SD-карту для Малин, т.к. их кол-во в перспективе будет увеличиваться.

В варианте загрузки исполняемых файлов ОС по сети для платформы x86 и Raspberry Pi 2 в DHCP указываются разные имена образов для загрузки. В случае x86 это wtware.pxe, размером 16Кб, а в случае Raspberry Pi 2 — kernel7.img, размером 5Мб.
У интегрированных сетевых адаптеров размер буфера не превышает 512Кб и соответственно нет возможности загрузить файл размером 5Мб.
Если в DHCP, бутфайлом указать wtware.pxe, x86 грузятся без проблем, но Малина при этом не грузится останавливаясь на следующем:

Re: Загрузка исполняемых файлов ОС по сети в смешанной среде

Сообщение aka » Вт дек 29, 2015 7:29 am

Наш DHCP умеет автомагически определять Малину и отдавать ей нужный файл.

Юниксовый ISC dhcpd можно этому обучить. Надо смотреть на 60 параметр запроса, если там «U-boot.armv7.pi2», значит это Pi2 пытается загружаться по сети.

Не разбираюсь в майкрософтовом dhcp, но вроде там тоже была класификация клиентов.

Re: Загрузка исполняемых файлов ОС по сети в смешанной среде

Сообщение Jackson » Вт дек 29, 2015 1:16 pm

Re: Загрузка исполняемых файлов ОС по сети в смешанной среде

Сообщение Jackson » Ср мар 02, 2016 1:29 am

Делюсь результатами.
В общем DHCP-сервер от Майкрософт победить не удалось.
Зато удалось заставить раздавать разные образы для «Малин» и x86 платформ на DHCP-сервере маршрутизатора Mikrotik. Были опробованы Mikrotik RB951G-2HnD‎ и Mikrotik RB1100AHx2, RouterOS 6.x. По идее этот вариант будет работать и на других маршрутизаторах и L3 коммутаторах этого производителя, т.к. принцип настройки DHCP-сервера у них одинаков.

Напишу небольшую инструкцию, может кому пригодится.

Одновременная загрузка образов WTWare для платформ x86 и Raspberry Pi2 с помощью DHCP-сервера Mikrotik

Предполагается, что DHCP-сервер уже настроен на раздачу IP-адресов клиентам.
Пункты меню и имена полей указаны относительно интерфейса утилиты WinBox.

1. В разделе «IP»->»DHCP Server» перейти на вкладку «Options».
2. На панели инструментов окна «DHCP Server» нажать кнопку «+» (синий плюс) для создания новой опции.
2.1. В появившемся окне заполнить нижеследующие поля соответствующими значениями:
— Поле: «Name» -> Значение: x86BootFile (Символическое имя опции. Значение может быть произвольным, указывается БЕЗ кавычек );
— Поле «Code» -> Значение: 67 (Код, предписывающий DHCP-серверу передавать клиенту путь к файлу образа для загрузки по TFTP. Значение задаётся БЕЗ кавычек . Детальнее см. RFC 2132. Путь указывается относительно папки TFTPROOT как корневой или относительно корня стороннего TFTP-сервера);
— Поле «Code» -> Значение: ‘X.X.X\wtware.pxe’ (Путь к загрузочному образу для платформы x86. Символы X.X.X заменить на номер версии WTWare. Например, ‘5.4.14\wtware.pxe’. Значение обязательно должно быть указано в одинарных кавычках ).
2.2. Нажать кнопку «ОК».
3. Перейти на вкладку «Networks» и открыть настройки той сети, в которой будет осуществляться раздача образов WTWare.
3.1. В открывшемся окне DHCP Network заполнить нижеследующие поля соответствующими значениями:
— Поле «Next Server» -> Значение: aaa.bbb.ccc.ddd (IP-адрес TFTP-сервера, на котором расположены загрузочные образы WTWare);
— Поле «Boot File Name» -> Значение: X.X.X\kernel7.img (Путь к загрузочному образу для платформы Raspberry Pi2. Символы X.X.X заменить на номер версии WTWare. Значение указывается БЕЗ кавычек и так же относительно корня TFTP-сервера);
— Поле «DHCP Options» -> Значение: x86BootFile (В этом поле из выпадающего списка необходимо выбрать опцию, предварительно созданную в п.2).
3.2. Нажать кнопку «ОК».

Re: Загрузка исполняемых файлов ОС по сети в смешанной среде

Сообщение aka » Ср мар 02, 2016 2:12 am

Путь к файлу, который надо загружать, в DHCP пакете указывается дважды. Во-первых, в заголовке, оставшемся в наследство от протокола BOOTP, из которого вырос протокол DHCP. Во-вторых, в специально под это выделенной 067 опции протокола DHCP.

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

U-Boot, который грузит Малину, берёт путь из заголовка. Ок, работает и ладно.

Зоопарк прошивок PXE в сетевых картах x86 может брать путь откуда угодно. Тебе повезло, нужные тебе сетевухи отдают предпочтение 067 параметру DHCP. Но я бы не надеялся, что так будут вести себя все сетевухи. Могут встретиться такие, которые, как и U-Boot, предпочтут заголовок, и будут грузить малинский файл.

Re: Загрузка исполняемых файлов ОС по сети в смешанной среде

Сообщение Jackson » Чт мар 03, 2016 11:57 am

50-ти x86 был один комп с сетевой на Marvell Yukon, который при таком раскладе всё равно пытался грузить файл для малины, но это можно решить заменой сетевого адаптера как частный случай.

Re: Загрузка исполняемых файлов ОС по сети в смешанной среде

Сообщение Rushmore » Ср мар 09, 2016 12:24 pm

Источник

Buildroot + U-Boot + Rpi4 : Error zImage Bad Magic

I am working on a project where I want to create my own embedded linux with U-Boot. Therefore I am working with buildroot, which i recently start learning. After successfully creating my own rasberrypi4_defconfig i am currently struggling at the problem to get u-boot work correctly.

What versions I am working with:

  1. Rpi 4
  2. buildroot-2019.11
  3. u-boot (therefore i pull everyday the new changes)

Current State of the work:

I build on a Ubuntu(32bit). I configure buildroot with the raspberrypi4_defconfig and make it without changes. Then i make a u-boot defconfig for rpi_4_32b_defconfig and create the u-boot.bin with make CROSS_COMPILE=arm-linux-gnueabihf- u-boot.bin Now my next step was to configure the config.txt and exchange the content with following:

In addition i copyied my u-boot.bin into my sd-card.

The last step that i actually did is to build my own boot.scr.uimg with following content

Problem So far i am archieving to reach the U-boot menu but on booting i get the error: zimage Bad Magic I actually thing that my boot.scr.uimg is maybe not correct but dont get it.

Boot Log

After calling boot following is printed:

Environment

1 Answer 1

So far i am archieving to reach the U-boot menu but on booting i get the error: zimage Bad Magic I actually thing that my boot.scr.uimg is maybe not correct but dont get it.

That error message traces back to the contents of your boot.scr.uimg:

The bootz command expects a zImage file at the first memory address.
But the prior fatload command has copied a file named Image.4.8 into memory.
By convention an Image file is the generic Linux kernel binary image file, whereas a zImage file is a compressed version of the Linux kernel image that is self-extracting.

Источник

ODROID

I can’t boot up due to «Bad Linux ARM zImage magic!»

I can’t boot up due to «Bad Linux ARM zImage magic!»

Post by luke » Tue Mar 29, 2016 6:00 pm

I’m using XU4 board, and I can’t boot up now, here is the log messages.

And I couldn’t find boot.ini file when I connect to sdcard to PC.
Please help me to find out how to solve this problem.

Re: I can’t boot up due to «Bad Linux ARM zImage magic!»

Post by odroid » Tue Mar 29, 2016 6:03 pm

Which OS image did you flash? What is the file name of the OS image?

Did you use the «VERIFY» button on our Win32DiskImager when you flashed the OS image?
http://odroid.com/dokuwiki/doku.php?id= . diskimager

Re: I can’t boot up due to «Bad Linux ARM zImage magic!»

Post by luke » Wed Mar 30, 2016 11:21 am

Thanks for your comment.
Actually, I built my own kernel, and download it with below site.
http://odroid.com/dokuwiki/doku.php?id= . ng_android

When I was downloading, I made a mistake to send it below command.
fatload mmc 0:1 40008000 zImage-dtb

I just wrote below command only.
movi write kernel 0 40008000

After that, I couldn’t boot up this board. and this log always is shown.

Let me ask something, even when I build my own kernel , do I have to do VERIFY by using tool that you mentioned?

Источник

Проблемы при загрузке ядра 2.6 u-boot-ом

(Прошу прощения, если запостил не в тот раздел, но проблема не узконаправленная)

Есть evaluation board на однокристаллке micrel KSZ9692PB. В его nand уже прошит u-boot и рам-диск с ядром и файловой системой.

Сам по себе u-boot работает и по дефолту загружает уже прошитый туда линукс. С этим всё ок.

Однако, я решил сам взять предлагаемый micrel-ом линукс (можно скачать и линукс и весь инструментарий на сайте производителя) и научиться его компилить (никогда не делал этого) и загружать в память по tftp u-boot-ом и запускать.

Казалось бы всё просто: майкрел предоставляет ядро уже с патчами, мейкфайл с готовым конфигом под его eval-board.

Я компилю ядро, оно компилится успешно (в конце пишет Load Address 0x8000 — вот тут может беда), я беру получившийся zImage и с помощью mkimage делаю uImage, но уже указываю адреса 0x800000 в место 0x8000 (производитель рекомендует загружать с 0х800000, не знаю почему)

Аргументы mkimage выглядят у меня так: — A arm — O linux -T kernel -C none -a 0x800000 -e 0x800000 -n ‘linux-2.6-atatat-edition’ -d zImage uImage

Файловая система у меня отдельно на USB флэшечке, но до неё дело не доходит )) всё умирает гораздо раньше =\.

После этого получившийся образ засасываю через tftp u-bootom, коммандой tftp 0x800000 uImage, устанавливаю параметры консоли (setenv bootargs ‘console=ttyAM0,115200 root=/dev/sda1’) .

и радостно пытаюсь сделать bootm 0x800000

На что u-boot мне сообщает:

## Booting image at 00800000 . Image Name: linux-2.6-atatat-edition Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 4610920 Bytes = 4.4 MB Load Address: 00800000 Entry Point: 00800000 Verifying Checksum . OK XIP Kernel Image . OK

data abort pc : [ ] lr : [ ]sp : 00ecfaf4 ip : 00f5cc00 fp : 00000002 r10 : 00000000 r9 : 00f5cc00 r8 : 00ecffdc r7 : 00000000 r6 : 00000000 r5 : 00000000 r4 : 00000000 r3 : 00800000 r2 : 00000100 r1 : 0000016b r0 : 00000160 Flags: nZCv IRQs off FIQs off Mode SVC_32 Resetting CPU.

соответственно я в полном замешательстве т.к. знания линукса и АРМа у меня посредственные — ещё только начал изучать.

В чём может быть проблема?

(алсо почему-то форум мою няшную копипасту дампа превратил в какую-то кашу. ничего не могу поделать)

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Dosbox for mac os
  • Doom 3 bfg edition mac os
  • Doom 2 for mac os
  • Don t starve mac os русификатор
  • Dolphin browser mac os