當前位置:首頁 » 編程軟體 » 設備樹編譯出錯

設備樹編譯出錯

發布時間: 2023-05-09 23:28:44

❶ 我有兩塊不同型號的明遠智睿開發板,IMX6 EK200和EK314,要怎麼讓兩塊開發板通過串口通信

迅為IMX6Q開發板獨立文檔和程序源碼匯總158個
迅為IMX6開發板支持五種系統Android4.4/6.0/7.1系統;linux + Qt4.7/5.7系統; Ubuntu12.04/16.04系統;Debian 9.9 系統;Yocto系統(4.1.15-krogoth)。
處理器兼容單核、雙核、工業級、汽車級、IMX6Q最新PLUS版本可根據需求更換。
iTOP-開發板-ssh常見問題以及解決方法.pdf
iTOP-開發板-串口控制台無法使用vi編輯器解決辦法.zip
iTOP-開發板-can測試工具使用資料.zip
iTOP-開發板-Qt和mini文件系統無法保存文件的解決辦法.pdf
iTOP-IMX6-SATA硬碟測試.pdf
iTOP-IMX6-Android系統開啟adb.pdf
iTOP-IMX6-QtE4.7-Uart_V1.0.rar
iTOP-iMX6-驅動-單獨編譯內核驅動.zip
iTOP-iMX6-驅動-以模塊的方式編譯內核驅動.pdf
iTOP-iMX6-TF卡開機自動燒寫鏡像.pdf
imx6_Qt_wifi_mt6620(臨時).zip
GPS-datasheet_v1.0.01.pdf
iTOP-iMX6-驅動-USB轉串口PL2303_V1.0.pdf
6818-qt-ec20網卡 - 僅供參考.zip
iTOP-IMX6-Android4.4系統源碼-將APK編譯到鏡像.pdf
iTOP-IMX6-Android4.4系統源碼-設備許可權的修改.pdf
iTOP-IMX6-Android4.4系統源碼-去掉默認安裝的APK.pdf
ITOP-IMX6-Android4.4系統-ADB傳輸文件.pdf
iTOP-IMX6-Android4.4系統-開機橫豎屏切換.pdf
iTOP-4412-Linux系統-自動掛載U盤TF卡等(熱拔插)-臨時.pdf
iTOP-iMX6-Linux系統-屏蔽虛擬控制台.zip
rc522test_20150320臨時.tar.gz
飛思卡爾原廠資料06-i.MX_Android_Camera_Issues_on_the_SDP_Board.pdf
飛思卡爾原廠資料07-i.MX_Android_Extended_Codec_Release_Notes.pdf
飛思卡爾原廠資料09-i.MX_Android_Wi-Fi_Display_Sink_API_Introction.pdf
飛思卡爾原廠資料09-i.MX_Android_Wi-Fi_Display_Sink_API_Introction.pdf
飛思卡爾原廠資料02-Android_Quick_Start_Guide.pdf
飛思卡爾原廠資料04-Android_User's_Guide.pdf
飛思卡爾原廠資料05-i.MX_6_Series_G2D_API_User's_Guide.pdf
飛思卡爾原廠資料03-Android_Release_Notes.pdf
飛思卡爾原廠資料08-i.MX_Android_Extended_Wi-Fi_Display_Sink_Release_Notes.pdf
iTOP-iMX6-QtE-CAN常式和使用文檔.zip
iTOP-iMX6-獲取CPU唯一ID.zip
iTOP-iMX6-QtE4.7-RS485_V2.0.rar
iTOP-iMX6-QTE系統-調用shell命令使用文檔.zip
iTOP-iMX6-linux-C調用shell命令使用文檔.zip
iTOP4412-QtE5.7-移植使用文檔_V2.0.pdf
iTOP-iMX6-QtE-watchdog看門狗常式.zip
iTOP-IMX6-QtE4.7-Uart_V1.0.rar
iTOP-iMX6-串口Android應用測試.zip
iTOP-iMX6-Linux系統-屏蔽虛擬控制台.zip
iTOP-iMX6-QtE4.7-SDIO_WIFI_MT6620的使用.zip
iTOP-iMX6-QtE4.7-SDIO_WIFI_MT6620的使用.zip
iTOP-iMX6-Linux系統-web伺服器控制led_V1.0.pdf
iTOP-iMX6-Linux系統-搭建web伺服器_V1.0.pdf
iTOP-iMX6-Linux系統-Tftp使用文檔_V1.0.pdf
QT4412程序調用其它程序20161002-臨時.rar
iTOP-iMX6-Android-RS485使用文檔和源碼_V1.0.zip
iTOP-iMX6-MiniLinux-CAN測試使用文檔.zip
iTOP-iMX6-QtE-CAN測試使用文檔_V2.0.zip
iTOP-IMX6-QtE4.7-計算器_V1.0.rar
iTOP-IMX6-QtE4.7-Buzzer_V1.0.rar
iTOP-IMX6-QtE4.7-看門狗_V1.0.rar
iTOP-IMX6-QtE4.7-日歷_V1.0.rar
iTOP-IMX6-QtE4.7-Led_V1.0.rar
iTOP-IMX6-QtE4.7-Uart_V1.0.rar
iTOP-IMX6-QtE4.7-HelloWorld_V1.0.rar
iTOP-IMX6-QtE4.7-定時器_V1.0.rar
iTOP-IMX6-QtE4.7-USB鍵盤支持_V1.0.rar
iTOP-IMX6-QtE4.7-字體_V1.0.rar
iTOP-IMX6-QtE4.7-文本_V1.0.rar
iTOP-IMX6-QtE4.7-游戲_V1.0.rar
iTOP-IMX6-QtE4.7-相冊_V1.0.rar
iTOP-IMX6-QtE4.7-時鍾_V1.0.rar
iTOP-IMX6-QtE4.7-字體_V1.0.rar
iTOP-IMX6-QtE4.7-視頻音頻_V1.0.rar
iTOP-網路-同一網段_V1.0.pdf
iTOP-網路-最小區域網_V1.0.pdf
iTOP-iMX6-QtE-RFID測試使用文檔.zip
iTOP-iMX6-QtE系統下LVDS和HDMI雙屏異顯和同顯.pdf
iTOP-iMX6-GPIO讀寫配置文檔_V1.0.zip
iTOP-iMX6-中斷測試常式_V1.0.zip
iTOP-iMX6-Android4.4系統-屏蔽虛擬控制台.pdf
關於SIM卡座接觸不良的解決辦法.pdf
iTOP-iMX6-QtE4.7-繼電器relay模塊使用文檔_V1.0.zip
iTOP-iMX6-Android-繼電器relay模塊使用文檔_V1.0.zip
iTOP-iMX6-Android系統-開機logo修改.pdf
iTOP-iMX6-v_2.2底板擴展串口_V1.0.pdf
iTOP-iMX6-v_2.1底板擴展串口_V1.0.pdf
iTOP-4412-Android4.4-RFID測試常式-全能版v4.0底板_v1.1_臨時.zip
iTOP-iMX6Q-內核-LOGO修改使用文檔_V1.0.zip
iTOP-iMX6-Android4.4-RFID讀卡器測試常式.zip
iTOP-4412-Linux系統-ssh功能移植到開發板.zip
迅為核心板裝配指導 .pdf
關於SIM卡座接觸不良的解決辦法.pdf
iTOP-開發板-實現虛擬機和主機之間共享文件夾.pdf
iTOP-開發板-清除虛擬機安裝殘留.zip
iTOP-iMX6-驅動-PWM控制蜂鳴器.zip
iTOP-開發版-無線網路和乙太網測速iPerf工具.zip
iTOP-開發版-ubuntu系統修改系統鎖屏使用文檔.pdf
iTOP-iMX6-QtE4.7-TCPsocket通信_V1.0.rar
iTOP-開發板-Android-Eclipse的SDK在線升級方法.pdf
iTOP-開發板-Android-Eclipse打開源碼報錯解決辦法.pdf
iTOP-iMX6-uboot-修改默認環境變數.pdf
iTOP-開發板-硬體-7寸屏幕亮度調整.pdf
iTOP-iMX6- Qt4.7-4G_EC20的移植.zip
iTOP-iMX6- Qt4.7-WiFi_mt6620的移植.zip
iTOP-iMX6- Ubuntu-WiFi_mt6620的移植.zip
ITOP-4412-QtE系統-opencv移植.pdf
iTOP-iMX6-Android4.4-GPS屏蔽.txt
iTOP-iMX6-VGA模塊使用文檔_V1.0.pdf
iTOP-iMX6-Android-LVDS和HDMI雙屏異顯使用文檔_V1.0.pdf
iTOP-開發板-Android-系統修改文件夾許可權使用文檔_V1.0.pdf
iTOP-開發版-Android-系統卸載默認apk使用文檔_V1.0.pdf
linux下vim使用詳解.pdf
iTOP-iMX6-uboot修改開機log使用手冊_v1.0.zip
iTOP-iMX6-平台文件注冊設備_V1.0.pdf
iTOP-開發板-QtE系統簡介_V1.0.pdf
iTOP-開發板-驅動-mmc升級驅動修改_V1.0.zip
iTOP-iMX6Q&D-開發板-屏幕背光亮度調整_V1.0.pdf
iTOP-開發板-QtE-調用shell命令使用文檔.zip
iTOP-開發板-MiniLinux-C程序調用shell命令.zip
iTOP-iMX6-驅動-實時時鍾RTC以及Linux-c測試常式_V1.0.zip
iTOP-iMX6-NFS共享目錄_V1.1.pdf
iTOP-iMX6-Android4.4-設置MAC地址_V1.0.pdf
iTOP-iMX6-MiniLinux-GPS使用文檔_V1.0.zip
iTOP-開發板-Qt系統-修改和固定MAC地址IP地址等網路參數_V1.0.pdf
iTOP-開發板-驅動-RS85模塊ioctl操作時間間隔修改_V1.0.pdf
iTOP-實戰-GPS模塊的數據格式_V1.0.pdf
iTOP-iMX6-Android-串口測試文檔(升級版)_V2.0.zip
iTOP-開發板-modbus移植和使用文檔_V1.0.zip
iTOP-iMX6-MiniLinux-RS485測試使用文檔_V1.1.zip
iTOP-開發板-串口的基礎知識和快速測試方法_V1.0.pdf
iTOP-開發板-驅動-usb轉串口ch34x移植使用文檔_V1.0.zip
iTOP-iMX6-Ubuntu-CAN測試使用文檔_V1.0.zip
iTOP-iMX6Q&D-開發板-Ubuntu系統10分鍾不關屏幕(關閉standby模式)_V1.1.zip
iTOP-開發板-cadence allegro的安裝_V1.0.pdf
iTOP-iMX6-Android-串口屏蔽gps文檔及測試常式_V1.0.zip
iTOP-iMX6-核心板引出管腳說明_V1.0.pdf
iTOP-iMX6-Android-can測試常式介紹_V1.0.pdf
iTOP-iMX6-uboot-網路設置和測試_V1.0.pdf
iTOP-iMX6-設備樹QtE-usbwifi-RTL8723BU使用文檔_V1.0.zip
iTOP-iMX6-Ubuntu16-usbwifi-RTL8723BU使用文檔_V1.0.zip
iTOP-開發板-QtE5.7系統-10.1寸屏觸摸_V1.0.pdf
iTOP-iMX6-設備樹內核-在內核源碼中以moles的方式編譯驅動_V1.0.pdf
iTOP-iMX6-設備樹內核-預設文件文件的配置_V1.0.pdf
iTOP-iMX6-設備樹內核-menuconfig的使用 _V1.0.pdf
iTOP-iMX6-設備樹驅動-以mole的方式編譯驅動_V1.0.zip
iTOP-iMX6-設備樹內核-設備樹相關文件簡要分析_V1.0.pdf
iTOP-iMX6-設備樹內核-IO配置分析文檔_V1.0.pdf
iTOP-iMX6-設備樹內核-sys方式控制GPIO_V1.0.pdf
iTOP-iMX6-設備樹內核-注冊設備常式_V1.0.pdf
iTOP-iMX6-設備樹內核-注冊驅動常式_V1.0.zip
iTOP-iMX6-設備樹內核-IO擴展配置和測試02_V1.0.zip
iTOP-iMX6-設備樹內核-IO擴展配置和測試01_V1.0.zip
iTOP-iMX6-設備樹內核-獲取CPU唯一ID_V1.0.zip
iTOP-iMX-設備樹內核-屏幕背光亮度調整_V1.0.pdf
iTOP-iMX6-設備樹-獨立中斷常式_V1.0.zip
iTOP-iMX6-設備樹內核-實時時鍾RTC以及Linux-c測試常式_V1.0.zip
iTOP-IMX6-設備樹內核-watchdog看門狗常式_V1.0.zip
iTOP-iMX6-設備樹內核-配置和實現pwm蜂鳴器 _V1.0.pdf
iTOP-iMX6UL-QtE5.7移植文檔_V1.0.pdf
iTOP-IMX6UL開發板-ctrl+c無效修改辦法.pdf
iTOP-IMX6UL開發板-ctrl+c無效修改辦法.pdf
imx6q設備樹-RFID驅動.zip
iTOP-iMX6Q&PLUS-Android6.0下uboot添加網卡驅動.pdf
iTOP-4412-QtE4.7-UVC攝像頭使用常式_V1.0.zip

❷ 如何使用dtc編譯設備樹 devicetree

DTS (device tree source)
.dts文件是一種ASCII 文本格式的Device
Tree描述,此文本格式非常人性化,適合人類的閱讀習慣。基本上,在ARM
Linux在,一個.dts文件對應一個ARM的machine,一般放置在內核的arch/arm/boot/dts/目錄。由於一個SoC可能對應多個machine(一個SoC可以對應多個產品和電路板),勢必這些.dts文件需包含許多共同的部分,Linux內核為了簡化,把SoC公用的部分或者多個machine共同的部分一般提煉為.dtsi,類似於C語言的頭文件。其他的machine對應的.dts就include這個.dtsi。譬如,對於VEXPRESS而言,vexpress-v2m.dtsi就被vexpress-v2p-ca9.dts所引用,
vexpress-v2p-ca9.dts有如下一行:
/include/
"vexpress-v2m.dtsi"
當然,和C語言的頭文件類似,.dtsi也可以include其他的.dtsi,譬如幾乎所有的ARM
SoC的.dtsi都引用了skeleton.dtsi。
.dts(或者其include的.dtsi)基本元素即為前文所述的結點和屬性:

[plain] view
plainprint?

/ {

node1 {

a-string-property = "A string";

a-string-list-property = "first string", "second string";

a-byte-data-property = [0x01 0x23 0x34 0x56];

child-node1 {

first-child-property;

second-child-property = <1>;

a-string-property = "Hello, world";

};

child-node2 {

};

};

node2 {

an-empty-property;

a-cell-property = <1 2 3 4>; /* each number (cell) is a uint32 */

child-node1 {

};

};

};
/ {
node1 {
a-string-property = "A string";
a-string-list-property = "first string", "second string";
a-byte-data-property = [0x01 0x23 0x34 0x56];
child-node1 {
first-child-property;
second-child-property = <1>;
a-string-property = "Hello, world";
};
child-node2 {
};
};
node2 {
an-empty-property;
a-cell-property = <1 2 3 4>; /* each number (cell) is a uint32 */
child-node1 {
};
};
};
上述.dts文件並沒有什麼真實的用途,但它基本表徵了一個Device
Tree源文件的結構:
1個root結點"/";
root結點下面含一系列子結點,本例中為"node1" 和
"node2";
結點"node1"下又含有一系列子結點,本例中為"child-node1" 和
"child-node2";
各結點都有一系列屬性。這些屬性可能為空,如"
an-empty-property";可能為字元串,如"a-string-property";可能為字元串數組,如"a-string-list-property";可能為Cells(由u32整數組成),如"second-child-property",可能為二進制數,如"a-byte-data-property"。
下面以一個最簡單的machine為例來看如何寫一個.dts文件。假設此machine的配置如下:
1個雙核ARM
Cortex-A9 32位處理器;
ARM的local bus上的內存映射區域分布了2個串口(分別位於0x101F1000 和
0x101F2000)、GPIO控制器(位於0x101F3000)、SPI控制器(位於0x10170000)、中斷控制器(位於0x10140000)和一個external
bus橋;
External bus橋上又連接了SMC SMC91111
Ethernet(位於0x10100000)、I2C控制器(位於0x10160000)、64MB NOR
Flash(位於0x30000000);
External bus橋上連接的I2C控制器所對應的I2C匯流排上又連接了Maxim
DS1338實時鍾(I2C地址為0x58)。
其對應的.dts文件為:

[plain] view
plainprint?

/ {

compatible = "acme,coyotes-revenge";

#address-cells = <1>;

#size-cells = <1>;

interrupt-parent = <&intc>;cpus {

#address-cells = <1>;

#size-cells = <0>;

cpu@0 {

compatible = "arm,cortex-a9";

reg = <0>;

};

cpu@1 {

compatible = "arm,cortex-a9";

reg = <1>;

};

};serial@101f0000 {

compatible = "arm,pl011";

reg = <0x101f0000 0x1000 >;

interrupts = < 1 0 >;

};serial@101f2000 {

compatible = "arm,pl011";

reg = <0x101f2000 0x1000 >;

interrupts = < 2 0 >;

};gpio@101f3000 {

compatible = "arm,pl061";

reg = <0x101f3000 0x1000

0x101f4000 0x0010>;

interrupts = < 3 0 >;

};intc: interrupt-controller@10140000 {

compatible = "arm,pl190";

reg = <0x10140000 0x1000 >;

interrupt-controller;

#interrupt-cells = <2>;

};spi@10115000 {

compatible = "arm,pl022";

reg = <0x10115000 0x1000 >;

interrupts = < 4 0 >;

};external-bus {

#address-cells = <2>

#size-cells = <1>;

ranges = <0 0 0x10100000 0x10000 // Chipselect 1, Ethernet

1 0 0x10160000 0x10000 // Chipselect 2, i2c controller

2 0 0x30000000 0x1000000>; // Chipselect 3, NOR Flashethernet@0,0 {

compatible = "smc,smc91c111";

reg = <0 0 0x1000>;

interrupts = < 5 2 >;

};i2c@1,0 {

compatible = "acme,a1234-i2c-bus";

#address-cells = <1>;

#size-cells = <0>;

reg = <1 0 0x1000>;

interrupts = < 6 2 >;

rtc@58 {

compatible = "maxim,ds1338";

reg = <58>;

interrupts = < 7 3 >;

};

};flash@2,0 {

compatible = "samsung,k8f1315ebm", "cfi-flash";

reg = <2 0 0x4000000>;

};

};

};
/ {
compatible = "acme,coyotes-revenge";
#address-cells = <1>;
#size-cells = <1>;
interrupt-parent = <&intc>;

cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
compatible = "arm,cortex-a9";
reg = <0>;
};
cpu@1 {
compatible = "arm,cortex-a9";
reg = <1>;
};
};

serial@101f0000 {
compatible = "arm,pl011";
reg = <0x101f0000 0x1000 >;
interrupts = < 1 0 >;
};

serial@101f2000 {
compatible = "arm,pl011";
reg = <0x101f2000 0x1000 >;
interrupts = < 2 0 >;
};

gpio@101f3000 {
compatible = "arm,pl061";
reg = <0x101f3000 0x1000
0x101f4000 0x0010>;
interrupts = < 3 0 >;
};

intc: interrupt-controller@10140000 {
compatible = "arm,pl190";
reg = <0x10140000 0x1000 >;
interrupt-controller;
#interrupt-cells = <2>;
};

spi@10115000 {
compatible = "arm,pl022";
reg = <0x10115000 0x1000 >;
interrupts = < 4 0 >;
};

external-bus {
#address-cells = <2>
#size-cells = <1>;
ranges = <0 0 0x10100000 0x10000 // Chipselect 1, Ethernet
1 0 0x10160000 0x10000 // Chipselect 2, i2c controller
2 0 0x30000000 0x1000000>; // Chipselect 3, NOR Flash

ethernet@0,0 {
compatible = "smc,smc91c111";
reg = <0 0 0x1000>;
interrupts = < 5 2 >;
};

i2c@1,0 {
compatible = "acme,a1234-i2c-bus";
#address-cells = <1>;
#size-cells = <0>;
reg = <1 0 0x1000>;
interrupts = < 6 2 >;
rtc@58 {
compatible = "maxim,ds1338";
reg = <58>;
interrupts = < 7 3 >;
};
};

flash@2,0 {
compatible = "samsung,k8f1315ebm", "cfi-flash";
reg = <2 0 0x4000000>;
};
};
};
上述.dts文件中,root結點"/"的compatible 屬性compatible =
"acme,coyotes-revenge";定義了系統的名稱,它的組織形式為:<manufacturer>,<model>。Linux內核透過root結點"/"的compatible
屬性即可判斷它啟動的是什麼machine。
在.dts文件的每個設備,都有一個compatible
屬性,compatible屬性用戶驅動和設備的綁定。compatible
屬性是一個字元串的列表,列表中的第一個字元串表徵了結點代表的確切設備,形式為"<manufacturer>,<model>",其後的字元串表徵可兼容的其他設備。可以說前面的是特指,後面的則涵蓋更廣的范圍。如在arch/arm/boot/dts/vexpress-v2m.dtsi中的Flash結點:

[plain] view
plainprint?

flash@0,00000000 {

compatible = "arm,vexpress-flash", "cfi-flash";

reg = <0 0x00000000 0x04000000>,

<1 0x00000000 0x04000000>;

bank-width = <4>;

};
flash@0,00000000 {
compatible = "arm,vexpress-flash", "cfi-flash";
reg = <0 0x00000000 0x04000000>,
<1 0x00000000 0x04000000>;
bank-width = <4>;
};
compatible屬性的第2個字元串"cfi-flash"明顯比第1個字元串"arm,vexpress-flash"涵蓋的范圍更廣。
再比如,Freescale
MPC8349 SoC含一個串口設備,它實現了國家半導體(National Semiconctor)的ns16550
寄存器介面。則MPC8349串口設備的compatible屬性為compatible = "fsl,mpc8349-uart",
"ns16550"。其中,fsl,mpc8349-uart指代了確切的設備, ns16550代表該設備與National Semiconctor
的16550
UART保持了寄存器兼容。
接下來root結點"/"的cpus子結點下面又包含2個cpu子結點,描述了此machine上的2個CPU,並且二者的compatible
屬性為"arm,cortex-a9"。
注意cpus和cpus的2個cpu子結點的命名,它們遵循的組織形式為:<name>[@<unit-address>],<>中的內容是必選項,[]中的則為可選項。name是一個ASCII字元串,用於描述結點對應的設備類型,如3com
Ethernet適配器對應的結點name宜為ethernet,而不是3com509。如果一個結點描述的設備有地址,則應該給出@unit-address。多個相同類型設備結點的name可以一樣,只要unit-address不同即可,如本例中含有cpu@0、cpu@1以及serial@101f0000與serial@101f2000這樣的同名結點。設備的unit-address地址也經常在其對應結點的reg屬性中給出。ePAPR標准給出了結點命名的規范。

❸ uboot導致kernel設備樹讀取頭就錯了

今天在學習嵌入式linux的uboot系統移植時出現了一個問題,掛載內核無反應。先貼圖

問題排查

一開始我的反應是網路的問題,我就開始排查網路,測試uboot下開發板是否能ping虛擬機

發現是沒有問題的,接下來我就想去試試虛擬機是否也能ping通開發板,當然我已經是完成我的開發
板的網路配置。然後出現的情況是

發現並不能ping通開發板。於是我開始納悶是否是我的網口以及網路配置出錯了。針對於此我進行了
以下幾項排查工作:

1、開發板的網路環境搭建

這里我使用的設備是台式機電腦,開發板,光貓一台,網線2條。(PS:這里我明白了帶路由器功能的
光貓就相當於普通光貓接路由器)然後進入虛擬機中將網路連接設置為橋接模式。

2、設置主機、虛擬機、開發板IP都在同一網段

經配置之後各IP分別是:主機:192.168.1.4,虛擬機:192.168.1.6,開發板:192.168.1.10
至此我已經配置完成網路情況,開始進行相互的ping測試,結果發現主機和虛擬機之間ping不通,經過
網路一查,才知道要關閉主機和linux虛擬機的防火牆。關於如何關閉兩者防火牆參考鏈接:
https://blog.csdn.net/m0_54203133/article/details/112428037

以上步驟我試了很多次還是沒能解決。然後我繼續尋找相關資料,直到看到正點原子的文檔中的一段話:

看到這句話我恍然大悟,我一直苦苦糾結IP網路配置並不是造成錯誤的唯一原因,當開發板能夠ping通
虛擬機和主機的時候,就已經說明上述的兩個步驟我已經配置正確了。那麼既然網路配置沒有問題,那就應
該是TFTP的問題吧,因為我們使用的網路傳輸是TFTP協議肆孫,我轉而開始排查TFTP環境搭建。

發現問題

我跟著tftp環境搭建的步驟一步一步的重新配置,結果總算是發現問題所在:

在tftp-hpa配置文件中,不知道怎麼我這里根目錄下的home家目錄多了一個o,這樣就導致了在傳輸的
時候無法按照有效路徑獲取虛擬機上的文件。終於解決了這個問題。然後修改了之後馬上進行試驗,卻又
出現了另一個問題。

可以看到「TFTP error: 'Permission denied' (0)」這樣的錯誤提示,提示沒有許可權,然後經過我查資料,
出現這個錯誤一般有兩個原因:
1、在 Ubuntu 中創建 tftpboot 目錄的時候沒有給予 tftboot 相應的許可權。
2、tftpboot 目錄中要下載的文件沒有給予相應的許可權。
針對這兩個原因,我們需要一個個的排查,都給上最高許可權。使用命令" chmod 777 xxx ",其中「xxx」就
是要給予許可權的文件或者文件夾。至此,問題終於得以解決,最終正確的結果如圖

總結

針對uboot階段無法使用tftp(或者nfs)掛載內核和設備樹的一般解決思路。
1、檢查鬧雹源開發板網路環境的搭建是否正確,也就是關於主機,虛擬機,開發板,路由器或者交換機之間網線
連接是否正確,對應的IP配置是否正確,防火牆是否關閉,最終的檢測方法就是使用ping測試,開發板能
夠ping通ubuntu虛擬機和windows主機即可,這一步檢查完成,不用管ubuntu是否能ping通uboot階段的開
發板(這是我犯的錯誤)。

2、如果完成第1個仍沒有解決,那就去檢查tftp和nfs的環境配置是否正確,這里有一些配置文件需要進行
修改,需要仔細核對是否修改正確了,尤其是文件路徑是否正確了,像我這次的問題就在於文件路徑出錯,
導致找不到文件,還沒有有效的提醒,如果路徑正確,目標文件不存在還會有提醒(此文件不存在)。

3、這是對第2步的補充,出現提示許可權問題,則我們對相應的文件及文件夾進行開最高許可權(本應該如此)。

4、對於前3步的結果我們也可以通過一種方法來驗證。我們將開發板進入到linux系統中去,然後在開發液態板
文件系統中執行相關的命令(跟在普通linux環境中一樣),使用tftp命令或者nfs命令,將虛擬機中自己新建
的一個測試文件傳輸到開發板中,查看是否能夠傳輸成功,從而驗證整個環境是否搭建成功。

❹ 如何在linux-3.x內核編譯設備樹

可以讓設備樹文件和內核一起編譯,單獨編譯的化,可以參考下面的文檔:
http://blog.csdn.net/woshigaoyuan/article/details/13996277

❺ 編譯linux內核設備樹文件使用什麼命令

Linux源碼的arch/powerpc/boot/dts/目錄下存放了很多dts文件,可以作為參考文件。另外dtc編譯器在內核源碼2.6.25版本之後已經被包含進去。在2.6.26版本之後,生成blob的簡單規則已經加入makefile,如下命令:
$ make ARCH=powerpc canyonlands.dtb

也可以根據自己的硬體修改好dts文件後,用下面類似命令生成dtb文件。
$ dtc -f -I dts -O dtb -R 8 -S 0x3000 test.dts > mpc836x_mds.dtb

$ mkimage -A ppc -O Linux -T flat_dt -C none -a 0x300000 -e 0 -d mpc836x_mds.dtb mpc836x_mds.dtu

❻ 單獨編譯內核和設備樹

source /opt/fsl-imx-xwayland/4.19-warrior/environment-setup-aarch64-poky-linux
export ARCH=arm64
make -j 16
生成的Image 和dtb在下面的路徑
~/imx-yocto-bsp/build-imx8mmevk/tmp/work/imx8mmevk-poky-linux/linux-imx/4.19.35-r0/git/arch/arm64/boot

熱點內容
雷凌運動版如何連接安卓手機導航 發布:2024-05-05 03:42:48 瀏覽:266
自動鬼使黑腳本 發布:2024-05-05 03:10:49 瀏覽:880
游戲腳本編程書籍推薦 發布:2024-05-05 02:59:13 瀏覽:72
編譯器書籍推薦 發布:2024-05-05 02:57:02 瀏覽:56
電池存儲溫度 發布:2024-05-05 02:53:07 瀏覽:207
安卓在美國怎麼下載 發布:2024-05-05 02:31:06 瀏覽:925
黑莓存儲空間 發布:2024-05-05 02:19:50 瀏覽:275
我的世界礦石島伺服器宣傳片 發布:2024-05-05 02:17:19 瀏覽:614
如何區分安卓原裝充電器 發布:2024-05-05 01:41:23 瀏覽:72
怎麼從蘋果轉移到安卓 發布:2024-05-05 01:41:20 瀏覽:721