以下內容爲原創,歡迎轉載,轉載請說明來源:https://blog.csdn.net/masterbee/article/details/81369314
-
拿到一塊新的LS1046ARDB開發板時,要先熟悉它的配套資料,然後給板子通通電,看看有什麼效果。如果你實在着急,就看看我的這篇引導文章吧。
-
安裝好ubuntu 18.04桌面版,建議不要使用16.04(因爲16.04好像要安裝docker組件才能編譯)。
-
根據《LSDK-KC-REV18.06.pdf》P101描述,LS1046支持3種啓動方式:QSPI FLASH0、QSPI FLASH1以及SD卡。一份來自哈佛大學的研究表明,對新生事物未知之前,最好不要改變它,而是改變自己。所以,爲了不破壞板子QSPI FLASH裏面的內容,保險起見,我們使用的是從SD卡啓動。準備一張SD卡,推薦32GB。(一份來自哈佛大學的研究表明,只要在任何一句話之前加上一句“來自哈佛大學的研究表明”,無論後面的話怎麼扯蛋,都會有無數人相信。)
-
根據《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,那麼板子根本不會啓動!
-
使用配套的串口線,接板子的UART1,波特率設置爲115200。不要問我板子哪個是UART1,看絲印!電腦端打開Xshell查看LOG,別使用什麼sscom之類的簡單串口工具,不方便(專業)不方便(專業)不方便(專業)!
-
做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啓動,敬請期待。
如果我有幫助到您,也歡迎您能幫助我。一個人能夠走多遠,關鍵是看他與誰同行。謝謝鼓勵。