본문 바로가기
컴퓨터.전자기기

Poplar 96Board Linux 4.13 부팅 성공!

by 도정진 ㅋㅋ잠자 2017. 9. 23.
728x90

안녕하세요. 도정진입니다.


이번에 poplar 보드의 공식 가이드 대로 빌드를 진행하여 부팅에 성공 하였습니다.


Poplar 보드는 아래와 같이 생긴 제품입니다.



실제로 이 제품은 Linaro 에서 지원을 받고 있는 것으로 알고 있으며 U5PVR 과 동일한 CPU 를 채택한 개발 보드 입니다.

U5PVR과 다르게 DDR3 1GB 램과 8GB EMMC 를 탑재하고 있습니다.




상세한 가이드는 없습니다. 아래 링크를 참고해 주세요.





1. 빌드 가이드


되지도 않는 영어를 힘들게 쓰면서 포럼에 질문글을 올렸습니다. danielt 님께 무한의 감사를 드립니다.


https://github.com/Linaro/poplar-tools/blob/latest/build_instructions.md


https://discuss.96boards.org/t/build-with-poplar-source-but-not-work/2893/13


제가 빌드할 때 사용했던 파일이나 빌드 결과물은 아래의 링크에 모두 있습니다.


http://download.djjproject.com/poplar/


USB 부팅의 경우 아래의 파일을 사용해 주시면 되겠습니다.


http://download.djjproject.com/poplar/poplar-usbstick-hub-power.img





2. 설치 가이드


실제로는 USB 에 이미지를 담아서 U Boot 모드에서 EMMC 로 쓰기를 통해 설치하도록 되어 있습니다만, 일단 저는 커널단에 USB 전류 문제가 있어서 패치를 하여 USB 를 통해 구동하는 방법을 먼저 시도해 보았습니다.


USB 부팅을 하기 위해서는 보드에 USB_BOOT 버튼을 누른 상태로 전원을 넣으시면 됩니다.


따로 시리얼 케이블은 필요가 없으며 전방에 Micro 5PIN 포트와 컴퓨터랑 연결하면 시리얼로 접근이 가능합니다. (귀찮게 납땜은 왜 했지 ㅠㅠ)



일주일 내내 시도를 했는데요. 작동이 되지 않아서 ㅠㅠ 


불은 무한정 깜박이지만 아래 사진은 부팅이 되지 않는 상태입니다.







3. 부팅 로그 및 간단 사용


데비안 9 / arm64 / Kernel 4.13 


으로 동작을 합니다. 실제로 화면 출력이 나가지 않는 것 같은데요. 테스트를 해봐야 할것 같습니다. 아직 4.13 커널에 기능이 모두 들어가 있지 않은 느낌입니다.


일단은 USB / 이더넷 정도는 동작을 합니다.


Bootrom start

Boot Media: eMMC

Decrypt auxiliary code ...OK


lsadc voltage min: 000000FE, max: 000000FF, aver: 000000FE, index: 00000000


Entry boot auxiliary code


Auxiliary code - v1.00

DDR code - V1.1.2 20160205

Build: Mar 24 2016 - 17:09:44


Reg Version:  v134

Reg Time:     2016/03/18 09:44:55

Reg Name:     hi3798cv2dmb_hi3798cv200_ddr3_2gbyte_8bitx4_4layers.reg


Boot auxiliary code success

Bootrom success


LOADER:  Switched to aarch64 mode

LOADER:  Entering ARM TRUSTED FIRMWARE

LOADER:  CPU0 executes at 0x0000e000


INFO:    BL1: 0x16000 - 0x1c000 [size = 24576]

NOTICE:  Booting Trusted Firmware

NOTICE:  BL1: v1.4(debug):bdbc6a6

NOTICE:  BL1: Built : 22:27:35, Sep 17 2017

INFO:    BL1: RAM 0x16000 - 0x1c000

INFO:    BL1: cortex_a53: errata workaround for 835769 was applied

INFO:    BL1: cortex_a53: errata workaround for 843419 was applied

INFO:    BL1: cortex_a53: errata workaround for 855873 was applied

INFO:    BL1: Loading BL2

INFO:    Loading image id=1 at address 0x1e000

INFO:    Image id=1 loaded at address 0x1e000, size = 0x4008

NOTICE:  BL1: Booting BL2

INFO:    Entry point address = 0x1e000

INFO:    SPSR = 0x3c5

NOTICE:  BL2: v1.4(debug):bdbc6a6

NOTICE:  BL2: Built : 22:27:38, Sep 17 2017

INFO:    BL2: Loading BL31

INFO:    Loading image id=3 at address 0x2a000

INFO:    Image id=3 loaded at address 0x2a000, size = 0x6020

INFO:    BL2: Loading BL33

INFO:    Loading image id=5 at address 0x37000000

INFO:    Image id=5 loaded at address 0x37000000, size = 0x5c0bd

NOTICE:  BL1: Booting BL31

INFO:    Entry point address = 0x2a000

INFO:    SPSR = 0x3cd

INFO:    Boot BL33 from 0x37000000 for 377021 Bytes

NOTICE:  BL31: v1.4(debug):bdbc6a6

NOTICE:  BL31: Built : 22:27:42, Sep 17 2017

INFO:    ARM GICv2 driver initialized

INFO:    BL31: Initializing runtime services

INFO:    BL31: cortex_a53: errata workaround for 835769 was applied

INFO:    BL31: cortex_a53: errata workaround for 843419 was applied

INFO:    BL31: cortex_a53: errata workaround for 855873 was applied

INFO:    BL31: Preparing for EL3 exit to normal world

INFO:    Entry point address = 0x37000000

INFO:    SPSR = 0x3c9



U-Boot 2017.09-rc4-gd9afcaf-dirty (Sep 17 2017 - 22:21:50 +0900)poplar


Model: HiSilicon Poplar Development Board

BOARD: Hisilicon HI3798cv200 Poplar

DRAM:  1023.5 MiB

MMC:   Hisilicon DWMMC: 0

*** Warning - bad CRC, using default environment


In:    serial_pl01x

Out:   serial_pl01x

Err:   serial_pl01x

Net:   Net:      configured

No such device: mdio0

No such device: mdio0

No such device: mdio1

gmac1

Warning: gmac1 (eth0) using random MAC address - f6:35:e3:87:88:7c


Hit any key to stop autoboot:  0

starting USB...

USB0:   USB EHCI 1.00

scanning bus 0 for devices... 3 USB Device(s) found

       scanning usb for storage devices... 1 Storage Device(s) found

       scanning usb for ethernet devices... 0 Ethernet Device(s) found


Device 0: Vendor: UFD 2.0  Rev: 1100 Prod: Silicon-Power8G

            Type: Removable Hard Disk

            Capacity: 7681.0 MB = 7.5 GB (15730688 x 512)

... is now current device

Scanning usb 0:1...

Found /extlinux/extlinux.conf

Retrieving file: /extlinux/extlinux.conf

reading /extlinux/extlinux.conf

136 bytes read in 22 ms (5.9 KiB/s)

1:      Debian

Retrieving file: /extlinux/../Image

reading /extlinux/../Image

16548352 bytes read in 1220 ms (12.9 MiB/s)

append: loglevel=4 root=/dev/sda2 rw rootwait

Retrieving file: /extlinux/../hi3798cv200-poplar.dtb

reading /extlinux/../hi3798cv200-poplar.dtb

10233 bytes read in 38 ms (262.7 KiB/s)

## Flattened Device Tree blob at 32200000

   Booting using the fdt blob at 0x32200000

device_remove: Device 'ehci@9890000' failed to remove, but children are gone

   Loading Device Tree to 000000003df3d000, end 000000003df427f8 ... OK


Starting kernel ...


[    0.134443] OF: amba_device_add() failed (-19) for /soc@f0000000/spi@8b1a000

[    0.151062] dmi: Firmware registration failed.

[    2.509102] sd 0:0:0:0: [sda] No Caching mode page found

[    2.514428] sd 0:0:0:0: [sda] Assuming drive cache: write through

[    2.545479] EXT4-fs (sda2): couldn't mount as ext3 due to feature incompatibilities


Welcome to Debian GNU/Linux 9 (stretch)!


NetworkManager-wait-online.service: Cannot add dependency job, ignoring: Unit NetworkManager-wait-online.service is masked.

[  OK  ] Created slice User and Session Slice.

[  OK  ] Listening on Journal Audit Socket.

[  OK  ] Listening on /dev/initctl Compatibility Named Pipe.

[  OK  ] Listening on udev Control Socket.

[  OK  ] Listening on Network Service Netlink Socket.

[  OK  ] Listening on Journal Socket (/dev/log).

[  OK  ] Listening on udev Kernel Socket.

[  OK  ] Created slice System Slice.

         Mounting POSIX Message Queue File System...

[  OK  ] Created slice system-serial\x2dgetty.slice.

[  OK  ] Created slice system-getty.slice.

[  OK  ] Started Forward Password Requests to Wall Directory Watch.

[  OK  ] Reached target Remote File Systems.

[  OK  ] Listening on Syslog Socket.

[  OK  ] Started Dispatch Password Requests to Console Directory Watch.

[  OK  ] Reached target Encrypted Volumes.

         Mounting Huge Pages File System...

         Mounting Debug File System...

[  OK  ] Reached target Swap.

[  OK  ] Reached target Slices.

[  OK  ] Listening on Journal Socket.

         Starting Nameserver information manager...

         Starting Set the console keyboard layout...

         Starting Journal Service...

         Starting Remount Root and Kernel File Systems...

         Starting Create list of required st…ce nodes for the current kernel...

         Starting Load Kernel Modules...

[  OK  ] Started Create list of required sta…vice nodes for the current kernel.

         Starting Create Static Device Nodes in /dev...

[  OK  ] Started Journal Service.

[  OK  ] Started Load Kernel Modules.

         Starting Apply Kernel Variables...

         Mounting Configuration File System...

[  OK  ] Started Apply Kernel Variables.

[  OK  ] Mounted Huge Pages File System.

[  OK  ] Mounted POSIX Message Queue File System.

[  OK  ] Mounted Debug File System.

[  OK  ] Mounted Configuration File System.

[  OK  ] Started Remount Root and Kernel File Systems.

[  OK  ] Started Create Static Device Nodes in /dev.

[  OK  ] Started Nameserver information manager.

         Starting udev Kernel Device Manager...

         Starting Flush Journal to Persistent Storage...

         Starting udev Coldplug all Devices...

         Starting Load/Save Random Seed...

[  OK  ] Started Set the console keyboard layout.

[  OK  ] Started Flush Journal to Persistent Storage.

[  OK  ] Reached target Local File Systems (Pre).

[  OK  ] Started Load/Save Random Seed.

[  OK  ] Started udev Coldplug all Devices.

[  OK  ] Started udev Kernel Device Manager.

         Starting Network Service...

[  OK  ] Started Network Service.

[  OK  ] Found device /dev/ttyAMA0.

[  OK  ] Found device Silicon-Power8G BOOT.

         Mounting /boot...

[  OK  ] Mounted /boot.

[  OK  ] Reached target Local File Systems.

         Starting Raise network interfaces...

         Starting Set console font and keymap...

         Starting Create Volatile Files and Directories...

[  OK  ] Started Set console font and keymap.

[  OK  ] Started Create Volatile Files and Directories.

         Starting Update UTMP about System Boot/Shutdown...

         Starting Network Time Synchronization...

[  OK  ] Started Update UTMP about System Boot/Shutdown.

[  OK  ] Started Raise network interfaces.

[  OK  ] Started Network Time Synchronization.

[  OK  ] Reached target System Time Synchronized.

[  OK  ] Reached target System Initialization.

[  OK  ] Listening on ACPID Listen Socket.

[  OK  ] Started ACPI Events Check.

[  OK  ] Reached target Paths.

[  OK  ] Listening on OpenBSD Secure Shell server socket.

[  OK  ] Started Daily Cleanup of Temporary Directories.

[  OK  ] Listening on D-Bus System Message Bus Socket.

[  OK  ] Reached target Sockets.

[  OK  ] Reached target Basic System.

         Starting Restore /etc/resolv.conf i…fore the ppp link was shut down...

         Starting Login Service...

[  OK  ] Started ACPI event daemon.

         Starting Provide limited super user privileges to specific users...

         Starting RealtimeKit Scheduling Policy Service...

[  OK  ] Started D-Bus System Message Bus.

[  OK  ] Started RealtimeKit Scheduling Policy Service.

         Starting Network Manager...

[  OK  ] Started Regular background program processing daemon.

         Starting Initialize hardware monitoring sensors...

         Starting System Logging Service...

         Starting LSB: Load kernel modules needed to enable cpufreq scaling...

         Starting Modem Manager...

         Starting WPA supplicant...

[  OK  ] Started Restore /etc/resolv.conf if…before the ppp link was shut down.

[  OK  ] Started Provide limited super user privileges to specific users.

[  OK  ] Started Initialize hardware monitoring sensors.

[  OK  ] Started Login Service.

[  OK  ] Started LSB: Load kernel modules needed to enable cpufreq scaling.

         Starting LSB: set CPUFreq kernel parameters...

[  OK  ] Started LSB: set CPUFreq kernel parameters.

[  OK  ] Started WPA supplicant.

[  OK  ] Started System Logging Service.

         Starting Authorization Manager...

[  OK  ] Started Authorization Manager.

[  OK  ] Started Network Manager.

[  OK  ] Reached target Network.

         Starting Network Name Resolution...

         Starting Permit User Sessions...

[  OK  ] Reached target Network is Online.

         Starting LSB: exim Mail Transport Agent...

         Starting /etc/rc.local Compatibility...

[  OK  ] Started Daily apt download activities.

[  OK  ] Started Daily apt upgrade and clean activities.

[  OK  ] Reached target Timers.

         Starting LSB: Advanced IEEE 802.11 management daemon...

[  OK  ] Started Permit User Sessions.

[  OK  ] Started /etc/rc.local Compatibility.

[  OK  ] Started LSB: Advanced IEEE 802.11 management daemon.

[  OK  ] Started Modem Manager.

         Starting Network Manager Script Dispatcher Service...

[  OK  ] Started Serial Getty on ttyAMA0.

[  OK  ] Started Getty on tty1.

[  OK  ] Reached target Login Prompts.

[  OK  ] Started Network Manager Script Dispatcher Service.

         Starting Hostname Service...

[  OK  ] Started Network Name Resolution.

[  OK  ] Started Hostname Service.

[  OK  ] Started LSB: exim Mail Transport Agent.

[  OK  ] Reached target Multi-User System.

[  OK  ] Reached target Graphical Interface.

         Starting Update UTMP about System Runlevel Changes...

[  OK  ] Started Update UTMP about System Runlevel Changes.


Debian GNU/Linux 9 linaro-developer ttyAMA0


linaro-developer login: root (automatic login)


Last login: Thu Nov  3 17:18:02 UTC 2016 on ttyAMA0

Linux linaro-developer 4.13.0-rc3-g6e39205-dirty #2 SMP PREEMPT Fri Sep 22 05:26:03 KST 2017 aarch64


The programs included with the Debian GNU/Linux system are free software;

the exact distribution terms for each program are described in the

individual files in /usr/share/doc/*/copyright.


Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent

permitted by applicable law.

root@linaro-developer:~# 


일단 간단하게 htop 설치해 보았습니다. 


테스트는 차차 하도록 하겠습니다.




감사합니다.





728x90

댓글0