установка ядра 3.5.3 на плату
buletz
Пункты: 5920
Регистрация: 16.11.2011
Пол: Мужчина
Кто-нибудь собирал
3.5.3 ядро под плату SK-AT91SAM9G45?
Что-то не хочет у меня оно стартовать.
Виснет на этих строчках:
Код
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Конфиг выставил точно так же как на 3.1.5, которое у меня успешно стартует.
Board файл тоже привел в соответствии с 3.1.5.
Вот мои "бордовые" файлы и конфиг:
at91sam9g45.c
at91sam9g45_devices.c
board-sam9m10g45ek.c
config
С чего начать поиски, никто не подскажет?
buletz
Пункты: 5920
Регистрация: 16.11.2011
Пол: Мужчина
нашел такую подсказку:
http://www.xenomai.org/documentation/xenomai-head/html/TROUBLESHOOTING/#_kernel_stops_after_uncompressing_linux_8230_done_booting_the_kernel
2.1. Kernel stops after "Uncompressing Linux… done, booting the kernel."
This means that the kernel crashes before the console is enabled. You should enable the CONFIG_EARLY_PRINTK option. For some architectures (blackfin, x86, arm), enabling this option also requires passing the earlyprintk parameter on the kernel command line. See Documentation/kernel-parameters.txt for possible values.
For the ARM architecture, you have to enable CONFIG_DEBUG_KERNEL and CONFIG_DEBUG_LL in order to be able to enable CONFIG_EARLY_PRINTK.
Включил указанные опции, но все равно после слов "booting the kernel" полная тишина. Как локализовать источник зависания? ....
buletz
Пункты: 5920
Регистрация: 16.11.2011
Пол: Мужчина
скорректировал строку загрузки в menuconfig и добавил earlyprintk=ttyS0,115200,keep
в результате вижу лог загрузки.
в начале все идет норм, но затем при подключении ubi файловой системы имеем ошибки (см.ниже).
затем после слов "turn off boot console..." все виснет.
возникает вопрос, а что изменилось в ядре что теперь старый конфиг nand-а не катит ?
Код [ 0.650000] atmel_nand atmel_nand: Failed to request DMA channel
[ 0.650000] atmel_nand atmel_nand: No DMA support for NAND access.
[ 0.660000] NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit), page size: 2048, OOB size: 64
[ 0.670000] Bad block table found at page 131008, version 0x01
[ 0.680000] Bad block table found at page 130944, version 0x01
[ 0.690000] nand_read_bbt: bad block at 0x000004ac0000
[ 0.690000] nand_read_bbt: bad block at 0x000007140000
[ 0.700000] nand_read_bbt: bad block at 0x000008000000
[ 0.700000] nand_read_bbt: bad block at 0x00000bf20000
[ 0.710000] nand_read_bbt: bad block at 0x00000cf20000
[ 0.720000] nand_read_bbt: bad block at 0x00000df20000
[ 0.720000] nand_read_bbt: bad block at 0x00000f340000
[ 0.730000] nand_read_bbt: bad block at 0x00000fbe0000
[ 0.730000] Creating 2 MTD partitions on "atmel_nand":
[ 0.740000] 0x000000000000-0x000001000000 : "Boot partition"
[ 0.750000] 0x000001000000-0x000010000000 : "FS partition"
[ 0.760000] UBI: attaching mtd1 to ubi0
[ 0.760000] UBI: physical eraseblock size: 131072 bytes (128 KiB)
[ 0.770000] UBI: logical eraseblock size: 129024 bytes
[ 0.780000] UBI: smallest flash I/O unit: 2048
[ 0.780000] UBI: sub-page size: 512
[ 0.790000] UBI: VID header offset: 512 (aligned 512)
[ 0.790000] UBI: data offset: 2048
[ 1.120000] UBI: max. sequence number: 1651
[ 1.130000] UBI error: ubi_read_volume_table: the layout volume was not found
[ 1.130000] UBI error: ubi_attach_mtd_dev: failed to attach mtd1, error -22
[ 1.140000] UBI error: ubi_init: cannot attach mtd1
[ 1.150000] atmel_spi atmel_spi.0: Atmel SPI Controller at 0xfffa4000 (irq 14)
[ 1.160000] atmel_spi atmel_spi.0: master is unqueued, this is deprecated
[ 1.170000] mousedev: PS/2 mouse device common for all mice
[ 1.170000] i2c /dev entries driver
[ 1.180000] TCP: cubic registered
[ 1.180000] NET: Registered protocol family 10
[ 1.190000] NET: Registered protocol family 17
[ 1.190000] turn off boot console earlycon0
Jury093
Пункты: 54259
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
переползал на 3.4.2, подобных проблем не видел. вот с 3.0.х повозился изрядно, пока не заработало как надо..
а зачем так файл борды перепахан?
берем ванильное ядро, распаковываем, натягиваем стандартный конфиг, потом через менюконфиг проверяем/правим под свои нужды, проверяем пины в файле борды и вперед, на сборку..
выложите полный лог загрузки - может там что видно будет..
Цитата Board файл тоже привел в соответствии с 3.1.5
вот это напрасно - похоже короеды в очередной раз что-то мутят и лучше пользоваться стратегией и функциями из текущего ядра.. (сужу по ералашу для 9260 в 3.5.4)
На любой вопрос есть любой ответ.
buletz
Пункты: 5920
Регистрация: 16.11.2011
Пол: Мужчина
Файл борды перепахан по минимуму: я просто делал сравнение между старым готовым и новым дефолтовым файлом и переносил из старого в новый там где отличия были в ногах и настройках.
Например Nand: там отличия в разбивке партиций, и просто так оставить дефолтовый нельзя. Но и скопировать из старого тоже нельзя, некоторые свойства поменялись.
Вот и приходится мудрить: переносить из старого подстраивась под новые названия нового.
Вот лог
Код -- Alexeev bootstrap 3.0 --
-- AT91SAM9M10-EK
-- Compiled: Jun 9 2012 11:19:31 --
-I- Setting: MCK = 133MHz
-I- I cache enabled.
-I- Init SDRAM
-I- Init NAND Flash
-I- Nandflash ID is 0x9510DAEC
-I- Nandflash driver initialized
-I- Size of the whole device in bytes : 0x10000000
-I- Size in bytes of one single block of a device : 0x20000
-I- Number of blocks in the entire device : 0x800
-I- Size of the data area of a page in bytes : 0x800
-I- Number of pages in the entire device : 0x40
-I- Bus width : 8
-I- Copy "" (262144 bytes) from NAND 0x00020000 to 0x21f00000
-I- Ready to jump to external RAM
-I- Jump to 0x21f00000
Board init in Uboot started
вoard init in Uboot finished
U-Boot 2010.09 (Apr 23 2012 - 16:10:37)
DRAM: 32 MiB
## Unknown FLASH on Bank 1 - Size = 0x00000000 = 0 MB
Flash: 0 Bytes
NAND: 256 MiB
*** Warning - bad CRC or NAND, using default environment
In: serial
Out: serial
Err: serial
Net: macb0
Hit any key to stop autoboot: 0
NAND read, destination addr: 21F60000, device 0 offset 0x50000, size 0x20000
131072 bytes read: OK
## Starting application at 0x21F60004 ...
Bootik stated
Mapping registers...
Mapping PIOA...
Mapping PIOB...
Mapping PIOC...
Mapping PIOD...
Mapping PIOE...
Initializing pins...
Initializing pins finished
Initializing OLED
Initializing OLED...
Clearing OLED
Setting font
Setting up picture
Bootik finished
## Application terminated, rc = 0x0
NAND read, destination addr: 20800000, device 0 offset 0x80000, size 0x790000
7929856 bytes read: OK
## Booting kernel from Legacy Image at 20800000 ...
Image Name: Linux Kernel Image
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2516888 Bytes = 2.4 MiB
Load Address: 20008000
Entry Point: 20008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
[ 0.000000] Booting Linux on physical CPU 0
[ 0.000000] Linux version 3.5.4 (bulkin@bulkin-desktop) (gcc version 4.5.2 (Sourcery G++ Lite 2011.03-41) ) #7 Mon Sep 17 18:06:27 MSK 2012
[ 0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
[ 0.000000] CPU: VIVT data cache, VIVT instruction cache
[ 0.000000] Machine: Atmel AT91SAM9M10G45-EK
[ 0.000000] Ignoring tag cmdline (using the default kernel command line)
[ 0.000000] bootconsole [earlycon0] enabled
[ 0.000000] debug: skip boot console de-registration.
[ 0.000000] Memory policy: ECC disabled, Data cache writeback
[ 0.000000] AT91: Detected soc type: at91sam9g45
[ 0.000000] AT91: Detected soc subtype: Unknown
[ 0.000000] AT91: sram at 0x300000 of 0x10000 mapped at 0xfef68000
[ 0.000000] Clocks: CPU 400 MHz, master 133 MHz, main 12.000 MHz
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128
[ 0.000000] Kernel command line: console=ttyS0,115200 ubi.mtd=1 root=ubi0:nandfs rw rootfstype=ubifs earlyprintk=ttyS0,115200,keep ddebug_query="module ubifs +p" keep_bootcon
[ 0.000000] PID hash table entries: 128 (order: -3, 512 bytes)
[ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.000000] Memory: 32MB = 32MB total
[ 0.000000] Memory: 27164k/27164k available, 5604k reserved, 0K highmem
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
[ 0.000000] vmalloc : 0xc2800000 - 0xff000000 ( 968 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xc2000000 ( 32 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0xc0008000 - 0xc0449000 (4356 kB)
[ 0.000000] .init : 0xc0449000 - 0xc04766d0 ( 182 kB)
[ 0.000000] .data : 0xc0478000 - 0xc04b64a0 ( 250 kB)
[ 0.000000] .bss : 0xc04b64c4 - 0xc0525910 ( 446 kB)
[ 0.000000] NR_IRQS:192
[ 0.000000] AT91: 160 gpio irqs in 5 banks
[ 0.000000] sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 4294967286ms
[ 0.000000] Console: colour dummy device 80x30
[ 0.010000] Calibrating delay loop... 199.06 BogoMIPS (lpj=995328)
[ 0.090000] pid_max: default: 32768 minimum: 301
[ 0.090000] Mount-cache hash table entries: 512
[ 0.100000] CPU: Testing write buffer coherency: ok
[ 0.110000] ftrace: allocating 11451 entries in 34 pages
[ 0.170000] Setting up static identity map for 0x2034c6f8 - 0x2034c750
[ 0.180000] dynamic_debug:dynamic_debug_init: ddebug_query param name is deprecated, change it to dyndbg
[ 0.190000] dynamic_debug:dynamic_debug_init: 330 changes by ddebug_query
[ 0.200000] devtmpfs: initialized
[ 0.210000] NET: Registered protocol family 16
[ 0.220000] --- Initialize sequence STARTED ---
[ 0.220000] --- Initializing Serial ---
[ 0.230000] --- Initializing USBH-OCHI ---
[ 0.230000] --- Initializing USB HS ---
[ 0.240000] --- Initializing SPI ---
[ 0.240000] --- Initializing MCI ---
[ 0.240000] --- Initializing Eth ---
[ 0.250000] --- Initializing NAND ---
[ 0.250000] --- Initializing I2C ---
[ 0.260000] --- Initializing ISI ---
[ 0.260000] --- Initializing LCD ---
[ 0.260000] --- Initialize sequence FINISHED ---
[ 0.270000] AT91: Power Management
[ 0.270000] AT91: Starting after user reset
[ 0.280000] bio: create slab <bio-0> at 0
[ 0.290000] i2c-gpio i2c-gpio.0: using pins 20 (SDA) and 21 (SCL)
[ 0.300000] Switching to clocksource pit
[ 0.340000] NET: Registered protocol family 2
[ 0.340000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.350000] TCP established hash table entries: 1024 (order: 1, 8192 bytes)
[ 0.360000] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.370000] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.380000] TCP: reno registered
[ 0.380000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.390000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.390000] NET: Registered protocol family 1
[ 0.400000] audit: initializing netlink socket (disabled)
[ 0.410000] type=2000 audit(0.399:1): initialized
[ 0.410000] msgmni has been set to 53
[ 0.420000] alg: No test for stdrng (krng)
[ 0.600000] io scheduler noop registered
[ 0.600000] io scheduler deadline registered
[ 0.610000] io scheduler cfq registered (default)
[ 0.610000] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 0.640000] brd: module loaded
[ 0.650000] loop: module loaded
[ 0.660000] atmel_nand: Use On Flash BBT
[ 0.670000] atmel_nand atmel_nand: Failed to request DMA channel
[ 0.680000] atmel_nand atmel_nand: No DMA support for NAND access.
[ 0.680000] NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit), page size: 2048, OOB size: 64
[ 0.700000] Bad block table found at page 131008, version 0x01
[ 0.700000] Bad block table found at page 130944, version 0x01
[ 0.710000] nand_read_bbt: bad block at 0x000004ac0000
[ 0.720000] nand_read_bbt: bad block at 0x000007140000
[ 0.720000] nand_read_bbt: bad block at 0x000008000000
[ 0.730000] nand_read_bbt: bad block at 0x00000bf20000
[ 0.730000] nand_read_bbt: bad block at 0x00000cf20000
[ 0.740000] nand_read_bbt: bad block at 0x00000df20000
[ 0.740000] nand_read_bbt: bad block at 0x00000f340000
[ 0.750000] nand_read_bbt: bad block at 0x00000fbe0000
[ 0.760000] Creating 2 MTD partitions on "atmel_nand":
[ 0.760000] 0x000000000000-0x000001000000 : "Boot partition"
[ 0.770000] 0x000001000000-0x000010000000 : "FS partition"
[ 0.780000] UBI: attaching mtd1 to ubi0
[ 0.790000] UBI: physical eraseblock size: 131072 bytes (128 KiB)
[ 0.790000] UBI: logical eraseblock size: 129024 bytes
[ 0.800000] UBI: smallest flash I/O unit: 2048
[ 0.800000] UBI: sub-page size: 512
[ 0.810000] UBI: VID header offset: 512 (aligned 512)
[ 0.820000] UBI: data offset: 2048
[ 1.140000] UBI: max. sequence number: 1651
[ 1.150000] UBI error: ubi_read_volume_table: the layout volume was not found
[ 1.160000] UBI error: ubi_attach_mtd_dev: failed to attach mtd1, error -22
[ 1.160000] UBI error: ubi_init: cannot attach mtd1
[ 1.170000] atmel_spi atmel_spi.0: Atmel SPI Controller at 0xfffa4000 (irq 14)
[ 1.180000] atmel_spi atmel_spi.0: master is unqueued, this is deprecated
[ 1.190000] mousedev: PS/2 mouse device common for all mice
[ 1.190000] i2c /dev entries driver
[ 1.200000] TCP: cubic registered
[ 1.200000] NET: Registered protocol family 10
[ 1.210000] NET: Registered protocol family 17
[ 1.220000] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[ 1.230000] Warning: unable to open an initial console.
[ 1.230000] UBIFS error (pid 1): ubifs_mount: cannot open "ubi0:nandfs", error -19
[ 1.240000] VFS: Cannot open root device "ubi0:nandfs" or unknown-block(0,0): error -19
[ 1.250000] Please append a correct "root=" boot option; here are the available partitions:
[ 1.260000] 1f00 16384 mtdblock0 (driver?)
[ 1.270000] 1f01 245760 mtdblock1 (driver?)
[ 1.270000] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[ 1.280000] Backtrace:
[ 1.280000] [<c000ca48>] (dump_backtrace+0x0/0x114) from [<c0349bc4>] (dump_stack+0x20/0x24)
[ 1.290000] r6:c0466214 r5:c04b6540 r4:c0466214
[ 1.300000] [<c0349ba4>] (dump_stack+0x0/0x24) from [<c0349c4c>] (panic+0x84/0x1c8)
[ 1.310000] [<c0349bc8>] (panic+0x0/0x1c8) from [<c0449c9c>] (mount_block_root+0x1e0/0x2a0)
[ 1.320000] r3:c18756e8 r2:00000000 r1:c181ff5c r0:c03e76a8
[ 1.320000] r7:00008000
[ 1.330000] [<c0449abc>] (mount_block_root+0x0/0x2a0) from [<c0449f58>] (prepare_namespace+0x94/0x1bc)
[ 1.340000] [<c0449ec4>] (prepare_namespace+0x0/0x1bc) from [<c044991c>] (kernel_init+0x168/0x1b0)
[ 1.350000] r5:c046620c r4:00000007
[ 1.350000] [<c04497b4>] (kernel_init+0x0/0x1b0) from [<c001eed0>] (do_exit+0x0/0x758)
buletz
Пункты: 5920
Регистрация: 16.11.2011
Пол: Мужчина
выяснил вот что:
если загрузиться с SD карты со старым ядром, отформатировать флешку с помощью утилитки nand_ubi_format и затем туда скопировать рутфс - то со старым ядром грузится из NAND норм.
как только стартанешь с новым ядром - она херит рутовую в нанде и потом выдает
Код UBI error: ubi_read_volume_table: the layout volume was not found
UBI error: ubi_init: cannot attach mtd1
после этого уже даже со старым ядром из нанда не загрузишься, надо снова форматить нанд.
что ж за беда такая ? почему новое ядро херит нанд?
Jury093
Пункты: 54259
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата что ж за беда такая ? почему новое ядро херит нанд?
угу,
позавчера вчера на эти грабли наступил - навесил на 9260 новое ядро - оно (суко) излохматило в труху рутовую на нанде, которую я год назад засетапил - что-то в
ubifs накрутили..
выложенный лог ядра вечером гляну..
update
Цитата как только стартанешь с новым ядром - она херит рутовую в нанде и потом выдает
надеюсь, коррекция параметров разделов в ядре сделана?
На любой вопрос есть любой ответ.
Jury093
Пункты: 54259
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Код [ 0.760000] 0x000000000000-0x000001000000 : "Boot partition"
[ 0.770000] 0x000001000000-0x000010000000 : "FS partition"
вот это место мне не нравится..
отсюда и
Код [ 1.150000] UBI error: ubi_read_volume_table: the layout volume was not found
[ 1.160000] UBI error: ubi_attach_mtd_dev: failed to attach mtd1, error -22
раз в строке ядра прописана
nandfs , значит вместо "FS partition" надо
nandfs
а mtd0 можно обозвать "boot" или "kernel"..
у меня вот так было расписано:
Код static struct mtd_partition __initdata ek_nand_partition[] = {
{
.name = "kernel",
.offset = 0,
// .size = SZ_256K,
.size = SZ_16M,
},
{
.name = "rootfs",
.offset = MTDPART_OFS_NXTBLK,
.size = MTDPART_SIZ_FULL,
},
};
На любой вопрос есть любой ответ.
sasamy
Пункты: 79218
Регистрация: 14.08.2009
Цитата
раз в строке ядра прописана nandfs, значит вместо "FS partition" надо nandfs
nandfs - название логического тома UBI, а "FS partition" - это название раздела MTD, это ортогональные подсистемы, это как школа имени Ленина (вся флешь) и в ней 11 классов (разделы MTD) c подклассами: 1а (имени Клары Цеткин - логический том UBI), 1б и тд :) те в разделе MTD можно нарезать несколько логических томов UBI.
Мне больше это интересно
Цитата
[ 0.670000] atmel_nand atmel_nand: Failed to request DMA channel
[ 0.680000] atmel_nand atmel_nand: No DMA support for NAND access.
в предыдущих ядрах DMA у NAND работает
Цитата
Linux version 3.2.18-rt29 (sasa@sasa-laptop) (gcc version 4.6.4 20120402 (prerelease) (crosstool-NG 1.2
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
...
atmel_nand atmel_nand: Using dma0chan0 for DMA transfers.
что приводило к неудовольствию ubufs, т.к. как там не было поддержки DMA т.к. память для буферов выделяется непрерывной виртуально (vmalloc), а как известно для DMA буфер должен быть непрерывным физически или использовать scatter/gather. Соответствущее сообщение предупреждало что работа с NAND переключается на PIO
Цитата
atmel_nand atmel_nand: Fall back to CPU I/O
и жалобы разработчиков что у них нет времени запилить поддержку
http://lists.infradead.org/pipermail/linux-mtd/2012-May/041242.html
так что кто его знает - возможно к jffs2 стоит снова присматриваться или другой - в общем где нет проблем с DMA, если такие вообще существуют..
Jury093
Пункты: 54259
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата nandfs - название логического тома UBI, а "FS partition" - это название раздела MTD, это ортогональные подсистемы, это как школа имени Ленина
думаю, что ты прав. я давно не пилил нанды (как-то исторически их не люблю)..
Цитата atmel_nand atmel_nand: Using dma0chan0 for DMA transfers.
так что кто его знает - возможно к jffs2 стоит снова присматриваться или другой - в общем где нет проблем с DMA
или сидеть на попе ровно и ждать запиленной ubifs.. :)
На любой вопрос есть любой ответ.