Посмотреть другой блог:《1.3. Настройте NFS-сервер в Ubuntu18.04.》
Загрузите исходный код busybox:
[Нажмите здесь, чтобы перейти на официальный сайт busybox],Ссылка на сайт: https://busybox.net/. После входа на официальный сайт найдите следующие меню:,Войдите на страницу загрузки.
->Get BusyBox
->Download Source
Введите Makefile
vim Makefile
Найдите CROSS_COMPILE и ARCH и измените их.
Воля
CROSS_COMPILE ?=
Изменить на # Примечание. Следующий путь — это путь установки цепочки инструментов кросс-компиляции.
CROSS_COMPILE ?= /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
Воля
ARCH ?= $(SUBARCH)
Изменить на:
ARCH ?= arm
Выполните подчиненные команды и используйте конфигурацию по умолчанию:
make defconfig
make menuconfig
Используйте динамическую компиляцию, поэтому оставьте ее отключенной:
Location:
-> Settings
-> Build static binary (no shared libs)
Выбрано:
Location:
-> Settings
-> vi-style line editing commands
не хочу Выбрано:
Location:
-> Linux Module Utilities
-> Simplified modutils
Убедитесь, что все дополнительные параметры в разделе mdev выбраны:
Location:
-> Linux System Utilities
-> mdev (16 kb) //Убедитесь, что выбрано все, что указано ниже. Все они выбраны по умолчанию.
Выберите кодировку Unicode для поддержки китайского языка. Выберите кодировку Unicode для поддержки китайского языка.
Location:
-> Settings
-> Support Unicode //Выбирать
-> Check $LC_ALL, $LC_CTYPE and $LANG environment variables //Выбирать
выполнить команду
make install CONFIG_PREFIX=/home/lsy/tools/lsy/nfs/rootfs
Параметр CONFIG_PREFIX указывает путь, по которому сохраняется созданная корневая файловая система.
На этом этапе вы можете видеть, что в указанном выше каталоге была создана простая файловая система, но для завершения rootfs необходимо добавить некоторые другие файлы.
Скопируйте библиотеку lib из каталога установки цепочки инструментов кросс-компиляции в библиотеку rootfs.
Создать папку lib в rootfs
cd /home/lsy/tools/lsy/nfs/rootfs
mkdir lib
Скопируйте файлы библиотеки из {каталога установки цепочки инструментов кросс-компиляции}/libc/lib/ в каталог {rootfs}/lib.
Примечание 1: «-d» означает копирование символической ссылки. Существует специальный файл библиотеки: ld-linux-armhf.so.3. Этот файл библиотеки представляет собой символическую ссылку, эквивалентную ярлыку в Windows.
Примечание 2: d-linux-armhf.so.3 в каталоге rootfs/lib представляет собой программную ссылку и бесполезна, поэтому сначала удалите ее и скопируйте в нее исходный файл.
cd /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/lib/
cp *so* *.a /home/lsy/tools/lsy/nfs/rootfs/lib/ -d
rm /home/lsy/tools/lsy/nfs/rootfs/lib/ld-linux-armhf.so.3
cp ld-linux-armhf.so.3 /home/lsy/tools/lsy/nfs/rootfs/lib/
Скопируйте файлы библиотеки из {каталога установки цепочки инструментов кросс-компиляции}/lib в каталог {rootfs}/lib.
cd /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/lib/
cp *so* *.a /home/lsy/tools/lsy/nfs/rootfs/lib/ -d
Создать папку lib в rootfs
cd /home/lsy/tools/lsy/nfs/rootfs/usr
mkdir lib
Скопируйте {каталог установки цепочки инструментов кросс-компиляции}/libc/usr/lib
cd /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/lib/
cp *so* *.a /home/lsy/tools/lsy/nfs/rootfs/usr/lib/ -d
На этом добавление файла библиотеки завершено. Введите следующую команду, чтобы просмотреть размер файла библиотеки.
#Заказ:
cd /home/lsy/tools/lsy/nfs/rootfs/
du ./lib ./usr/lib -sh
#Результаты следующие:
57M ./lib
67M ./usr/lib
Создайте следующие папки
cd /home/lsy/tools/lsy/nfs/rootfs/
mkdir dev proc mnt sys tmp root
Установите переменные среды в uboot, команда следующая:
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.0.250:/home/lsy/tools/lsy/nfs/rootfs ip=192.168.0.100:192.168.0.250:192.168.0.1:255.255.255.0::eth0:off'
saveenv
Разбор команд
console=ttymxc0,115200
Анализ:
последовательный порт
root=/dev/nfs rw
Анализ:
NFS, доступный для чтения и записи
nfsroot=192.168.0.250:/home/lsy/tools/lsy/nfs/rootfs
Анализ:
192.168.0.250 — это IP-адрес сервера nfs, то есть: IP-адрес Linux-машины, на которой расположена система документов nfs.
/home/lsy/tools/lsy/nfs/rootfs — это каталог, в котором сохраняется rootfs.
ip=192.168.0.100:192.168.0.250:192.168.0.1:255.255.255.0::eth0:off'
Анализ:
192.168.0.100 — это: ipaddr платы разработки.
192.168.0.250 — это IP-адрес nfs-сервера.
192.168.0.1 — это шлюз.
255.255.255.0 — это маска подсети.
eth0: имя сетевой карты.
rcS — это сценарий оболочки. После запуска ядра Linux необходимо запустить некоторые службы, а rcS — это файл сценария, который определяет, какие файлы следует запускать.
Создать rcs-файл
cd /home/lsy/tools/lsy/nfs/rootfs/
mkdir etc/init.d -p #Обратите внимание, что путь находится в каталоге rootfs, то есть сначала должна быть выполнена команда cd на предыдущем шаге, а не входить в корневой каталог.
cd etc/init.d/
touch rcS
vim rcS
Добавьте следующий код в rcs:
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:$PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib:/usr/lib
export PATH LD_LIBRARY_PATH
mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
Предоставьте разрешения на исполняемый файл rcS
chmod 777 rcS
Создать файл fstab
cd /home/lsy/tools/lsy/nfs/rootfs/etc/
touch fstab
vim fstab
Добавьте в файл следующее содержимое:
#<file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
Создать файл inittab
cd /home/lsy/tools/lsy/nfs/rootfs/etc/
touch inittab
vim inittab
Добавьте в файл следующее содержимое:
#etc/inittab
::sysinit:/etc/init.d/rcS
console::askfirst:-/bin/sh
::restart:/sbin/init
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::shutdown:/sbin/swapoff -a
Заявление об авторских правах: Содержание этой статьи добровольно предоставлено пользователями Интернета, а мнения, выраженные в этой статье, представляют собой только точку зрения автора. Этот сайт предоставляет только услуги по хранению информации, не имеет никаких прав собственности и не принимает на себя соответствующие юридические обязательства. Если вы обнаружите на этом сайте какое-либо подозрительное нарушение авторских прав/незаконный контент, отправьте электронное письмо, чтобы сообщить. После проверки этот сайт будет немедленно удален.
Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/185159.html Исходная ссылка: https://javaforall.cn