×

Внимание

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

Контроллер Nuvoton NUC98R. Компиляция ядра Linux.

3 года 11 мес. назад - 2 года 7 мес. назад #6366 от AEfimov
Компиляция ядра.

Ядро Linux обладает возможностью конфигурации его функций и модулей. Пользователь может гибко настроить функционал ядра и периферию исходя из своих конкретных задач.
Конфигурация ядра производится непосредственно перед его компиляцией при помощи команды “make menuconfig” выполняемой в корневой директории дистрибутива ядра (/nuc980bsp/linux-4.4.x) :

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

Итак, запускаем Terminal и вводим следующие команды:

#cd /nuc980bsp/linux-4.4.x
#su (инициируем сессию root`a)
#export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/arm_linux_4.8/usr/bin:/nuc980bsp/uboot/tools
#make distclean
#make nuc980_defconfig

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

#make menuconfig

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




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

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

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

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

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



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

Generic Driver Options --->
     <*> Nuvoton NUC980 FMI function selection				
Select FMI device to support (Support MTD NAND Flash) --->
      -*- Memory Technology Device (MTD) support --->			
     <*>  Command line partition table parsing	*
     <*>  Caching block device access to MTD devices -*- NAND Device Support ---> 		
      -*- Nuvoton NUC980 MTD NAND 
* Функция “Command line partition table parsing” должна быть включена если мы хотим форматировать NAND-Flash при помощи командной строки ядра.

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

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

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

В нашем случае мы будем форматировать NAND при помощи переменных u-boot, которые зададим файлом env.txt.
Это файл который прошивается в отдельную область памяти и служит для хранения переменных загружаемых перед запуском ядра.
Данный способ представляется более гибким чем остальные, так как позволяет менять параметры форматирования (как и многие другие), не прибегая к повторной реконфигурации ядра или загрузчика, меняя лишь содержимое его самого.

Конфигурация файловой системы:
File systems --->
[*] Miscellaneous filesystems --->	 								
          <*>    yaffs2 file system support		 						
          <*>    Autoselect yaffs2 format	  	 				
          <*>    Enable yaffs2 xattr support


Теперь можно приступить непосредственно к компиляции ядра, для этого выполняем команду:
# make uImage

После успешной компиляции мы увидим следующее сообщение:


Файл образа 980UImage появится в корневой директории дистрибутива ядра.
Вложения:
Время создания страницы: 0.060 секунд
Работает на Kunena форум