簡體   English   中英

Linux kernel 在引導時無法從 SD 卡中檢測到 rootfs

[英]Linux kernel fails to detect rootfs from SD card while booting

我正在嘗試手動構建主線 kernel 並在 Pine64_Plus 板上啟動。 Linux kernel 無法掛載引導分區。 奇怪的是,它不會在引導日志中的可用分區下顯示任何分區。 我做了以下步驟。 克隆了 linux 主線 git repo

git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git --depth=1

安裝了交叉編譯工具鏈。

接着..

ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make defconfig
ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make -j4 Image

生成了 dtb

ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make -j4 dtbs

生成 kernel 模塊

ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make -j4 modules
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=ker_mod_temp_dir make modules modules_install

像下面這樣對 SD 卡進行分區在此處輸入圖像描述

我將 MLO、Uboot 和固件文件保存在引導分區中。

我從這里下載了 ArchLinux rootfs

我將下載的 rootfs 復制到我的 SD 卡的 ROOTFS 分區。

sudo cp -rT <path-to-downloaded-rootfs> /media/user/ROOTFS

我將 linux 映像和 dts 文件夾從 /arch/arm64/boot 復制到 rootfs 中的引導文件夾。

我將 kernel 模塊復制到根目錄

sudo cp -rT ker_mod_temp_dir /media/user/ROOTFS/lib

在此處輸入圖像描述

我試圖用 SD 卡啟動開發板。 Uboot 成功啟動。 我在 Uboot 中給出了以下命令來加載 kernel。

setenv kernel_addr_r 0x42000000
setenv dtb_addr_r 0x48000000
ext4load mmc 0:2 $kernel_addr_r /boot/Image
ext4load mmc 0:2 $dtb_addr_r /boot/dts/allwinner/sun50i-a64-pine64-plus.dtb
setenv bootargs console=ttyS0,115200 earlyprintk ignore_loglevel root=/dev/mmcblk0p2 rootfstype=ext4 rw
booti $kernel_addr_r - $dtb_addr_r

Linux kernel 啟動,但以錯誤結尾 - [ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]---

引導日志

sunxi#booti $kernel_addr_r - $dtb_addr_r
## Flattened Device Tree blob at 48000000
   Booting using the fdt blob at 0x48000000
   Loading Device Tree to 44ff7000, end 44fffba9 ... OK

Starting kernel ...

[mmc]: MMC Device 2 not found
[mmc]: mmc 2 not find, so not exit
INFO:    BL3-1: Next image address = 0x41080000
INFO:    BL3-1: Next image spsr = 0x3c9
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.4.0-rc3 (janani@janani-Vostro-2520) (gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1)) #2 SMP PREEMPT Fri Nov 1 13:01:35 IST 2019
[    0.000000] Machine model: Pine64+
[    0.000000] printk: debug: ignoring loglevel setting.
[    0.000000] efi: Getting EFI parameters from FDT:
[    0.000000] efi: UEFI not found.
[    0.000000] cma: Reserved 32 MiB at 0x000000007e000000
[    0.000000] NUMA: No NUMA configuration found
[    0.000000] NUMA: Faking a node at [mem 0x0000000041000000-0x000000007fffffff]
[    0.000000] NUMA: NODE_DATA [mem 0x7dde6800-0x7dde7fff]
[    0.000000] Zone ranges:
[    0.000000]   DMA32    [mem 0x0000000041000000-0x000000007fffffff]
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000041000000-0x000000007fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000041000000-0x000000007fffffff]
[    0.000000] On node 0 totalpages: 258048
[    0.000000]   DMA32 zone: 4032 pages used for memmap
[    0.000000]   DMA32 zone: 0 pages reserved
[    0.000000]   DMA32 zone: 258048 pages, LIFO batch:63
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv0.2 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: Trusted OS migration not required
[    0.000000] percpu: Embedded 22 pages/cpu s52952 r8192 d28968 u90112
[    0.000000] pcpu-alloc: s52952 r8192 d28968 u90112 alloc=22*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] CPU features: detected: ARM erratum 843419
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 254016
[    0.000000] Policy zone: DMA32
[    0.000000] Kernel command line: console=ttyS0,115200 earlyprintk ignore_loglevel root=/dev/mmcblk0p2 rootfstype=ext4 rw
[    0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 952956K/1032192K available (12156K kernel code, 1860K rwdata, 6420K rodata, 5056K init, 452K bss, 46468K reserved, 32768K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4.
[    0.000000]  Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] random: get_random_bytes called from start_kernel+0x2b8/0x458 with crng_init=0
[    0.000000] arch_timer: Enabling global workaround for Allwinner erratum UNKNOWN1
[    0.000000] arch_timer: CPU0: Trapping CNTVCT access
[    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.000004] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.000656] Console: colour dummy device 80x25
[    0.000738] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=96000)
[    0.000748] pid_max: default: 32768 minimum: 301
[    0.000829] LSM: Security Framework initializing
[    0.000889] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.000903] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.024021] ASID allocator initialised with 32768 entries
[    0.032014] rcu: Hierarchical SRCU implementation.
[    0.041639] EFI services will not be available.
[    0.048045] smp: Bringing up secondary CPUs ...
[    5.092138] CPU1: failed to come online
[    5.092145] CPU1: failed in unknown state : 0x0
[   10.216301] CPU2: failed to come online
[   10.216308] CPU2: failed in unknown state : 0x0
[   15.340451] CPU3: failed to come online
[   15.340457] CPU3: failed in unknown state : 0x0
[   15.340505] smp: Brought up 1 node, 1 CPU
[   15.340510] SMP: Total of 1 processors activated.
[   15.340521] CPU features: detected: 32-bit EL0 Support
[   15.340531] CPU features: detected: CRC32 instructions
[   15.346286] CPU: All CPU(s) started at EL2
[   15.346311] alternatives: patching kernel code
[   15.347526] devtmpfs: initialized
[   15.353004] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[   15.353025] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[   15.354219] pinctrl core: initialized pinctrl subsystem
[   15.355443] DMI not present or invalid.
[   15.355817] NET: Registered protocol family 16
[   15.357162] DMA: preallocated 256 KiB pool for atomic allocations
[   15.357176] audit: initializing netlink subsys (disabled)
[   15.358361] cpuidle: using governor menu
[   15.358626] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[   15.359812] Serial: AMBA PL011 UART driver
[   15.364601] audit: type=2000 audit(15.344:1): state=initialized audit_enabled=0 res=1
[   15.380908] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[   15.380920] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[   15.380926] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[   15.380933] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[   15.388682] cryptd: max_cpu_qlen set to 1000
[   15.401330] ACPI: Interpreter disabled.
[   15.404770] iommu: Default domain type: Translated 
[   15.404955] vgaarb: loaded
[   15.405266] SCSI subsystem initialized
[   15.408762] libata version 3.00 loaded.
[   15.409025] usbcore: registered new interface driver usbfs
[   15.409065] usbcore: registered new interface driver hub
[   15.409108] usbcore: registered new device driver usb
[   15.409680] pps_core: LinuxPPS API ver. 1 registered
[   15.409686] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[   15.409701] PTP clock support registered
[   15.409802] EDAC MC: Ver: 3.0.0
[   15.416828] FPGA manager framework
[   15.416910] Advanced Linux Sound Architecture Driver Initialized.
[   15.417650] clocksource: Switched to clocksource arch_sys_counter
[   15.417813] VFS: Disk quotas dquot_6.6.0
[   15.417869] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[   15.418051] pnp: PnP ACPI: disabled
[   15.423643] thermal_sys: Registered thermal governor 'step_wise'
[   15.423647] thermal_sys: Registered thermal governor 'power_allocator'
[   15.423942] NET: Registered protocol family 2
[   15.424316] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes, linear)
[   15.424342] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear)
[   15.424417] TCP bind hash table entries: 8192 (order: 5, 131072 bytes, linear)
[   15.424565] TCP: Hash tables configured (established 8192 bind 8192)
[   15.424669] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[   15.424699] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[   15.424834] NET: Registered protocol family 1
[   15.437311] RPC: Registered named UNIX socket transport module.
[   15.437317] RPC: Registered udp transport module.
[   15.437322] RPC: Registered tcp transport module.
[   15.437326] RPC: Registered tcp NFSv4.1 backchannel transport module.
[   15.437338] PCI: CLS 0 bytes, default 64
[   15.438134] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[   15.438351] kvm [1]: IPA Size Limit: 40bits
[   15.439050] kvm [1]: vgic interrupt IRQ1
[   15.439134] kvm [1]: Hyp mode initialized successfully
[   15.445931] Initialise system trusted keyrings
[   15.446070] workingset: timestamp_bits=44 max_order=18 bucket_order=0
[   15.453479] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[   15.458294] NFS: Registering the id_resolver key type
[   15.458319] Key type id_resolver registered
[   15.458323] Key type id_legacy registered
[   15.458335] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[   15.458518] 9p: Installing v9fs 9p2000 file system support
[   15.474148] Key type asymmetric registered
[   15.474156] Asymmetric key parser 'x509' registered
[   15.474191] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
[   15.474198] io scheduler mq-deadline registered
[   15.474204] io scheduler kyber registered
[   15.475689] sun50i-de2-bus 1000000.bus: Error couldn't map SRAM to device
[   15.476383] sun4i-usb-phy 1c19400.phy: failed to get clock usb0_phy
[   15.482035] sun50i-a64-r-pinctrl 1f02c00.pinctrl: initialized sunXi PIO driver
[   15.489405] EINJ: ACPI disabled.
[   15.502212] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[   15.504391] SuperH (H)SCI(F) driver initialized
[   15.504889] msm_serial: driver initialized
[   15.513007] loop: module loaded
[   15.517237] libphy: Fixed MDIO Bus: probed
[   15.517519] tun: Universal TUN/TAP device driver, 1.6
[   15.518323] thunder_xcv, ver 1.0
[   15.518361] thunder_bgx, ver 1.0
[   15.518396] nicpf, ver 1.0
[   15.518923] hclge is initializing
[   15.518930] hns3: Hisilicon Ethernet Network Driver for Hip08 Family - version
[   15.518935] hns3: Copyright (c) 2017 Huawei Corporation.
[   15.518990] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
[   15.518994] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[   15.519031] igb: Intel(R) Gigabit Ethernet Network Driver - version 5.6.0-k
[   15.519036] igb: Copyright (c) 2007-2014 Intel Corporation.
[   15.519073] igbvf: Intel(R) Gigabit Virtual Function Network Driver - version 2.4.0-k
[   15.519079] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
[   15.519367] sky2: driver version 1.30
[   15.519963] VFIO - User Level meta-driver version: 0.3
[   15.525385] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[   15.525393] ehci-pci: EHCI PCI platform driver
[   15.525431] ehci-platform: EHCI generic platform driver
[   15.525709] ehci-platform 1c1a000.usb: EHCI Host Controller
[   15.525733] ehci-platform 1c1a000.usb: new USB bus registered, assigned bus number 1
[   15.525833] ehci-platform 1c1a000.usb: irq 17, io mem 0x01c1a000
[   15.541660] ehci-platform 1c1a000.usb: USB 2.0 started, EHCI 1.00
[   15.542245] hub 1-0:1.0: USB hub found
[   15.542273] hub 1-0:1.0: 1 port detected
[   15.542788] ehci-orion: EHCI orion driver
[   15.542933] ehci-exynos: EHCI EXYNOS driver
[   15.543017] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[   15.543039] ohci-pci: OHCI PCI platform driver
[   15.543101] ohci-platform: OHCI generic platform driver
[   15.543243] ohci-platform 1c1a400.usb: Generic Platform OHCI controller
[   15.543262] ohci-platform 1c1a400.usb: new USB bus registered, assigned bus number 2
[   15.543356] ohci-platform 1c1a400.usb: irq 18, io mem 0x01c1a400
[   15.606146] hub 2-0:1.0: USB hub found
[   15.606173] hub 2-0:1.0: 1 port detected
[   15.606637] ohci-exynos: OHCI EXYNOS driver
[   15.607181] usbcore: registered new interface driver usb-storage
[   15.610102] sun6i-rtc 1f00000.rtc: registered as rtc0
[   15.610111] sun6i-rtc 1f00000.rtc: RTC enabled
[   15.610335] i2c /dev entries driver
[   15.614705] sdhci: Secure Digital Host Controller Interface driver
[   15.614711] sdhci: Copyright(c) Pierre Ossman
[   15.615069] Synopsys Designware Multimedia Card Interface Driver
[   15.615953] sdhci-pltfm: SDHCI platform and OF driver helper
[   15.617242] ledtrig-cpu: registered to indicate activity on CPUs
[   15.618422] usbcore: registered new interface driver usbhid
[   15.618428] usbhid: USB HID core driver
[   15.624090] NET: Registered protocol family 17
[   15.624260] 9pnet: Installing 9P2000 support
[   15.624313] Key type dns_resolver registered
[   15.624694] registered taskstats version 1
[   15.624700] Loading compiled-in X.509 certificates
[   15.637906] sun50i-a64-r-pinctrl 1f02c00.pinctrl: 1f02c00.pinctrl supply vcc-pl not found, using dummy regulator
[   15.638123] sunxi-rsb 1f03400.rsb: RSB running at 3030303 Hz
[   15.638499] axp20x-rsb sunxi-rsb-3a3: AXP20x variant AXP803 found
[   15.650253] dcdc1: supplied by regulator-dummy
[   15.650589] dcdc2: supplied by regulator-dummy
[   15.650808] dcdc4: supplied by regulator-dummy
[   15.651048] dcdc5: supplied by regulator-dummy
[   15.651111] vcc-dram: Bringing 1500000uV into 1360000-1360000uV
[   15.651308] dcdc6: supplied by regulator-dummy
[   15.651509] dc1sw: supplied by regulator-dummy
[   15.651697] aldo1: supplied by regulator-dummy
[   15.651903] aldo2: supplied by regulator-dummy
[   15.652139] aldo3: supplied by regulator-dummy
[   15.652380] dldo1: supplied by regulator-dummy
[   15.652598] dldo2: supplied by regulator-dummy
[   15.652814] dldo3: supplied by regulator-dummy
[   15.653048] dldo4: supplied by regulator-dummy
[   15.653277] eldo1: supplied by regulator-dummy
[   15.653506] eldo2: supplied by regulator-dummy
[   15.653768] eldo3: supplied by regulator-dummy
[   15.653995] fldo1: supplied by regulator-dummy
[   15.654231] fldo2: supplied by regulator-dummy
[   15.654484] rtc-ldo: supplied by regulator-dummy
[   15.654666] ldo-io0: supplied by regulator-dummy
[   15.654876] ldo-io1: supplied by regulator-dummy
[   15.655073] axp20x-rsb sunxi-rsb-3a3: AXP20X driver loaded
[   15.659737] sun50i-a64-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[   15.660680] sun50i-a64-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pb not found, using dummy regulator
[   15.661132] printk: console [ttyS0] disabled
[   15.681709] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 26, base_baud = 1500000) is a U6_16550A
[   16.928325] printk: console [ttyS0] enabled
[   16.934096] ehci-platform 1c1b000.usb: EHCI Host Controller
[   16.939689] ehci-platform 1c1b000.usb: new USB bus registered, assigned bus number 3
[   16.947533] ehci-platform 1c1b000.usb: irq 19, io mem 0x01c1b000
[   16.965665] ehci-platform 1c1b000.usb: USB 2.0 started, EHCI 1.00
[   16.972292] hub 3-0:1.0: USB hub found
[   16.976092] hub 3-0:1.0: 1 port detected
[   16.981558] ohci-platform 1c1b400.usb: Generic Platform OHCI controller
[   16.988223] ohci-platform 1c1b400.usb: new USB bus registered, assigned bus number 4
[   16.996091] ohci-platform 1c1b400.usb: irq 20, io mem 0x01c1b400
[   17.066206] hub 4-0:1.0: USB hub found
[   17.069997] hub 4-0:1.0: 1 port detected
[   17.075561] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto supply vcc not found, using dummy regulator
[   17.086998] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
[   17.092774] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 5
[   17.101105] hub 5-0:1.0: USB hub found
[   17.104901] hub 5-0:1.0: 1 port detected
[   17.111036] sun50i-a64-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-ph not found, using dummy regulator
[   17.123109] sun50i-a64-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pf not found, using dummy regulator
[   17.133728] sunxi-mmc 1c0f000.mmc: Got CD GPIO
[   17.163428] sunxi-mmc 1c0f000.mmc: initialized, max. request size: 16384 KB, uses new timings mode
[   17.172748] sun6i-rtc 1f00000.rtc: setting system clock to 1970-01-01T00:01:49 UTC (109)
[   17.181341] ALSA device list:
[   17.184340]   No soundcards found.
[   17.188171] VFS: Cannot open root device "mmcblk0p2" or unknown-block(0,0): error -6
[   17.195947] Please append a correct "root=" boot option; here are the available partitions:
[   17.204326] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[   17.212579] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.4.0-rc3 #2
[   17.218748] Hardware name: Pine64+ (DT)
[   17.222577] Call trace:
[   17.225026]  dump_backtrace+0x0/0x150
[   17.228685]  show_stack+0x14/0x20
[   17.231997]  dump_stack+0xb0/0xf8
[   17.235308]  panic+0x16c/0x37c
[   17.238360]  mount_block_root+0x1b0/0x2a8
[   17.242362]  mount_root+0x144/0x178
[   17.245845]  prepare_namespace+0x138/0x19c
[   17.249935]  kernel_init_freeable+0x22c/0x24c
[   17.254287]  kernel_init+0x10/0x108
[   17.257772]  ret_from_fork+0x10/0x18
[   17.261348] Kernel Offset: disabled
[   17.264831] CPU features: 0x0002,24002004
[   17.268832] Memory Limit: none
[   17.271888] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]---

下面一行

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

不顯示任何分區。 可能是什么原因?

在配置中選擇 mmc 驅動程序,如下所示 CONFIG_MMC_BLOCK=y 和 CONFIG_MMC_SUNXI=y

我究竟做錯了什么?

嘗試將 kernel 命令行選項 rootwait 添加到 bootargs,以便 kernel 不會立即放棄,而是永遠等待,希望根文件系統出現。 可能是 kernel 在啟動過程中等待 SD 卡出現的時間不夠長。

[mmc]:未找到 MMC 設備 2
[mmc]: mmc 2 找不到,所以不退出
...
Kernel 命令行:console=ttyS0,115200 earlyprintk ignore_loglevel root=/dev/mmcblk0p2 rootfstype=ext4 rw
...
VFS:無法打開根設備“mmcblk0p2”或未知塊(0,0):錯誤-6

您可能需要延遲, rootwait可能會解決它。 但是,這正是 initramfs 試圖解決的情況,並且至少是您的“調試”路徑。 如果您創建一個 initramfs 映像並將其附加到 Linux 二進制文件,您可以使用 shell 來探測 Linux 的分區布局和/或延遲安裝 rootfs 直到它准備好。 您可以在 initramfs 中執行其他操作,例如添加啟動屏幕,與 USB 基礎架構並行,例如使用 rootfs 安裝模塊加載檢測到的設備。 這將使您的啟動速度更快,並為您提供診斷啟動的工具。

看起來 u-boot 也看不到/dev/mmcblk0p2 u-boot 和 Linux 似乎都在抱怨這一事實可能表明分區生成出了問題。 將引導日志與鋸末建議的已知工作版本進行比較絕對有用。 例如,可能沒有為 MMC 設置時序/時鍾、電源或 pinmux,這可能會阻止設備被識別。 似乎您有驅動程序,但沒有日志中的設備。 即,沒有 mmcblk0 任何東西。 請參閱: DTS mmc 條目,了解您可能需要為您的電路板定義的一些值。 發現 Linux 的事實似乎與此相矛盾,但添加系統正在使用的 MMC 設備條目會很有用。 我希望 kernel 日志中有一些 output。 另一種可能性是某些東西是作為模塊構建的,並且預計會加載以使 MMC 可訪問。

獲得最小的 initramfs 將為您提供一些 shell 工具進行診斷。 您可以使用 klibc 或 buildroot 等制作一個小的 initramfs,讓您查看 Linux 設備節點、proc 和 sysfs 值來診斷問題。 不幸的是,這里有很多東西可能 go 錯了。 但是,由於您有 Linux 引導添加 initramfs 通常是直截了當的,即使您沒有為最終系統保留它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM