QEMUは、ARM vexpress開発環境(3)---- NFSネットワークファイルシステムのルートを構築します

QEMUは、ARM vexpress開発環境(3)---- NFSネットワークファイルシステムのルートを構築します

タグ(スペースで区切っ):QEMU ARM Linuxの


前は「後QEMU ARM vexpress開発環境(2)を構築し---- U-ブートにより、Linuxカーネルを起動」、U-bootブートローダーカーネル開発ボードで実装され、ルートファイルシステムをマウントされた、この記事では通じ説明しますNFSネットワークは、ルートファイルシステムをマウントします。

NFSネットワークファイルシステムのルートによって、それはNFSネットワークを介してカーネルを別のPCホスト上でルートファイルシステムをマウントするのu-bootブート後に開発ボードを介して達成することができます。試運転の段階を学習の開発が大きな利便性を提供するために、ファイルが開発ボードと同等にコピーされているので(使用して行わドライバまたはAPPをコンパイルし、Linuxホスト上で直接開発することができ、およびNFSファイルがターゲットディレクトリサービスにコピーされますルート・ファイル・システム)。rootfsのは、直接ホスト側の別のファイルシステム内のファイルを直接開発ボードを変更することと等価である変更することができます。

この記事では、ネットワークのルート・ファイル・システムにNFSマウント手順を説明し、本発明の方法ではないだけでQEMU ARM vexpress開発ボード建築環境に適用するだけでなく、他のすべてのボードの実体です。

ネットワーク・ファイル・システムNFS個々開発板の製造方法は同じであるので、参照は、メソッドExynos4412 NanopiNEOボードとネットワーク・ファイル・システムNFSを構築する環境の一部を形成することができます。

1.環境設定

Linuxホスト・サポートNFSサービスが
起動パラメータがbootargsを変更する
NFSルートファイルシステムがされて設定され
たNFSファイル・システムは、ホストアドレスの設定
カーネルはNFSファイルシステムをマウントサポート

2. NFSサービスをインストールして設定します

2.1 LinuxホストオープンNFSサービス

インストール:

# sudo apt install nfs-kernel-server

NFSの設定:

# vim /etc/exports
// 添加NFS共享目录
/home/mcy/qemu/rootfs    *(rw, sync, no_root_squash, no_subtree_check)
    rw    可读可写操作
    sync    内存和磁盘上的内容保持同步
    no_root_squash    Linux主机不再将开发板设置为匿名用户,可以操作文件读写
    no_subtree_check    不检查根文件系统子目录文件

NFSサービスを再起動します。

sudo /etc/init.d/rpcbind restart
sudo /etc/init.d/nfs-kernel-server restart

または:

# systemctl restart nfs-kernel-server

チェックNFS共有ディレクトリが作成されます。

# sudo showmount -e
Export list for mcy-VirtualBox:
/home/mcy/qemu/rootfs *

注:
異常になりNFSネットワーク・ファイル・システムを使用して、あなたはシステムのファイアウォールLinuxホストをシャットダウンする必要があり、そうでない場合は、システムが動作しています。

2.2開発ボードは、NFSのネットワーク構成をサポートしています

U-ブートで起動パラメータを変更します。

# vim include/configs/
CONFIG_BOOTCOMMAND
    setenv bootargs 'root=/dev/nfs rw    \
    nfsroot=192.168.0.105:/home/mcy/qemu/rootfs init=/linuxrc    \
    ip=192.168.0.110 console=ttyAMA0';    \

NFSマウントされたファイルシステムをサポートするためにカーネルを設定します

NFSファイルシステム改善
の再起動rebootコマンドを

3.ルートファイルシステムを作成します

busyboxのコンパイル

nfs
Linux System Utilities  --->
    [*] mount (30 kb)
        [*]   Support mounting NFS file systems on Linux < 2.6.23

rootfsのディレクトリを作成し、ディレクトリにrootfsのファイルを作成します。

# mkdir etc
# cd etc
# vim inittab
::sysinit:/etc/init.d/rcS        // 执行rcS脚本
#::respawn:-/bin/sh
#tty2::askfirst:-/bin/sh
#::ctrlaltdel:/bin/umount -a -r

console::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
# vim init.d/rcS
#! /bin/sh
PATH=/sbin:/bin:/user/sbin:/usr/bin
LD_LIBRARY_PATH=/lib
export PATH LD_LIBRARY_PATH

mount -a        // 挂载根文件系统 fstab
mkdir -p /dev/pts
mount -t devpts devpts dev/pts
mdev -s
mkdir -p /var/lock

echo "......"
# vim fstab
proc    /proc    proc    defaults    0    0
tmpfs    /tmp    tmpfs    default    0    0
sysfs    /sys    sysfs    default    0    0
tmpfs    /dev    tmpfs    default    0    0
var    /dev    tmpfs    default    0    0
ramfs    /dev    ramfs    default    0    0
# vim profile
PS1='xiami@vexpress:\w #'
export PS1

また、〜/ .bashrcの中で変更またはPS1に提供することができます

プロセスを開始します:
Linuxカーネルが起動した後、ルートファイルシステムがマウント
bootargsのinit = / linuxrcの、initプロセスを開始し、ユーザーは、最初のプロセスを開始する
ユーザプロセスにinittabファイルのスクリプトを読み込むと、

他のディレクトリの構築
他のディレクトリは空のディレクトリであること

# cd rootfs
# mkdir proc mnt tmp sys root

おすすめ

転載: www.cnblogs.com/microxiami/p/11093276.html