日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

arch linux arm下载_arm开发板运行hello word的详细过程

發布時間:2023/12/3 linux 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 arch linux arm下载_arm开发板运行hello word的详细过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

arm開發板運行helloword

1.uboot的編譯

? 這里已經安裝好了交叉編譯工具鏈,如果自己的電腦下沒有,請自行百度安裝。將下載好uboot到linux下,進行解壓-->打補丁-->編譯-->燒寫,執行以下命令完成上述四個步驟(不同的開發板在下載u-boot之后,進行打補丁操作),編譯完成,u-boot.bin文件燒寫到開發板即可。

tar -jvxf u-boot-1.1.6.tar.bz2 cd ./u-boot-1.1.6 patch -p1 < ../ u-boot-1.1.6_jz2440.patch make 100ask24x0_config make CROSS_COMPILE=/work/tools/gcc-3.4.5-glibc-2.3.6/bin/arm-linux- smdk2440_config make -j4

2.linux內核的編譯

? 同樣,將下載好的內核包進行以下操作:解壓-->打補丁-->配置內核-->編譯,執行以下命令完成對應的操作。(執行make menuconfig時會出現配置內核的界面,根據自己的需要進行配置)

tar -jvxf linux-2.6.22.6.tar.bz2 cd linux-2.6.22.6 patch -p1 < ../linux-2.6.22.6_jz2440.patch make s3c2410_defconfig cp config_ok .config make menuconfig CROSS_COMPILE=/work/tools/gcc-3.4.5-glibc-2.3.6/bin/arm-linux- ARCH=arm -j4 make uImage CROSS_COMPILE=/work/tools/gcc-3.4.5-glibc-2.3.6/bin/arm-linux- ARCH=arm -j4

編譯過程中遇到了錯誤是按照如下解決,如果遇到其他錯誤請自行解決

? 最后編譯完成。

? 生成的uImage在下圖中路徑。燒寫到開發板中即可。

3.文件系統的制作

? 一般開發板的廠商會提供文件系統,你可以自行燒寫對應的文件系統,這里自己制作一個最小文件系統。制作之前應該了解最小文件系統由什么組成。最小根文件系統封需要5個要求:

1 | busybox--ls、cp等命令的集合

2 | 兩個設備:/dev/console /dev/null

3 | /etc/inittab配置文件

4 | C庫

5 | 配置指定的運行程序

3.1 制作busybox

? busybox其實就是linux下ls、cd等一些基本命令的集合,所以要編譯它進行操作。對應操作:解壓-->配置-->編譯-->安裝,分別對應以下命令。

tar -jvxf busybox-1.7.0_patch.tar.bz2 tar -vxf busybox-1.7.0.tar.bz2 cd busybox-1.7.0 make menuconfig CROSS_COMPILE=/work/tools/gcc-3.4.5-glibc-2.3.6/bin/arm-linux- ARCH=arm -j4 make CROSS_COMPILE=/work/tools/gcc-3.4.5-glibc-2.3.6/bin/arm-linux- ARCH=arm -j4 make CONFIG_PREFIX=/home/book/nfsroot/busybox install

出現錯誤

/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi//sys-root/usr/include/linux/netfilter.h:56: error: field 'in6' has incomplete type ipsvd/tcpudp.c: In function 'tcpudpsvd_main': ipsvd/tcpudp.c:314: warning: ignoring return value of 'write', declared with attribute warn_unused_result scripts/Makefile.build:192: recipe for target 'ipsvd/tcpudp.o' failed make[1]: [ipsvd/tcpudp.o] Error 1 Makefile:701: recipe for target 'ipsvd' failed make: [ipsvd] Error 2 make: Waiting for unfinished jobs.... make: wait: No child processes. Stop.

解決:下載的交叉編譯庫中有個頭文件中的 in 和 in6 類型不對,解決的方法(親自測試): 在 …/arm-none-linux-gnueabi/libc/usr/include/linux/netfilter.h 的開頭 添加缺少的頭文件:

include

iptunnel.c:(.text.print_tunnel+0x290): more undefined references to `__cpu_to_be16' follow collect2: ld returned 1 exit status Makefile:678: recipe for target 'busybox_unstripped' failed make: *** [busybox_unstripped] Error 1

解決:在該目錄下的 vim networking/libiproute/iptunnel.c 文件中加入#include

最后成功編譯的busybox

3.2 創建設備文件

? 這兩個設備文件可以理解為內核啟動的第一個程序console:其實就是命令窗口

mkdir dev cd dev/ sudo mknod console c 5 1 sudo mknod null c 1 3

3.3 創建ect/inittab配置文件

mkdir etc cd etc/ vi inittab console::askfirst:-/bin/sh

3.4 配置C庫

? 將編譯器的C庫拷貝到根文件系統目錄下的庫文件/lib中,是交叉編譯的C庫

mkdir lib cp /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib/so* /work/nfs_root/lib/ -d

3.4制作文件系統

? 此次將文件系統制作為yaffs文件系統,下載制作工具,拷貝到linux,然后給制作工具附加執行權限,制作完畢之后燒寫到開發板中即可。

sudo cp ./mkyaffs2image /usr/local/bin chmod +x /usr/local/bin/mkyaffs2image mkyaffs2image nfs_root nfs_root.yaffs2

? 此時,開發板系統已經能正常運行。

3.6 設置開發板的ip

? 此時系統已經跑起來了,為了方便接下來的操作,將自己虛擬機的文件掛載到開發板中,先配置ip,根據自己的電腦和虛擬機中,自行設置,但是一定要處于同一網絡,然后讓三者相互ping通即可。

ifconfig eth0 192.168.43.20

3.7 掛載網絡文件系統

? 下面兩個命令都可以掛載虛擬機下的文件夾,但是當進行大量傳輸文件到開發板時,第一種掛載會出現錯誤,所以建議使用第二種掛載命令。建議使用第二種掛載命令

mount -t nfs -o nolock 192.168.43.175:/work/nfs_root /mnt mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 192.168.43.61:/work/nfs_root /mnt

4.運行helloword程序

? 首先在自己的linux下創建main.c,然后進行交叉編譯生成開發板的可執行文件,放入開發板中執行。

1

? 創建完之后,進行編譯,執行結果

arm-linux-gcc -static -o a.out main.c

總結

以上是生活随笔為你收集整理的arch linux arm下载_arm开发板运行hello word的详细过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。