×

Внимание

Форум находится в режиме только для чтения.

Микропроцессор NUC902. Buildroot. Настройка Linux Kernel. Компиляция.

3 года 10 мес. назад - 3 года 3 мес. назад #6380 от AEfimov
Конфигурация ядра.

Ядро Linux обладает возможностью конфигурации его функций и состава модулей. Пользователь может гибко настроить функционал ядра и периферию, исходя из своих конкретных задач. Далее мы опишем непосредственно процесс настройки.

В случае, если мы собираем ядро с поддержкой NAND-памяти, нам потребуется образ uImage - "загрузочная оболочка" образа, создаваемая утилитой mkimage, включенной в состав UBoot-Tools. uImage содержит в себе инструкции для загрузчика, позволяющие запустить zImage-образ, помещаемый в контейнер uImage. Образ uImage автоматически генерируется Buildroot в процессе выполнения make.

Конфигурация ядра производится непосредственно перед его компиляцией при помощи команды “sudo make linux-menuconfig” , выполняемой в корневой директории дистрибутива Buildroot :

Опишем способ конфигурации ядра с использованием NAND-flash, файловой системой YAFFS2.

Итак, заходим в директорию дистрибутива ядра Linux и запускаем в ней Terminal.
Далее необходимо “обнулить” конфигурационные файлы и загрузить стандартный конфигурационный файл для NUC90x:

# make distclean
# make nuc906_defconfig

Запускаем конфигуратор ядра:

# make menuconfig

Теперь мы имеем возможность конфигурации ядра под графической диалоговой оболочкой (см. рис. 1).



Для использования NAND-flash отключим стандартную RAM файл систему:

General setup --->
[ ] Initial RAM filesystem and RAM disk (initramfs/initrd) support

Далее необходимо включить функцию MTD NAND flash:

Device Drivers ---> 
	Generic Driver Options ---> 
		<*> Nuvoton NUC90X FMI function selection 
			Select FMI device to support (Support MTD NAND Flash) ---> 
	-*- Memory Technology Device (MTD) support ---> 
		<*> Caching block device access to MTD devices 
			-*- NAND Device Support ---> 
				-*- Nuvoton NUC90X MTD NAND ---> 
				NUC90X NAND Flash pin selection (Port C) --->

* Функция “Command line partition table parsing” должна быть включена если мы хотим форматировать NAND-Flash при помощи U-boot.

По умолчанию при первой загрузке системы память разбивается на три раздела:

/dev/mtdblock0, /dev/mtdblock1, /dev/mtdblock2

Первый блок содержит U-Boot, во втором находится ядро, третий предназначен для подключения файловой системы (в данном случае YAFFS2)
Если есть необходимость изменить параметры форматирования можно сделать это путем правки соответствующей строчки в config-файле "uboot/include/nuc90x_evb.h или исходнике ядра drivers/mtd/nand/nuc90x_nand.c".

Параметры запуска ядра:

Boot options ---> (noinitrd root=/dev/mtdblock2 rootfstype=yaffs2 rootflags=inband-tags console=ttyS0,115200n8 rdinit=/sbin/init mem=64M) Default kernel command string*

*вводим без кавычек нажав ENTER на соответствующей строке

Конфигурация файловой системы:

File systems --->
[*] Miscellaneous filesystems --->	 								
          <*>    yaffs2 file system support		 						
          <*>    Autoselect yaffs2 format	  	 				
          <*>   Enable yaffs2 xattr support

Так же включим поддержку LCD 800x480:

Device Drivers ---> 
	Graphics support ---> 
		<*> Support for frame buffer devices ---> 
			[*] NUC90X LCD framebuffer support 
				NUC90X LCD panel selection (800x480 5-Inch Color TFT LCD) --->
 				LCD source format (RGB888 support) ---> 
		Console display driver support ---> 
			<*> Framebuffer Console support

И тачскина:

Device Drivers --->
 [*] Input device support --->
 <*> Event interface
 <*> Input NUC90X ADC --->
             <*>Keypad support
             <*> Keypad wake-up support
             <*>Touchscreen support
             <*> Touchscreen wake-up support 
              (0) ADC Sample Counter

После того как мы настроили ядро посредством menuconfig, закрываем утилиту, сохранив настройки.

Теперь можно приступить непосредственно к компиляции. После ее окончания (как правило это достаточно длительный процесс, скорость которого напрямую зависит от производительности системы, а в случае с виртуальной машиной, сводится к объему выделенных для нее ресурсов) сгенерированные образы uImage, rootfs, u-boot можно найти в папке /home/user/NUC970_Buildroot-master/output/images.
Вложения:
Время создания страницы: 0.037 секунд
Работает на Kunena форум