aaarrr 69 3 октября, 2021 Опубликовано 3 октября, 2021 · Жалоба 2 hours ago, Овчинников Игорь said: У меня непонятка с Kernel, котороиу u-boot и должен передать управление С kernel, на мой взгляд, есть одна глобальная "непонятка" в виде отсутствия описания оборудования - dts. Пока остается взять что-то похожее, благо отличий немного в любом случае. 2 hours ago, Овчинников Игорь said: И так же нероняткка с u-boot - он просто второй загрузчик, тли ещё что-то делает оставаясь резидентом Просто загрузчик. Его дело - загрузить необходимые бинарники (image, dtb), и запустить ядро с командной строкой bootargs. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor68 0 3 октября, 2021 Опубликовано 3 октября, 2021 (изменено) · Жалоба 3 hours ago, aaarrr said: С kernel, на мой взгляд, есть одна глобальная "непонятка" в виде отсутствия описания оборудования - dts. Пока остается взять что-то похожее, благо отличий немного в любом случае. Просто загрузчик. Его дело - загрузить необходимые бинарники (image, dtb), и запустить ядро с командной строкой bootargs. пока, что остановился на этом: U-Boot> usb reset resetting USB... USB0: scanning bus 0 for devices... 2 USB Device(s) found scanning usb for storage devices... 1 Storage Device(s) found U-Boot> resetting USB... USB0: scanning bus 0 for devices... 2 USB Device(s) found scanning usb for storage devices... 1 Storage Device(s) found U-Boot> fatload usb 0 0x22000000 zImage reading zImage 3635928 bytes read in 9873 ms (359.4 KiB/s) U-Boot> U-Boot> bootz 0x22000000:0x377AD8 Kernel image @ 0x22000000 [ 0x000000 - 0x377ad8 ] Starting kernel ... Это сообщение дал u-boot (эта надпись есть в его теле). файл at91sam9260ek.dtb в наличии есть, но куда его положить? В связи с тем что я только в наяале пути, не понял кто он и зачем. Да и с адесами не освоился... в смысле адреса одни до старта загрузчика, а потом другие... но это и понятно, но не освоился всё равно пока. Прошу прощения за свою неосведомлённость! Изменено 3 октября, 2021 пользователем Овчинников Игорь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 3 октября, 2021 Опубликовано 3 октября, 2021 · Жалоба Например, так: fatload usb 0 0x22000000 zImage fatload usb 0 0x22800000 at91sam9260ek.dtb bootz 0x22000000 - 0x22800000 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor68 0 4 октября, 2021 Опубликовано 4 октября, 2021 (изменено) · Жалоба 10 hours ago, aaarrr said: Например, так: fatload usb 0 0x22000000 zImage fatload usb 0 0x22800000 at91sam9260ek.dtb bootz 0x22000000 - 0x22800000 Спасибо за пример, но кто такой этот пресловутый файл at91sam9260.dtb... каково его назначение в системе... ну хотя бы при загрузке. Потому как сейчас собираюсь собирать ядро, но не buildroot, а просто из исходников. Мною найдены такие как at91sam9260ek.dts. Судя по содержимому их назначение понятно (некое аппаратное описание) и если я правильно понял после сборки будет уже at91sam9260ek.dtb. Но как загружаемый код ядра ориентируется на его содержимое, то если я правильно понял, в коде ядра должно быть описание на его размещение. Они все *.etb имеют некий стандартный формат? Вчера просто так, для интереса, из исходников собирал linux-4.8.6 прямо на raspberry pi 4 в рам диске применяя CROSS_COMPILE=arm-none-eabi-, пока PC был занят - в результате получил Image;zImage;vmlinux ну и *dtb. Правда ошибся и собирал для at91rm9200ek. Изменено 4 октября, 2021 пользователем Овчинников Игорь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 4 октября, 2021 Опубликовано 4 октября, 2021 · Жалоба 14 minutes ago, Овчинников Игорь said: Они все *.etb имеют некий стандартный формат? Да. 15 minutes ago, Овчинников Игорь said: если я правильно понял после сборки будет уже at91sam9260ek.dtb Верно. 16 minutes ago, Овчинников Игорь said: сейчас собираюсь собирать ядро, но не buildroot, а просто из исходников И правильно, не надо собирать ядро в buildroot. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor68 0 5 октября, 2021 Опубликовано 5 октября, 2021 · Жалоба 23 hours ago, aaarrr said: Да. Верно. И правильно, не надо собирать ядро в buildroot. С Вашей рекомендацией старт произведён, только ругается на отсутствие файловой системы... про которую я совсем забыл. Спасибо!!! Но буду дальше копать.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor68 0 5 октября, 2021 Опубликовано 5 октября, 2021 (изменено) · Жалоба Доброго времени суток! Здравствуйте! У меня очень не скромный вопрос, потому что ошибки допустить нельзя иначе будет потеряно время. Собственно вопрос вот в чём: Какова карта памяти до запуска U-Boot и после. Потому, что надо с помощью U-Boot загрузить кернел и dtb в NAND из zImage и at91sam9260ek.dtb, которые находятся на usb-flash. Скажу прямо попытка одна, потому как весь набор: bootstrap и u-boot сейчас не при мне. Я конечно всё восстановлю, но это будет уже ближе к ночи, эдак часов через 8. Спасибо! Изменено 5 октября, 2021 пользователем Овчинников Игорь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 5 октября, 2021 Опубликовано 5 октября, 2021 · Жалоба On 10/3/2021 at 8:12 PM, Овчинников Игорь said: bootcmd=nand read 0x22000000 0x200000 0x300000; bootm NAND с адреса 200000 и выше можете спокойно портить, не опасаясь грохнуть u-boot. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor68 0 5 октября, 2021 Опубликовано 5 октября, 2021 · Жалоба Спасибо!!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor68 0 5 октября, 2021 Опубликовано 5 октября, 2021 (изменено) · Жалоба Простите меня! Наверное я наглею, стыдно Вас уже отвлекать. При вышопазанном запуске из USB-FLASH. Вот это фрагмент: Creating 8 MTD partitions on "atmel_nand": 0x000000000000-0x000000040000 : "bootstrap" 0x000000040000-0x0000000c0000 : "uboot" 0x0000000c0000-0x000000100000 : "env" 0x000000100000-0x000000140000 : "env_redundant" 0x000000140000-0x000000180000 : "spare" 0x000000180000-0x000000200000 : "dtb" 0x000000200000-0x000000800000 : "kernel" 0x000000800000-0x000010000000 : "rootfs" libphy: Fixed MDIO Bus: probed В приципе адреса в NAND понятны, но работают только "bootstrap" и "uboot" и они работают. сама загрузка заершается так: VFS: Cannot open root device "mtdblock7" or unknown-block(31,7): error -19 Please append a correct "root=" boot option; here are the available partitions: 0100 8192 ram0 (driver?) 0101 8192 ram1 (driver?) 0102 8192 ram2 (driver?) 0103 8192 ram3 (driver?) 1f00 256 mtdblock0 (driver?) 1f01 512 mtdblock1 (driver?) 1f02 256 mtdblock2 (driver?) 1f03 256 mtdblock3 (driver?) 1f04 256 mtdblock4 (driver?) 1f05 512 mtdblock5 (driver?) 1f06 6144 mtdblock6 (driver?) 1f07 253952 mtdblock7 (driver?) Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,7) ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,7) g_serial gadget: full-speed config #2: CDC ACM config random: crng init done Размещение 'dtb" и "kernel" в NAND не дают ничего нормального... сейчас делаю пробы с zImage; vmlinux; Image как с mkimage -A arm -O linux -T kernel -C gzip -a 0x22000000 -e 0x22000000 -n "Linux Kernel Image" -d zImage zImage.bin так и без. Подход совершенно не понятен. И это: http://dmilvdv.narod.ru/AT91SAM9260/linux.html пока не даёт результата Изменено 5 октября, 2021 пользователем Овчинников Игорь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 5 октября, 2021 Опубликовано 5 октября, 2021 · Жалоба 51 minutes ago, Овчинников Игорь said: Размещение 'dtb" и "kernel" в NAND не дают ничего нормального... Так а что делали, и что в результате получилось? Прямо последовательность действий с выхлопом. 53 minutes ago, Овчинников Игорь said: сейчас делаю пробы с zImage; vmlinux; Image Не надо: если грузится с USB, то зачем делать что-то еще? zImage можно указать как цель при сборке ядра - make ... zImage, чтобы не запускать mkimage вручную. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor68 0 5 октября, 2021 Опубликовано 5 октября, 2021 (изменено) · Жалоба 1 hour ago, aaarrr said: Так а что делали, и что в результате получилось? Прямо последовательность действий с выхлопом. Не надо: если грузится с USB, то зачем делать что-то еще? zImage можно указать как цель при сборке ядра - make ... zImage, чтобы не запускать mkimage вручную. Даже и не знаю как ответить. По опытам ведь том типа "Война и Мир" выйдет... вычленить самое разумное надо, что бы и не так много и покороче. Попробую описать... Одним словом пересобирать пока не стал, а уткнулся в формирование env путём замены: bootcmd=nand read 0x22000000 0x200000 0x300000; bootm на bootcmd=nand read 0x22000000 0x200000 0x300000; nand read 0x22800000 0x140000 0x4980; bootz 0x22000000 - 0x22800000 Или что-то подобное. При этом заранее разместив zImage по 0x200000, а at91sam9260ek.dtb по адресу 0x140000. У меня не выходит отредактировать строку из 3-х команд. Можно конечно разместить их в некой области NAND и згружать одной командой, после чего в этой строке завершить bootz 0x22000000 - NNNN... вот только не придумаю никак. Не выходит отредактировать - то ошибка, то произврльный старт. ...вот произвольный старт при попытке сохранить промежуточное значение: U-Boot> U-Boot> editenv bootcmd nand read 0x22000000 0x200000 0x300000; bootz 0x22000000 editenv - edit environment variable Usage: editenv name - edit environment variable 'name' Kernel image @ 0x22000000 [ 0x000000 - 0x377ad8 ] Starting kernel ... Это редактирование чтения из NAND и запуск, а доложно быть просто редактирование. Изменено 5 октября, 2021 пользователем Овчинников Игорь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor68 0 5 октября, 2021 Опубликовано 5 октября, 2021 · Жалоба потому как введенная строка в uboot: nand read 0x22000000 0x200000 0x377AD8; nand read 0x22800000 0x140000 0x4980; bootz 0x22000000 - 0x22800000 приводит к этому: U-Boot> U-Boot> U-Boot> nand read 0x22000000 0x200000 0x377AD8; nand read 0x22800000 0x140000 0x4980; bootz 0x22000000 - 0x22800000 NAND read: device 0 offset 0x200000, size 0x377ad8 3635928 bytes read: OK NAND read: device 0 offset 0x140000, size 0x4980 18816 bytes read: OK Kernel image @ 0x22000000 [ 0x000000 - 0x377ad8 ] ## Flattened Device Tree blob at 22800000 Booting using the fdt blob at 0x22800000 Loading Device Tree to 23eb2000, end 23eb997f ... OK Starting kernel ... Booting Linux on physical CPU 0x0 Linux version 4.8.6 (igor@debianNUC7PJYH) (gcc version 9.3.0 (Buildroot 2021.02.3) ) #1 Sun Oct 3 17:41:32 MSK 2021 CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=0005317f CPU: VIVT data cache, VIVT instruction cache OF: fdt:Machine model: Atmel at91sam9260ek Memory policy: Data cache writeback Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256 Kernel command line: console=ttyS0,115200 earlyprintk mtdparts=atmel_nand:256k(bootstrap)ro,512k(uboot)ro,256k(env),256k(env_redundant),256k(spare),512k(dtb),6M(kernel)ro,-(rootfs) root=/dev/mtdblock7 rw rootfstype=jffs2 PID hash table entries: 256 (order: -2, 1024 bytes) Dentry cache hash table entries: 8192 (order: 3, 32768 bytes) Inode-cache hash table entries: 4096 (order: 2, 16384 bytes) Memory: 57572K/65536K available (4834K kernel code, 172K rwdata, 1732K rodata, 220K init, 127K bss, 7964K reserved, 0K cma-reserved) Virtual kernel memory layout: vector : 0xffff0000 - 0xffff1000 ( 4 kB) fixmap : 0xffc00000 - 0xfff00000 (3072 kB) vmalloc : 0xc4800000 - 0xff800000 ( 944 MB) lowmem : 0xc0000000 - 0xc4000000 ( 64 MB) modules : 0xbf000000 - 0xc0000000 ( 16 MB) .text : 0xc0008000 - 0xc04c0c50 (4836 kB) .init : 0xc0699000 - 0xc06d0000 ( 220 kB) .data : 0xc06d0000 - 0xc06fb080 ( 173 kB) .bss : 0xc06fb080 - 0xc071ad04 ( 128 kB) NR_IRQS:16 nr_irqs:16 16 clocksource: pit: mask: 0x7ffffff max_cycles: 0x7ffffff, max_idle_ns: 9620954980 ns sched_clock: 32 bits at 128 Hz, resolution 7812500ns, wraps every 16777215996093750ns Console: colour dummy device 80x30 Calibrating delay loop... 98.72 BogoMIPS (lpj=385024) pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) CPU: Testing write buffer coherency: ok Setting up static identity map for 0x20008400 - 0x2000847c devtmpfs: initialized clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 14931722236523437 ns pinctrl core: initialized pinctrl subsystem NET: Registered protocol family 16 DMA: preallocated 256 KiB pool for atomic coherent allocations AT91: Detected SoC: at91sam9260, revision 2 No ATAGs? gpio-at91 fffff400.gpio: at address c485a400 gpio-at91 fffff600.gpio: at address c485c600 gpio-at91 fffff800.gpio: at address c485e800 pinctrl-at91 ahb:apb:pinctrl@fffff400: initialized AT91 pinctrl driver clocksource: tcb_clksrc: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 153935280796 ns SCSI subsystem initialized usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb i2c-gpio i2c-gpio-0: using pins 23 (SDA) and 24 (SCL) Linux video capture interface: v2.00 Advanced Linux Sound Architecture Driver Initialized. clocksource: Switched to clocksource tcb_clksrc NET: Registered protocol family 2 TCP established hash table entries: 1024 (order: 0, 4096 bytes) TCP bind hash table entries: 1024 (order: 0, 4096 bytes) TCP: Hash tables configured (established 1024 bind 1024) UDP hash table entries: 256 (order: 0, 4096 bytes) UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) NET: Registered protocol family 1 RPC: Registered named UNIX socket transport module. RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. futex hash table entries: 256 (order: -1, 3072 bytes) workingset: timestamp_bits=30 max_order=14 bucket_order=0 io scheduler noop registered (default) fffff200.serial: ttyS0 at MMIO 0xfffff200 (irq = 16, base_baud = 6208000) is a ATMEL_SERIAL console [ttyS0] enabled fffb0000.serial: ttyS1 at MMIO 0xfffb0000 (irq = 26, base_baud = 6208000) is a ATMEL_SERIAL atmel_usart fffb0000.serial: Not supported ip name nor version, set to uart fffb4000.serial: ttyS2 at MMIO 0xfffb4000 (irq = 27, base_baud = 6208000) is a ATMEL_SERIAL atmel_usart fffb4000.serial: Not supported ip name nor version, set to uart [drm] Initialized drm 1.1.0 20060810 brd: module loaded loop: module loaded ssc fffbc000.ssc: Atmel SSC device at 0xc4890000 (irq 31) atmel_nand 40000000.nand: No DMA support for NAND access. nand: device found, Manufacturer ID: 0xec, Chip ID: 0xda nand: Samsung NAND 256MiB 3,3V 8-bit nand: 256 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64 atmel_nand 40000000.nand: Use On Flash BBT Bad block table found at page 131008, version 0x01 Bad block table found at page 130944, version 0x01 nand_read_bbt: bad block at 0x000000ea0000 nand_read_bbt: bad block at 0x00000ae40000 8 cmdlinepart partitions found on MTD device atmel_nand Creating 8 MTD partitions on "atmel_nand": 0x000000000000-0x000000040000 : "bootstrap" 0x000000040000-0x0000000c0000 : "uboot" 0x0000000c0000-0x000000100000 : "env" 0x000000100000-0x000000140000 : "env_redundant" 0x000000140000-0x000000180000 : "spare" 0x000000180000-0x000000200000 : "dtb" 0x000000200000-0x000000800000 : "kernel" 0x000000800000-0x000010000000 : "rootfs" libphy: Fixed MDIO Bus: probed macb fffc4000.ethernet: invalid hw address, using random libphy: MACB_mii_bus: probed Davicom DM9161A fffc4000.etherne:00: attached PHY driver [Davicom DM9161A] (mii_bus:phy_addr=fffc4000.etherne:00, irq=-1) macb fffc4000.ethernet eth0: Cadence MACB rev 0x0001010c at 0xfffc4000 irq 28 (fa:59:35:67:75:fb) ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver ehci-atmel: EHCI Atmel driver ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver ohci-atmel: OHCI Atmel driver at91_ohci 500000.ohci: USB Host Controller at91_ohci 500000.ohci: new USB bus registered, assigned bus number 1 at91_ohci 500000.ohci: irq 33, io mem 0x00500000 usb usb1: New USB device found, idVendor=1d6b, idProduct=0001 usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb1: Product: USB Host Controller usb usb1: Manufacturer: Linux 4.8.6 ohci_hcd usb usb1: SerialNumber: at91 hub 1-0:1.0: USB hub found hub 1-0:1.0: 2 ports detected usbcore: registered new interface driver cdc_acm cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters usbcore: registered new interface driver usb-storage usbcore: registered new interface driver usbserial usbcore: registered new interface driver usbserial_generic usbserial: USB Serial support registered for generic usbcore: registered new interface driver ftdi_sio usbserial: USB Serial support registered for FTDI USB Serial Device usbcore: registered new interface driver pl2303 usbserial: USB Serial support registered for pl2303 udc: at91_udc version 3 May 2006 g_serial gadget: Gadget Serial v2.4 g_serial gadget: g_serial ready mousedev: PS/2 mouse device common for all mice rtc-at91sam9 fffffd20.rtc: rtc core: registered fffffd20.rtc as rtc0 rtc-at91sam9 fffffd20.rtc: rtc0: SET TIME! AT91: Starting after general reset at91_wdt fffffd40.watchdog: watchdog is disabled at91_wdt: probe of fffffd40.watchdog failed with error -22 atmel_mci fffa8000.mmc: version: 0x210 atmel_mci fffa8000.mmc: using PDC atmel_mci fffa8000.mmc: Atmel MCI controller at 0xfffa8000 irq 30, 1 slots usbcore: registered new interface driver usbhid usbhid: USB HID core driver iio iio:device0: Resolution used: 10 bits iio iio:device0: not support touchscreen in the adc compatible string. NET: Registered protocol family 10 sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver NET: Registered protocol family 17 input: gpio_keys as /devices/soc0/gpio_keys/input/input0 rtc-at91sam9 fffffd20.rtc: hctosys: unable to read the hardware clock ALSA device list: No soundcards found. VFS: Cannot open root device "mtdblock7" or unknown-block(31,7): error -19 Please append a correct "root=" boot option; here are the available partitions: 0100 8192 ram0 (driver?) 0101 8192 ram1 (driver?) 0102 8192 ram2 (driver?) 0103 8192 ram3 (driver?) 1f00 256 mtdblock0 (driver?) 1f01 512 mtdblock1 (driver?) 1f02 256 mtdblock2 (driver?) 1f03 256 mtdblock3 (driver?) 1f04 256 mtdblock4 (driver?) 1f05 512 mtdblock5 (driver?) 1f06 6144 mtdblock6 (driver?) 1f07 253952 mtdblock7 (driver?) Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,7) ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,7) random: fast init done g_serial gadget: full-speed config #2: CDC ACM config random: crng init done ровно так как из USB-FLASH. В принципе всё из флешки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 5 октября, 2021 Опубликовано 5 октября, 2021 · Жалоба 43 minutes ago, Овчинников Игорь said: Не выходит отредактировать - то ошибка, то произврльный старт. setenv bootcmd 'nand read ...; bootz ...' editenv никогда в жизни не использовал. Поддержка командной строки в u-boot весьма своеобразная, лучше действовать по возможности прямолинейно (совсем даже не зазорно набрать нужное в блокнотике, а затем просто скопировать в окно терминала). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor68 0 5 октября, 2021 Опубликовано 5 октября, 2021 · Жалоба 9 minutes ago, aaarrr said: setenv bootcmd 'nand read ...; bootz ...' editenv никогда в жизни не использовал. Поддержка командной строки в u-boot весьма своеобразная, лучше действовать по возможности прямолинейно (совсем даже не зазорно набрать нужное в блокнотике, а затем просто скопировать в окно терминала). Спасибо!!! Вот это: setenv bootcmd 'nand read 0x22000000 0x200000 0x377AD8; nand read 0x22800000 0x140000 0x4980; bootz 0x22000000 - 0x22800000' сработало. Я такое испытывал... и подумать не мог что надо не двойные, а одинарные кавычки. Загрузка пошла. Осталось, я думаю, rootfs разместить и указать о нем если надо. Простите, но мне осталось спать менее 4-х часов, а завтра на работу. Простите!!! Я вынужден отключиться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться