跑起NXP LS1046ARDB开发板

版权声明: https://blog.csdn.net/masterbee/article/details/81369314

以下内容为原创,欢迎转载,转载请说明来源:https://blog.csdn.net/masterbee/article/details/81369314

  1. 拿到一块新的LS1046ARDB开发板时,要先熟悉它的配套资料,然后给板子通通电,看看有什么效果。如果你实在着急,就看看我的这篇引导文章吧。

  2. 安装好ubuntu 18.04桌面版,建议不要使用16.04(因为16.04好像要安装docker组件才能编译)。

  3. 根据《LSDK-KC-REV18.06.pdf》P101描述,LS1046支持3种启动方式:QSPI FLASH0、QSPI FLASH1以及SD卡。一份来自哈佛大学的研究表明,对新生事物未知之前,最好不要改变它,而是改变自己。所以,为了不破坏板子QSPI FLASH里面的内容,保险起见,我们使用的是从SD卡启动。准备一张SD卡,推荐32GB。(一份来自哈佛大学的研究表明,只要在任何一句话之前加上一句“来自哈佛大学的研究表明”,无论后面的话怎么扯蛋,都会有无数人相信。)

  4. 根据《LS1046ARDBGSG.pdf》文档P14及《LSDK-KC-REV18.06.pdf》P101要求,把开发板上的SW3、SW4、SW5(1-8 bit)分别跳成0100 0110、0011 1011、0010 0000,设置CPU从SD卡启动。我不会告诉你,如果你仅仅根据文档设置了SW5[1-8]和SW4[1],而不设置SW4[5]为1,那么板子根本不会启动!

  5. 使用配套的串口线,接板子的UART1,波特率设置为115200。不要问我板子哪个是UART1,看丝印!电脑端打开Xshell查看LOG,别使用什么sscom之类的简单串口工具,不方便(专业)不方便(专业)不方便(专业)!

  6. 做SD启动卡步骤:

6.1、SD卡启动文件需要3个,其中2个是从NXP官网下载,另1个是在ubuntu下编译生成(需要编译生成的是rootfs,NXP就是不提供,变态程度不亚于《权利的游戏》小剥皮)。从NXP官网下载的文件有:bootpartition_arm64_lts_4.14.tgz 、firmware_ls1046ardb_uboot_sdboot.img。而为了生成rootfs必须要下载的是:app_components_arm64.tgz、arm64-modules-4.14.47.tgz。

下载命令为:

$ wget http://www.nxp.com/lgfiles/sdk/lsdk1806/bootpartition_arm64_lts_4.14.tgz

$ wget http://www.nxp.com/lgfiles/sdk/lsdk1806/firmware_ls1046ardb_uboot_sdboot.img



$ wget http://www.nxp.com/lgfiles/sdk/lsdk1806/app_components_arm64.tgz

$ wget http://www.nxp.com/lgfiles/sdk/lsdk1806/arm64-modules-4.14.47.tgz 

6.2、按照《LSDK-KC-REV18.06.pdf》P46内容,使用以下命令分别编译,最终目的是生成rootfs_ubuntu_bionic_arm64_201807310106.tgz文件。其中flexbuild_lsdk1806.tgz文件由原厂或技术支持提供(总算做了件好事):

$ tar zxvf flexbuild_lsdk1806.tgz

$ cd flexbuild

$ source setup.env

$ flex-builder -i mkrfs -a arm64

$ tar xvzf app_components_arm64.tgz -C build/apps

$ sudo tar xvzf arm64-modules-4.14.47.tgz -C build/rfs/rootfs_ubuntu_bionic_arm64/lib/modules

$ flex-builder -i merge-component -a arm64

 

$ flex-builder -i compressrfs -a arm64

6.3、终于,万事俱备,我们要开始做卡了,只要一举成功,就好比异鬼召唤的冰龙,把北方城墙喷烧掉,从此一路南下畅通无阻。做卡命令:

①插入SD卡,先使用 ll /dev/sd* 命令查看SD卡的目录,比如为sdc (插卡前后都查看下,对比就知道SD卡是哪个目录了)。

②格式化SD卡:

$ sudo umount /dev/sdc*

$ sudo mkfs.vfat /dev/sdc -I

③把启动文件烧录到卡里,烧录之前,把生成的rootfs_ubuntu_bionic_arm64_201807310106.tgz(build/images目录下)拷贝到flexbuild当前目录下:

$ flex-installer -b bootpartition_arm64_lts_4.14.tgz -r rootfs_ubuntu_bionic_arm64_201807310106.tgz -m ls1046ardb -d /dev/sdc

$ flex-installer -f firmware_ls1046ardb_uboot_sdboot.img -s 8 -d /dev/sdc

 

7、使用flex-installer编译时,有可能会遇到以下问题:

因为我的虚拟机同时安装了ubuntu16.04和ubuntu18.04,所以有可能产生了混乱。该问题产生于flexbuild/tools/flex-builder文件,爱因斯坦说:“一个问题一定不能用导致这个问题的思维方式来解决”,所以二战当所有人都以为日本本土会被进攻时,美国却在广岛和长崎投下两颗原子弹,于是日本投降!我的解决方法是绕开该错误,屏蔽它,如下图:

如果你有更好的解决方法,欢迎留言告诉我。

8、好了,现在把做好的SD卡插入板子,通电开机欣赏你的成果吧。如果没异常,板子会在UBOOT界面倒计时10秒,然后启动linux内核。最后,终于看到了可爱的login登陆界面。很多人输入了ubuntu的登陆用户名和密码,发现都登陆不了。我试了很久,才发现其实用户名和密码都是root,呵呵。

9、最后,恭喜你,enjoy!!!

写在最后:下一次,等我有空了,再写如何从QSPI启动,敬请期待。

 

猜你喜欢

转载自blog.csdn.net/masterbee/article/details/81369314