開発ボードのさまざまな起動方法

1:イーサネット開始

uboot bootargs bootcmd bootm起動パラメーターの意味:(http://blog.csdn.net/cgzhello1/article/details/7852033)
環境パラメーターは次のとおりです。


setenv bootargs'root = / dev / nfs rw nfsroot = 192.168.1.4:/ exports / rfs ip = 192.168.1.200 console = ttySC0 video = HDMI-A-1:1280x800 video = HDMI-A-2:1280x960 '
setenv bootcmd' tftp0x48080000イメージ; tftp0x48000000 r8a7795-salvator-xs.dtb; booti 0x48080000-0x48000000'setenv
bootcmd 'run nfscmd'


2:EMMCが開始します

環境パラメータは次のとおりです。


setenv bootargs'root = / dev / mmcblk0p2 console = ttySC0 video = HDMI-A-1:1280x800 video = HDMI-A-2:1280x960 '
setenv bootcmd'ext4load mmc 2:1 0x48080000 Image; ext4load mmc 2:1 0x48000000 r8a7795- salvator-xs.dtb; booti 0x48080000-0x48000000 '


2.1フォーマットツールはe2fsprogsアドレスhttps://sourceforge.net/projects/e2fsprogs/?source=typ_redirectです

tar -zxvf /mnt/hgfs/linuxbak/e2fsprogs-1.43.7.ta​​r.gz

ソースクロスツールコンパイルスクリプト

生成makefile./configure --host = aarch64-poky-linux --prefix = / exports / rfs / usr

インストールする

2.2 EMMCパーティション:
EMMC関連の手順:https //blog.csdn.net/simonjay2007/article/details/43198353
最初にNFSを介して開発ボードシステムにマウントし、次にパーティションを作成します。
まず、emmcパーティションにfdiskを使用する必要があります。

fdisk / dev / mmcblk0
(パーティションのサイズは独自のemmcサイズに従ってパーティション化されます)
コマンド(ヘルプの場合はm):m fdiskツールの手順を取得するにはmを入力します
コマンド(ヘルプの場合はm):n —nを入力します新しいパーティションを作成するには
選択(デフォルトp):p pを入力してプライマリパーティションを作成
パーティション番号(1-4、デフォルト1):1
パーティション番号を入力最初のセクター(2048-31116287、デフォルト2048):—入力パーティションの開始アドレスを押して、Enterキーを押します。デフォルト値を使用します。
最後のセクター、+ sectorsまたは+ size(K、M、G)(2048-31116287、デフォルト31116287):+ 2G —パーティションの終了アドレスを入力します
コマンド(mヘルプ用):n 2番目のパーティションを作成します
パーティションタイプ:
pプライマリ(1プライマリ、0拡張、3フリー)
e拡張
選択(デフォルトp):p
パーティション番号(1-4、デフォルト2):2
最初のセクター(10000001 -31116287、デフォルト10000001):
デフォルト値10000001を使用
最後のセクター、+セクターまたは+サイズ{K、M、G}(10000001-31116287、デフォルト31116287):+ 1G

コマンド(ヘルプの場合はm):p:mmcblk0のパーティションステータスを出力します

コマンド(ヘルプはm):w —パーティション設定を
保存して終了します2.3パーティションファイルシステムをフォーマットします
mkfs.ext4 / dev / mmcblk0p1

mkfs.ext4 / dev / mmcblk0p2フォーマットext4システム(パーティション1およびパーティション2用)

マウントパーティション

mkdir / mnt / emmc1

mkdir / mnt / emmc2

マウント/ dev / mmcblk0p1 / mnt / emmc1

mount / dev / mmcblk0p2 / mnt / emmc2
(NFS経由で起動するたびに、mountコマンドを実行してemmc1フォルダーとmmcblk0p1パーティションをマウントする必要があります。そうしないと、フォルダーの内容が表示されません)

3:ramdiskルートファイルシステムから起動します

跳转到要制作的rootfs的上一级目录
#genext2fs -b 8192 -d rootfs ramdisk
#gzip -9 -f ramdisk
将该ramdisk以最优方式压缩为ramdisk.gz

-bは、生成されたRAMディスクのサイズが8MB(8192/1024 = 8、8MBはrfsフォルダーのサイズを指します)であることを
意味し、変更できます。-dは、RAMディスクのルートファイルシステムディレクトリを指します(rootfsはルートを指します)。 fileそれが置かれているフォルダの名前)
最後のramdiskは、作成されたramdiskの名前です。もちろん、名前を変更することもできます。
genext2fs -b 1024 -d rootfs ramdisk.image
がエラーを報告しました:genext2fs:ブロックを割り当てることができませんでした(空き領域がありません)
多くの検索の結果、これは領域割り当てエラーであることがわかりまし

。genext2fs-b102400に変更してください。 -d rootfs ramdisk.image
これは渡されます。
このスペースのサイズが小さすぎるようです。最初に大きい方を使用してから、小さい方を使用してください。

ubootで実行

tftp 0x500000000 ramdisk.gz 
mmc dev 1 
mmc write 0x500000000 0x16 0xcbce 
0x500000000是指在RAM中从该地址读取数据放到EMMC中,0x16为起始地址,大小为0xcbce(0xcbce转化为十进制,
再乘以512,即为ramdisk.gz的大小,单位是kb)
mmc write 0x48080000 0xcbe3 51df(image大小)
mmc write 0x48000000 fd1b(0xcbe3+51df) 7e (dtb大小)

内部の.config内のカーネルの場合

CONFIG_BLK_DEV_RAM=y 
CONFIG_BLK_DEV_RAM_COUNT=16

CONFIG_BLK_DEV_RAM_SIZE=819600重新编译 
配置内核支持的ramdisk的大小(KB)

起動パラメータを設定します。

setenv bootargs'initrd = 0x500000000,0x48e99A6 root = / dev / ram rw console = ttySC0 video = HDMI-A-1:1280x800 video = HDMI-A-2:1280x960 '
setenv bootcmd'run loadramdisk; dlkernelを実行します。booti 0x48080000-0x48000000'dlkernel
= mmc read 0x48080000 24764 648e; mmc読み取り0x4800000002abf3 85

おすすめ

転載: blog.csdn.net/baidu_38410526/article/details/80053446