• 【开源】基于正点原子alpha开发板的第三篇系统移植


    系统移植的三大步骤如下:

    1. =系统uboot移植====
    2. =系统linux移植====
    3. =系统rootfs制作====

    一言难尽,踩了不少坑,当时只是想学习驱动开发,发现必须要将第三篇系统移植弄好才可以学习后面驱动,现将移植好的文件分享出来:
    仓库:https://gitee.com/wangyoujie11/imx6u-ll-uboot-kernel-rootfs.git
    在这里插入图片描述

    使用如下

    如果直接使用我移植好的四大组件,只需要完成以下配置

    1. 将usb线连接开发板的OTG串口,另一端连接电脑;然后另一根连接USB_TTL串口,另一端连接电脑;
    2. 检测自己的sd卡是否取下(sd卡槽不能插卡)
    3. 红色拨码开关打到USB启动
    4. 给板子上电,双击打开mfgtool2-alientek-alpha-emmc.vbs文件,提示“符合标准就可以点击start,等待烧入,可以打开串口助手查看下载信息。提示信息如下所示,说明以及将系统烧写到板子上的emmc了。

    在这里插入图片描述

    从emmc启动将红色拨码开关打到emmc启动,然后复位板子就可以正常进入了boot命令,先输入ls mmc 1:1查看是否是图中的信息,没问题就输入环境变量:

    =>setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw

    =>setenv bootcmd ‘mmc dev 1;fatload mmc 1:1 80800000 zImage;fatload mmc 1:1 83000000 imx6ull-alientek-emmc.dtb;bootz 80800000-83000000;’
    在这里插入图片描述
    在这里插入图片描述
    从SD启动将红色拨码开关打到SD启动。首先准备工作alientek-linux和alientek-uboot和alientek-rootfs下载到本地ubuntu下解压如下:
    链接:https://pan.baidu.com/s/18e-UhGz_HCEF9-Z2ADEjlg
    提取码:wjwj

    在这里插入图片描述

    1. 进入alientek-uboot文件下,打开终端使用./imxdownload u-boot.bin /dev/sdb(自己的sd)中
    2. 然后将SD卡插入到板子卡槽内,使用SD卡启动模式
    3. 在tftp文件下面添加如下内容(可以在alientek-linux文件中找到)
      在这里插入图片描述
    4. 将rootfs文件解压到nfs文件夹下面
      在这里插入图片描述
    5. 使用chmod 777 -R nfs 和chmod 777 -R tftpboot。给这俩个文件夹权限
    6. 开发板直连电脑搭建NFS&TFTP环境配置:https://blog.csdn.net/zzssdd2/article/details/110455413。注意:路径一定要改为自己的路径
      一定注意如果ubuntu版本是18以上的需要需要:
      sudo vi /etc/default/nfs-kernel-server
      在这里插入图片描述
    7. 板子从SD卡启动,然后就可以使用驱动例程来做了,在编译驱动例程的时候,需要替换官方的路径

    在这里插入图片描述
    在这里插入图片描述
    7. 确定板子的信息是
    在这里插入图片描述
    首先将板子通过串口等方法连接电脑,启动板子,进入到boot命令下:配置板子的信息

    # 设置开发板ip
    => setenv ipaddr 192.168.104.90
    # 设置子网掩码
    => setenv netmask 255.255.255.0
    # 设置网关
    => setenv gatewayip 192.168.104.1
    # 设置服务器ip
    => setenv serverip 192.168.104.168 
    # 设置网卡1
    => setenv ethaddr b8:ae:1d:01:00:00
    # 保存设置
    => saveenv
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    然后使用NFS挂载文件系统:开发板网线连接电脑,然后启动开发板进入uboot模式设置启动参数bootargs

    
    ```powershell
     # 设置启动参数bootargs
    #	nfsroot后的参数为Ubuntu的nfs文件夹路径;格式为:nfsroot=NFS服务器IP:文件系统的绝对路径.
    #	ip后的参数为开发板网络信息:ip=开发板IP:服务器IP:网关,子网掩码::eth0:off. 
    setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.104.88:/home/wj/linux/nfs/rootfs 
    ip=192.168.104.90:192.168.104.88:192.168.104.1:255.255.255.0::eth0:off’
    #设置从tftp网络加载zImage和xxx.dtb文件
    setenv bootcmd 'tftp 80800000 zImage;tftp 83000000 imx6ull-alientek-emmc.dtb;bootz 80800000 - 83000000'
    # 保存
    => saveenv
    Saving Environment to MMC... Writing to MMC(0)... OK
    # 复位重启
    => reset
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    重启板子之后就会出现:
    在这里插入图片描述
    然后在自己的ubuntu下找到一个编译好的驱动例程,使用如下命令就可以将程序拷贝到开发板的/lib/modules/4.1.15/路径下

    sudo cp chrdevbase.ko chrdevbaseApp /home/wj/linux/nfs/rootfs/lib/modules/4.1.15/ -f
    
    • 1

    至此,所有的移植就完成了,可以愉快的驱动开发了

    使用02_led驱动例程测试:
    在这里插入图片描述
    挂载之后就行点灯操作:
    在这里插入图片描述请添加图片描述

  • 相关阅读:
    HTML期末作业:基于html+css+javascript+jquery实现古诗词网页 学生网页设计作品 web前端开发技术 web课程设计 网页规划与设计
    设计模式之策略模式
    0083 选择排序、直接插入排序、希尔排序
    次轮Okaleido Tiger即将登录Binance NFT,引发社区热议
    服务器创建虚拟环境跑代码
    [网络工程师]-传输层协议-TCP拥塞控制
    设计模式系列详解 -- 代理模式
    springboot竟然有5种默认的加载路径,你未必都知道
    分布式面试题
    低代码与传统开发:综合比较
  • 原文地址:https://blog.csdn.net/weixin_44236302/article/details/133701176