User Info
Добро пожаловать, Guest Пользователей: 1 Поисковых ботов: 3 Гостей: 1
AlbertNuat… forum Google Bot forum oBot account Yandex Bot account
переход на свежее ядро. не монтируется rootfs
Sergei_m
Пункты: 784
Регистрация: 26.01.2015
Пытаюсь перейти на свежее ядро. Скачал с kernel.org версию 4.7.2, собрал gcc linaro 5.3 и оно даже запускается, но не может смонтировать rootfs. Таблицу разделов на NAND в DT поправил как на предыдущей версии, но это не помогло. Может нужны какие-то еще исправления, касающиеся NAND?
Sergei_m
Пункты: 784
Регистрация: 26.01.2015
Ну, если готового решения нет, может кто подскажет что я делаю не так. Корневую создал, загрузившись с SD скриптом system_prepare как описано в мануале. Только bootstrap использовал свой, который грузит u-boot с SD. U-boot тоже с SD грузит zImage и dtb.
Кстати в bootstrap пришлось поменять адрес загрузки u-boot, т.к. если грузить по умолчанию, то u-boot вис при выполнении relocation, видимо из-за того, что затирал сам себя. Как отключить ненужный relocation я не смог найти (похоже это можно было сделать только в старых версиях), а исправление адреса сработало.
В параметрах загрузки ядра прописано подключение rootfs c NAND
Судя по логу, сама флеш проинициализирована правильно, но ubi не видит раздела
Код =~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2016.09.07 19:57:42 =~=~=~=~=~=~=~=~=~=~=~=
RomBOOT
AT91Bootstrap 3.8.5 (Пт сен 2 22:42:07 MSK 2016)
SD/MMC: Image: Read file u-boot.bin to 0x70f00000
Cmd: 0x1 Response Time-out
SD: Card Capacity: Standard
SD: Specification Version 2.00
Cmd: 0xd, error check, status: 0x8040027
.....
Cmd: 0xd, error check, status: 0x8040027
Cmd: 0xd, error check, status: 0x8040027
SD/MMC: Done to load image
U-Boot 2016.07 (Sep 05 2016 - 21:55:02 +0300)
U-Boot code: 70F00000 -> 70F4C7F8 BSS: -> 70F960F0
CPU: AT91SAM9G45
Crystal frequency: 12 MHz
CPU clock : 400 MHz
Master clock : 133.333 MHz
DRAM: Monitor len: 000960F0
Ram size: 04000000
Ram top: 74000000
TLB table from 73ff0000 to 73ff4000
Reserving 600k for U-Boot at: 73f39000
Reserving 176k for malloc() at: 73f0d000
Reserving 80 Bytes for Board Info at: 73f0cfb0
Reserving 192 Bytes for Global Data at: 73f0cef0
RAM Configuration:
Bank #0: 70000000 64 MiB
DRAM: 64 MiB
New Stack Pointer is: 73f0ced0
Relocation Offset is: 03039000
Relocating to 73f39000, new gd at 73f0cef0, sp at 73f0ced0
WARNING: Caches not enabled
NAND: 256 MiB
MMC: mci: 0
reading uboot.env
In: serial
Out: serial
Err: serial
Net: macb0
Error: macb0 address not set.
Hit any key to stop autoboot: 3 2 1 0
reading dtb
26735 bytes read in 17 ms (1.5 MiB/s)
reading zImage
3001728 bytes read in 1205 ms (2.4 MiB/s)
Kernel image @ 0x72000000 [ 0x000000 - 0x2dcd80 ]
## Flattened Device Tree blob at 71000000
Booting using the fdt blob at 0x71000000
Loading Device Tree to 73f02000, end 73f0b86e ... OK
Starting kernel ...
Booting Linux on physical CPU 0x0
Linux version 4.7.2 (sergei@sergei-Satellite-L650) (gcc version 5.3.1 20160113 (Linaro GCC 5.3-2016.02) ) #4 Tue Sep 6 13:22:42 MSK 2016
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=0005317f
CPU: VIVT data cache, VIVT instruction cache
Machine model: Atmel AT91SAM9M10G45-EK
Memory policy: Data cache writeback
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256
Kernel command line: console=ttyS0,115200 ubi.mtd=1 root=ubi0:nandfs rw rootfstype=ubifs mem=64M
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: 58876K/65536K available (4417K kernel code, 156K rwdata, 1000K rodata, 204K init, 124K bss, 6660K 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)
.text : 0xc0008000 - 0xc0552a4c (5419 kB)
.init : 0xc0553000 - 0xc0586000 ( 204 kB)
.data : 0xc0586000 - 0xc05ad340 ( 157 kB)
.bss : 0xc05ad340 - 0xc05cc6ac ( 125 kB)
NR_IRQS:16 nr_irqs:16 16
clocksource: pit: mask: 0xfffffff max_cycles: 0xfffffff, max_idle_ns: 14334453866 ns
sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 21474836475000000ns
Console: colour dummy device 80x30
Calibrating delay loop... 199.06 BogoMIPS (lpj=995328)
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 0x70008400 - 0x7000847c
devtmpfs: initialized
device-tree: Duplicate name in fb@0x00500000, renamed to "display#1"
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
pinctrl core: initialized pinctrl subsystem
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
AT91: Detected SoC family: at91sam9g45
AT91: Detected SoC: at91sam9g45, revision 2
No ATAGs?
gpio-at91 fffff200.gpio: at address c485c200
gpio-at91 fffff400.gpio: at address c485e400
gpio-at91 fffff600.gpio: at address c4872600
gpio-at91 fffff800.gpio: at address c4874800
gpio-at91 fffffa00.gpio: at address c4876a00
pinctrl-at91 ahb:apb:pinctrl@fffff200: initialized AT91 pinctrl driver
clocksource: tcb_clksrc: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 114675631333 ns
at_hdmac ffffec00.dma-controller: Atmel AHB DMA Controller ( cpy set slave sg-cpy ), 8 channels
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
at91_i2c fff84000.i2c: can't get DMA channel, continue without DMA support
at91_i2c fff84000.i2c: AT91 i2c bus driver (hw version: 0x302).
at91_i2c fff88000.i2c: can't get DMA channel, continue without DMA support
at91_i2c fff88000.i2c: AT91 i2c bus driver (hw version: 0x302).
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=29 max_order=14 bucket_order=0
NET: Registered protocol family 38
io scheduler noop registered (default)
500000.fb supply lcd not found, using dummy regulator
atmel_lcdfb 500000.fb: 510KiB frame buffer at 73b00000 (mapped at c4882000)
Console: switching to colour frame buffer device 120x45
atmel_lcdfb 500000.fb: fb0: Atmel LCDC at 0x00500000 (mapped at c4904000), irq 35
ffffee00.serial: ttyS0 at MMIO 0xffffee00 (irq = 16, base_baud = 8333333) is a ATMEL_SERIAL
console [ttyS0] enabled
fff90000.serial: ttyS2 at MMIO 0xfff90000 (irq = 23, base_baud = 8333333) is a ATMEL_SERIAL
brd: module loaded
loop: module loaded
atmel_nand 40000000.nand: Using dma0chan0 for DMA transfers.
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 0x0000013e0000
nand_read_bbt: bad block at 0x000003a60000
nand_read_bbt: bad block at 0x000005ac0000
nand_read_bbt: bad block at 0x000007480000
nand_read_bbt: bad block at 0x000009740000
nand_read_bbt: bad block at 0x00000aba0000
2 ofpart partitions found on MTD device atmel_nand
Creating 2 MTD partitions on "atmel_nand":
0x000000000000-0x000001000000 : "bootstrap/uboot/kernel"
0x000001000000-0x000010000000 : "nandfs"
atmel_spi fffa4000.spi: version: 0x210
atmel_spi fffa4000.spi: Atmel SPI Controller at 0xfffa4000 (irq 33)
macb fffbc000.ethernet: invalid hw address, using random
libphy: MACB_mii_bus: probed
SMSC LAN8710/LAN8720 fffbc000.etherne:01: attached PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=fffbc000.etherne:01, irq=-1)
macb fffbc000.ethernet eth0: Cadence MACB rev 0x0001010c at 0xfffbc000 irq 24 (d2:d2:db:49:2e:8e)
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-atmel: EHCI Atmel driver
atmel-ehci 800000.ehci: EHCI Host Controller
atmel-ehci 800000.ehci: new USB bus registered, assigned bus number 1
atmel-ehci 800000.ehci: irq 36, io mem 0x00800000
atmel-ehci 800000.ehci: USB 2.0 started, EHCI 1.00
usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: EHCI Host Controller
usb usb1: Manufacturer: Linux 4.7.2 ehci_hcd
usb usb1: SerialNumber: 800000.ehci
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
ohci-atmel: OHCI Atmel driver
at91_ohci 700000.ohci: USB Host Controller
at91_ohci 700000.ohci: new USB bus registered, assigned bus number 2
at91_ohci 700000.ohci: irq 36, io mem 0x00700000
usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb2: Product: USB Host Controller
usb usb2: Manufacturer: Linux 4.7.2 ohci_hcd
usb usb2: SerialNumber: at91
hub 2-0:1.0: USB hub found
hub 2-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
atmel_usba_udc 600000.gadget: MMIO registers at 0xfff78000 mapped at c4964000
atmel_usba_udc 600000.gadget: FIFO at 0x00600000 mapped at c4e00000
g_serial gadget: Gadget Serial v2.4
g_serial gadget: g_serial ready
mousedev: PS/2 mouse device common for all mice
rtc rtc0: alarm rollover not handled
rtc rtc0: invalid alarm value: 1900-1-1 0:0:0
at91_rtc fffffdb0.rtc: rtc core: registered fffffdb0.rtc as rtc0
at91_rtc fffffdb0.rtc: AT91 Real Time Clock driver.
rtc-at91sam9 fffffd20.rtc: rtc core: registered fffffd20.rtc as rtc1
rtc-at91sam9 fffffd20.rtc: rtc1: SET TIME!
AT91: Starting after wakeup
at91_wdt fffffd40.watchdog: watchdog is disabled
at91_wdt: probe of fffffd40.watchdog failed with error -22
atmel_mci fff80000.mmc: version: 0x410
atmel_mci fff80000.mmc: using dma0chan1 for DMA transfers
atmel_mci fff80000.mmc: Atmel MCI controller at 0xfff80000 irq 31, 1 slots
atmel_mci fffd0000.mmc: version: 0x410
atmel_mci fffd0000.mmc: using dma0chan2 for DMA transfers
atmel_mci fffd0000.mmc: Atmel MCI controller at 0xfffd0000 irq 32, 1 slots
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
NET: Registered protocol family 10
sit: IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
ubi0: attaching mtd1
ubi0: scanning is finished
ubi0 error: ubi_read_volume_table: the layout volume was not found
ubi0 error: ubi_attach_mtd_dev: failed to attach mtd1, error -22
UBI error: cannot attach mtd1
input: gpio_keys as /devices/soc0/gpio_keys/input/input0
at91_rtc fffffdb0.rtc: setting system clock to 2007-01-21 21:56:04 UTC (1169416564)
UBIFS error (pid: 1): cannot open "ubi0:nandfs", error -19VFS: Cannot open root device "ubi0:nandfs" or unknown-block(0,0): 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 16384 mtdblock0 (driver?)
1f01 245760 mtdblock1 (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
random: nonblocking pool is initialized
Jury093
Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата В параметрах загрузки ядра прописано подключение rootfs c NAND
Судя по логу, сама флеш проинициализирована правильно, но ubi не видит раздела
с ходу пальцем ткнуть не могу.. из подозрительного - вы адреса для нанда меняли или они заводские?
у меня на паре плат вот такие:
Код Creating 2 MTD partitions on "atmel_nand":
0x000000000000-0x000004000000 : "Partition 1"
0x000004000000-0x000010000000 : "rootfs"
Код Creating 2 MTD partitions on "atmel_nand":
0x000000000000-0x000004000000 : "Partition 1"
0x000004000000-0x000010000000 : "Partition 2"
проверьте на всякий случай, что у вас с опциями для ядра, у меня:
Код root@arm9m10:~# zcat /proc/config.gz |grep UBI
CONFIG_TCP_CONG_CUBIC=y
CONFIG_MTD_UBI=y
CONFIG_MTD_UBI_WL_THRESHOLD=4096
CONFIG_MTD_UBI_BEB_RESERVE=2
# CONFIG_MTD_UBI_GLUEBI is not set
CONFIG_UBIFS_FS=y
CONFIG_UBIFS_FS_ADVANCED_COMPR=y
CONFIG_UBIFS_FS_LZO=y
CONFIG_UBIFS_FS_ZLIB=y
# CONFIG_CRYPTO_ANUBIS is not set
у вас это в корне исходников ядра в файле
.config
если есть возможность - загрузитесь с SD/uSD/USB и нормальными тулзами пощупайте содержимое нанда..
На любой вопрос есть любой ответ.
Sergei_m
Пункты: 784
Регистрация: 26.01.2015
Со старым ядром (3.2.51) разделы такие
Код
NAND device: Manufacturer ID: 0x01, Chip ID: 0xda (AMD S34ML02G1)
Scanning device for bad blocks
Creating 2 MTD partitions on "atmel_nand":
0x000000000000-0x000001000000 : "Boot partition"
0x000001000000-0x000010000000 : "FS partition"
UBI: attaching mtd1 to ubi0
UBI: physical eraseblock size: 131072 bytes (128 KiB)
UBI: logical eraseblock size: 129024 bytes
UBI: smallest flash I/O unit: 2048
UBI: sub-page size: 512
UBI: VID header offset: 512 (aligned 512)
UBI: data offset: 2048
UBI: max. sequence number: 6219
UBI: attached mtd1 to ubi0
UBI: MTD device name: "FS partition"
UBI: MTD device size: 240 MiB
UBI: number of good PEBs: 1920
UBI: number of bad PEBs: 0
UBI: number of corrupted PEBs: 0
UBI: max. allowed volumes: 128
UBI: wear-leveling threshold: 4096
UBI: number of internal volumes: 1
UBI: number of user volumes: 1
UBI: available PEBs: 271
UBI: total number of reserved PEBs: 1649
UBI: number of PEBs reserved for bad PEB handling: 19
UBI: max/mean erase counter: 5/3
UBI: image sequence number: 1747492076
UBI: background thread "ubi_bgt0d" started, PID 350
В ядре у меня настройки такие же, кроме CONFIG_MTD_UBI_GLUEBI, который был включен. Отключение не помогло.
Более того, при загрузке нового ядра похоже портится файловая система, так как загрузка с SD старой системы тоже начинает выдавать такую же ошибку и монтировать раздел отказывается. Где-то я видел сообщение на форуме с точно такой же проблемой.
sasamy
Пункты: 83540
Регистрация: 14.08.2009
Создайте фс (UBIFS) используя новое ядро - скорей всего нарушена обратная совместимость вот и не работает новое ядро со старой ФС.
Sergei_m
Пункты: 784
Регистрация: 26.01.2015
Цитата Создайте фс (UBIFS) используя новое ядро - скорей всего нарушена обратная совместимость вот и не работает новое ядро со старой ФС.
Так и есть. Сделал на SD второй раздел, на котором разместил rootfs. Загрузился с ним и пересоздал UBIFS, распаковал туда корневую. Вроде нормально грузится
Mark
Пункты: 3792
Регистрация: 08.02.2015
Sergei_m, Скажите пожалуйста !
Как вам удалось избавиться от сообщения "Warning: unable to open an initial console."
Можете поделиться конфигом ?
Sergei_m
Пункты: 784
Регистрация: 26.01.2015
Честно говоря, такой проблемы не возникало.
конфиг
Ядро и device tree
ну и до кучи
at91bootstrap-3.8.5
u-boot-2016.07
В бутстрапе наложен патч для нашей платы и изменен адрес загрузки u-boot. Сам бутстрап сконфигурирован на загрузку U-boot c SD.
В U-boot включил вывод отладки. Вроде больше ничего особо не трогал
В Device tree поменял таблицу разделов NAND и пин наличия SD
Jury093
Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
На любой вопрос есть любой ответ.
Mark
Пункты: 3792
Регистрация: 08.02.2015
Цитата
Устройство есть, дело не в этом. Оказалось то что у меня включена поддержка "8250/16550 and compatible serial support", что не стоило включать. Убрал галку... ошибка пропала.
Большое спасибо Sergei_m за ваш конфиг !