查看: 15616|回复: 4

sd卡扩展beaglebone black板子存储空间的方法

[复制链接]
  • TA的每日心情
    慵懒
    2016-6-15 14:29
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2013-8-21 22:12:23 | 显示全部楼层 |阅读模式
    分享到:
    bbb板子上自带2G eMMC, 但是对很多应用来说, 容量还是远远不够, 于是我想用sd卡扩展空间, 但是发现一插入sd卡, 板子就启动不了啦, 去google了一下原因, 原来bbb的原生系统所带的uboot启动的时候如果发现有sd卡, 则sd卡会变成mmc0, eMMC则变成mmc1, 导致启动失败, 于是搜了很多资料, 努力了一个晚上终于搞定这个问题....

    首先你需要一张microSD卡, 一个读卡器, 我用的是笔记本自带的, 启动ubuntu(或者别的linux系统, windows不行), 把sd卡插进读卡器里, 输入

    fdisk -l

    查看一下当前sd卡设备的名称, 我的是mmcblk0, 于是

    fdisk /dev/mmcblk0

    进行分区, 使用命令 d 删除sd卡上目前存在的所有分区, 使用n 命令分别创建2个分区, 第一个小一点的, 大概几十m就可以了, 用作启动区, 第二个分区就是剩下的所有空间, 最后输入w命令写入分区表, 如果不熟悉fdisk命令的话可以去找百度看一下.

    接下来使用mkfs命令分别格式化两个分区:
    mkfs -t vfat -F 16 -n boot /dev/mmcblk0p1

    mkfs -V -t ext4 -j -L data /dev/mmcblk0p2

    两个分区命名为boot 跟 data, 第一个是fat16格式的, 第二个是ext4格式的, 接下来挂载第一个分区到根目录下, 并在上面创建一个文件uEnv.txt , 将下面几行内容写进去:
    mmcdev=1
    bootpart=1:2
    mmcroot=/dev/mmcblk1p2 ro
    optargs=quiet

    保存后umount, 把sd卡拿出来, 插到BBB板子上, 最后上电, 启动成功!!

    我刚开始的时候只是google到uEnv.txt以及它的内容, 没有注意使用fdisk以及mkfs制作启动sd卡, 插进BBB板子后启动失败, 看串口调试信息显示:
    Bad partition specification mmc 1:2
    于是查了半天终于发现是sd卡的分区不对, 用以上方法制作成功后, 串口观察启动过程:

    U-Boot SPL 2013.04-dirty (Jun 19 2013 - 09:57:14)
    musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, HB-ISO Rx, HB-ISO Tx, SoftConn)
    musb-hdrc: MHDRC RTL version 2.0
    musb-hdrc: setup fifo_mode 4
    musb-hdrc: 28/31 max ep, 16384/16384 memory
    USB Peripheral mode controller at 47401000 using PIO, IRQ 0
    musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, HB-ISO Rx, HB-ISO Tx, SoftConn)
    musb-hdrc: MHDRC RTL version 2.0
    musb-hdrc: setup fifo_mode 4
    musb-hdrc: 28/31 max ep, 16384/16384 memory
    USB Host mode controller at 47401800 using PIO, IRQ 0
    OMAP SD/MMC: 0
    mmc_send_cmd : timeout: No status update
    reading u-boot.img
    reading u-boot.img


    U-Boot 2013.04-dirty (Jun 19 2013 - 09:57:14)

    I2C:   ready
    DRAM:  512 MiB
    WARNING: Caches not enabled
    NAND:  No NAND device found!!!
    0 MiB
    MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
    *** Warning - readenv() failed, using default environment

    musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, HB-ISO Rx, HB-ISO Tx, SoftConn)
    musb-hdrc: MHDRC RTL version 2.0
    musb-hdrc: setup fifo_mode 4
    musb-hdrc: 28/31 max ep, 16384/16384 memory
    USB Peripheral mode controller at 47401000 using PIO, IRQ 0
    musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, HB-ISO Rx, HB-ISO Tx, SoftConn)
    musb-hdrc: MHDRC RTL version 2.0
    musb-hdrc: setup fifo_mode 4
    musb-hdrc: 28/31 max ep, 16384/16384 memory
    USB Host mode controller at 47401800 using PIO, IRQ 0
    Net:   <ethaddr> not set. Validating first E-fuse MAC
    cpsw, usb_ether
    Hit any key to stop autoboot:  1  0
    gpio: pin 53 (gpio 53) value is 1
    mmc0 is current device
    micro SD card found
    mmc0 is current device
    gpio: pin 54 (gpio 54) value is 1
    SD/MMC found on device 0
    reading uEnv.txt
    62 bytes read in 2 ms (30.3 KiB/s)
    Loaded environment from uEnv.txt
    Importing environment from mmc ...
    gpio: pin 55 (gpio 55) value is 1
    mmc_send_cmd : timeout: No status update
    4270840 bytes read in 746 ms (5.5 MiB/s)
    gpio: pin 56 (gpio 56) value is 1
    24129 bytes read in 51 ms (461.9 KiB/s)
    Booting from mmc ...
    ## Booting kernel from Legacy Image at 80007fc0 ...
       Image Name:   Angstrom/3.8.13/beaglebone
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    4270776 Bytes = 4.1 MiB
       Load Address: 80008000
       Entry Point:  80008000
       Verifying Checksum ... OK
    ## Flattened Device Tree blob at 80f80000
       Booting using the fdt blob at 0x80f80000
       XIP Kernel Image ... OK
    OK
       Using Device Tree in place at 80f80000, end 80f88e40

    Starting kernel ...

    Uncompressing Linux... done, booting the kernel.
    [    0.194032] omap2_mbox_probe: platform not supported
    [    0.204621] tps65217-bl tps65217-bl: no platform data provided
    [    0.281250] bone-capemgr bone_capemgr.8: slot #0: No cape found
    [    0.318357] bone-capemgr bone_capemgr.8: slot #1: No cape found
    [    0.355465] bone-capemgr bone_capemgr.8: slot #2: No cape found
    [    0.392574] bone-capemgr bone_capemgr.8: slot #3: No cape found
    [    0.412614] bone-capemgr bone_capemgr.8: slot #6: BB-BONELT-HDMIN conflict P8.45 (#5:BB-BONELT-HDMI)
    [    0.422237] bone-capemgr bone_capemgr.8: slot #6: Failed verification
    [    0.429015] bone-capemgr bone_capemgr.8: loader: failed to load slot-6 BB-BONELT-HDMIN:00A0 (prio 2)
    [    0.451672] omap_hsmmc mmc.4: of_parse_phandle_with_args of 'reset' failed
    [    0.516043] pinctrl-single 44e10800.pinmux: pin 44e10854 already requested by 44e10800.pinmux; cannot claim for gpio-leds.7
    [    0.527764] pinctrl-single 44e10800.pinmux: pin-21 (gpio-leds.7) status -22
    [    0.535082] pinctrl-single 44e10800.pinmux: could not request pin 21 on device pinctrl-single
    [    6.375621] libphy: PHY 4a101000.mdio:01 not found
    [    6.380726] net eth0: phy 4a101000.mdio:01 not found on slave 1
    systemd-fsck[85]: Angstrom: clean, 50623/112672 files, 325594/449820 blocks


    .---O---.                                          
    |       |                  .-.           o o        
    |   |   |-----.-----.-----.| |   .----..-----.-----.
    |       |     | __  |  ---'| '--.|  .-'|     |     |
    |   |   |  |  |     |---  ||  --'|  |  |  '  | | | |
    '---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'
                    -'  |
                    '---'

    The Angstrom Distribution beaglebone ttyO0

    Angstrom v2012.12 - Kernel 3.8.13

    beaglebone login:

    红字就是读sd卡配置环境文件uEnv.txt的过程, 因为插入sd卡后设备号有变动, 因此实际上这个方法是把root重新定义了回去, 使得系统能正确找到zImage的位置.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2013-8-7 09:31
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2013-9-13 12:41:41 | 显示全部楼层
    nice!!!!!!!!!!!!!!!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-10-25 20:50
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2014-10-25 23:53:23 | 显示全部楼层
    楼主问下,扩展出来的空间可以存放数据,那可以把比如一些软件,如opencv等装在里面吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-10-28 00:13:22 | 显示全部楼层
    zp_bbb 发表于 2014-10-25 23:53
    楼主问下,扩展出来的空间可以存放数据,那可以把比如一些软件,如opencv等装在里面吗? ...

    楼主问一下,根据硬件启动模式,如果你不按按键,系统首先选择MMC1启动的。所以跟你是否变成MMC0没有关系,这个怎么解释。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-10-28 00:14:20 | 显示全部楼层
    楼主问一下,根据硬件启动模式,如果你不按按键,系统首先选择MMC1启动的。所以跟你是否变成MMC0没有关系,这个怎么解释。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-27 22:22 , Processed in 0.140475 second(s), 22 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.