最近在Zynq板上启动linaro桌面系统时,发现一个奇怪的问题,系统在启动到最后,已经打印了如下信息:[drm] Initialized axi_hdmi_drm 1.0.0 20120930 on minor 0,按理说后面就该是登录系统并显示shell提示符了,但后面显示:VFS: Cannot open root device "mmcblk0p2" or unknown-block(179,2): error -30,即打不开SD卡的第二个分区,之前使用这张卡可正常启动的,而且没有做任何改动。于是我们重新制作桌面文件系统,结果问题依旧。很不解?!下面是启动信息:

U-Boot 2013.01 (Jun 04 2013 - 09:22:41)

DRAM:  512 MiB

WARNING: Caches not enabled

MMC:   zynq_sdhci: 0

SF: Detected S25FL256S with page size 64 KiB, total 32 MiB

*** Warning - bad CRC, using default environment

In:    serial

Out:   serial

Err:   serial

Net:   Gem.e000b000

Hit any key to stop autoboot:  0

Copying Linux from SD to RAM...

Device: zynq_sdhci

Manufacturer ID: 2

OEM: 544d

Name: SA08G

Tran Speed: 50000000

Rd Block Len: 512

SD version 2.0

High Capacity: Yes

Capacity: 7.3 GiB

Bus Width: 4-bit

reading uImage

3158312 bytes read in 485 ms (6.2 MiB/s)

reading devicetree.dtb

8172 bytes read in 13 ms (613.3 KiB/s)

## Booting kernel from Legacy Image at 03000000 ...

Image Name:   Linux-3.6.0

Image Type:   ARM Linux Kernel Image (uncompressed)

Data Size:    3158248 Bytes = 3 MiB

Load Address: 00008000

Entry Point:  00008000

Verifying Checksum ... OK

## Flattened Device Tree blob at 02a00000

Booting using the fdt blob at 0x02a00000

Loading Kernel Image ... OK

OK

Loading Device Tree to 1fb4f000, end 1fb53feb ... OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.

Booting Linux on physical CPU 0

Linux version 3.6.0 (ubuntu@ubuntu) (gcc version 4.6.1 (Sourcery CodeBench Lite 2011.09-50) ) #1 SMP PREEMPT Sun Jun 2 13:37:48 CST 2013

CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d

CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache

Machine: Xilinx Zynq Platform, model: Xilinx Zynq ZED

bootconsole [earlycon0] enabled

cma: CMA: reserved 40 MiB at 1d000000

Memory policy: ECC disabled, Data cache writealloc

PERCPU: Embedded 7 pages/cpu @c0fcf000 s7872 r8192 d12608 u32768

Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048

Kernel command line: console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=0

PID hash table entries: 2048 (order: 1, 8192 bytes)

Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)

Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)

Memory: 512MB = 512MB total

Memory: 466556k/466556k available, 57732k reserved, 0K highmem

Virtual kernel memory layout:

vector  : 0xffff0000 - 0xffff1000   (   4 kB)

fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)

vmalloc : 0xe0800000 - 0xff000000   ( 488 MB)

lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)

pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)

modules : 0xbf000000 - 0xbfe00000   (  14 MB)

.text : 0xc0008000 - 0xc0614ce4   (6196 kB)

.init : 0xc0615000 - 0xc063dec0   ( 164 kB)

.data : 0xc063e000 - 0xc06bcb80   ( 507 kB)

.bss : 0xc06bcba4 - 0xc0bc4850   (5152 kB)

Preemptible hierarchical RCU implementation.

RCU lockdep checking is enabled.

Dump stacks of tasks blocking RCU-preempt GP.

RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.

NR_IRQS:512

MIO pin 11 not assigned(00001760)

xslcr mapped to e0802000

Zynq clock init

timer #0 at e0804000, irq=43

sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 4294967286ms

Console: colour dummy device 80x30

Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar

... MAX_LOCKDEP_SUBCLASSES:  8

... MAX_LOCK_DEPTH:          48

... MAX_LOCKDEP_KEYS:        8191

... CLASSHASH_SIZE:          4096

... MAX_LOCKDEP_ENTRIES:     16384

... MAX_LOCKDEP_CHAINS:      32768

... CHAINHASH_SIZE:          16384

memory used by lock dependency info: 3695 kB

per task-struct memory footprint: 1152 bytes

Calibrating delay loop... 1332.01 BogoMIPS (lpj=6660096)

pid_max: default: 32768 minimum: 301

Mount-cache hash table entries: 512

CPU: Testing write buffer coherency: ok

CPU0: thread -1, cpu 0, socket 0, mpidr 80000000

hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available

Setting up static identity map for 0x3a61a8 - 0x3a61dc

L310 cache controller enabled

l2x0: 8 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x72360000, Cache size: 524288 B

CPU1: Booted secondary processor

CPU1: thread -1, cpu 1, socket 0, mpidr 80000001

Brought up 2 CPUs

SMP: Total of 2 processors activated (2664.03 BogoMIPS).

devtmpfs: initialized

NET: Registered protocol family 16

DMA: preallocated 256 KiB pool for atomic coherent allocations

xgpiops e000a000.gpio: gpio at 0xe000a000 mapped to 0xe080c000

hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.

hw-breakpoint: maximum watchpoint size is 4 bytes.

bio: create slab at 0

SCSI subsystem initialized

usbcore: registered new interface driver usbfs

usbcore: registered new interface driver hub

usbcore: registered new device driver usb

Linux video capture interface: v2.00

Advanced Linux Sound Architecture Driver Version 1.0.25.

Switching to clocksource xttcps_clocksource

NET: Registered protocol family 2

TCP established hash table entries: 16384 (order: 5, 131072 bytes)

TCP bind hash table entries: 16384 (order: 7, 589824 bytes)

TCP: Hash tables configured (established 16384 bind 16384)

TCP: reno registered

UDP hash table entries: 256 (order: 2, 20480 bytes)

UDP-Lite hash table entries: 256 (order: 2, 20480 bytes)

NET: Registered protocol family 1

msgmni has been set to 991

io scheduler noop registered

io scheduler deadline registered

io scheduler cfq registered (default)

xuartps e0001000.uart: failed to get alias id, errno -19

e000console [ttyPS0] enabled, bootconsole disabled

console [ttyPS0] enabled, bootconsole disabled

xdevcfg f8007000.devcfg: ioremap f8007000 to e0814000 with size 1000

[drm] Initialized drm 1.1.0 20060810

platform 6c000000.axi_hdmi: Driver axi-hdmi requests probe deferral

brd: module loaded

loop: module loaded

xqspips e000d000.spi: master is unqueued, this is deprecated

xqspips e000d000.spi: at 0xE000D000 mapped to 0xE0816000, irq=51

libphy: XEMACPS mii bus: probed

xemacps e000b000.eth: pdev->id -1, baseaddr 0xe000b000, irq 54

ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver

ULPI transceiver vendor/product ID 0x0451/0x1507

Found TI TUSB1210 ULPI transceiver.

ULPI integrity check: passed.

xusbps-ehci xusbps-ehci.0: Xilinx PS USB EHCI Host Controller

xusbps-ehci xusbps-ehci.0: new USB bus registered, assigned bus number 1

xusbps-ehci xusbps-ehci.0: irq 53, io mem 0x00000000

xusbps-ehci xusbps-ehci.0: USB 2.0 started, EHCI 1.00

hub 1-0:1.0: USB hub found

hub 1-0:1.0: 1 port detected

Initializing USB Mass Storage driver...

usbcore: registered new interface driver usb-storage

USB Mass Storage support registered.

mousedev: PS/2 mouse device common for all mice

i2c /dev entries driver

usbcore: registered new interface driver uvcvideo

USB Video Class driver (1.1.1)

sdhci: Secure Digital Host Controller Interface driver

sdhci: Copyright(c) Pierre Ossman

sdhci-pltfm: SDHCI platform and OF driver helper

mmc0: Invalid maximum block size, assuming 512 bytes

mmc0: SDHCI controller on e0100000.sdhci [e0100000.sdhci] using ADMA

usbcore: registered new interface driver usbhid

usbhid: USB HID core driver

mmc0: new high speed SDHC card at address 1234

mmcblk0: mmc0:1234 SA08G 7.28 GiB (ro)

mmcblk0: p1 p2

adv7511 0-0039: Failed to add route AIFIN->TMDS

adv7511-hdmi-snd adv7511_hdmi_snd.4:  adv7511 75c00000.axi-spdif-tx mapping ok

INFO: task swapper/0:1 blocked for more than 20 seconds.

"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.

swapper/0       D c03a4a84     0     1      0 0x00000000

[] (__schedule+0x540/0x658) from [] (schedule_timeout+0x18/0x164)

[] (schedule_timeout+0x18/0x164) from [] (wait_for_common+0xe0/0x174)

[] (wait_for_common+0xe0/0x174) from [] (_request_firmware_load+0xe0/0x180)

[] (_request_firmware_load+0xe0/0x180) from [] (request_firmware+0x74/0xb0)

[] (request_firmware+0x74/0xb0) from [] (_process_sigma_firmware+0x1c/0x1b4)

[] (_process_sigma_firmware+0x1c/0x1b4) from [] (process_sigma_firmware_regmap+0x18/0x24)

[] (process_sigma_firmware_regmap+0x18/0x24) from [] (adau17x1_load_firmware+0x58/0x7c)

[] (adau17x1_load_firmware+0x58/0x7c) from [] (adau1761_probe+0x2a8/0x30c)

[] (adau1761_probe+0x2a8/0x30c) from [] (soc_probe_codec+0x18c/0x29c)

[] (soc_probe_codec+0x18c/0x29c) from [] (snd_soc_register_card+0x724/0x10f4)

[] (snd_soc_register_card+0x724/0x10f4) from [] (platform_drv_probe+0x14/0x18)

[] (platform_drv_probe+0x14/0x18) from [] (driver_probe_device+0xb4/0x1ec)

[] (driver_probe_device+0xb4/0x1ec) from [] (__driver_attach+0x68/0x8c)

[] (__driver_attach+0x68/0x8c) from [] (bus_for_each_dev+0x48/0x74)

[] (bus_for_each_dev+0x48/0x74) from [] (bus_add_driver+0x98/0x220)

[] (bus_add_driver+0x98/0x220) from [] (driver_register+0x9c/0x13c)

[] (driver_register+0x9c/0x13c) from [] (do_one_initcall+0x90/0x164)

[] (do_one_initcall+0x90/0x164) from [] (kernel_init+0xf8/0x1b8)

[] (kernel_init+0xf8/0x1b8) from [] (kernel_thread_exit+0x0/0x8)

4 locks held by swapper/0/1:

#0:  (&__lockdep_no_validate__){......}, at: [] __driver_attach+0x40/0x8c

#1:  (&__lockdep_no_validate__){......}, at: [] __driver_attach+0x50/0x8c

#2:  (&card->mutex){+.+.+.}, at: [] snd_soc_register_card+0x274/0x10f4

#3:  (umhelper_sem){++++.+}, at: [] usermodehelper_read_trylock+0x4c/0xb8

INFO: task swapper/0:1 blocked for more than 20 seconds.

"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.

swapper/0       D c03a4a84     0     1      0 0x00000000

[] (__schedule+0x540/0x658) from [] (schedule_timeout+0x18/0x164)

[] (schedule_timeout+0x18/0x164) from [] (wait_for_common+0xe0/0x174)

[] (wait_for_common+0xe0/0x174) from [] (_request_firmware_load+0xe0/0x180)

[] (_request_firmware_load+0xe0/0x180) from [] (request_firmware+0x74/0xb0)

[] (request_firmware+0x74/0xb0) from [] (_process_sigma_firmware+0x1c/0x1b4)

[] (_process_sigma_firmware+0x1c/0x1b4) from [] (process_sigma_firmware_regmap+0x18/0x24)

[] (process_sigma_firmware_regmap+0x18/0x24) from [] (adau17x1_load_firmware+0x58/0x7c)

[] (adau17x1_load_firmware+0x58/0x7c) from [] (adau1761_probe+0x2a8/0x30c)

[] (adau1761_probe+0x2a8/0x30c) from [] (soc_probe_codec+0x18c/0x29c)

[] (soc_probe_codec+0x18c/0x29c) from [] (snd_soc_register_card+0x724/0x10f4)

[] (snd_soc_register_card+0x724/0x10f4) from [] (platform_drv_probe+0x14/0x18)

[] (platform_drv_probe+0x14/0x18) from [] (driver_probe_device+0xb4/0x1ec)

[] (driver_probe_device+0xb4/0x1ec) from [] (__driver_attach+0x68/0x8c)

[] (__driver_attach+0x68/0x8c) from [] (bus_for_each_dev+0x48/0x74)

[] (bus_for_each_dev+0x48/0x74) from [] (bus_add_driver+0x98/0x220)

[] (bus_add_driver+0x98/0x220) from [] (driver_register+0x9c/0x13c)

[] (driver_register+0x9c/0x13c) from [] (do_one_initcall+0x90/0x164)

[] (do_one_initcall+0x90/0x164) from [] (kernel_init+0xf8/0x1b8)

[] (kernel_init+0xf8/0x1b8) from [] (kernel_thread_exit+0x0/0x8)

4 locks held by swapper/0/1:

#0:  (&__lockdep_no_validate__){......}, at: [] __driver_attach+0x40/0x8c

#1:  (&__lockdep_no_validate__){......}, at: [] __driver_attach+0x50/0x8c

#2:  (&card->mutex){+.+.+.}, at: [] snd_soc_register_card+0x274/0x10f4

#3:  (umhelper_sem){++++.+}, at: [] usermodehelper_read_trylock+0x4c/0xb8

adau1761 0-003b: Failed to firmware

zed-adau1761-snd zed_adau1761_snd.7:  adau-hifi 77600000.axi-i2s mapping ok

TCP: cubic registered

NET: Registered protocol family 17

VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4

Registering SWP/SWPB emulation handler

drivers/rtc/hctosys.c: unable to open rtc device (rtc0)

ALSA device list:

#0: HDMI monitor

#1: ZED ADAU1761

No connectors reported connected with modes

[drm] Cannot find any crtc or sizes - going 1024x768

Console: switching to colour frame buffer device 128x48

fb0:  frame buffer device

drm: registered panic notifier

[drm] Initialized axi_hdmi_drm 1.0.0 20120930 on minor 0

VFS: Cannot open root device "mmcblk0p2" or unknown-block(179,2): error -30

Please append a correct "root=" boot option; here are the available partitions:

b300         7639040 mmcblk0  driver: mmcblk

b301          489274 mmcblk0p1 00000000-0000-0000-0000-000000000000

b302         7149581 mmcblk0p2 00000000-0000-0000-0000-000000000000

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2)

[] (unwind_backtrace+0x0/0xe0) from [] (panic+0x88/0x1e0)

[] (panic+0x88/0x1e0) from [] (mount_block_root+0x238/0x288)

[] (mount_block_root+0x238/0x288) from [] (prepare_namespace+0x160/0x1c0)

[] (prepare_namespace+0x160/0x1c0) from [] (kernel_init+0x178/0x1b8)

[] (kernel_init+0x178/0x1b8) from [] (kernel_thread_exit+0x0/0x8)

CPU1: stopping

[] (unwind_backtrace+0x0/0xe0) from [] (ipi_cpu_stop+0x3c/0x6c)

[] (ipi_cpu_stop+0x3c/0x6c) from [] (handle_IPI+0x68/0xb4)

[] (handle_IPI+0x68/0xb4) from [] (gic_handle_irq+0x54/0x5c)

[] (gic_handle_irq+0x54/0x5c) from [] (__irq_svc+0x44/0x78)

Exception stack(0xdcc77fa0 to 0xdcc77fe8)

7fa0: dcc76000 0001eaf0 dcc77fd8 dcc6e0c0 1cc6006a 00000015 10c0387d c06bcf54

7fc0: 0000406a 413fc090 00000000 00000000 00000000 dcc77fe8 dcc76018 c000e36c

7fe0: 20000013 ffffffff

[] (__irq_svc+0x44/0x78) from [] (default_idle+0x28/0x30)

[] (default_idle+0x28/0x30) from [] (cpu_idle+0x8c/0xe4)

[] (cpu_idle+0x8c/0xe4) from [<0039c134>] (0x39c134)

panic occurred, switching back to text console

今天终于发现了问题的所在,原来是SD卡在使用过程中不小心被锁定了,SD卡处于写保护状态,将SD卡解锁,上面的问题就解决了。而且还发现,SD卡处于写保护状态时,如果直接使用笔记本自带的读卡器访问SD卡,则不可写入;但是如果使用USB接口的读卡器,则可以正常读写SD卡,而我们一直使用的是USB接口的SD卡读卡器,所以之前没有发现这个问题。

非cpu0启动linux,SD卡无法启动Linux的问题及解决相关推荐

  1. linux sd卡读写出错,linux系统SD卡读写问题

    请教有过linux系统SD卡读写经验的前辈. 我的项目是对FPGA上的SD卡部分做测试,在测试过程中发现在对SD卡所有领域进行读写操作时 1.bus width 选择1-bit的速度4-bit是差不多 ...

  2. 嵌入式linux sd卡读写,嵌入式Linux之我行——S3C2440上MMC/SD卡驱动实例开发讲解(二)...

    嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤.一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便.如有错误之处,谢请指正. 一.开发环境 主  机:VMWa ...

  3. linux sd卡挂载脚本,Linux下实现U盘、SD卡自动挂载功能 .

    在 Linux中我们经常用到U盘.SD卡的挂载问题,每次都手动挂载或卸载非常麻烦,我们可以采取以下方法实现自动挂载或卸载U盘.SD卡 1.首先在/etc/init.d/rsC中加入以下语句 echo ...

  4. linux sd卡驱动教程,Linux SD卡驱动开发(四) —— SD 控制器之真正的硬件操作

    前面对SD卡控制器有了一个基本的介绍.其实SD控制器层更过的意义是为core层提供一种操作SD卡硬件的一种方法,当然不同的控制器对硬件控制的方法不尽相同,但是他们最终都能像core层提交一个统一的封装 ...

  5. linux sd卡挂载脚本,linux udev 自动挂载 SD卡/U盘

    本文记录使用udev自动挂载SD卡和U盘的方法. 添加udev规则 创建文件/etc/udev/rules.d/11-add-usb.rules # SD卡自动挂载 ACTION=="add ...

  6. Linux SD卡驱动开发(五) —— SD 卡驱动分析Core补充篇

    Core层中有两个重要函数 mmc_alloc_host 用于构造host,前面已经学习过,这里不再阐述:另一个就是 mmc_add_host,用于注册host 前面探测函数s3cmci_probe, ...

  7. linux sd卡启动盘制作工具,fedora liveusb creator linux u盘启动盘制作工具

    fedora liveusb creator是一款专业的linux u盘启动盘制作工具,使用这款linux启动盘制作工具您可以制作用于安装linux系统的U盘启动盘,也可以实现把linux系统安装到U ...

  8. Linux SD卡驱动开发(六) —— SD卡启动过程总体分析

    一.工作流程 mmc驱动主要文件包括 drivers/mmc/card/block.c drivers/mmc/card/queue.c drivers/mmc/core/core.c drivers ...

  9. android 模拟器 sd卡文件 fileexport,linux下android模拟器的启动和SD卡的使用介绍.pdf...

    主机配置主机配置 32 位 XP vbox 虚拟机 32 位 ubuntu10 04 android2 2 源码 JDK1 5 1 编译编译 android2 2 源码源码 编译环境准备好之后 在终端 ...

最新文章

  1. 打印正方形和各种三角形
  2. 数据库笔记1:数据库基本语句
  3. tenantid拦截php,实现领域驱动设计。为什么在所有版本库查询中都包含TenantId?...
  4. HRFormer 多分辨率Transformer 参数骤降,性能更强
  5. case when判断大于某值_Python 代码判断逻辑太复杂?这里有几条最佳实践和技巧...
  6. 如何给mysql用户分配权限
  7. 【29.70%】【codeforces 723D】Lakes in Berland
  8. 创建一个catkin工作空间
  9. Linux sudo找不到命令:修改sudo的PATH路径
  10. 深入了解Oracle ASM(一):基础概念
  11. SpringBoot笔记整理(一)
  12. Spring Boot加入websocket后,单元测试报错(javax.websocket.server.ServerContainer not available)
  13. java如何代码找错误_java代码查错11道题
  14. bug10-graphviz.backend.ExecutableNotFound: failed to execute [‘dot‘, ‘-Tpdf‘, ‘-O‘, ‘Source.gv‘]
  15. 企业软件是最难编写的软件
  16. 基于开源框架urule的规则引擎
  17. 专业心理性格测试软件,what is my color心理性格测试
  18. MySQL8pdf_Mysql8.0中文参考手册 中英文chm+pdf版
  19. mysql正则时间格式_用正则表达式校验时间格式的正确性
  20. wll多功能超小linux,WLL多功能PXE网启服务器3.6终结版

热门文章

  1. Java GUI应用程序关闭陷阱
  2. 从CLI监视OpenJDK
  3. Linux Distribution Timeline for 2010(Linux 2010 年发行版时间线/族谱/发展图)
  4. 如何彻底禁用Chrome浏览器的缓存功能
  5. bat 存储过程返回值_为什么不推荐使用存储过程?
  6. 统信uos系统考试题_离Windows更近一步!微信Linux原生版上线:国产统信UOS系统已适配...
  7. 【WebRTC---源码篇】(四)WebRTC线程模型
  8. 建立能持续处理请求的Server端改造
  9. java 使按钮被选中_java – 让我的单选按钮在Android中被选中
  10. cacti不能实时刷新流量图_介绍一种编码帧内刷新算法