cups源码下载 linux_【正点原子FPGA连载】第九章Linux显示设备的使用-领航者ZYNQ之linux开发指南...
1)實驗平臺:正點原子領航者ZYNQ開發板
2)平臺購買地址:https://item.taobao.com/item.htm?&id=606160108761
3)全套實驗源碼+手冊+視頻下載地址:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html
4)對正點原子FPGA感興趣的同學可以加群討論:876744900
5)關注正點原子公眾號,獲取最新資料
第九章Linux顯示設備的使用
領航者開發板上有兩個顯示設備接口,分別為HDMI接口和LCD接口,這兩個接口可以用來接HDMI顯示器和正點原子的LCD液晶屏,使用圖形界面的時候可以通過這兩個接口分別顯示在HDMI顯示器和LCD液晶屏上。本章我們講解如何使用Petalinux配置Linux內核和設備樹來驅動HDMI顯示器和LCD液晶屏。
9.1準備工作
HDMI的顯示首先需要硬件層面的支持,在《領航者ZYNQ之嵌入式開發指南》的《SD卡讀BMP圖片HDMI顯示實驗》中我們實現了裸機驅動HDMI的顯示,可見硬件層面是沒有問題的。如果想實現Linux驅動HDMI的顯示,除了需要該實驗對應的Vivado工程的硬件平臺支持外,還需要相應的Linux驅動程序,同樣LCD的顯示除了硬件層面的支持外也需要一個驅動。
Linux顯示設備的驅動程序我們放在了提供的內核源碼中。在我們提供的光盤資料:ZYNQ開發板資料盤(A盤)4_SourceCodeZYNQ_70203_Embedded_Linux資源文件kernel目錄下有兩個源碼包,分別是linux-xlnx-xilinx-v2018.3.tar.gz和linux-4.14.0-atk-v2018.3.tar.gz,前者是Xilinx官方提供的Linux內核源碼包,后者是我們定制的用于領航者開發板的Linux內核源碼包,里面添加了適用于領航者開發板的驅動程序,該內核源碼已托管到gitee網站:https://gitee.com/greatdream/linux,可從該網站獲取最新的領航者開發板的linux內核源碼。
我們將linux-4.14.0-atk-v2018.3.tar.gz解壓到ubuntu系統的work/petalinux/目錄下,或者從gitee網站clone到work/petalinux/目錄下,推薦使用第二種方式,在終端輸入命令如下:
上面的命令實現的功能就是將托管到gitee上的Linux內核源碼clone到linux-4.14目錄下,clone完成后,進入到linux-4.14目錄下,可看到linux內核源碼已下載完成,如下圖所示:
圖 20.1.1 linux內核源碼目錄
至此我們的準備工作就完成了,下面我們配置Petalinux工程和Linux內核以及設備樹來驅動HDMI或LCD的顯示。
9.2配置Petalinux工程
進入到第六章創建的Petalinux工程目錄下,輸入如下命令,設置Petalinux運行所需的環境變量,
或者
執行結果如下圖所示:
圖 20.2.1 設置Petalinux運行所需的環境變量
現在重新配置petalinux,重新設置Linux內核的來源,輸入如下命令:
在彈出的配置窗口中,進入到“Linux Components Selection--->linux-kernel(linux-xlnx)”菜單下,配置Linux內核來源。此處選擇“ext-local-src”,也就是本地存放的Linux內核源碼,如下圖所示:
圖 20.2.2 選擇“ext-local-src”
也可以選擇“remote”選項,將遠程路徑指向我們托管的gitee網站,此處以本地路徑為例進行講解。按鍵盤上的下方向鍵移到“ext-local-src”,然后按鍵盤上的“Enter“鍵確定,返回到上一界面,如下圖所示:
圖 20.2.3 返回到上一界面
進入“External linux-kernel local source settings”子菜單,如下圖所示:
圖 20.2.4 “External linux-kernel local source settings”子菜單
按鍵盤上的“Enter”鍵配置“EXternal linux-kernel local source path”,如下圖所示:
圖 20.2.5 填寫Linux內核源碼的本地路徑
也就是填寫Linux內核源碼的本地路徑,上一節我們將Linux內核源碼clone到/home/zynq/work/petalinux/linux-4.14目錄,所以此處填寫該目錄。填寫完成后,按鍵盤上的“Enter”鍵完成配置,返回到上一界面,如下圖所示:
圖 20.2.6 填寫內核路徑完成后的界面
現在保存配置并退出,下一步,配置Linux內核。
9.3配置Linux內核
Linux內核默認都是配置好的,無需配置。下面我們看下進行了那些配置。在終端中輸入如下命令:
petalinux-config -c kernel
彈出Linux內核的配置窗口。在內核配置窗口中,進入“Device Drivers”菜單下的“Graphics support”菜單下,
圖 20.3.1 “Graphics support”菜單
可以看到默認配置了“Xilinx LCD framebuffer driver support By Alientek”,該驅動可以用來驅動HDMI和LCD的顯示。
在“Device Drivers”菜單下的“Common Clock Framework”菜單下,可以看到默認配置了“Digilent axi_dynclk Driver”,該驅動可以根據不同的分辨率輸出不同的像素時鐘。
至此,內核方面的配置也就完成了。保存并退出,進入下一步,配置設備樹。
9.4配置設備樹
編輯當前工程目錄下的project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi文件。由于文件內容太長,此處就不全部粘貼了,主要講解下在第6.2.7節的配置的基礎上追加哪些內容,在beep后面追加視頻時序,內容如下:
video_timings開始就是追加的內容,以timing_4x3_480x272為例,講解下命名的格式,timing也就是時序,4x3對應的是4.3寸LCD液晶屏,480x272對應的是該液晶屏的分辨率為480x272,{}內的就是具體的驅動時序,需要說明的是timing_1920x1080對應的是HDMI分辨率為1920x1080的時序。
除了追加以上內容外,還需要在該文件的尾部追加以下內容:
amba_pl配置的是HDMI的驅動,如果顯示設備是LCD液晶屏,則需要將amba_pl修改成如下的內容:
設備樹配置內容已經放在我們提供的例程源碼當中,路徑為:“領航者ZYNQ開發板資料盤(A盤)4_SourceCodeZYNQ_70203_Embedded_Linuxzynq_petalinux2_linux_hdmisoftwarepetalinuxproject-specmeta-userrecipes-bspdevice-treefilessystem-user.dtsi”,可以打開這個文件將里面的內容拷貝到這個文件中,默認提供的是HDMI的驅動配置,LCD的驅動配置需要自行替換該文件中amba_pl的內容。
配置完了設備樹之后,就是編譯Petalinux工程了。
9.5編譯Petalinux工程
現在我們編譯整個Petalinux工程,在終端輸入如下命令:
執行結果如下圖所示:
圖 20.5.1 編譯整個Petalinux工程
9.6制作BOOT.BIN啟動文件并復制到SD卡
使用下面命令生成 BOOT文件:
執行結果如下圖所示:
圖 20.6.1 生成 BOOT文件
生成BOOT文件后,我們插入SD卡,將該工程image/linux目錄下的BOOT.BIN和image.ub文件拷貝到名為BOOT的分區也即/dev/sdc1分區中,如下圖所示:
圖 20.6.2 拷貝啟動鏡像到第一個分區
本實驗只需要這兩個文件即可,現在可以卸載SD卡了。
9.7在開發板上啟動Linux
將SD卡插入領航者開發板的SD卡槽(卡槽位于開發板背面),然后使用Mini USB連接線將開發板左側的USB_UART接口與電腦連接,用于串口通信。接下來將領航者底板上的啟動模式開關設置為從SD卡啟動。最后連接開發板的電源線,并打開電源開關。
HDMI顯示器顯示的內容如下圖所示:
圖 20.7.1 HDMI顯示器顯示結果
此時如果在領航者開發板上插入鍵盤,就可以登錄了,登錄的用戶名為:root,密碼為:root。此處我們就不演示了。至此我們完成了Linux顯示設備的驅動。
總結
以上是生活随笔為你收集整理的cups源码下载 linux_【正点原子FPGA连载】第九章Linux显示设备的使用-领航者ZYNQ之linux开发指南...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux环型共享内存,Linux sy
- 下一篇: linux代码段映射,bss,data,