Difference between revisions of "NanoPC-T2"
(→Boot NanoPC-T2 from eMMC) |
(→Boot NanoPC-T2 from eMMC) |
||
Line 375: | Line 375: | ||
|LED Status || Installation Status | |LED Status || Installation Status | ||
|- | |- | ||
− | |LED1 blinks twice continuously<br /> LED2 off || Power on normal<br /> If installation doesn't go on LED1 will keep behaving this way | + | |LED1 blinks twice continuously<br /> LED2 off || Power on normal.<br /> If installation doesn't go on LED1 will keep behaving this way and LED2 will be off |
|- | |- | ||
|LED1 and LED2 blink alternatively (0.3s) || Installation going on | |LED1 and LED2 blink alternatively (0.3s) || Installation going on |
Revision as of 09:52, 3 March 2016
Contents
1 Introduction
- The NanoPC-T2 quad core Cortex A9 single board computer is designed and developed by FriendlyARM for professional and enterprise users. It uses Samsung Quad Core Cortex-A9 S5P4418 SoC with dynamic frequency scaling up to 1.4GHz. Compared to FriendlyARM's existing 4418 based boards the NanoPC-T2 has 8G eMMC onboard, audio jack and video input/output interfaces. Compared to its predecessor the NanoPC-T1 the NanoPC-T2 has built-in WiFi, Bluetooth and Gbps Ethernet port. In addition the NanoPC-T2 has power management which the NanoPC-T1 doesn't support. To avoid overheat issues the NanoPC-T2 has a heat sink with mounting holes.
- The NanoPC-T2 combines all the ports and interfaces the existing FriendlyARM 4418 boards have. Currently it has the most interfaces and ports among all existing ARM boards of this size. Its rich video interfaces and support for HDMI 1080P make it work with not only popular display devices but also various FriendlyARM LCDs with both resistive touch and capacitive touch.
- The NanoPC-T2 is FriendlyARM's most complete solution based on Samsung 4418 for both commercial and industrial applications.
2 Features
- SoC: Samsung S5P4418 Quad Core Cortex-A9 with dynamic frequency scaling up to 1.4G Hz
- Power Management Unit: AXP228 PMU, it supports software power-off and wake-up.
- System Memory: 1GB 32bit DDR3 RAM
- eMMC: 8GB
- Storage: 1 x SD Card Socket
- Ethernet: Gbps Ethernet Port (RTL8211E)
- WiFi: 802.11b/g/n
- Bluetooth: 4.0 dual mode
- Antenna: Porcelain Antenna IPX Interface
- Video Input: DVP Camera/MIPI-CSI (two camera interfaces)
- Video Output: HDMI Type-A / LVDS / LCD / MIPI DSI (four video output interfaces)
- Audio: 3.5 mm audio jack / via HDMI
- Microphone: 1 x onboard Microphone
- USB: 4 x USB 2.0 Host, two standard type A ports and two 2.54mm pitch pin headers
- MicroUSB: 1 x MicroUSB 2.0 Client, Type A
- LCD Interface: 0.5mm pitch 45 pin FPC seat, full color RGB 8-8-8
- HDMI: 1.4A Type A, 1080P
- DVP Camera: 0.5mm pitch 24 pin FPC seat
- GPIO: 2.54 mm pitch 30 pin header
- Serial Debug Port: 2.54mm pitch 4pin header
- LED: 1 x power LED , 2 x GPIO LED
- User Key: 1 x K1 (power), 1 x Reset
- RTC Battery: RTC Seat Pins
- Power: DC 5V/2A
- Heat Sink: 1 x Heat Sink with mounting holes
- PCB: Six Layer
- PCB Dimension: 100 mm x 60 mm
- OS/Software: u-boot, Android5.1, Debian8
3 Diagram, Layout and Dimension
3.1 Layout
- 30Pin GPIO Pin Spec
Pin# Name Pin# Name 1 SYS_3.3V 2 DGND 3 UART2_TX/GPIOD20 4 UART2_RX/GPIOD16 5 I2C0_SCL 6 I2C0_SDA 7 SPI0_MOSI/GPIOC31 8 SPI0_MISO/GPIOD0 9 SPI0_CLK/GPIOC29 10 SPI0_CS/GPIOC30 11 UART3_TX/GPIOD21 12 UART3_RX/GPIOD17 13 UART4_TX/GPIOB29 14 UART4_RX/GPIOB28 15 GPIOB31 16 GPIOB30 17 GPIOC4 18 GPIOC7 19 GPIOC8 20 GPIOC24 21 GPIOC28 22 GPIOB26 23 GPIOD1/PWM0 24 GPIOD8/PPM 25 GPIOC13/PWM1 26 AliveGPIO3 27 GPIOC14/PWM2 28 AliveGPIO5 29 VDD_5V 30 DGND
- 20Pin LVDS Interface Pin Spec
Pin# Name Pin# Name 1 SYS_3.3V 2 SYS_3.3V 3 GPIOC16 4 GPIOB18 5 DGND 6 DGND 7 LVDS_D0- 8 LVDS_D0+ 9 LVDS_D1- 10 LVDS_D1+ 11 LVDS_D2- 12 LVDS_D2+ 13 DGND 14 DGND 15 LVDS_CLK- 16 LVDS_CLK+ 17 LVDS_D3- 18 LVDS_D3+ 19 I2C2_SCL 20 I2C2_SDA
- DVP Camera Interface Pin Spec
Pin# Name 1, 2 SYS_3.3V 7,9,13,15,24 DGND 3 I2C0_SCL 4 I2C0_SDA 5 GPIOB14 6 GPIOB16 8,10 NC 11 VSYNC 12 HREF 14 PCLK 16-23 Data bit7-0
- RGB LCD IF Pin Spec
Pin# Name Description 1, 2 VDD_5V 5V Output, it can be used to power LCD modules 11,20,29, 37,38,39,40, 45 DGND Ground 3-10 Blue LSB to MSB RGB blue 12-19 Green LSB to MSB RGB green 21-28 Red LSB to MSB RGB red 30 GPIOB25 available for users 31 GPIOC15 occupied by FriendlyARM one wire technology to recognize LCD models and control backlight and implement resistive touch, not applicable for users 32 XnRSTOUT Form CPU low when system is reset 33 VDEN signal the external LCD that data is valid on the data bus 34 VSYNC vertical synchronization 35 HSYNC horizontal synchronization 36 LCDCLK LCD clock, Pixel frequency 41 I2C2_SCL I2C2 clock signal, for capacitive touch's data transmission 42 I2C2_SDA I2C2 data signal, for capacitive touch's data transmission 43 GPIOC16 interrupt pin for capacitive touch, used with I2C2 44 NC Not connected
- MIPI-DSI Interface Pin Spec
Pin# Name 1, 2, 3 VDD_5V 4 DGND 5 I2C2_SDA 6 I2C2_SCL 7 DGND 8 GPIOC0 9 DGND 10 GPIOC1 11 DGND 12 GPIOA28 13 nRESETOUT 14, 15 DGND 16 MIPIDSI_DN3 17 MIPIDSI_DP3 18 DGND 19 MIPIDSI_DN2 20 MIPIDSI_DP2 21 DGND 22 MIPIDSI_DN1 23 MIPIDSI_DP1 24 DGND 25 MIPIDSI_DN0 26 MIPIDSI_DP0 27 DGND 28 MIPIDSI_DNCLK 29 MIPIDSI_DPCLK 30 DGND
- MIPI-CSI Interface Pin Spec
Pin# Name 1, 2 SYS_3.3V 3 DGND 4 I2C0_SDA 5 I2C0_SCL 6 DGND 7 SPI2_MOSI/GPIOC12 8 SPI2_MISO/GPIOC11 9 SPI2_CS/GPIOC10 10 SPI2_CLK/GPIOC9 11 DGND 12 GPIOB9 13 GPIOC2 14, 15 DGND 16 MIPICSI_DN3 17 MIPICSI_DP3 18 DGND 19 MIPICSI_DN2 20 MIPICSI_DP2 21 DGND 22 MIPICSI_DN1 23 MIPICSI_DP1 24 DGND 25 MIPICSI_DN0 26 MIPICSI_DP0 27 DGND 28 MIPICSI_DNCLK 29 MIPICSI_DPCLK 30 DGND
- Note:
- SYS_3.3V: 3.3V power output
- VDD_5V: 5V power input/output. The input range is 4.7V ~ 5.6V
- For more details please refer to the document: NanoPC-T2_1601B_Schematic.pdf
3.2 Board Dimension
- For more details please refer to the document: NanoPC-T2-1601B-Dimensions(dxf).zip
4 Get Started
4.1 Essentials You Need
Before play with your NanoPC-T2 please get the following items ready
- NanoPC-T2
- SD Card: Class 10 or Above, minimum 8GB SDHC
- A DC 5V/2A power is a must
- HDMI monitor or LCD
- USB keyboard, mouse and possible a USB hub(or a TTL to serial board)
- A Host running Ubuntu 14.04 64 bit system
4.2 Make an Installation SD Card
4.2.1 Boot NanoPC-T2 from SD Card
Please get the following files from here download link:
- Please get a 4G SDHC card and backup its data if necessary.
For LCD or HDMI output please use the following files: nanopi2-debian-sd4g.img.zip Debian image files nanopi2-android-sd4g.img.zip Android image files Flash Utility: win32diskimager.rar Windows utility. Under Linux users can use "dd"
- Please uncompress these files. Insert an SD card(at least 4G) to a Windows PC, run the win32diskimager utility as administrator,On the utility's main window select your SD card's drive and the image files and click on "write" to start flashing the SD card.
- Please insert this card to your NanoPC-T2's boot socket, press and hold the boot key and power on (with a 5V/2A power source). If the red LED is on and green power LED is blinking this indicates your NanoPC-T2 is successfully booted.
4.2.2 Boot NanoPC-T2 from eMMC
- Download RAW Image
Please get the image file: nanopi2-eflasher-sd4g.img.zip and the Windows utility: win32diskimager.rar;
- Flash RAW Image to SD Card
Please insert an SD card(at least 4G) to a Windows PC, run the win32diskimager utility as administrator,On the utility's main window select your SD card's drive and the image files and click on "write" to start flashing the SD card
- Prepare RAW image
Please go to this link [1] to downlaod Android and Debian image files(System-image-files-for-eMMC). After download please untar the ".tgz" ball and copy the files to your SD card.
OS Image Files Copy to... Android 5.1 android-lollipop-images.tgz
android-lollipop-images.tgz.hash.md5boot.img
system.img
userdata.img
cache.img
partmap.txt
images\android Debian (Jessie) debian-jessie-images.tgz
debian-jessie-images.tgz.hash.md5boot.img
rootfs.img
partmap.txt
images\debian
- Specify OS
By default the SD card's configuration file "images\FriendlyARM.ini" specifies Android to be flashed to eMMC. If you want to install Debian please make the following change:
OS = Debian
"#" is a comment
- Flash Image to NanoPC-T2's eMMC
Please insert this card to your NanoPC-T2, connect the board to an HDMI or LCD, press and hold the boot key and power on (with a 5V/2A power source) to board to start installation. You can watch the whole installation process from the HDMI or LCD. If the following messages popped up it means the installation succeeds.
Android is fused successfully. All done.
After installation is done please do "reset" or power off and on the board to boot the board from eMMC.
- You can check the LED's status to monitor the installation process too
LED Status Installation Status LED1 blinks twice continuously
LED2 offPower on normal.
If installation doesn't go on LED1 will keep behaving this way and LED2 will be offLED1 and LED2 blink alternatively (0.3s) Installation going on LED1和LED2交替的呼吸效果 (1.2s) Installation succeeds LED1 and LED2 blink simultaneously Installation fails
4.2.3 Make Installation Card under Linux Desktop
- 1) Insert your microSD card to your host running Ubuntu and check your SD card's device name
dmesg | tail
当dmesg输出类拟信息 sdc: sdc1 sdc2时,则表示SD卡对应的设备名为 /dev/sdc,也通过用命令cat /proc/partitions来查看。
- 2) 下载Linux下的制作脚本
git clone https://github.com/friendlyarm/sd-fuse_nanopi2.git cd sd-fuse_nanopi2
- 3) 以下是制作启动Android的SD卡的方法
su ./fusing.sh /dev/sdx
(注:/dev/sdx请替换为实际的SD卡设备文件名)
制作包中未包含Android和Debian的烧写文件,第一次使用时会提示需要下载,输入Y下载,N或10秒未输入则取消。
- 4) 以下是制作启动Debian的SD卡的方法
./fusing.sh /dev/sdx debian
4.2.4 关于LCD/HDMI分辨率
系统启动时uboot会自动识别LCD,成功则会设置为该LCD的显示分辨率,失败则缺省会设置为HDMI 720P模式。
如果要修改LCD的显示分辨率,可以直接修改内核中的文件 arch/arm/plat-s5p4418/nanopi2/lcds.c , 然后重新编译内核并更新即可。
对于HDMI的显示模式,Android则是会通过EDID获得HDMI设备如电视机所支持的显示模式,然后自动选择一个合适的分辨率。如果使用的是Debian,则缺省是720P,可通过修改内核配置来切换为1080P。
4.3 在电脑上修改SD卡上的系统
如果你想在运行系统之前,先对系统做一些修改,可以参看本节内容,否则可以跳过本节。
将制作好SD卡插入一台运行Linux的电脑,可以挂载SD卡上的boot和rootfs等分区,对分区内容进行修改,通过在以下情况下你需要进行这些操作:
1) 你想更改Kernel Command Line参数,则可以通过sd-fuse_nanopi2/tools目录下的fw_setenv工具来操作。
查看当前的Command Line:
cd sd-fuse_nanopi2/tools ./fw_printenv /dev/sdc | grep bootargs
目前的Android 5.1.1_r6启用了SELinux,缺省模式是enforcing,你可以通过Command Line来修改它,例如:
./fw_setenv /dev/sdc bootargs XXX androidboot.selinux=permissive
即可修改为permissive模式,其中上面的XXX需要替换成原来的bootargs值。
2) 更新内核
新版本的uboot在启动时如果识别到LCD,将读取SD卡boot分区的uImage,否则将读取uImage.hdmi。
对于Android来说是同一个文件,因此直接使用新编译的uImage来替换SD卡boot分区下的文件即可。
对于Debian来说,这2个文件是不相同的,使用新编译的支持LCD的uImage直接替换SD卡boot分区的文件,如果是支持HDMI的内核,则替换uImage.hdmi。
4.4 运行Android或Debian
- 将制作好SD卡插入NanoPC-T2,连接HDMI,按住靠近网口的boot按键,最后接电源(5V 2A)拨动开关,NanoPC-T2会从SD卡启动。你可以看到板上红灯常亮,PWR绿灯闪烁,这说明系统已经开始启动了,同时电视上也将能看到系统启动的画面。
1)要在电视上进行操作,你需要连接USB鼠标和键盘;如果你选购了LCD配件,则可以直接使用LCD上面的触摸屏进行操作。
2)如果您需要进行内核开发,你最好选购一个串口配件,连接了串口,则可以通过终端对NanoPC-T2进行操作。
- 以下是串口的接法。接上串口,即可调试:
- 如果提示输入密码,Debian的root用户的默认密码是两个字母fa。
4.5 通过VNC和ssh登录Debian
如果你是祼板运行系统(既没有连接LCD也没有连接HDMI),并且烧写了带 -wifiap.img 后辍的固件,你可以使用手机,或者有无线网卡的电脑连接到NanoPC-T2开放的 nanopi2-wifiap 无线热点(默认密码是123456789),连接成功后,无论是手机还是电脑,你可以到这里下载并安装一个名为VNC Viewer的软件,用VNC连接到NanoPC-T2,NanoPC-T2在使用VNC时的连接地址和端口为:192.168.8.1:5901,默认密码为:fa123456,以下是在iPhone上用VNC登录NanoPC-T2的画面:
你也可以通过 ssh -l root 192.168.8.1 命令在终端上登录,默认的root用户密码是 fa。
为了保证ssh的流畅,我们用以下命令关闭wifi的省电模式:
iwconfig wlan0 power off
5 Debian系统的使用
5.1 连接有线网络
- NanoPC-T2支持千兆网络,Debian或者Android系统在启动前,只要接上网线,系统启动后则会自动分配IP地址,不需要额外去配置。
5.2 连接无线网络
- 以下针对接了HDMI 或者LCD屏的用户:
- 在Debian的图形界面上,点击右下角的网络图标,程序会自动搜索到附近的WiFi热点,找到你需要连接的热点,点击旁边的Properties按钮,输入WiFi密码后保存退出,再点击Connect按钮即可。
- 以下内容仅适用于祼板运行的用户,即没有接LCD屏也没有接HDMI(使用 -wifiap.img 后辍的固件)
-
系统默认处于无线热点模式,因此无法搜索和连接到无线路由器,需要先退出无线执点模式才可以,请按照如下步骤操作:
第一步:我们先把要连接的无线路由器配置好,方法如下:
使用ssh连接NanoPC-T2,输入以下命令查询一下WiFi的网络接口,wlan开头的就是WiFi:
ifconfig -a
默认情况下是wlan0,你需要在/etc/network/interfaces.d/目录下新建一个与网络接口同名的配置文件 ,以wlan0为例,用vi命令新建以下文件:
vi /etc/network/interfaces.d/wlan0
wlan0文件的内容如下:
auto wlan0
iface wlan0 inet dhcp
wpa-driver nl80211
wpa-ssid YourWiFiESSID
wpa-ap-scan 1
wpa-psk YourWiFiPassword
其中,YourWiFiESSID和YourWiFiPassword请替换成你要连接的无线AP名称和密码。
如果你的WiFi密码中有特殊字符,或者你不希望明文存放密码,你可以使用wpa_passphrase命令为WiFi密码生成一个密钥(psk),用密钥来代替密码 ,在NanoPC-T2命令行下,可输入以下命令生成密钥:
wpa_passphrase YourWiFiESSID
在提示输入密码时,输入你的WiFi密码,然后就会得到类拟以下的内容,其中psk=后面的一串字符就是WiFi的密钥:
network={ ssid="YourWiFiESSID" #psk="YourWiFiPassword" psk=1b66ca678d6f439f7360686ff5eeb7519cdc44b76a40d96515e4eb807a6d408b }
最后,我们将上个步骤中生成的密钥替换掉wlan0文件中的密码,如下所示:
auto wlan0
iface wlan0 inet dhcp
wpa-driver nl80211
wpa-ssid YourWiFiESSID
wpa-ap-scan 1
wpa-psk 1b66ca678d6f439f7360686ff5eeb7519cdc44b76a40d96515e4eb807a6d408b
最后一步,使用以下命令退出无线热点模式,需要使用root用户操作,turn-wifi-into-apmode在执行后会重启设备,重启后,会根据上面的配置,自动连接WIFI:
su
turn-wifi-into-apmode no
5.3 配置Wi-Fi无线热点
可以通过以下命令,将Wi-Fi切换至无线热点模式:
turn-wifi-into-apmode yes
按提示重启即可,默认的热点名称为 nanopi2-wifiap,密码为123456789。
现在,你可以在电脑上搜索并连接nanopi2-wifiap这个无线热点,连接成功后,可以通过ssh到192.168.8.1这个地址来登录NanoPC-T2:
ssh root@192.168.8.1
在提示输入密码时,输入预设的密码fa,即可登入。
为了保证ssh的流畅,我们用以下命令关闭wifi的省电模式:
iwconfig wlan0 power off
WiFi工作模式可通过以下命令查询:
cat /sys/module/bcmdhd/parameters/op_mode
输出为数字2则表示当前处于无线热点模式,要切换回普通的Station模式,输入如下命令:
turn-wifi-into-apmode no
5.4 使用蓝牙传输
点击右下角的蓝牙图标,会弹出一个操作菜单,其中,
Make discoverable菜单项是打开NanoPC-T2蓝牙的可发现属性,这样其他设备(例如手机)就可以搜索到NanoPC-T2并进行配对了;
Devices... 菜单项可以打开搜索界面,主动搜索周边的蓝牙设备(注:需要这个设备先打开可发现属性);
Send Files to Device...菜单项则可以通过蓝牙发送文件到已配对的指定设备上。
5.5 安装Debian软件包
我们提供的是标准的Debian jessie系统,你可以使用apt-get等命令来安装软件包,如果板子是首次运行,需要先用以下命令更新软件包列表:
apt-get update
然后就可以安装软件包了,例如要安装ftp服务器,使用以下命令:
apt-get install vsftpd
如果软件包下载速度不理想,你可以编辑 /etc/apt/sources.list 更换一个更快的源服务器,这个网址[2]有一份完整的源镜像服务器列表,注意要选用一个带armhf架构的。
6 如何编译系统
6.1 安装交叉编译器
首先下载并解压编译器:
git clone https://github.com/friendlyarm/prebuilts.git sudo mkdir -p /opt/FriendlyARM/toolchain sudo tar xf prebuilts/gcc-x64/arm-cortexa9-linux-gnueabihf-4.9.3.tar.xz -C /opt/FriendlyARM/toolchain/
然后将编译器的路径加入到PATH中,用vi编辑vi ~/.bashrc,在末尾加入以下内容:
export PATH=/opt/FriendlyARM/toolchain/4.9.3/bin:$PATH export GCC_COLORS=auto
执行一下~/.bashrc脚本让设置立即在当前shell窗口中生效,注意"."后面有个空格:
. ~/.bashrc
这个编译器是64位的,不能在32位的Linux系统上运行,安装完成后,你可以快速的验证是否安装成功:
arm-linux-gcc -v Using built-in specs. COLLECT_GCC=arm-linux-gcc COLLECT_LTO_WRAPPER=/opt/FriendlyARM/toolchain/4.9.3/libexec/gcc/arm-cortexa9-linux-gnueabihf/4.9.3/lto-wrapper Target: arm-cortexa9-linux-gnueabihf Configured with: /work/toolchain/build/src/gcc-4.9.3/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu --target=arm-cortexa9-linux-gnueabihf --prefix=/opt/FriendlyARM/toolchain/4.9.3 --with-sysroot=/opt/FriendlyARM/toolchain/4.9.3/arm-cortexa9-linux-gnueabihf/sys-root --enable-languages=c,c++ --with-arch=armv7-a --with-tune=cortex-a9 --with-fpu=vfpv3 --with-float=hard ... Thread model: posix gcc version 4.9.3 (ctng-1.21.0-229g-FA)
6.2 编译U-Boot
下载U-Boot源代码并编译,注意分支是nanopi2-lollipop-mr1:
git clone https://github.com/friendlyarm/uboot_nanopi2.git cd uboot_nanopi2 git checkout nanopi2-lollipop-mr1 make s5p4418_nanopi2_config make CROSS_COMPILE=arm-linux-
编译成功结束后您将获得u-boot.bin,您可以通过fastboot来更新正在运行的NanoPC-T2板上SD的U-Boot,方法如下:
1) 在电脑上先用命令 sudo apt-get install android-tools-fastboot 安装 fastboot 工具;
2) 用串口配件连接NanoPC-T2和电脑,在上电启动的2秒内,在串口终端上按下回车,进入 u-boot 的命令行模式;
3) 在u-boot 命令行模式下输入命令 fastboot 回车,进入 fastboot 模式;
4) 用microUSB线连接NanoPC-T2和电脑,在电脑上输入以下命令烧写u-boot.bin:
fastboot flash bootloader u-boot.bin
注意:您不能直接使用dd来更新SD卡,否则有可能会导致无法正常启动。
6.3 准备mkimage
编译内核需要用到U-Boot中的工具mkimage,因此,在编译内核uImage前,您需要保证您的主机环境可以成功运行它。
你可以直接使用命令 sudo apt-get install u-boot-tools 来安装,也可以自己编译并安装:
cd uboot_nanopi2 make CROSS_COMPILE=arm-linux- tools sudo mkdir -p /usr/local/sbin && sudo cp -v tools/mkimage /usr/local/sbin
6.4 编译Linux kernel
6.4.1 编译内核
- 下载内核源代码
git clone https://github.com/friendlyarm/linux-3.4.y.git cd linux-3.4.y git checkout nanopi2-lollipop-mr1
NanoPC-T2内核所属的分支是nanopi2-lollipop-mr1,在开始编译前先切换分支。
- 编译Android内核
make nanopi2_android_defconfig touch .scmversion make uImage
- 编译Debian内核
make nanopi2_linux_defconfig touch .scmversion make uImage
编译成功结束后,新生成的内核烧写文件为 arch/arm/boot/uImage,此内核支持HDMI 720p输出,用于替换掉SD卡boot分区下的uImage.hdmi。
如果要支持HDMI 1080p,则需要修改内核配置:
touch .scmversion make nanopi2_linux_defconfig make menuconfig Device Drivers --> Graphics support --> Nexell Graphics --> [ ] LCD [*] HDMI (0) Display In [0=Display 0, 1=Display 1] Resolution (1920 * 1080p) ---> make uImage
启用LCD,同时取消HDMI,然后退出并保存配置,编译后即可获得支持LCD显示的uImage,用于替换SD卡boot分区下的uImage。
6.4.2 编译内核模块
Android包含内核模块,位于system分区的 /lib/modules/ 下,如果您有新的内核模块或者内核配置有变化,则需要重新编译。
首先编译内核源代码中的模块:
cd linux-3.4.y make CROSS_COMPILE=arm-linux- modules
另外有2个内核模块的源代码位于Android源代码中,可使用以下命令来编译:
cd /opt/FriendlyARM/s5p4418/android ./vendor/friendly-arm/build/common/build-modules.sh
其中 “/opt/FriendlyARM/s5p4418/android” 是指Android源代码的TOP目录,使用参数“-h”可查看帮助。
编译成功结束后,会显示生成的内核模块。
6.5 编译Android
- 搭建编译环境
搭建编译Android的环境建议使用64位的Ubuntu 14.04,安装需要的包即可。
sudo apt-get install bison g++-multilib git gperf libxml2-utils make python-networkx zip sudo apt-get install flex libncurses5-dev zlib1g-dev gawk minicom
更多说明可查看 https://source.android.com/source/initializing.html 。
- 下载源代码
Android源代码的下载需要使用repo,其安装和使用请查看 https://source.android.com/source/downloading.html 。
mkdir android && cd android repo init -u https://github.com/friendlyarm/android_manifest.git -b nanopi2-lollipop-mr1 repo sync
其中“android”是指工作目录。
- 编译系统
source build/envsetup.sh lunch aosp_nanopi2-userdebug make -j8
编译成功完成后,目录 out/target/product/nanopi2/ 下包含可用于烧写的image文件。
7 扩展连接
7.1 NanoPi 2连接USB(FA-CAM202)200万摄像头模块
- NanoPi 2使用Debian系统,假设你已接好LCD屏或者HDMI,进入系统后,点击左下角的菜单键“Other”-->xawtv9,打开USB Camera软件。进入“welcome to xawtv!”,选择OK即可进行拍照。
7.2 NanoPC-T2连接CMOS 500万摄像头模块
- NanoPi 2使用Android5.1系统,假设你已经接好LCD屏或者HDMI,进入系统后,直接点击“camera”图标,即可打开摄像头进行拍照。
7.3 NanoPi 2接USB摄像头使用OpenCV
- OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。
- NanoPi 2跑Debian系统时,接USB Camera,可直接使用官方的OpenCV。
1、以下介绍的是NanoPi 2用C++使用的OpenCV:
- 首先需要保证你的NanoPi 2能连外网,假如你有串口,直接串口登陆超级终端(或者ssh登陆)。进入系统后,输入用户名(root),密码(fa)登陆;
- 以下命令在超级终端执行:
apt-get update apt-get install libcv-dev libopencv-dev
2、NanoPi 2烧写Debian系统启动后,接上USB Camera,使用Debian系统自带的摄像头软件测试,确定摄像头能正常使用。
3、通过终端执行命令,查看你的摄像头设备:
ls /dev/video*
- 注:video9 是你的USB摄像头设备(注:video0到8均被其它设备占用了)
4、opencv的测试代码(官方C++示例代码)在 /home/fa/Documents/opencv-demo, 使用以下命令即可编译:
cd /home/fa/Documents/opencv-demo make
编译成功后,得到可执行文件demo
5、这里特别说明:目前NanoPi 2的内核注册了9个video设备,而opencv的官方源码定义了最多只能使用8个Camera,所以这里需要删掉一个暂时没用到的video,我们把video0设备删掉:
rm /dev/video0 mv /dev/video9 /dev/video0
6、以下步骤需要在NanoPi 2上接上键盘执行:
./demo
8 NanoPC-T2 扩展TF卡分区
8.1 NanoPC-T2 Debian系统扩展TF卡分区
- Debian扩展分区,要在pc上执行下列操作:
sudo umount /dev/sdx? sudo parted /dev/sdx unit % resizepart 2 100 unit MB print sudo resize2fs -f /dev/sdx2
- Android扩展分区,要在pc上执行下列操作:
sudo umount /dev/sdx? sudo parted /dev/sdx unit % resizepart 4 100 resizepart 7 100 unit MB print sudo resize2fs -f /dev/sdx7
(注:/dev/sdx请替换为实际的SD卡设备文件名)
9 源代码和固件下载链接
10 资源链接
- SEC_Users_Manual_S5P4418_Users_Manual_Preliminary[5]
- 原理图(NanoPC-T2_1601B_Schematic.pdf)