EXT4文件系统挂载成功后执行init文件linuxrc失败

Hi3559av100平台,制作EXT4文件系统在EMMC存储设备上启动,发现EXT4文件系统挂载成功后执行init文件linuxrc失败,分析原因如下:

错误打印

sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
mmc0: SDHCI controller on 100f0000.eMMC [100f0000.eMMC] using ADMA 64-bit in legacy mode
mmc1: SDHCI controller on 10100000.SD [10100000.SD] using ADMA 64-bit in legacy mode
mmc0: CMDQ supported: depth: 32
mmc0: new HS400 Enhanced strobe MMC card at address 0001
mmc0: -524: cmdq: unable to set-up
mmc2: SDHCI controller on 10110000.SD [10110000.SD] using ADMA 64-bit in legacy mode
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
NET: Registered protocol family 10
mmcblk0: mmc0:0001 008G30 7.28 GiB 
mmcblk0boot0: mmc0:0001 008G30 partition 1 4.00 MiB
mmcblk0boot1: mmc0:0001 008G30 partition 2 4.00 MiB
mmcblk0rpmb: mmc0:0001 008G30 partition 3 4.00 MiB
 mmcblk0: p1(boot) p2(kernel) p3(rootfs) p4(user)
NET: Registered protocol family 17
hibvt_rtc 180b0000.rtc: setting system clock to 1970-01-01 00:05:15 UTC (315)
clk: Not disabling unused clocks
EXT4-fs (mmcblk0p3): recovery complete
EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: (null)
VFS: Mounted root (ext4 filesystem) on device 179:3.
Freeing unused kernel memory: 320K (ffffffc004820000 - ffffffc004870000)
Kernel panic - not syncing: Requested init /linuxrc failed (error -13).
CPU: 2 PID: 1 Comm: swapper/0 Not tainted 4.9.37 #1
Hardware name: Hisilicon HI3559AV100 DEMO Board (DT)
Call trace:
[<ffffff80080880d8>] dump_backtrace+0x0/0x1d0
[<ffffff80080883b4>] show_stack+0x14/0x20
[<ffffff8008338bcc>] dump_stack+0x94/0xb8
[<ffffff800811d9d0>] panic+0x130/0x280
[<ffffff80086508f8>] kernel_init+0xa0/0x100
[<ffffff8008082ee0>] ret_from_fork+0x10/0x30
SMP: stopping secondary CPUs
Kernel Offset: disabled
Memory Limit: 512 MB
---[ end Kernel panic - not syncing: Requested init /linuxrc failed (error -13).

制作命令

make_ext4fs -s -l ${ROOTFS_SIZE} -a system rootfs.img rootfs

猜测可能是库文件没有执行权限,挂载ext4文件系统到本地查看库文件权限:

simg2img rootfs.img rootfs.ext4	
mkdir a
sudo mount -o loop rootfs.ext4 a
logread@logread:hissys$ ls a/lib -l
total 120
-rw-r--r-- 1 root root 120616 Sep  9  2019 ld-2.24.so
lrw-r--r-- 1 root root     10 Sep  9  2019 ld-linux-aarch64.so.1 -> ld-2.24.so

果然是库没有了执行权限,猜测是命令使用错误,发现参数使用错误:

logread@logread:hissys$ make_ext4fs
Expected filename after options
make_ext4fs [ -l <len> ] [ -j <journal size> ] [ -b <block_size> ]
    [ -g <blocks per group> ] [ -i <inodes> ] [ -I <inode size> ]
    [ -L <label> ] [ -f ] [ -a <android mountpoint> ]
    [ -S file_contexts ] [ -C fs_config ] [ -T timestamp ]
    [ -z | -s ] [ -w ] [ -c ] [ -J ] [ -o ] [ -v ] [ -B <block_list_file> ]
    <filename> [<directory>]
-make_ext4fs -s -l ${ROOTFS_SIZE} -a system rootfs.img rootfs
+make_ext4fs -s -l ${ROOTFS_SIZE} -L rootfs rootfs.img rootfs

错把-a当作-L使用的问题,修改后库权限正确打印如下:

logread@logread:hissys$ ls a/lib -l
total 120
-rwxr-xr-x 1 root root 120616 Sep  9  2019 ld-2.24.so
lrwxrwxrwx 1 root root     10 Sep  9  2019 ld-linux-aarch64.so.1 -> ld-2.24.so
	
logread@logread:hissys$ ls a/lib64 -l
total 7108
-rwxr-xr-x 1 root root   14728 Sep  9  2019 libanl-2.24.so
lrwxrwxrwx 1 root root      14 Jun  6  2019 libanl.so.1 -> libanl-2.24.so

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值