UEnv.txt — различия между версиями

Материал из virt2real wiki
Перейти к: навигация, поиск
(Редактирование файла uEnv.txt)
Строка 34: Строка 34:
  
 
И перезагрузить Виртурилку. Для этого можно воспользоваться разделом "перезагрузка" (http://ip_address/?reboot)
 
И перезагрузить Виртурилку. Для этого можно воспользоваться разделом "перезагрузка" (http://ip_address/?reboot)
 
 
  
 +
 +
=== В случае использования NAND ===
 +
 +
В этом случае для хранения настроек загрузчика используется не отдельный файл, а определенный диапазон адресов NAND flash-памяти, отведенной под секцию загрузчика. Для записи и чтения используются две утилиты из комплекта uboot-tools - ''fw_printenv'' и ''fw_setentv''. Для корректной работы необходимо наличие файла [https://github.com/virt2real/v2r_buildroot/blob/master/board/virt2real/v1mass/rootfs-additions/etc/fw_env.config /etc/fw_env.config].
 +
 +
Для начала распечатаем все доступные переменные:
 +
[root@virt2real ~]# fw_printenv
 +
baudrate=115200
 +
bootargs=mem=99M rootwait root=ubi0:fs rw rootfstype=ubifs rootdelay=0 ubi.mtd=2,2048 davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=PAL davinci_display.cont2_bufsize=3145728  vpfe_capture.cont_bufoffset=3145728 vpfe_capture.cont_bufsize=6291456 video=davincifb:osd1=0x0x8:osd0=720x480x16,1350K@0,0 console=ttyS0,115200n8 dm365_imp.oper_mode=0 vpfe_capture.interface=1 coherent_pool=1M pwrled=on redled=none greenled=cpu0 wifi=on usbwifi=on lan0=on 1wire=10 1wirepullup=11 spi0=on ap=off uart1=off camera=ov2643
 +
bootcmd=nboot 0x80700000 0 0x00400000; bootm 0x80700000
 +
bootdelay=1
 +
bootfile="uImage"
 +
ethact=DaVinci-EMAC
 +
ethaddr="00:0C:0C:A0:02:b5"
 +
importbootenv=echo Importing environment from mmc ...; env import -t ${loadaddr} ${filesize}
 +
loadaddr=0x82000000
 +
loadbootenv=fatload mmc 0 ${loadaddr} uEnv.txt
 +
loaduimage=fatload mmc 0 ${loadaddr} uImage
 +
stderr=serial
 +
stdin=serial
 +
stdout=serial
 +
ver=U-Boot 2011.03-00000-g5940852-dirty (Feb 07 2014 - 12:54:13)
 +
 +
Как видим, параметры загрузки находятся в переменной bootargs, ee значение и будем изменять. Например, включим второй UART установкой uart1 в on:
 +
 +
[root@virt2real ~]# fw_setenv bootargs mem=99M rootwait root=ubi0:fs rw rootfstype=ubifs rootdelay=0 ubi.mtd=2,2048 davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=PAL  davinci_display.cont2_bufsize=3145728  vpfe_capture.cont_bufoffset=3145728 vpfe_capture.cont_bufsize=6291456 video=davincifb:osd1=0x0x8:osd0=720x480x16,1350K@0,0 console=ttyS0,115200n8 dm365_imp.oper_mode=0 vpfe_capture.interface=1 coherent_pool=1M pwrled=on redled=none greenled=cpu0 wifi=on usbwifi=on lan0=on 1wire=10 1wirepullup=11 spi0=on ap=off uart1=on camera=ov2643
 +
 +
[root@virt2real ~]# fw_printenv
 +
baudrate=115200
 +
bootcmd=nboot 0x80700000 0 0x00400000; bootm 0x80700000
 +
bootdelay=1
 +
bootfile="uImage"
 +
ethact=DaVinci-EMAC
 +
ethaddr="00:0C:0C:A0:02:b5"
 +
importbootenv=echo Importing environment from mmc ...; env import -t ${loadaddr} ${filesize}
 +
loadaddr=0x82000000
 +
loadbootenv=fatload mmc 0 ${loadaddr} uEnv.txt
 +
loaduimage=fatload mmc 0 ${loadaddr} uImage
 +
stderr=serial
 +
stdin=serial
 +
stdout=serial
 +
ver=U-Boot 2011.03-00000-g5940852-dirty (Feb 07 2014 - 12:54:13)
 +
bootargs=mem=99M rootwait root=ubi0:fs rw rootfstype=ubifs rootdelay=0 ubi.mtd=2,2048 davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=PAL davinci_display.cont2_bufsize=3145728 vpfe_capture.cont_bufoffset=3145728 vpfe_capture.cont_bufsize=6291456 video=davincifb:osd1=0x0x8:osd0=720x480x16,1350K@0,0 console=ttyS0,115200n8 dm365_imp.oper_mode=0 vpfe_capture.interface=1 coherent_pool=1M pwrled=on redled=none greenled=cpu0 wifi=on usbwifi=on lan0=on 1wire=10 1wirepullup=11 spi0=on ap=off uart1=on camera=ov2643
 +
 +
Как видим, все вполне себе записалось. Можем проверить при помощи перезагрузки.
 +
 +
Так же не лишним будет взглянуть на вспомогательное сообщение fw_setenv, из которого становится понятным, что можно использовать файлы для хранения переменных:
 +
[root@virt2real ~]# fw_setenv -h
 +
fw_printenv/fw_setenv, a command line interface to U-Boot environment
 +
 +
usage: fw_printenv [-n] [variable name]
 +
fw_setenv [variable name] [variable value]
 +
fw_setenv -s [ file ]
 +
fw_setenv -s - < [ file ]
 +
 +
The file passed as argument contains only pairs name / value
 +
Example:
 +
# Any line starting with # is treated as comment
 +
 +
      netdev        eth0
 +
      kernel_addr    400000
 +
      var1
 +
      var2          The quick brown fox jumps over the lazy dog
 +
 +
A variable without value will be dropped. It is possible
 +
to put any number of spaces between the fields, but any
 +
space inside the value is treated as part of the value itself.
  
 
== Описание параметров файла uEnv.txt ==
 
== Описание параметров файла uEnv.txt ==

Версия 00:23, 29 сентября 2014

Основные настройки Виртурилки вынесены в файл /boot/uEnv.txt

Содержание

Редактирование файла uEnv.txt

Этот файл находится в загрузочном разделе (с меткой "boot", FAT16).

На обычном компьютере

Для редактирования файла можно подключить microSD карточку к компьютеру с помощью кардридера, после чего в любимом текстовом редакторе открыть и отредактировать этот файл.

На Виртурилке

Надо примонтировать раздел

  mount /dev/mmcblk0p1 /mnt

Запустить редактор (например, vi)

  vi /mnt/uEnv.txt

Внести нужные изменения, сохранить файл. После чего отмонтировать раздел

  umount /mnt

И перезагрузить Виртурилку

  reboot -f


Через админку

В админке, в разделе Консоль (http://ip_addres/?console) надо примонтировать загрузочный раздел. Для этого надо ввести команду

  mount /dev/mmcblk0p1 /mnt

После чего с помощью файл-менеджера админки (http://ip_addres/?filemanager) надо перейти в каталог /mnt, выбрать файл uEnv.txt (кликнуть по нему), отредактировать и сохранить (кнопка "Сохранить" под окошком редактирования).

После этого в консоли админки отмонтировать загрузочный раздел

  umount /mnt

И перезагрузить Виртурилку. Для этого можно воспользоваться разделом "перезагрузка" (http://ip_address/?reboot)


В случае использования NAND

В этом случае для хранения настроек загрузчика используется не отдельный файл, а определенный диапазон адресов NAND flash-памяти, отведенной под секцию загрузчика. Для записи и чтения используются две утилиты из комплекта uboot-tools - fw_printenv и fw_setentv. Для корректной работы необходимо наличие файла /etc/fw_env.config.

Для начала распечатаем все доступные переменные:

[root@virt2real ~]# fw_printenv
baudrate=115200
bootargs=mem=99M rootwait root=ubi0:fs rw rootfstype=ubifs rootdelay=0 ubi.mtd=2,2048 davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=PAL davinci_display.cont2_bufsize=3145728  vpfe_capture.cont_bufoffset=3145728 vpfe_capture.cont_bufsize=6291456 video=davincifb:osd1=0x0x8:osd0=720x480x16,1350K@0,0 console=ttyS0,115200n8 dm365_imp.oper_mode=0 vpfe_capture.interface=1 coherent_pool=1M pwrled=on redled=none greenled=cpu0 wifi=on usbwifi=on lan0=on 1wire=10 1wirepullup=11 spi0=on ap=off uart1=off camera=ov2643
bootcmd=nboot 0x80700000 0 0x00400000; bootm 0x80700000
bootdelay=1
bootfile="uImage"
ethact=DaVinci-EMAC
ethaddr="00:0C:0C:A0:02:b5"
importbootenv=echo Importing environment from mmc ...; env import -t ${loadaddr} ${filesize}
loadaddr=0x82000000
loadbootenv=fatload mmc 0 ${loadaddr} uEnv.txt
loaduimage=fatload mmc 0 ${loadaddr} uImage
stderr=serial
stdin=serial
stdout=serial
ver=U-Boot 2011.03-00000-g5940852-dirty (Feb 07 2014 - 12:54:13)

Как видим, параметры загрузки находятся в переменной bootargs, ee значение и будем изменять. Например, включим второй UART установкой uart1 в on:

[root@virt2real ~]# fw_setenv bootargs mem=99M rootwait root=ubi0:fs rw rootfstype=ubifs rootdelay=0 ubi.mtd=2,2048 davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=PAL  davinci_display.cont2_bufsize=3145728  vpfe_capture.cont_bufoffset=3145728 vpfe_capture.cont_bufsize=6291456 video=davincifb:osd1=0x0x8:osd0=720x480x16,1350K@0,0 console=ttyS0,115200n8 dm365_imp.oper_mode=0 vpfe_capture.interface=1 coherent_pool=1M pwrled=on redled=none greenled=cpu0 wifi=on usbwifi=on lan0=on 1wire=10 1wirepullup=11 spi0=on ap=off uart1=on camera=ov2643

[root@virt2real ~]# fw_printenv
baudrate=115200
bootcmd=nboot 0x80700000 0 0x00400000; bootm 0x80700000
bootdelay=1
bootfile="uImage"
ethact=DaVinci-EMAC
ethaddr="00:0C:0C:A0:02:b5"
importbootenv=echo Importing environment from mmc ...; env import -t ${loadaddr} ${filesize}
loadaddr=0x82000000
loadbootenv=fatload mmc 0 ${loadaddr} uEnv.txt 
loaduimage=fatload mmc 0 ${loadaddr} uImage
stderr=serial
stdin=serial
stdout=serial
ver=U-Boot 2011.03-00000-g5940852-dirty (Feb 07 2014 - 12:54:13)
bootargs=mem=99M rootwait root=ubi0:fs rw rootfstype=ubifs rootdelay=0 ubi.mtd=2,2048 davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=PAL davinci_display.cont2_bufsize=3145728 vpfe_capture.cont_bufoffset=3145728 vpfe_capture.cont_bufsize=6291456 video=davincifb:osd1=0x0x8:osd0=720x480x16,1350K@0,0 console=ttyS0,115200n8 dm365_imp.oper_mode=0 vpfe_capture.interface=1 coherent_pool=1M pwrled=on redled=none greenled=cpu0 wifi=on usbwifi=on lan0=on 1wire=10 1wirepullup=11 spi0=on ap=off uart1=on camera=ov2643

Как видим, все вполне себе записалось. Можем проверить при помощи перезагрузки.

Так же не лишним будет взглянуть на вспомогательное сообщение fw_setenv, из которого становится понятным, что можно использовать файлы для хранения переменных:

[root@virt2real ~]# fw_setenv -h
fw_printenv/fw_setenv, a command line interface to U-Boot environment 

usage:	fw_printenv [-n] [variable name]
	fw_setenv [variable name] [variable value]
	fw_setenv -s [ file ]
	fw_setenv -s - < [ file ]

The file passed as argument contains only pairs name / value
Example:
# Any line starting with # is treated as comment

	      netdev         eth0
	      kernel_addr    400000
	      var1
	      var2          The quick brown fox jumps over the lazy dog

A variable without value will be dropped. It is possible
to put any number of spaces between the fields, but any
space inside the value is treated as part of the value itself.

Описание параметров файла uEnv.txt

pwrled

pwrled=on - включить красный светодиод при загрузке ядра

redled

redled=<триггер> - назначить красному светодиоду триггер

Варианты триггеров: none nand-disk mmc0 mmc1 timer oneshot heartbeat backlight gpio cpu0 rfkill0

greenled

greenled=<триггер> - назначить зелёному светодиоду триггер

Варианты триггеров: none nand-disk mmc0 mmc1 timer oneshot heartbeat backlight gpio cpu0 rfkill0

wifi

wifi=<on | off>  - Если wifi=on - инициализировать Wi-Fi модуль при загрузке.

usbwifi

usbwifi=<on | off>  - Если usbwifi=on - загружать драйвера для USB Wi-Fi свистков.

wifi_ssid

wifi_ssid=SSID  - Подставить в конфигурацию первой сети в файле /etc/wpa_supplicant.conf это название сети (SSID)

wifi_pass

wifi_pass=PASS  - Подставить в конфигурацию первой сети в файле /etc/wpa_supplicant.conf этот пароль от сети (PASS)

lan0

lan0=<on | off> - Если lan0=on - инициализировать сетевой контроллер LAN при загрузке.

lan1

lan1=<on | off> - Если lan1=on - инициализировать сетевой контроллер EMAC (Davinci LAN) при загрузке.

lan1hwaddr

lan1hwaddr=112233445566 - задать MAC-адрес сетевого контроллера EMAC (Davinci LAN) при загрузке. Если не указано - присваивается случайный MAC-адрес при каждой загрузке.

1wire

1wire=<номер_gpio> - подключить датчик 1-Wire на указанном GPIO

1wirepullup

1wirepullup=<номер_gpio> - использовать указанный GPIO как питание для датчика 1-Wire

ap

ap=<on | off> - режим точки доступа. Если ap=on - после загрузки, при включённом Wi-Fi, Виртурилка перейдёт в режим точки доступа

spi0

spi0=<on | off> - Если spi0=on - активировать шину SPI0 при загрузке

uart1

uart1=<on | off> - Если uart1=on - активировать UART1 при загрузке

camera

camera=<одна из предустановленных моделей камер>  - инициализировать указанную камеру при загрузке
Возможные варианты:
ov2643

console

console=ttyS0,115200n8 - установить параметры консоли (ttyS0, она же UART0)

quiet

quiet - не выводить сообщения ядра в консоль