查看: 5172|回复: 2

【Marvell ESPRESSObin】 开箱,编译,跑起来(分享编译结果)

[复制链接]
  • TA的每日心情
    开心
    2020-9-25 19:40
  • 签到天数: 135 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2017-5-11 23:55:00 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 枫雪天 于 2017-5-12 15:34 编辑

    很荣幸能够申请成功 Marvell ESPRESSObin 开发板,第一次在爱板网发试用帖。好了,接下来直奔主题。

    一、开箱

    第一面:简约的白色小盒子,暗示着开发板小巧的体积

    第一面

    第一面

    ESPRESSObin静静地躺在防静电袋中,大小刚好合适
    IMG_20170501_123358.jpg
    纸板下层放着配套的12V 2A电源适配器、micro USB 数据线
    IMG_20170501_123439.jpg
    硬件大合影,板卡+电源+数据线,关键硬件已经足够了
    IMG_20170501_123829.jpg

    二、硬件细节

    板卡正面,最显眼的三个网口和mini PCI-E与SATA硬盘接口
    IMG_20170509_180338.jpg
    贴一张官方讲解图,标注的已经很清楚
    top_view_ESPRESSObin.png
    板卡背面,CPU、RAM,Flash、网络芯片还有eMMC焊盘,略有一些遗憾,看来要上SD卡启动了
    IMG_20170509_180148.jpg
    因为板载几个大型接口,整体比NanoPi 2略大一些,可以理解
    IMG_20170511_213851.jpg
    接下来,上电展现你的强大功能吧~

    三、板卡初上电

    USB线连接板卡与PC的USB口,设备管理器识别了新COM口,PL2303芯片在工作
    检测到串口.jpg
    打开XShell,配置好串口参数,115200,8,1,就可以看到串口输出的启动信息了
    启动界面.jpg
    最开始只接USB线,插在笔记本电脑上,终端无数据输出,板卡灯亮但未启动,可见USB启动还是需要更大电流
    接上12V 2A电源适配器,LED很亮,电力很充足
    IMG_20170509_175409.jpg
    现在在内存中运行的U-Boot已经将ESPRESSObin的基本信息显示出来,CPU、L2(二级缓存)、DDR内存都工作在800MHz的频率上
    之后U-Boot开始扫描SD卡、串行Flash、PCI-E、硬盘与网络接口,寻找内核镜像以自动启动,Bad Linux ARM64 Image magic~
    看来我要找张SD卡烧写镜像了,走起~

    四、编译内核,制作根文件系统(基于Ubuntu 64位)

    登录http://espressobin.net官网,获取更多技术支持
    官网资料库.jpg
    ESPRESSObin的硬件原理图、PCB,交叉工具链、Linux定制内核、根文件系统等等都有提供
    所有文件既可直接以压缩包形式下载,也提供了托管的github链接,
    什么?没有镜像文件?只有内核源码0.0 想偷个懒都不行,这是要让我动手了
    (1).下载安装交叉工具链
    安装交叉工具链.jpg
    最开始大意了,把64位交叉工具链装载了RedHat Linux 32位系统上,导致工具无法执行,一个字,换!
    漂亮的64位的 Elementory OS
    eos.jpg
    因为只是下载内核源码,所以推荐压缩包形式下载,虽然没有了多版本切换功能,但够用而且速度比git clone快
    这时一定要注意所下载的分支名,否则将找不到EXPRESSObin定制的配置文件/arch/arm64/configs/mvebu_v8_lsp_defconfig
    注意分支.jpg
    版本错误导致配置失败
    配置内核时的错误.jpg
    配置环境变量(必要)
    export ARCH=arm64
    export CROSS_COMPILE=aarch64-linux-gnu-
    通过make -j4 启动四线程编译,以加快编译速度,几分钟后内核编译完成,查看编译结果,嗯,都在,编译成功~
    内核编译结果.jpg
    接下来,将下载的Ubuntu文件系统解压,并将编译好的内核镜像复制到/boot目录中
    之后进行一些小的修缮工作
    修改Linux启动级别
    修改启动等级.jpg
    删除原root密码,以后成功登陆Linux后再设置成自己的
    取消root密码.jpg
    因为我们使用ESPRESSObin板卡的串口终端进行操作,所以需要为系统添加串口终端
    添加串口终端.jpg
    最后,把编译好的内核镜像与设备树文件放到文件系统的 /boot 目录中
    编译结果转移进fs.jpg
    至此,内核编译与文件系统定制工作全部完成~
    其实如果不是自己要定制个性化功能,编译内核这部分就只是重复性工作,只要照着官方Wiki一步步做,就可以得到结果

    编译过程Wiki : http://wiki.espressobin.net/tiki-index.php?page=Build+From+Source+-+Kernel
    文件系统制作Wiki : http://wiki.espressobin.net/tiki-index.php?page=Boot+from+removable+storage+-+Ubuntu

    相信已经有朋友等不及要编译结果了,这里就把下载地址Po出来,文件已上传至我的 github 上,在文末也可以直接下载

    编译结果(Imagearmada-3720-community.dtb) github 地址 : https://github.com/CoreBoxer/Marvell-ESPRESSObin

    五、烧写SD卡,配置U-Boot,Linux跑起来!

    由于没有SD卡读卡器,将SD卡装入手机,插上电脑并启动U盘模式,在VMWare虚拟机右下角点连接即可接入Linux
    输入 lsblk 命令显示所有的块设备,图中sdb、sdd即为手机U盘与SD卡
    接下来使用 dd命令 对SD卡进行格式化操作
    这步一定要慢!分清SD卡所在分区和其他手机与Linux系统的分区
    dd if=/dev/zero of=/dev/sdd bs=1M count=100  (if为输入文件,of为输出目标文件,bs为每次复制的大小,count为复制次数)
    接下来,对新盘分区,命令略复杂
    (echo n; echo p; echo 1; echo ''; echo ''; echo w) | sudo fdisk /dev/sdd
    然后把新分区格式化为Ext4文件系统  mkfs.ext4 /dev/sdd1
    格式化.jpg
    创建新目录 /mnt/sdcard,将产生的新分区/dev/sdd1挂载上去,并把制作好的文件系统文件夹整体复制到/mnt/sdcard分区中
    复制镜像.jpg
    umount /mnt/sdcard 取出SD卡,至此启动EXPRESSObin所需的SD卡制作完成
    将SD卡插入卡槽,第二次给板卡上电
    出现倒计时的时候,按任意键进入U-Boot命令行,即
    Marvell>>
    倒数第三步:使用ext4ls mmc 0:1 命令,列出SD卡分区1中的文件,已经可以正常读取
    ext4ls显示了目录.jpg
    倒数第二步:通过修改环境变量,配置U-Boot的SD卡的启动选项
    设置内核镜像名 : setenv image_name boot/Image
    设置设备树文件名 : setenv fdt_name boot/armada-3720-community.dtb
    配置mmc启动 : setenv bootmmc 'mmc dev 0; ext4load mmc 0:1 $kernel_addr $image_name;ext4load mmc 0:1 $fdt_addr $fdt_name;setenv bootargs $console root=/dev/mmcblk0p1 rw rootwait; booti $kernel_addr - $fdt_addr'
    配置U-Boot默认SD卡启动 : setenv bootcmd 'mmc dev 0; ext4load mmc 0:1 $kernel_addr $image_name;ext4load mmc 0:1 $fdt_addr $fdt_name;setenv bootargs $console root=/dev/mmcblk0p1 rw rootwait; booti $kernel_addr - $fdt_addr'
    最后千万别忘了保存配置 : save
    设置uboot.jpg
    最后一步 : 使用 run bootmmc 命令,启动内核
    Linux顺利启动.jpg
    ~一大波系统启动信息扑面而来,Linux已经欢快地跑了起来~

    Marvell-ESPRESSObin内核编译结果.zip

    5.56 MB, 下载次数: 6

    回复

    使用道具 举报

  • TA的每日心情
    难过
    2021-2-27 22:16
  • 签到天数: 1568 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2018-8-17 22:00:38 | 显示全部楼层
    看看练下手
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2018-12-11 15:55:45 | 显示全部楼层
    楼主好,我是个新手,上面的步骤只是把相应的文件拷贝到sd卡中。 我想自己编译内核,做一些定制化的需求,为了防止编译的内核出错导致板子起不来和方便后续调试,我想在uboot中直接加载远程的tftp目录下的上述3个文件Image、armada-3720-community.dtb、rootfs.tar.gz。 请问该怎么做呢?有步骤吗?谢谢
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-4-24 14:14 , Processed in 0.132078 second(s), 20 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.