|
SK-AT91SAM9XE512-S3E. Не стартует Linux., Starting kernel ... Дальше тишина. |
|
|
|
Oct 25 2010, 13:04
|
Местный
  
Группа: Свой
Сообщений: 276
Регистрация: 22-09-05
Из: Kiev
Пользователь №: 8 818

|
Добрый день всем. Осваиваю Linux на сабжевой плате. Имеется: u-boot-2010.09. arm-2010q1-188-arm-none-eabi linux-2.6.36 Конфиг ядра взят с сайта http://dmilvdv.narod.ru/AT91SAM9260/index.htmlu-boot Конфиг командной строки и аргументов ядра по умолчанию. Исправлена частота 200МГц Код #define AT91C_MAIN_CLOCK 200000000 Понизил частоту SPI (согласовать с Bootstrap): Код #define AT91C_SPI_CLK 2000000 Установить адрес микросхемы физического интерфейса Ethernet в cpu/arm926ejs/at91sam9/ether.c: Код macb_eth_initialize(0, (void *)AT91SAM9260_BASE_EMAC, 0x01); Ядро Никакие патчи не применял за исключением исправлений описанный на сайте (ссылка выше). Собирал с ключем "arm-none-eabi-" После сборки заливаю образ ядра по TFTP, вижу лог: Код U-Boot> tftp macb0: link up, 10Mbps half-duplex (lpa: 0x0020) Using macb0 device TFTP from server 192.168.0.34; our IP address is 192.168.0.107 Filename 'uImage.bin'. Load address: 0x22000000 Loading: ################################################################# ############################################### done Bytes transferred = 1635311 (18f3ef hex) U-Boot> bootm ## Booting kernel from Legacy Image at 22000000 ... Image Name: Linux Kernel Image 2.6.36 Image Type: ARM Linux Kernel Image (gzip compressed) Data Size: 1635247 Bytes = 1.6 MiB Load Address: 20008000 Entry Point: 20008000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK
Starting kernel ... Дальше ничего не происходит или происходит но этого не видно. Подскажите в чем может быть проблема? В какую сторону копать? Читал на форуме что "Starting kernel ..." пишет уже распаковщик ядра, значит управление ему передалось... Может надо было собирать компилером с префиксом "arm-none-linux-eabi-" ? Аналогичная проблема уже подымалась, но ответа по данному вопросу нет: http://electronix.ru/forum/index.php?showt...ng+kernel\Спасибо.
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 15)
|
Oct 25 2010, 18:36
|
Знающий
   
Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858

|
Цитата(JeDay @ Oct 25 2010, 21:21)  sasamy спасибо за наводку, посмотрю. MACHINE ID это некое число или текстовая строка? Этот идентификатор передается ядру загрузчиком в регистре r1, смотрите linux-2.6.36/arch/arm/tools/mach-types u-boot-2010.09/arch/arm/include/asm/mach-types.h они должны совпадать с конфигом ядра - иначе ядро не стартует. Кстати для вашего стартеркита какой-то добрый человек продвинул иеднтификатор  skat91_s3e MACH_SKAT91_S3E SKAT91_S3E 2790 #define MACH_TYPE_SKAT91_S3E 2790 но это не суть важно - можно и от EK атмеловской оставить - главное чтобы и загрузчик и ядро были сконфигурированы одинаково. Цитата Пробовал запускать собраное ядро с сайта www.at91.com скомпиленное под фирмовую борду с кварцем 18.432, так оно показывает признаки жизни: после строки "Starting kernel ..." некоторое время еще что-то ероглифами в лог пишет. Это нормально  но странно что это ядро стартует. А вы не пробовали конфиг взять от ядра которое с платой шло ? Потом при кажущейся схожести 9260/xe512 есть и небольшие различия - например адреса sram не совпадают. В общем там ошибок можно наделать при конфигурировании достаточно, мой совет - берите конфиг от ядра с диска платы, копируйте, запускайте menuconfig и правьте что вам нужно.
Сообщение отредактировал sasamy - Oct 25 2010, 18:44
|
|
|
|
|
Oct 25 2010, 21:38
|
Знающий
   
Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050

|
Цитата(JeDay @ Oct 25 2010, 17:04)  Дальше ничего не происходит или происходит но этого не видно. Подскажите в чем может быть проблема? В какую сторону копать? попробуйте для начала остановить Uboot и ввести две команды: Код tftpboot 20400000 имя-вашего-ядра bootm 20400000 еще как вариант - заблокированы в конфиге ядра серийные порты или переопределен порт вывода отладочной инфы или порты не прописаны в файл платы. вариантов дофига - как следствие визуально определяется как зависание системы.. если у вас есть плата кита, то к ней должен прилагаться диск с полным комплектом всего софта и исходников, имеет смысл посмотреть там конфиги и настройки, а уж потом точить 2.6.36..
|
|
|
|
|
Oct 26 2010, 13:42
|
Местный
  
Группа: Свой
Сообщений: 276
Регистрация: 22-09-05
Из: Kiev
Пользователь №: 8 818

|
Для надежности MACHINE_ID в u-boot для платы AT91SAM9260EK в файле u-boot-2010.09\board\atmel\at91sam9260ek\at91sam9260ek.cпрописал Код /* arch number of AT91SAM9260EK-Board */ gd->bd->bi_arch_number = MACH_TYPE_AT91SAM9260EK; в u-boot-2010.09\include\configs\at91sam9260ek.hтоже жестко на всякий случай прописал Код #define CONFIG_AT91SAM9260 1 Скомпилировал заново, бинарник старого и нового билда отличаются только хедером с временем компиляции. Значит MACHINE_ID у меня точно равен MACH_TYPE_AT91SAM9260EK (1099). В конфигах ядра прописано. Логи включены. За основу брал конфиг at91sam9260ek_defconfig.txt с сайта at91.com Код CONFIG_ARCH_AT91=y CONFIG_MACH_AT91SAM9260EK=y CONFIG_MACH_AT91SAM9260EK=y MACHINE_ID тоже равен 1099. (файл linux-2.6.36/arch/arm/tools/mach-types) Пробовал с моим u-boot грузить ядро 2.6.24 с дика который в комплекте шет, грузится нормально. Значит получается я неправильно бинарник собираю. Подметил что я собирал ядро компилером с префиксом "arm-none-eabi-" который делает бинарник исполняющийся на процессоре без ОС, а разработчик starterkit собирал с префиксом "arm-none-linux-gnueabi-". Скомпилил еще раз ядро с "arm-none-linux-gnueabi", файл vmlinux 4.1Мб. Теперь начал проявляться странный ефект, при выполнении команды: arm-none-linux-gnueabi-objcopy -O binary -R .note -R .comment -S vmlinux linux.binфайл linux.bin получается размером 3Гб  Никто не сталкивался с такой проблемой ?
|
|
|
|
|
Oct 26 2010, 14:12
|
Знающий
   
Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858

|
Цитата(JeDay @ Oct 26 2010, 17:42)  Подметил что я собирал ядро компилером с префиксом "arm-none-eabi-" который делает бинарник исполняющийся на процессоре без ОС, а разработчик starterkit собирал с префиксом "arm-none-linux-gnueabi-". Для ядра это неважно - он не использует рантайм библиотеки кросскомпилятора Цитата Теперь начал проявляться странный ефект, при выполнении команды: arm-none-linux-gnueabi-objcopy -O binary -R .note -R .comment -S vmlinux linux.binфайл linux.bin получается размером 3Гб  Никто не сталкивался с такой проблемой ? Сталкивались, сделайте имидж для загрузки в uboot вот так ./mkimage -A arm -O linux -C none -T kernel -a 20008000 -e 20008000 -n linux-2.6 -d arch/arm/boot/zImage zlinux
|
|
|
|
|
Oct 26 2010, 15:50
|
Местный
  
Группа: Свой
Сообщений: 276
Регистрация: 22-09-05
Из: Kiev
Пользователь №: 8 818

|
Последовательность упаковки ядра: П.1 arm-none-linux-gnueabi-objcopy -O binary -R .note -R .comment -S vmlinux linux.bin П.2 gzip -9 linux.bin П.3 mkimage -A arm -O linux -T kernel -C gzip -a 0x20008000 -e 0x20008000 -n "Linux Kernel Image" -d linux.bin.gz uImage.binЭта последовательность отрабатывает правильно. Пробовал так упаковывать vmlinux который шел на диске уже скомпиленный. Исходный vmlinux - 3.7Мб. П.1 linux.bin - 2.8Мб. П.2 linux.bin.gz - 1.4Мб. П.3 uImage.bin - 1.4Мб. У меня исходный vmlinux (2.6.36) 4.1Мб, после 1-й комагды linux.bin равен 3Гб. To sasamy Проблема с бинарником возникает на П1 следовательно ключи для mkimage нипричем. Есть еще какие нибуть варианты?
|
|
|
|
|
Oct 26 2010, 16:15
|
Знающий
   
Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858

|
Цитата(JeDay @ Oct 26 2010, 19:50)  Последовательность упаковки ядра: П.1 arm-none-linux-gnueabi-objcopy -O binary -R .note -R .comment -S vmlinux linux.bin П.2 gzip -9 linux.bin П.3 mkimage -A arm -O linux -T kernel -C gzip -a 0x20008000 -e 0x20008000 -n "Linux Kernel Image" -d linux.bin.gz uImage.bin.... To sasamy Проблема с бинарником возникает на П1 следовательно ключи для mkimage нипричем. Есть еще какие нибуть варианты?  Какие еще варианты ? п1,2 просто не нужны - достаточно одной моей команды. Назовите файл на выходе (который у меня zlinux) как вам нужно - это готовый образ ядра для загрузки его через uboot.
Сообщение отредактировал sasamy - Oct 26 2010, 16:18
|
|
|
|
|
Oct 26 2010, 16:31
|
Местный
  
Группа: Свой
Сообщений: 276
Регистрация: 22-09-05
Из: Kiev
Пользователь №: 8 818

|
Цитата п1,2 просто не нужны - достаточно одной моей команды. Эти пункты есть в документации README на u-boot. Цитата /mkimage -A arm -O linux -C none -T kernel -a 20008000 -e 20008000 -n linux-2.6 -d arch/arm/boot/zImage zlinux
Назовите файл на выходе (который у меня zlinux) как вам нужно - это готовый образ ядра для загрузки его через uboot. А что значит этот путь? arch/arm/boot/zImage
|
|
|
|
|
Oct 26 2010, 17:00
|
Знающий
   
Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858

|
Цитата(JeDay @ Oct 26 2010, 20:31)  Эти пункты есть в документации README на u-boot. Там в старых версиях в документации много есть того что в реальной жизни нет - сам был удивлен например при разборе полетов с записью в nand Цитата А что значит этот путь? arch/arm/boot/zImageЭто относительный путь - команду нужно выполнить из корня исходников ядра после его сборки, п1,2 потому и не нужны что там лежит готовый образ для загрузки, mkimage всего лишь дописывает к нему свой заголовок чтобы uboot его правильно распознал, так как тут путь архитектурно зависимый - видимо поэтому в доке написали универсальный метод, vmlilnux лежит в корне исходников после сборки для любой архитектуры.
Сообщение отредактировал sasamy - Oct 26 2010, 17:02
|
|
|
|
|
Oct 26 2010, 17:16
|
Местный
  
Группа: Свой
Сообщений: 276
Регистрация: 22-09-05
Из: Kiev
Пользователь №: 8 818

|
sasamy спасибо за наводку, буду знать  Только что скачал ядро 2.6.22, накатил патч от http://maxim.org.za и применил дефолтный конфиг at91sam9260ek_defconfig он как раз под это ядро, изменил частоту кварца на 12МГц и скомпилил. Ядро заработало  Теперь надо ФС прикрутить ну и экспериментировать с настройками ядра... В общем уже есть точка опоры. Код U-Boot> tftp macb0: link up, 10Mbps half-duplex (lpa: 0x0020) Using macb0 device TFTP from server 192.168.0.34; our IP address is 192.168.0.107 Filename 'uImage.bin'. Load address: 0x22000000 Loading: ################################################################# ########################## done Bytes transferred = 1322354 (142d72 hex) U-Boot> bootm ## Booting kernel from Legacy Image at 22000000 ... Image Name: JedaY Linux 2.6.22 Kernel Image Image Type: ARM Linux Kernel Image (gzip compressed) Data Size: 1322290 Bytes = 1.3 MiB Load Address: 20008000 Entry Point: 20008000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK
Starting kernel ... Linux version 2.6.22 (jeday@vmachine) (gcc version 4.4.1 (Sourcery G++ Lite 2010q1-188) ) #2 Tue Oct 26 21:01:31 MSD 2010 CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177 Machine: Atmel AT91SAM9260-EK Memory policy: ECC disabled, Data cache writeback Clocks: CPU 200 MHz, master 100 MHz, main 12.000 MHz CPU0: D VIVT write-back cache CPU0: I cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets Built 1 zonelists. Total pages: 16256 Kernel command line: console=ttyS0,115200 root=/dev/mtdblock0 mtdparts=atmel_nand:-(root) rw rootfstype=jffs2 AT91: 96 gpio irqs in 3 banks PID hash table entries: 256 (order: 8, 1024 bytes) Console: colour dummy device 80x30 Dentry cache hash table entries: 8192 (order: 3, 32768 bytes) Inode-cache hash table entries: 4096 (order: 2, 16384 bytes) Memory: 64MB = 64MB total Memory: 62080KB available (2464K code, 232K data, 108K init) Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok NET: Registered protocol family 16 Generic PHY: Registered new driver SCSI subsystem initialized usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 2048 (order: 2, 16384 bytes) TCP bind hash table entries: 2048 (order: 1, 8192 bytes) TCP: Hash tables configured (established 2048 bind 2048) TCP reno registered NetWinder Floating Point Emulator V0.97 (double precision) JFFS2 version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc. io scheduler noop registered io scheduler anticipatory registered (default) atmel_usart.0: ttyS0 at MMIO 0xfefff200 (irq = 1) is a ATMEL_SERIAL atmel_usart.1: ttyS1 at MMIO 0xfffb0000 (irq = 6) is a ATMEL_SERIAL atmel_usart.2: ttyS2 at MMIO 0xfffb4000 (irq = 7) is a ATMEL_SERIAL RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize loop: module loaded Davicom DM9161E: Registered new driver Davicom DM9161A: Registered new driver Davicom DM9131: Registered new driver macb macb: detected PHY at address 1 (ID 0022:1619) eth0: Atmel MACB at 0xfffc4000 irq 21 (3e:36:65:ba:6f:be) No NAND device found!!! atmel_spi atmel_spi.0: Atmel SPI Controller at 0xfffc8000 (irq 12) atmel_spi atmel_spi.1: Atmel SPI Controller at 0xfffcc000 (irq 13) usbmon: debugfs is not available at91_ohci at91_ohci: AT91 OHCI at91_ohci at91_ohci: new USB bus registered, assigned bus number 1 at91_ohci at91_ohci: irq 20, io mem 0x00500000 usb usb1: configuration #1 chosen from 1 choice hub 1-0:1.0: USB hub found hub 1-0:1.0: 2 ports detected Initializing USB Mass Storage driver... usbcore: registered new interface driver usb-storage USB Mass Storage support registered. udc: at91_udc version 3 May 2006 mice: PS/2 mouse device common for all mice i2c /dev entries driver at91_i2c at91_i2c: AT91 i2c bus driver. AT91 MMC: 4 wire bus mode not supported by this driver - using 1 wire usbcore: registered new interface driver usbhid drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver Advanced Linux Sound Architecture Driver Version 1.0.14 (Thu May 31 09:03:25 2007 UTC). ALSA device list: No soundcards found. TCP cubic registered NET: Registered protocol family 1 NET: Registered protocol family 17 Root-NFS: No NFS server available, giving up. VFS: Unable to mount root fs via NFS, trying floppy. List of all partitions: No filesystem could mount root, tried: jffs2 Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|