229 Star 1.4K Fork 228

GVP泰晓科技 / Linux Lab

 / 详情

Linux Lab 正在新增对真实开发板的支持-IMX6ULL

Done
owner
Opened this issue  
2020-12-08 14:48

该 Issue 用于管理 Linux Lab v0.6 的开发工作,主要目标为添加第一块真实的硬件开发板支持。

欢迎各大硬件厂商通过微信号 tinylab 联系我们,一起合作为 Linux Lab 新增其他开发板支持

1. 目标开发板:野火 imx6ull

1.1 立即购买

https://shop155917374.taobao.com/

1.2 相关资料

https://ebf-products.readthedocs.io/zh_CN/latest/linux/ebf_i.mx6ull.html
https://embed-linux-tutorial.readthedocs.io/zh_CN/latest/index.html

2. 当前支持的虚拟开发板:arm/mcimx6ul-evk

https://gitee.com/tinylab/qemu-arm-mcimx6ul-evk

开发板图片

Comments (22)

falcon created任务
falcon set related repository to 泰晓科技/Linux Lab
falcon changed issue state from 待办的 to 进行中
falcon changed description
falcon changed issue state from 进行中 to 待办的
falcon set top level to High
falcon set priority to P3
Expand operation logs

板子现在使用这里的kernel和uboot,大家编译的时候使用这两个仓库,教程里还是旧的没更新。
(gitee超出限制了)https://gitee.com/Embedfire/ebf_linux_kernel.git (ebf_4.19.35_imx6ul分支)
(github)https://github.com/Embedfire/ebf_linux_kernel (ebf_4.19.35_imx6ul分支)

https://gitee.com/Embedfire/ebf_linux_uboot.git (ebf_v2020_10_imx分支)

image-builder(用来构建文件系统及整个镜像的)使用这个仓库的image-builder_2.0分支:
https://gitee.com/Embedfire/ebf-image-builder.git (image-builder_2.0分支)

Linux Lab 第一块真板初步支持已经 Ready,make kernel ok,make boot 这块还需要解决上传自动化。

欢迎大家体验,更新后,切到 next 分支,文档在 boards/arm/ebf-imx6ull/README.md

nand uboot可以在板子里面自更新,直接使用板子linux系统自带的kobs-ng工具烧录就可以了,用法:kobs-ng init -x -v --chip_0_device_path=/dev/mtd0 xxx.imx。参考脚本:https://gitee.com/Embedfire/ebf_6ull_bootscripts/blob/master/tools/Nand/functions.sh

falcon changed description

今日新增 “一键” 自动上传功能,仅需简单配置一下 root 和普通用户的登陆密码即可,详情请参考 next 分支的 boards/arm/ebf-imx6ull/README.md

$ make kernel-upload
$ make dtb-upload
$ make modules-upload

另有新增 boot, test 和 debug,boot 直接调用了 minicom,而 test 和 debug 目前实现为空。

falcon changed description
falcon changed title
falcon changed description

新内核的触屏换到内核的驱动了,名字跟旧的不一样,qt app输入里用了旧驱动的名字

sudo apt install evtest
sudo evtest

运行 evtest 可以直接测试触摸屏

新板的名称统一更新为 arm/ebf-imx6ull,使用时请用如下命令切换:

$ make B=arm/ebf-imx6ull

当前开发成果已经合并到 next 分支,欢迎大家体验,涉及仓库如下:

  1. Linux Lab 主仓库 https://gitee.com/tinylab/linux-lab
  2. arm/ebf-imx6ull 仓库 https://gitee.com/tinylab/ebf-imx6ull

详细用法请参考:boards/arm/ebf-imx6ull/README.md

USB虚拟串口、网络及U盘需要预览版镜像才支持。
预览版镜像链接:
云盘资料:imx6ul Debian镜像百度云链接
链接:https://pan.baidu.com/s/1pqVHVIdY97VApz-rVVa8pQ
提取码:uge1

板子现在使用这里的kernel和uboot,大家编译的时候使用这两个仓库,教程里还是旧的没更新。
(gitee超出限制了)https://gitee.com/Embedfire/ebf_linux_kernel.git (ebf_4.19.35_imx6ul分支)
(github)https://github.com/Embedfire/ebf_linux_kernel (ebf_4.19.35_imx6ul分支)
https://gitee.com/Embedfire/ebf_linux_uboot.git (ebf_v2020_10_imx分支)
image-builder(用来构建文件系统及整个镜像的)使用这个仓库的image-builder_2.0分支:
https://gitee.com/Embedfire/ebf-image-builder.git (image-builder_2.0分支)

@flyleaf91 gitee的地支好像错了,应该是下面这个:

https://gitee.com/Embedfire/ebf-buster-linux

手动运行uboot-2020.10 + Linux5.10.0 方法及存在的问题:

  1. Linux Host下编译步骤
$git clone git://git.busybox.net/buildroot
$cd buildroot
$make imx6ullevk_defconfig
$make menuconfig

这里选择kernel和Bootloader版本如下,其他默认即可
kernel-> kernel version : 5.10
Bootloader -> U-boot Version : 2020.10

$ make -j8
$ ls output/images/ -al
total 91656
drwxr-xr-x 2 vmuser vmuser     4096 1月   2 16:47 .
drwxr-xr-x 6 vmuser vmuser     4096 1月   1 23:51 ..
-rw-r--r-- 1 vmuser vmuser 16777216 1月   2 16:47 boot.vfat
-rwxr-xr-x 1 vmuser vmuser    30847 1月   2 16:46 imx6ull-14x14-evk.dtb
-rw-r--r-- 1 vmuser vmuser 62914560 1月   2 16:47 rootfs.ext2
lrwxrwxrwx 1 vmuser vmuser       11 1月   2 16:47 rootfs.ext4 -> rootfs.ext2
-rw-r--r-- 1 vmuser vmuser 18923520 1月   2 16:47 rootfs.tar
-rw-r--r-- 1 vmuser vmuser 88080384 1月   2 16:47 sdcard.img
-rw-r--r-- 1 vmuser vmuser   371855 1月   2 16:14 u-boot.bin
-rw-r--r-- 1 vmuser vmuser   375808 1月   2 16:14 u-boot-dtb.imx
-rw-r--r-- 1 vmuser vmuser  9528384 1月   2 16:46 zImage

这里的sdcard.img 就是我们要烧写的SD卡的镜像

  1. 准备SD卡镜像(Linux PC或虚拟机下)
    注意:这里X为你的SD卡插入到Linux PC或虚拟机下的设备符,正确识别
    $ sudo dd if=output/images/sdcard.img of=/dev/sdX && sync

  2. 将SD(TF)卡插入板子的TF卡槽,连接串口线

  3. 打开串口终端并给开发板上电

  4. 在u-boot console下执行如下命令:

=> fatload mmc 0 80800000 /zImage
=> run mmcboot

就可以运行起来5.10内核啦。。。。。。

Todo List:

1)u-boot 为何不能正确加载zImage?
2)rootfs还是用的emmc上的,而不是SD卡上的?是mmcroot=/dev/mmcblk1p2 这里配置的不对吗?
3)将u-boot 2020.10 和linux 5.10.0 版本适配到Linux Lab

附上最新u-boot的env:

=> printenv
baudrate=115200
board_name=EVK
board_rev=14X14
boot_fdt=try
bootargs=console=ttymxc0,115200 root=/dev/nfs ip=dhcp nfsroot=:,v3,tcp
bootcmd=run findfdt;mmc dev ${mmcdev};mmc dev ${mmcdev}; if mmc rescan; then if run loadbootscript; then run bootscript; else if run loadimage; then run mmcboot; else run netboot; fi; fi; else run netboot; fi
bootdelay=2
bootscript=echo Running bootscript from mmc ...; source
console=ttymxc0
ethprime=eth1
fdt_addr=0x83000000
fdt_file=imx6ull-14x14-evk.dtb
fdt_high=0xffffffff
fdtcontroladdr=9ef95f30
fileaddr=80800000
filesize=916440
findfdt=if test $fdt_file = undefined; then if test $board_name = ULZ-EVK && test $board_rev = 14X14; then setenv fdt_file imx6ulz-14x14-evk.dtb; fi; if test $board_name = EVK && test $board_rev = 14X14; then setenv fdt_file imx6ull-14x14-evk.dtb; fi; if test $fdt_file = undefined; then echo WARNING: Could not determine dtb to use; fi; fi;
get_cmd=dhcp
image=uImage
initrd_high=0xffffffff
ip_dyn=yes
loadaddr=0x80800000
loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
mmcargs=setenv bootargs console=${console},${baudrate} root=${mmcroot}
mmcautodetect=yes
mmcboot=echo Booting from mmc ...; run mmcargs; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootz ${loadaddr} - ${fdt_addr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;
mmcdev=0
mmcpart=1
mmcroot=/dev/mmcblk1p2 rootwait rw
netargs=setenv bootargs console=${console},${baudrate} root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
netboot=echo Booting from net ...; run netargs; if test ${ip_dyn} = yes; then setenv get_cmd dhcp; else setenv get_cmd tftp; fi; ${get_cmd} ${image}; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if ${get_cmd} ${fdt_addr} ${fdt_file}; then bootz ${loadaddr} - ${fdt_addr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;
script=boot.scr
stderr=serial
stdin=serial
stdout=serial
videomode=video=ctfb:x:480,y:272,depth:24,pclk:108695,le:8,ri:4,up:2,lo:4,hs:41,vs:10,sync:0,vmode:0

Environment size: 2259/8188 bytes

falcon changed description
falcon changed description
falcon changed description
falcon changed description
falcon changed description

linux-lab 操作流程 https://mp.csdn.net/editor/html/112131298

@kyo1 这个好像还需要登陆才能查看 ;-)

这块开发板的外设配置以 dtb 插件 dtbo 的形式存在,相关资料请参考:

debian镜像源码: linux/debian/ebf-linux-dtoverlays

gitee链接:https://gitee.com/Embedfire/ebf-linux-dtoverlays
github链接:https://github.com/Embedfire/ebf-linux-dtoverlays

编译说明参考这个文档:

http://doc.embedfire.com/linux/imx6/base/zh/latest/linux_driver/dynamic_device_tree.html

@kyo1 这个好像还需要登陆才能查看 ;-)

@falcon 我尝试在这里直接发原文总是提示文本有敏感词 :sob:

@kyo1 贴原文地址就好,类似@iosdevlog,可以增加用 markdown 链接的方式指向你的稿件。

falcon changed title
falcon changed issue state from 待办的 to 已完成
falcon changed top level from High to Not top

Sign in to comment

Status
Assignees
Milestones
Pull Requests
Successfully merging a pull request will close this issue.
Branches
Planed to start   -   Planed to end
-
Top level
Priority
参与者(6)
5069540 wuzhangjin 1594531572 97535 flyleaf91 1590746778
Shell
1
https://gitee.com/tinylab/linux-lab.git
git@gitee.com:tinylab/linux-lab.git
tinylab
linux-lab
Linux Lab

Search