wiki:usomiq-sdcard
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
wiki:usomiq-sdcard [2017/05/10 12:15] – alex | wiki:usomiq-sdcard [2019/01/10 17:28] (текущий) – [Запись загрузчика] maxx | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Подготовка SD карты для загрузки Linux ====== | ||
+ | ===== Запись U-Boot на microSD-card ===== | ||
+ | Узнать имя устройства, | ||
+ | < | ||
+ | user@localhost: | ||
+ | NAME | ||
+ | sdb 8:16 0 111, | ||
+ | fd0 2:0 1 | ||
+ | sdc 8:32 | ||
+ | └─sdc1 | ||
+ | sda 8:0 0 232, | ||
+ | ├─sda2 | ||
+ | ├─sda5 | ||
+ | ├─sda1 | ||
+ | └─sda6 | ||
+ | </ | ||
+ | Предположим, | ||
+ | < | ||
+ | export DISK=/ | ||
+ | </ | ||
+ | **Очистка microSD** | ||
+ | < | ||
+ | sudo dd if=/ | ||
+ | </ | ||
+ | **Установка загрузчика** | ||
+ | < | ||
+ | sudo dd if=./ | ||
+ | sudo dd if=./ | ||
+ | </ | ||
+ | ===== Создание таблицы разделов на microSD ===== | ||
+ | Отмонтируйте SD-карту, | ||
+ | < | ||
+ | sudo umount /dev/sdc1 | ||
+ | </ | ||
+ | Проверка версии sfdisk: | ||
+ | < | ||
+ | sudo sfdisk --version | ||
+ | </ | ||
+ | Для версии sfdisk >= 2.26.x: | ||
+ | < | ||
+ | sudo sfdisk ${DISK} << | ||
+ | 4M,,L,* | ||
+ | __EOF__ | ||
+ | </ | ||
+ | Для версии sfdisk <= 2.25.x: | ||
+ | < | ||
+ | sudo sfdisk --unit M ${DISK} << | ||
+ | 4,,L,* | ||
+ | __EOF__ | ||
+ | </ | ||
+ | ===== Форматирование разделов ===== | ||
+ | Проверка версии mkfs.ext4: | ||
+ | < | ||
+ | sudo mkfs.ext4 -V | ||
+ | </ | ||
+ | Для версии mkfs.ext4 >= 1.43: | ||
+ | < | ||
+ | sudo mkfs.ext4 -L rootfs -O ^metadata_csum, | ||
+ | </ | ||
+ | Для версии mkfs.ext4 <= 1.42: | ||
+ | < | ||
+ | sudo mkfs.ext4 -L rootfs ${DISK}1 | ||
+ | </ | ||
+ | **Монтирование карты** | ||
+ | |||
+ | На большинстве операционных систем монтирование происходит автоматически, | ||
+ | < | ||
+ | sudo mkdir -p / | ||
+ | sudo mount ${DISK}1 / | ||
+ | </ | ||
+ | ====== Запись ядра и файловой системы ====== | ||
+ | Файл ядра и модулей получают выполнением инструкций на странице [[u3b-kernel|компиляции ядра]]. | ||
+ | |||
+ | После исполнения скрипта build_kernel.sh появится следующее сообщение: | ||
+ | < | ||
+ | ----------------------------- | ||
+ | Script Complete | ||
+ | eewiki.net: [user@localhost: | ||
+ | ----------------------------- | ||
+ | </ | ||
+ | Скопируйте в командную строку сообщение " | ||
+ | < | ||
+ | export kernel_version=4.X.Y-Z | ||
+ | </ | ||
+ | **Запись файловой системы** | ||
+ | < | ||
+ | sudo tar xfvp ./ | ||
+ | sync | ||
+ | sudo chown root:root / | ||
+ | sudo chmod 755 / | ||
+ | </ | ||
+ | **Запись файла ядра zImage** : | ||
+ | < | ||
+ | sudo cp -v ./ | ||
+ | </ | ||
+ | **Запись модулей ядра** | ||
+ | < | ||
+ | sudo tar xfv ./ | ||
+ | </ | ||
+ | **Опеределение версии ядра в переменной окружения uname_r** | ||
+ | < | ||
+ | sudo sh -c "echo ' | ||
+ | </ | ||
+ | **Запись бинарных файлов для дерева устройств** | ||
+ | < | ||
+ | sudo mkdir -p / | ||
+ | sudo tar xfv ./ | ||
+ | </ | ||
+ | **Исправьте fstab** | ||
+ | < | ||
+ | sudo sh -c "echo '/ | ||
+ | </ | ||
+ | **Включение сети** | ||
+ | |||
+ | Исправьте: | ||
+ | < | ||
+ | sudo nano / | ||
+ | </ | ||
+ | Добавьте строки: | ||
+ | < | ||
+ | auto lo | ||
+ | iface lo inet loopback | ||
+ | | ||
+ | auto eth0 | ||
+ | iface eth0 inet dhcp | ||
+ | </ | ||
+ | Исправьте: | ||
+ | < | ||
+ | sudo nano / | ||
+ | </ | ||
+ | Добавьте строки: | ||
+ | < | ||
+ | # BeagleBone: net device () | ||
+ | SUBSYSTEM==" | ||
+ | </ | ||
+ | **Запись файла uEnv.txt** | ||
+ | |||
+ | Создайте файл: | ||
+ | < | ||
+ | vi uEnv.txt | ||
+ | </ | ||
+ | Добавьте в него строки: | ||
+ | < | ||
+ | loadaddr=0x82000000 | ||
+ | fdtaddr=0x88000000 | ||
+ | rdaddr=0x88080000 | ||
+ | | ||
+ | initrd_high=0xffffffff | ||
+ | fdt_high=0xffffffff | ||
+ | | ||
+ | #for single partitions: | ||
+ | mmcroot=/ | ||
+ | | ||
+ | loadximage=load mmc 0:1 ${loadaddr} / | ||
+ | loadxfdt=load mmc 0:1 ${fdtaddr} / | ||
+ | loadxrd=load mmc 0:1 ${rdaddr} / | ||
+ | loaduEnvtxt=load mmc 0:1 ${loadaddr} / | ||
+ | loadall=run loaduEnvtxt; | ||
+ | | ||
+ | mmcargs=setenv bootargs console=tty0 console=${console} ${optargs} ${cape_disable} ${cape_enable} root=${mmcroot} rootfstype=${mmcrootfstype} ${cmdline} | ||
+ | | ||
+ | uenvcmd=run loadall; run mmcargs; bootz ${loadaddr} - ${fdtaddr}; | ||
+ | </ | ||
+ | Запишите файл на SD-карту: | ||
+ | < | ||
+ | sudo cp -v ./uEnv.txt / | ||
+ | </ | ||
+ | **Извлеките SD/microSD карту** | ||
+ | < | ||
+ | sync | ||
+ | sudo umount / | ||
+ | </ | ||
+ | ====== Подготовка eMMC для загрузки Linux ====== | ||
+ | ===== Запись загрузчика ===== | ||
+ | Для последующей записи загрузчика U-Boot на eMMC скопируйте файлы MLO/ | ||
+ | < | ||
+ | sudo mkdir -p / | ||
+ | sudo cp -v ./ | ||
+ | sudo cp -v ./ | ||
+ | </ | ||
+ | Для последующей работы необходимо загрузиться с SD/microSD и выполнять следующие действия, | ||
+ | ===== Запись U-Boot на eMMC ===== | ||
+ | Узнать имя устройства, | ||
+ | < | ||
+ | root@arm:~# lsblk | ||
+ | NAME | ||
+ | mmcblk1boot0 179: | ||
+ | mmcblk1boot1 179: | ||
+ | mmcblk0 | ||
+ | └─mmcblk0p1 | ||
+ | mmcblk1 | ||
+ | </ | ||
+ | В данном случае, | ||
+ | < | ||
+ | export DISK=/ | ||
+ | </ | ||
+ | **Очистка eMMC** | ||
+ | < | ||
+ | dd if=/ | ||
+ | </ | ||
+ | **Установка загрузчика** | ||
+ | < | ||
+ | dd if=/ | ||
+ | dd if=/ | ||
+ | </ | ||
+ | ===== Создание таблицы разделов на eMMC ===== | ||
+ | Проверка версии sfdisk: | ||
+ | < | ||
+ | sfdisk --version | ||
+ | </ | ||
+ | Для версии sfdisk >= 2.26.x: | ||
+ | < | ||
+ | sfdisk ${DISK} << | ||
+ | 4M,,L,* | ||
+ | __EOF__ | ||
+ | </ | ||
+ | Для версии sfdisk <= 2.25.x: | ||
+ | < | ||
+ | sfdisk --unit M ${DISK} << | ||
+ | 4,,L,* | ||
+ | __EOF__ | ||
+ | </ | ||
+ | ===== Форматирование разделов ===== | ||
+ | Проверка версии mkfs.ext4: | ||
+ | < | ||
+ | mkfs.ext4 -V | ||
+ | </ | ||
+ | Для версии mkfs.ext4 >= 1.43: | ||
+ | < | ||
+ | mkfs.ext4 -L rootfs -O ^metadata_csum, | ||
+ | </ | ||
+ | Для версии mkfs.ext4 <= 1.42: | ||
+ | < | ||
+ | mkfs.ext4 -L rootfs ${DISK}p1 | ||
+ | </ | ||
+ | **Монтирование карты** | ||
+ | |||
+ | На большинстве операционных систем монтирование происходит автоматически, | ||
+ | < | ||
+ | mkdir -p / | ||
+ | mount ${DISK}p1 / | ||
+ | </ | ||
+ | **Узнайте версию установленного ядра** | ||
+ | < | ||
+ | root@arm:~# uname -a | ||
+ | Linux arm 4.X.Y-Z #1 SMP Tue May 2 16:26:46 MSK 2017 armv7l GNU/Linux | ||
+ | </ | ||
+ | Скопируйте в командную строку сообщение " | ||
+ | < | ||
+ | export kernel_version=4.X.Y-Z | ||
+ | </ | ||
+ | **Скачайте и распакуйте архив с исходным кодом файловой системы** | ||
+ | < | ||
+ | wget -c https:// | ||
+ | apt-get install xz-utils | ||
+ | tar xf debian-8.7-minimal-armhf-2017-03-02.tar.xz | ||
+ | </ | ||
+ | ^ User ^ Password ^ | ||
+ | | root | root | | ||
+ | **Запись файловой системы** | ||
+ | < | ||
+ | tar xfvp ./ | ||
+ | sync | ||
+ | chown root:root / | ||
+ | chmod 755 / | ||
+ | </ | ||
+ | **Запись файла ядра zImage** : | ||
+ | < | ||
+ | cp -v / | ||
+ | </ | ||
+ | **Запись модулей ядра** | ||
+ | < | ||
+ | mkdir -p / | ||
+ | cp -r / | ||
+ | </ | ||
+ | **Запись файла uEnv.txt** | ||
+ | |||
+ | Создайте файл: | ||
+ | < | ||
+ | vi / | ||
+ | </ | ||
+ | Добавьте в него строки: | ||
+ | < | ||
+ | loadaddr=0x82000000 | ||
+ | fdtaddr=0x88000000 | ||
+ | rdaddr=0x88080000 | ||
+ | | ||
+ | initrd_high=0xffffffff | ||
+ | fdt_high=0xffffffff | ||
+ | | ||
+ | #for single partitions: | ||
+ | mmcroot=/ | ||
+ | | ||
+ | loadximage=load mmc 1:1 ${loadaddr} / | ||
+ | loadxfdt=load mmc 1:1 ${fdtaddr} / | ||
+ | loadxrd=load mmc 1:1 ${rdaddr} / | ||
+ | loaduEnvtxt=load mmc 1:1 ${loadaddr} / | ||
+ | loadall=run loaduEnvtxt; | ||
+ | | ||
+ | mmcargs=setenv bootargs console=tty0 console=${console} ${optargs} ${cape_disable} ${cape_enable} root=${mmcroot} rootfstype=${mmcrootfstype} ${cmdline} | ||
+ | | ||
+ | uenvcmd=run loadall; run mmcargs; bootz ${loadaddr} - ${fdtaddr}; | ||
+ | </ | ||
+ | **Опеределение версии ядра в переменной окружения uname_r** | ||
+ | < | ||
+ | sh -c "echo ' | ||
+ | </ | ||
+ | **Запись бинарных файлов для дерева устройств** | ||
+ | < | ||
+ | mkdir -p / | ||
+ | cp -r / | ||
+ | </ | ||
+ | **Исправьте fstab** | ||
+ | < | ||
+ | sh -c "echo '/ | ||
+ | </ | ||
+ | **Включение сети** | ||
+ | |||
+ | Исправьте: | ||
+ | < | ||
+ | nano / | ||
+ | </ | ||
+ | Добавьте строки: | ||
+ | < | ||
+ | auto lo | ||
+ | iface lo inet loopback | ||
+ | | ||
+ | auto eth0 | ||
+ | iface eth0 inet dhcp | ||
+ | </ | ||
+ | Исправьте: | ||
+ | < | ||
+ | nano / | ||
+ | </ | ||
+ | Добавьте строки: | ||
+ | < | ||
+ | # BeagleBone: net device () | ||
+ | SUBSYSTEM==" | ||
+ | </ | ||
+ | **Отмонтируйте eMMC** | ||
+ | < | ||
+ | sync | ||
+ | umount / | ||
+ | </ |
wiki/usomiq-sdcard.1494407745.txt.gz · Последнее изменение: 2017/05/10 12:15 (внешнее изменение)