色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當前位置:首頁 > 學習資源 > 講師博文 > stm32mp1 linux最小根文件系統制作教程—(基于stm32mp157開發板實操)

stm32mp1 linux最小根文件系統制作教程—(基于stm32mp157開發板實操) 時間:2020-11-20      來源:華清遠見

有用戶反饋,關于stm32mp1,ST官方提供的系統太龐大,開機速度慢,占用空間大。基于這個問題,我們整理了Linux5.4.31最小根文件系統的鏡像及對應教程,希望對stm32mp157開發板使用的用戶有所幫助。

1. 根文件系統開發實驗

1.1 實驗目的

熟悉Linux 文件系統目錄結構,創建自己的文件系統,通過NFS 方式測試。

1.2 實驗平臺

華清遠見開發環境,FS-MP1A平臺;

1.3 實驗步驟

1 )根文件系統制作

可以從http://busybox.net/downloads/網站下載busybox-1.29.3源碼用于制作Linux文件系統,為了方便,已將源碼放進了光盤。

安裝交叉編譯工具鏈。

linux@ubuntu:$ sudo apt-get install gcc-arm-linux-gnueabihf

linux@ubuntu:$ sudo apt-get install g++-arm-linux-gnueabihf

驗證開發工具是否安裝正確,顯示版本信息如下圖所示。

linux@ubuntu:$ arm-linux-gnueabihf-gcc -v

建立源碼目錄

linux@ubuntu:$ cd ~

linux@ubuntu:$ mkdir -p fs-mp1a

【華清遠見-FS-MP1A開發資料\02-程序源碼\04-Linux系統移植\01-官方源碼】下的busybox-1.29.3.tar.bz2拷貝至該目錄。

linux@ubuntu:$ tar xvf busybox-1.29.3.tar.bz2             //解壓源碼

linux@ubuntu:$ cd busybox-1.29.3

配置busybox 源碼:

將頂層目錄下的Makefile文件中的CROSS_COMPILE字段修改為“arm-linux-gnueabihf-”

可以使用如下命令配置源碼

linux@ubuntu:$ make menuconfig

編譯源碼:

linux@ubuntu:$ make

安裝:

busybox 默認安裝路徑為源碼目錄下的_install

linux@ubuntu:$ make install

進入安裝目錄:

linux@ubuntu:$ cd  _install

linux@ubuntu:$ ls

bin  linuxrc  sbin   usr

創建其他需要的目錄:

linux@ubuntu:$ mkdir   dev   etc  mnt   proc   var  tmp   sys   root

添加庫:

將工具鏈中的庫拷貝到_install 目錄下:

linux@ubuntu:$ cp /usr/arm-linux-gnueabihf/lib/ . -a

刪除靜態庫:

linux@ubuntu:$ rm lib/*.a

添加系統啟動文件:

在etc下添加文件inittab,文件內容如下:

注意:修改文件均為_install目錄下

etc/inittab

#this is run first except when booting in single-user mode.

::sysinit:/etc/init.d/rcS

# /bin/sh invocations on selected ttys

# start an "askfirst" shell on the console (whatever that may be)

::askfirst:-/bin/sh

# stuff to do when restarting the init process

::restart:/sbin/init

# stuff to do before rebooting

::ctrlaltdel:/sbin/reboot

在etc下添加文件fstab,文件內容如下:

這里我們掛載的文件系統有三個proc、sysfs和tmpfs。

回到創建的文件系統處,在etc下創建init.d目錄,并在init.d下創建rcS文件,rcS 文件內容為:

etc/init.d/rcS

#!/bin/sh

# This is the first script called by init process

/bin/mount   -a

/sbin/mdev   -s

為rcS 添加可執行權限:

linux@ubuntu:$ chmod a+x init.d/rcS

在etc 下添加profile 文件,文件內容為:

etc/profile

#!/bin/sh

export HOSTNAME=fsmp1a

export USER=root

export HOME=root

export PS1="[$USER@$HOSTNAME \W]\# "

PATH=/bin:/sbin:/usr/bin:/usr/sbin

LD_LIBRARY_PATH=/lib:/usr/lib:$LD_LIBRARY_PATH

export PATH   LD_LIBRARY_PATH

2)NFS 測試

刪除原先的/source/rootfs:

linux@ubuntu:$ sudo rm -rf /source/rootfs

將我們新建的根文件系統拷貝到/source/rootfs目錄下

linux@ubuntu:$ sudo mkdir /source/rootfs

linux@ubuntu:$ sudo cp _install/* /source/rootfs -a

修改ubuntu主機中的/tftpboot/pxelinux.cfg/01-00-80-e1-42-60-17文件添加nfs啟動選項

# Generic Distro Configuration file generated by OpenEmbedded

menu title Select the boot mode

MENU BACKGROUND /splash.bmp

TIMEOUT 20

DEFAULT stm32mp157a-fsmp1a-emmc

LABEL stm32mp157a-fsmp1a-emmc

    KERNEL /uImage

    FDT /stm32mp157a-fsmp1a.dtb

    APPEND root=/dev/mmcblk2p4 rootwait rw console=ttySTM0,115200

LABEL stm32mp157a-fsmp1a-nfs

    KERNEL /uImage

    FDT /stm32mp157a-fsmp1a.dtb

    APPEND root=/dev/nfs nfsroot=192.168.11.251:/source/rootfs ip=dhcp rootwait rw earlyprintk console=ttySTM0,115200

上述配置中共有兩個啟動項分別為stm32mp157a-fsmp1a-emmc、stm32mp157a-fsmp1a-nfs。其中stm32mp157a-fsmp1a-emmc選項為正常啟動配置;stm32mp157a-fsmp1a-nfs為nfs掛載方式,這里需要注意的是nfsroot=192.168.11.251部分的ip需要根據ubunut主機的實際ip填寫。

重新啟動開發板,選擇nfs啟動選項。

查看是否能夠正常掛載,功能是否正常

 2. 制作根文件系統鏡像

上小節已經制作好了根文件系統,并且從NFS已經成功啟動。本小節將制作一個根文件系統鏡像用于后續的固化和燒錄。

1)制作ext4格式的文件系統

在ubuntu中制作一個EXT4空文件, 此處設則為300M大小,由于安裝的軟件較多時,文件系統會很大,用戶可以根據情況自行更改。

linux@ubuntu:$ dd if=/dev/zero of= fsmp1x_rootfs.ext4 bs=300M count=1

linux@ubuntu:$ sudo mkfs.ext4 fsmp1x_rootf.ext4

2)復制文件系統

將上小節我們移植完成的跟文件系統中所的文件夾都fuubuntu18_rootfs.ext4文件掛載到臨時目錄/mnt,并拷貝文件系統。

linux@ubuntu:$ sudo mount -o loop fsmp1x_rootf.ext4 /mnt

如果我們已經制作了前面的文件系統則直接拷貝/source/rootfs/下的文件即可

linux@ubuntu:$ sudo cp /source/rootfs/* /mnt -a

如果我們之前沒有編譯制作文件系統也可以將【華清遠見-FS-MP1A開發資料\02-程序源碼\04-Linux系統移植\02-移植好的系統鏡像文件】下的rootfs.tar.xz文件導入到虛擬機中,使用我們已經移植好的跟文件系統進行制作。

linux@ubuntu:$ sudo tar -xvf rootfs.tar.xz -C /mnt

3)卸載掛載的fsmp1x_rootf.ext4文件

linux@ubuntu:$ sudo umount /mnt

此時跟文件系統鏡像就制作完成了。可以將這個文件導出到windos下燒錄到開發板中運行。

4)修改燒錄文件

如果想要燒錄到開發板那么就需要修改,燒寫文件。這里以eMMC啟動的trusted鏡像為例來說明。其它啟動的修改方法也類似。

修改flashlayout_fs-mp1a-weston\trusted下的FlashLayout_sdcard_stm32mp157a-fsmp1a-trusted.tsv文件將Id為0x23的rootfs分區鏡像名由fs-mp1a-weston-openstlinux-weston-fsmp1a.ext4修改為fsmp1x_rootf.ext4。按照《STM32CubeProgrammer燒寫方式》章節進行燒錄即可。

上一篇:【資料搶鮮看】STM32MP157開發板學習資料一覽--(能跑Linux的stm32開發板)

下一篇:stm32mp157異構通信:cortex m4與a7雙核通信

戳我查看嵌入式每月就業風云榜

點我了解華清遠見高校學霸學習秘籍

猜你關心企業是如何評價華清學員的

干貨分享
相關新聞
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2024 北京華清遠見科技發展有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 亚洲欧美黑人深喉猛交群 | 日本国产精品无码字幕在线观看 | 手机在线观看AV无码片 | 直接看的黄色网站 | 在线视频观看免费视频18 | 97人妻熟女成人免费视频 | 欧美综合影院 | 曰本女人牲交全过程免费观看 | 亚洲欧美日本一区二区 | 男女夜色爽爽影院 | 四虎亚洲精品私库AV在线 | free性欧美人与dog | 亚洲精品av一二三区无码 | 性色AV免费网站 | 亚洲AV日韩AV鸥美在线观看 | 亚洲女人被黑人巨大进入 | 日本熟妇人妻xxxxx视频 | jizz成熟丰满韩国女人 | 中文字幕无码毛片免费看 | 美女内射毛片在线看3D | 国产乱码卡二卡三卡4 | 三年中文在线观看免费国语第五集 | 免费麻豆文化传媒www欢迎你 | 日韩精品成人免费观看视频 | 粗长巨龙挤进新婚少妇 | 99无码人妻一区二区三区免费 | 噼里啪啦国语高清免费观看在线 | 成人综合伊人五月婷久久 | 亚洲成AV大片大片在线播放 | 人妻无码一区二区三区免费 | tom影院亚洲国产 | 插插无码视频大全不卡网站 | 在线a毛片免费视频观看 | 大香伊蕉在人线国产av | 日本阿v视频高清在线中文 XXXX麻豆成人AV | 欧美亚洲在线观看 | 国产国拍精品av在线观看按摩 | 真实游戏在线观看 | 中文字幕 亚洲精品 | 日本精品无码特级毛片 | 无码人妻精品一区二区三 |