Описание
http://out4.ru/download/openwrt-o4-nuc980-nano/usb-nu2.pngМы уже собирали OpenWRT для модуля O4-iMX287-NANO в прошлой статье и теперь пришло время запустить OpenWRT на модуле O4-NUC980-NANO с процессором NUC980 с архитектурой ARM926JS и частотой 300МГц. Данный процессор примечателен тем, что имеет встроенную память DDR2 объемом 64 МБайта. В качестве постоянной памяти модуль O4-NUC980-NANO имеет микросхему памяти SPI NAND объемом 128МБайт. Несмотря,на столь скромные по нынешним меркам частоты и объемы памяти OpenWRT этого вполне достаточно. Для архитектуры ARM9 написано огромное количество хорошего кода и для задач удаленного мониторнига параметров по низкоскоростным интерфейсам, таким как UART/I2C/SPI этого вполне достаточно. Чтобы получить данные с счетчика электроэнергии нет необходимости в графических ускорителях и гигабайтах памяти. А стоимость и ток потребления весьма существенны.
В этот раз мы соберем один из форков (ответвлений) OpenWRT под названием LEDE-Openwrt. В нем уже есть поддержка плат на основе процессора NUC980, но нет возможности сборки загрузчика u-boot. Поэтому загрузчик мы возьмем уже собранный системой buildroot.
git clone https://github.com/QQ466005858/NUC980-OpenWrt-LEDE.git
cd NUC980-OpenWrt-LEDE/
./scripts/feeds update -a
./scripts/feeds install -a
Теперь загрузим архив в котором мы подготовили некоторые файлы
wget http://out4.ru/download/openwrt-o4-nuc980-nano.tar.bz2
и распакуем его внутри папки с OpenWRT
tar xvjf openwrt-o4-nuc980-nano.tar.bz2
Запустим менюконфиг и выберем наш процессор
make menuconfig

В Target System выбираем
Nuvoton ARM9В Subtarget выбираем
nuc980 based boards
В Target Profile выбираем
nuc980Еще сразу зайдем и включим веб интерфейс LuCI -> Collections -> luci

Собранная файловая система нам нужна в формате образа ubi, поэтому отмечаем в Target Images


Выходим, сохранив конфигурацию и запускаем процесс сборки
make V=s
Через какое-то время ядро и файловая система будут собраны и доступны в
/NUC980-OpenWrt-LEDE/bin/targets/nuvoton/nuc980/
Из данной папки понадобятся два файла
1. Файл ядра
lede-nuvoton-nuc980-nuc980-iot-gateway-uImage2. Образ файловой системы
lede-nuvoton-nuc980-root-ubi.imgФайлы загрузчика u-boot
1.
u-boot-spl.bin (начальный загрузчик)
2.
u-boot.bin (загрузчик)
можно взять из
данного архива.
Копируем все эти файлы на флешку и несем к компьютеру с Windows. Для программирования плат на базе процессора NUC980 Nuvoton предоставляет утилиту NuWriter. Загрузить ее можно
здесь. И
набор драйверов, которые необходимо установить. Для программирования, устанавливаем с помощью переключателя выбора источника загрузки режим USB (11) и подключаем USB кабель к плату в порт USB0 (программирование осуществляется именно через данный порт!). Обязательно снимаем перемычку USBID, если она установлена! Также можно подключить консоль и запустить терминальную программу.
Можно не подключать блок питания, плата будет получать питание от USB интерфейса. Нажимаем кнопку сброс на плату, в консоли можно увидеть вывод сообщения внутренного загрузчика процессора NUC980

Теперь запускаем программу NuWriter.exe и выбираем наш процессор (NUC980DK61YC)

И нажимаем кнопку Continue. Даже если ее не нажимать, через 5 секунд программа сама запустится. В открывшемся окне программы нажимаем кнопку Re-Connect и если драйвера установлены правильно, появится надпись Device Connected

а в консоли можно увидеть сообщение

В выпадающем списке Choose type выбираем тип памяти SPI NAND

Первым делом очистим память нажав кнопку Erase

Подтверждаем, нажав Ok

Теперь все готово к записи. Пишем начальный загрузчик u-boot-spl.bin. Нажав иконку выбора файла указываем файл u-boot-spl.bin
Image Type -
Loader, Image execute address
0x200
И нажимаем кнопку Program. Теперь выбираем файл u-boot.bin меняем параметры на
Image Type -
Data, Image Start Offset
0x100000 и опять нажимаем Program

Аналогично записываем файл ядра
lede-nuvoton-nuc980-nuc980-iot-gateway-uImage с параметрами
Image Type -
Data, Image Start Offset
0x200000И файловую систему
lede-nuvoton-nuc980-root-ubi.img с параметрами
Image Type -
Data, Image Start Offset
0x1600000Слева, в таблице вы увидите 4 строки с названиями файлов и адресами

Вот адреса в виде таблицы:
| Имя файла | Image Type | Image Start Offset | Примечание |
| u-boot-spl.bin | Loader | 0x0 | Начальный загрузчик |
| u-boot.bin | Data | 0x100000 | Загрузчик |
lede-nuvoton-nuc980-nuc980-iot-gateway-uImage
| Data | 0x200000 | Собранное ядро Линукс |
lede-nuvoton-nuc980-root-ubi.img
| Data | 0x1600000 | Файловая система OpenWRT-LEDE |
После записи, нажимаете кнопку сброс. В консоли можно увидеть лог загрузки системы. Логин на вход root, пароля нет. Пароль можно сразу установить командой
passwd
NUC980 IBR 20180813
Boot from SPI-NAND
DDR-OK
4-bit
finish SPI dow▒c{
#S▒▒a▒ SPL load main U-Boot from SPI NAND Flash! (Jun 11 2020 2 1:25:58)
U-Boot 2016.11 (Jun 11 2020 - 21:25:53 +0300)
CPU: NUC980
Board: NUC980
DRAM: 64 MiB
NAND: NAND Flash not found !
NUC980 NAND CONTROLLER IS NOT SUPPORT THE PAGE SIZE. (0, 0)
0 MiB
SF: Detected W25N01GV with page size 2 KiB, erase size 4 KiB, total 128 MiB
SF: Detected W25N01GV with page size 2 KiB, erase size 4 KiB, total 128 MiB
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: emac
Warning: emac (eth0) using random MAC address - c2:14:77:5a:41:b5
Hit any key to stop autoboot: 0
SF: Detected W25N01GV with page size 2 KiB, erase size 4 KiB, total 128 MiB
device 0 offset 0x200000, size 0x760000
SF: 7733248 bytes @ 0x200000 Read: OK
## Booting kernel from Legacy Image at 00007fc0 ...
Image Name: OpenWrt ARM 4.4.194
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3248899 Bytes = 3.1 MiB
Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
XIP Kernel Image ... OK
Starting kernel ...
SF: Detected W25N01GV with page size 2 KiB, erase size 4 KiB, total 128 MiB
SF: Device▒[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.4.194 (builder@builder) (gcc version 5.4.0 (LEDE GCC 5.4.0 r0-f446e8e) ) #0 PREEMPT Sat May 9 15:23:54 2020
[ 0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=0005317f
[ 0.000000] CPU: VIVT data cache, VIVT instruction cache
[ 0.000000] Machine model: Nuvoton NUC980 IOT-GateWay Version: 0.1
[ 0.000000] Memory policy: Data cache writeback
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256
[ 0.000000] Kernel command line: console=ttyS0,115200 root=/dev/mtdblock2 rw rootfstype=ubifs ubi.mtd=2 root=ubi0:rootfs
[ 0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Memory: 57536K/65536K available (4690K kernel code, 306K rwdata, 1780K rodata, 184K init, 241K bss, 8000K reserved, 0K cma-reserved)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc : 0xc4800000 - 0xff800000 ( 944 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xc4000000 ( 64 MB)
[ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB)
[ 0.000000] .text : 0xc0008000 - 0xc0659f04 (6472 kB)
[ 0.000000] .init : 0xc065a000 - 0xc0688000 ( 184 kB)
[ 0.000000] .data : 0xc0688000 - 0xc06d4b6c ( 307 kB)
[ 0.000000] .bss : 0xc06d4b6c - 0xc071125c ( 242 kB)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] Preemptible hierarchical RCU implementation.
[ 0.000000] Build-time adjustment of leaf fanout to 32.
[ 0.000000] NR_IRQS:545
[ 0.000000] clocksource: nuc980-timer5: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 62215505635 ns
[ 0.000033] sched_clock: 24 bits at 120kHz, resolution 8333ns, wraps every 69905062489ns
[ 0.000741] Console: colour dummy device 80x30
[ 0.188099] console [ttyS0] enabled
[ 0.191641] Calibrating delay loop... 148.88 BogoMIPS (lpj=744448)
[ 0.262791] pid_max: default: 32768 minimum: 301
[ 0.267649] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.274333] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.283466] CPU: Testing write buffer coherency: ok
[ 0.289408] Setting up static identity map for 0x8400 - 0x843c
[ 0.339758] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.350749] futex hash table entries: 256 (order: -1, 3072 bytes)
[ 0.357316] pinctrl core: initialized pinctrl subsystem
[ 0.364716] NET: Registered protocol family 16
[ 0.371558] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.385283] <DT> nuc980_dt_device_init +
[ 0.446858] <DT> nuc980_dt_device_init -
[ 0.453983] pinctrl-nuc980 apb:pinctrl@b0000000: initialized NUC980 pinctrl driver
[ 0.597741] SCSI subsystem initialized
[ 0.609491] usbcore: registered new interface driver usbfs
[ 0.617058] usbcore: registered new interface driver hub
[ 0.623983] usbcore: registered new device driver usb
[ 0.641441] clocksource: Switched to clocksource nuc980-timer5
[ 0.733299] NET: Registered protocol family 2
[ 0.740441] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.748366] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.755216] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.762024] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.767883] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.775074] NET: Registered protocol family 1
[ 0.780566] RPC: Registered named UNIX socket transport module.
[ 0.786683] RPC: Registered udp transport module.
[ 0.791341] RPC: Registered tcp transport module.
[ 0.796133] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.803341] NetWinder Floating Point Emulator V0.97 (double precision)
[ 0.815966] Crashlog allocated RAM at address 0x3f00000
[ 0.900099] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.984749] io scheduler noop registered (default)
[ 0.992041] nuc980_gpio_probe - pdev = b0004000.gpio
[ 0.999591] nuc980_dma_probe - pdev = b0008000.dma
[ 1.026283] nuc980-dma b0008000.dma: NUC980 DMA ready
[ 1.570099] b0070000.serial: ttyS0 at I/O 0xf0070000 (irq = 36, base_baud = 750000) is a NUC980
[ 1.582624] b0071000.serial: ttyS1 at I/O 0xf0071000 (irq = 37, base_baud = 9375000) is a NUC980
[ 1.593924] b0072000.serial: ttyS2 at I/O 0xf0072000 (irq = 38, base_baud = 9375000) is a NUC980
[ 1.605141] b0074000.serial: ttyS4 at I/O 0xf0074000 (irq = 39, base_baud = 9375000) is a NUC980
[ 1.616416] b0075000.serial: ttyS5 at I/O 0xf0075000 (irq = 44, base_baud = 9375000) is a NUC980
[ 1.627691] b0076000.serial: ttyS6 at I/O 0xf0076000 (irq = 40, base_baud = 9375000) is a NUC980
[ 1.638933] b0079000.serial: ttyS9 at I/O 0xf0079000 (irq = 46, base_baud = 9375000) is a NUC980
[ 1.657866] RX nuc980_qspi0_probe: dma0chan0 module removed
[ 1.664174] TX nuc980_qspi0_probe: dma0chan1 module removed
[ 1.686816] vcan: Virtual CAN interface driver
[ 1.691274] CAN device driver interface
[ 1.700249] nuc980-can0 b00a0000.can: nuc980_can0_platform device registered (regs=f00a0000, irq=58)
[ 1.715891] nuc980-can1 b00a1000.can: nuc980_can1_platform device registered (regs=f00a1000, irq=59)
[ 1.735683] libphy: nuc980_rmii0: probed
[ 1.753899] libphy: nuc980_rmii1: probed
[ 1.762933] PPP generic driver version 2.4.2
[ 1.770091] usbcore: registered new interface driver r8152
[ 1.777608] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 1.785774] nuc980-ehci b0015000.usbh_ehci: Nuvoton NUC980 EHCI Host Controller
[ 1.793674] nuc980-ehci b0015000.usbh_ehci: new USB bus registered, assigned bus number 1
[ 1.802849] nuc980-ehci b0015000.usbh_ehci: irq 23, io mem 0xb0015000
[ 1.821666] nuc980-ehci b0015000.usbh_ehci: USB 2.0 started, EHCI 0.95
[ 1.828924] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 1.835824] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1.843116] usb usb1: Product: Nuvoton NUC980 EHCI Host Controller
[ 1.849249] usb usb1: Manufacturer: Linux 4.4.194 ehci_hcd
[ 1.854808] usb usb1: SerialNumber: b0015000.usbh_ehci
[ 1.862008] pinctrl-nuc980 apb:pinctrl@b0000000: pin PE10 already requested by b0015000.usbh_ehci; cannot claim for usb1
[ 1.873349] pinctrl-nuc980 apb:pinctrl@b0000000: pin-74 (usb1) status -22
[ 1.880133] pinctrl-nuc980 apb:pinctrl@b0000000: could not request pin 74 (PE10) from group usbh-ppwr-ovc on device apb:pinctrl@b0000000
[ 1.892674] usb usb1: Error applying setting, reverse things back
[ 1.900099] hub 1-0:1.0: USB hub found
[ 1.904541] hub 1-0:1.0: 2 ports detected
[ 1.910608] ehci-platform: EHCI generic platform driver
[ 1.917399] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 1.924958] usb_hcd_nuc980_probe, id = -1, name: b0017000.usbh_ohci, 0
[ 1.932008] nuc980-ohci b0017000.usbh_ohci: Nuvoton NUC980 OHCI Host Controller
[ 1.939408] nuc980-ohci b0017000.usbh_ohci: new USB bus registered, assigned bus number 2
[ 1.948083] nuc980-ohci b0017000.usbh_ohci: irq 24, io mem 0xb0017000
[ 2.014283] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
[ 2.021049] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 2.028383] usb usb2: Product: Nuvoton NUC980 OHCI Host Controller
[ 2.034633] usb usb2: Manufacturer: Linux 4.4.194 ohci_hcd
[ 2.040074] usb usb2: SerialNumber: nuc980-ohci
[ 2.047624] hub 2-0:1.0: USB hub found
[ 2.052241] hub 2-0:1.0: 8 ports detected
[ 2.059549] ohci-platform: OHCI generic platform driver
[ 2.066966] usbcore: registered new interface driver cdc_acm
[ 2.073408] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[ 2.082591] usbcore: registered new interface driver cdc_wdm
[ 2.089899] usbcore: registered new interface driver usb-storage
[ 2.097691] usbcore: registered new interface driver usbserial
[ 2.105191] usbcore: registered new interface driver cp210x
[ 2.112158] usbserial: USB Serial support registered for cp210x
[ 2.118866] usbcore: registered new interface driver option
[ 2.125599] usbserial: USB Serial support registered for GSM modem (1-port)
[ 2.134983] usbcore: registered new interface driver pl2303
[ 2.142008] usbserial: USB Serial support registered for pl2303
[ 2.156958] usbip_core: USB/IP Core v1.0.0
[ 2.165091] nuc980-i2c2 b0082000.i2c2: i2c-2: nuc980 I2C adapter
[ 2.173466] sdhci: Secure Digital Host Controller Interface driver
[ 2.179608] sdhci: Copyright(c) Pierre Ossman
[ 2.186716] nuc980-fmi b0019000.fmi: unable to reserve pin
[ 2.239549] do_sha - sha last has no data!
[ 2.243908] alg: hash: Test 1 failed for nuc980-sha1
[ 2.248841] 00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 2.255474] 00000010: 00 00 00 00
[ 2.259491] do_sha - sha last has no data!
[ 2.264099] alg: hash: Test 1 failed for nuc980-sha224
[ 2.269208] 00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 2.275908] 00000010: 00 00 00 00 00 00 00 00 00 00 00 00
[ 2.282258] do_sha - sha last has no data!
[ 2.286333] alg: hash: Test 1 failed for nuc980-sha256
[ 2.291716] 00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 2.298116] 00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 2.305466] do_sha - sha last has no data!
[ 2.309549] alg: hash: Test 1 failed for nuc980-sha384
[ 2.314958] 00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 2.321366] 00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 2.328008] 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 2.335374] do_sha - sha last has no data!
[ 2.339449] alg: hash: Test 1 failed for nuc980-sha512
[ 2.344824] 00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 2.351224] 00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 2.357874] 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 2.364533] 00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 2.371841] alg: No test for hmac-sha1 (nuc980-hmac-sha1)
[ 2.377841] alg: No test for hmac-sha224 (nuc980-hmac-sha224)
[ 2.384458] alg: No test for hmac-sha256 (nuc980-hmac-sha256)
[ 2.390808] alg: No test for hmac-sha384 (nuc980-hmac-sha384)
[ 2.397408] alg: No test for hmac-sha512 (nuc980-hmac-sha512)
[ 2.403516] NUC980 Crypto engine enabled.
[ 2.426674] usbcore: registered new interface driver usbhid
[ 2.433108] usbhid: USB HID core driver
[ 2.448508] nand: device found, Manufacturer ID: 0xef, Chip ID: 0xaa
[ 2.455324] nand: Winbond W25N01GV 1G 3.3V
[ 2.459391] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[ 2.467199] nand: WARNING: spi0.0: the ECC used on your system is too weak compared to the one required by the NAND chip
[ 2.478241] Scanning device for bad blocks
[ 2.891858] 3 ofpart partitions found on MTD device nand0
[ 2.897216] Creating 3 MTD partitions on "nand0":
[ 2.902183] 0x000000000000-0x000000200000 : "u-boot"
[ 2.913283] 0x000000200000-0x000001600000 : "kernel"
[ 2.924608] 0x000001600000-0x000008000000 : "ubi"
[ 2.938183] fbtft_of_value: buswidth = 8
[ 2.943216] fbtft_of_value: debug = 1
[ 2.946849] fbtft_of_value: rotate = 90
[ 2.950658] fbtft_of_value: fps = 30
[ 2.955899] Please Check GPIOD12's multi-function = 0x1
[ 2.961216] fb_ili9341 spi1.0: gpio_request_one('reset-gpios'=108) failed with -22
[ 2.969433] fb_ili9341: probe of spi1.0 failed with error -22
[ 2.987724] NET: Registered protocol family 10
[ 2.997766] NET: Registered protocol family 17
[ 3.003116] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.
[ 3.016199] can: controller area network core (rev 20120528 abi 9)
[ 3.022933] NET: Registered protocol family 29
[ 3.027549] can: raw protocol (rev 20120528)
[ 3.032058] can: netlink gateway (rev 20130117) max_hops=1
[ 3.038841] 8021q: 802.1Q VLAN Support v1.8
[ 3.043608] lib80211: common routines for IEEE802.11 drivers
[ 3.060216] ubi0: attaching mtd2
[ 3.848199] ubi0: scanning is finished
[ 3.920283] gluebi (pid 1): gluebi_resized: got update notification for unknown UBI device 0 volume 0
[ 3.929616] ubi0: volume 0 ("rootfs") re-sized from 37 to 824 LEBs
[ 3.938958] ubi0: attached mtd2 (name "ubi", size 106 MiB)
[ 3.944683] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[ 3.951733] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[ 3.958474] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[ 3.965833] ubi0: good PEBs: 848, bad PEBs: 0, corrupted PEBs: 0
[ 3.972041] ubi0: user volume: 1, internal volumes: 1, max. volumes count: 128
[ 3.979224] ubi0: max/mean erase counter: 1/0, WL threshold: 4096, image sequence number: 703472577
[ 3.988441] ubi0: available PEBs: 0, total reserved PEBs: 848, PEBs reserved for bad PEB handling: 20
[ 3.997766] ubi0: background thread "ubi_bgt0d" started, PID 1075
[ 4.010058] mtd: device 3 (rootfs) set to be root filesystem
[ 4.116716] UBIFS (ubi0:0): background thread "ubifs_bgt0_0" started, PID 1083
[ 4.245624] UBIFS (ubi0:0): start fixing up free space
[ 4.801658] UBIFS (ubi0:0): free space fixup complete
[ 4.875966] UBIFS (ubi0:0): UBIFS: mounted UBI device 0, volume 0, name "rootfs"
[ 4.891808] UBIFS (ubi0:0): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
[ 4.915874] UBIFS (ubi0:0): FS size: 103231488 bytes (98 MiB, 813 LEBs), journal size 9023488 bytes (8 MiB, 72 LEBs)
[ 4.941383] UBIFS (ubi0:0): reserved for root: 0 bytes (0 KiB)
[ 4.955549] UBIFS (ubi0:0): media format: w4/r0 (latest is w4/r0), UUID BBC3303C-DAD8-45CB-9634-BE9F2F6E4932, small LPT model
[ 4.997641] VFS: Mounted root (ubifs filesystem) on device 0:12.
[ 5.014649] Freeing unused kernel memory: 184K
[ 6.419566] init: Console is alive
[ 7.199608] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[ 7.449041] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[ 7.483541] init: - preinit -
[ 8.678991] random: jshn: uninitialized urandom read (4 bytes read, 100 bits of entropy available)
[ 8.821441] random: jshn: uninitialized urandom read (4 bytes read, 100 bits of entropy available)
[ 8.982849] random: jshn: uninitialized urandom read (4 bytes read, 101 bits of entropy available)
[ 9.105591] random: jshn: uninitialized urandom read (4 bytes read, 101 bits of entropy available)
[ 9.242991] random: jshn: uninitialized urandom read (4 bytes read, 101 bits of entropy available)
[ 9.424799] nuc980-emac0 b0012000.emac0: eth0 is OPENED
[ 9.430783] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 9.532908] random: procd: uninitialized urandom read (4 bytes read, 103 bits of entropy available)
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[ 12.983466] mount_root: mounting /dev/root
[ 13.010666] urandom-seed: Seed file not found (/etc/urandom.seed)
[ 13.153399] procd: - early -
[ 15.736924] procd: - ubus -
[ 15.934349] random: ubusd: uninitialized urandom read (4 bytes read, 116 bits of entropy available)
[ 15.947374] random: ubusd: uninitialized urandom read (4 bytes read, 116 bits of entropy available)
[ 15.956849] random: ubusd: uninitialized urandom read (4 bytes read, 116 bits of entropy available)
[ 15.969966] random: ubusd: uninitialized urandom read (4 bytes read, 116 bits of entropy available)
[ 15.983683] procd: - init -
Please press Enter to activate this console.
[ 16.752966] kmodloader: loading kernel modules from /etc/modules.d/*
[ 16.783791] ip6_tables: (C) 2000-2006 Netfilter Core Team
[ 16.833349] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 16.885091] nf_conntrack version 0.5.0 (901 buckets, 3604 max)
[ 16.947708] NET: Registered protocol family 24
[ 16.998949] xt_time: kernel timezone is -0000
[ 17.038583] kmodloader: done loading kernel modules from /etc/modules.d/*
[ 18.581658] random: nonblocking pool is initialized
[ 30.274799] nuc980-emac0 b0012000.emac0: eth0 is OPENED
[ 30.307666] device eth0 entered promiscuous mode
[ 30.350866] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[ 30.622158] nuc980-emac1 b0022000.emac1: eth1 is OPENED
[ 30.628158] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
LEDE login: root
BusyBox v1.25.1 () built-in shell (ash)
_________
/ /\ _ ___ ___ ___
/ LE / \ | | | __| \| __|
/ DE / \ | |__| _|| |) | _|
/________/ LE \ |____|___|___/|___| lede-project.org
\ \ DE /
\ LE \ / -----------------------------------------------------------
\ DE \ / Reboot (17.01-SNAPSHOT, r0-f446e8e)
\________\/ -----------------------------------------------------------
=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------
root@LEDE:~#
Сейчас система настроена на получения IP адреса по DHCP. Командой ifconfig можно посмотреть полученные адреса для обоих интерфейсов

И набрав в браузере адрес, проверяем веб интерфейс

как видите, Люси намекает что надо бы установить пароль

Пару слов про загрузчик u-boot. Первоначально, мы установили его в систему и она его собирала, но он получался мягко говоря неработоспособный. Судя по логам ошибок не хватало каких-то ключей при компиляции. Разбираться желания не было, поскольку рядом стояла система сборки Buildroot, которая успешно его компилировала, решили отложить решение данного вопроса на будущее.
Команды которые вам пригодятся при настройке системы:
1. Вход в меню выбора необходимых пакетов для сборки
make menuconfig
2. Вход в меню конфигурирования ядра (выбор драйверов и т.п)
make kernel_menuconfig
Папка в которой находится собираемое ядро
/NUC980-OpenWrt-LEDE/build_dir/target-arm_arm926ej-s_musl-1.1.16_eabi$
dts файл платы, котором описана периферия модуля
/NUC980-OpenWrt-LEDE/target/linux/nuvoton/dts$
Как вы заметили при программировании модуля, здесь нет dtb файла. Потому что он цепляется прямо к файлу ядра uImage и получается объединенный файл (uImage + dtb).
Полезная информация по данному процессору в формате pdf
NUC980 Linux 4.4 BSP User ManualNUC980 U-Boot User ManualNUC980 NuWriter User ManualNUC980 Programming GuideNUC980 Datasheet