主题 : 99元开源创客神器- NanoPi -来了! 复制链接 | 浏览器收藏 | 打印
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
贡献值: 27 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
楼主  发表于: 2015-08-02 02:03

 99元开源创客神器- NanoPi -来了!

管理提醒: 本帖被 mindee 执行加亮操作(2015-08-02)



快速入门
准备工作
要开启你的NanoPi新玩具,请先准备好以下硬件

  • NanoPi主板
  • microSD卡/TF卡: 最小系统需要64M
  • microUSB线
  • 一台运行Linux的电脑,需要联网
制作一张带运行系统的microSD卡
1) 将microSD插入Ubuntu的电脑,用以下命令查看你的SD卡设备名
复制代码
  1. dmesg | tail

当dmesg输出类拟信息 sdc: sdc1 sdc2时,则表示SD卡对应的设备名为 /dev/sdc,也通过用命令cat /proc/partitions来查看。

2) 下载固件并制作microSD卡
复制代码
  1. git clone [url]https://github.com/friendlyarm/sd-fuse_nanopi.git[/url]
  2. cd sd-fuse_nanopi
  3. su
  4. ./fusing.sh /dev/sdx

(注:/dev/sdx请替换为实际的SD卡设备文件名)

运行系统
将制作好的microSD卡插入NanoPi,使用microUSB线连接电脑,NanoPi会上电自动开机,看到板上的蓝色LED闪烁,这说明系统已经开始正常运行了。

通过microUSB登陆NanoPi
用microUSB线将NanoPi连接到电脑后,在电脑上敲入dmesg命令,看到以下输出信息表示连接成功:

复制代码
  1. [12601.100339] usb 2-1.7: Product: FriendlyARM Gadget v2.4
  2. [12601.100343] usb 2-1.7: Manufacturer: Linux 4.1.2-FriendlyARM with s3c-hsudc
  3. [12601.103192] cdc_acm 2-1.7:2.0: This device cannot do calls on its own. It is not a modem.
  4. [12601.103368] cdc_acm 2-1.7:2.0: ttyACM0: USB ACM device
  5. [12601.105300] cdc_ether 2-1.7:2.2 usb0: register 'cdc_ether' at usb-0000:00:1d.0-1.7, CDC Ethernet Device, 46:a1:e7:6d:5c:32

在电脑上输入ifconfig命令,可以看到多了一个usb0的网络设备,这时可以通过ssh到192.168.100.1这个地址来登录NanoPi:

复制代码
  1. ssh root@192.168.100.1

在提示输入密码时,输入预设的密码fa,即可登入。

配置使用Wi-Fi
使用ssh连接NanoPi,输出以下命令配置WiFi:

复制代码
  1. wpa_passphrase YourWiFiESSID 'YourWiFiPassword' >> /etc/wpa.conf
  2. wpa_cli -iwlan0 reconfigure

其中,YourWiFiESSID和YourWiFiPassword请替换成你要连接的无线AP名称和密码, 以后每次开机,都会自动连接该WiFi,你可以通过编辑 /etc/wpa.conf 调整无线AP的设置, 默认是通过dhcp的方式获得IP地址,如果你想更改成静态设置IP地址,可编辑 /usr/sbin/wpa_action,将其中的udhcpc调用改成使用ifconfig命令来设置。

扫描无线AP
用以下命令搜索周边的无线AP:

复制代码
  1. wpa_cli -iwlan0 scan
  2. wpa_cli -iwlan0 scan_result
[ 此帖被mindee在2015-08-02 06:47重新编辑 ]
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
贡献值: 27 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
1楼  发表于: 2015-08-02 07:04
如何编译系统

安装交叉编译器
首先下载并解压编译器:


复制代码
  1. git clone https://github.com/friendlyarm/prebuilts.git
  2. tar xvzf prebuilts/gcc/arm-linux-gcc-4.4.3.tar.gz -C /


然后将编译器的路径加入到PATH中,用vi编辑vi ~/.bashrc,在末尾加入以下内容:

复制代码
  1. export PATH=/opt/FriendlyARM/toolschain/4.4.3/bin/:$PATH

执行一下~/.bashrc脚本让设置立即在当前shell窗口中生效,注意"."后面有个空格:

复制代码
  1. . ~/.bashrc


编译U-Boot

下载U-Boot源代码并编译,注意分支是nanopi:

复制代码
  1. git clone https://github.com/friendlyarm/uboot_nanopi.git
  2. cd uboot_nanopi
  3. git checkout nanopi
  4. make nanopi_config
  5. make


编译成功结束后您将获得u-boot.bin, 如果想马上就测试u-boot,可使用脚本fusing.sh烧写新的u-boot 到SD 卡。
假设您的 SD 卡对应设备名是/dev/sdd,以root运行以下命令:

复制代码
  1. su
  2. ./fusing.sh /dev/sdd

注意:以上操作会破坏SD卡的数据,请先进行备份。

编译Linux kernel

下载内核源代码并编译

复制代码
  1. git clone https://github.com/friendlyarm/linux-4.x.y.git
  2. cd linux-4.x.y
  3. git checkout nanopi-v4.1.y
  4. make nanopi_defconfig
  5. touch .scmversion
  6. make

NanoPi内核所属的分支是nanopi-v4.1.y,在开始编译前先切换分支,编译成功结束后,新生成内核烧写文件为 arch/arm/boot/zImage 。

编译制作文件系统
下面的命令将下载文件系统源码包并编译,注意需要在root用户下编译,可用su命令切换:

复制代码
  1. git clone https://github.com/friendlyarm/rootfs_nanopi.git
  2. cd rootfs_nanopi
  3. git checkout nanopi
  4. su
  5. make && make install && make strip

编译成功结束后,将看到以下信息:

复制代码
  1. RootFS (core) successfully installed to:
  2.    /tmp/FriendlyARM/nanopi/rootfs
  3. Copyright 2015 FriendlyARM (http://www.arm9.net/)

上面的信息提示我们编译生成的文件系统存放的位置为/tmp/FriendlyARM/nanopi/rootfs,我们把它压缩成一个压缩包:

复制代码
  1. cd /tmp/FriendlyARM/nanopi
  2. tar czvf rootfs.tgz rootfs/


使用自已编译的文件生成制作SD卡
重新制作SD卡系统
先下载SD卡烧写的工具包,并切换到相应master分支:

复制代码
  1. git clone https://github.com/friendlyarm/sd-fuse_nanopi.git
  2. cd sd-fuse_nanopi
  3. git checkout master

在sd-fuse_nanopi下有个prebuilt,用于存放SD系统运行所需的二进制文件:
  • Bootloader: u-boot.bin
    内核命令行参数: sdenv.raw
    Linux内核:zImage
    文件系统压缩包: rootfs.tgz

你只需要将上面章节中编译生成的文件替换它们,就可以测试运行你所编译的系统了,替换文件后,在sd-fuse_nanopi目录下执行以下命令制作SD卡:

复制代码
  1. su
  2. ./fusing.sh /dev/sdx

(注:/dev/sdx请替换为实际的SD卡设备文件名)

烧写成功完成后,把SD卡放入NanoPi运行试试吧。

更新U-Boot环境变量
制作好的SD启动NanoPi 后,如果通过串口在U-Boot命令模式下修改了环境变量,如bootargs,现在想要把这个修改后的环境用于制作其它新的SD卡,则需要把保存在卡的U-Boot环境变量数据读出来,替换掉prebuilt 下的 sdenv.raw,然后烧写新的SD卡即可。

复制代码
  1. ./readenv.sh /dev/sdd
  2. cp sdenv.raw prebuilt/


关于SD卡RAW文件
由于CPU S3C2451的iROM 是从SD卡的尾部来读取Bootloader,且普通SD卡和SDHC卡的位置不同,而不同品牌或是不同容量的SD卡的大小又是不同的,因此没办法创建适应不同卡的RAW文件。
如果您有一批大小完全一致的SD卡,可使用工具如linux下的dd 读取已经制作好的SD 卡的全部数据,保存为RAW文件,然后将此文件写入其它大小相同的SD卡。
另外,由于现在的SD卡容量通常都比较大,对于8 GB的SD卡,写一个RAW文件将需要较长时间,而目前的rootfs实际只有 ~23 MB,因此直接使用脚本制作SD卡将更快。
[ 此帖被mindee在2015-08-05 13:55重新编辑 ]
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
贡献值: 27 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
2楼  发表于: 2015-08-03 15:28
NanoPi 已经成功运行最新版 Debian Jessie,即将提供下载
Debian带有丰富的软件仓库,大名鼎鼎的Ubuntu也是基于Debian的一个分支


新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.
级别: 新手上路
UID: 3057
精华: 0
发帖: 9
金钱: 45 两
威望: 9 点
贡献值: 0 点
综合积分: 18 分
注册时间: 2008-12-25
最后登录: 2015-10-25
3楼  发表于: 2015-08-04 10:22
这个比较低端,为什么不开放Exynos5422系列的呢?等你们1年多了啊
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
贡献值: 27 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
4楼  发表于: 2015-08-04 10:57
引用第3楼ckxgtp于2015-08-04 10:22发表的  :
这个比较低端,为什么不开放Exynos5422系列的呢?等你们1年多了啊



慢慢来,这个比较简单,容易上手。其实这个文件系统也可以适用于其他主板,因为arm指令向下兼容。
这个rootfs文件系统是完全开源的,你很难从其他地方找到一个如此完整,赤裸,从零开始的,纯手工打造,能够快速启动的小型Linux系统,理解这个文件系统的制作流程对于手工构建嵌入式Linux非常有帮助。


还有,4412,210, 6410都已经提供了ubuntu或debian,ubuntu/debian都不需要从源代码开始编译,直接采集二进制软件包集成制作rootfs,并且启动速度很慢
[ 此帖被mindee在2015-08-04 11:13重新编辑 ]
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.
人生是一场修行。一场完善自我的修行。
级别: 侠客
UID: 101606
精华: 0
发帖: 115
金钱: 590 两
威望: 118 点
贡献值: 0 点
综合积分: 230 分
注册时间: 2014-03-13
最后登录: 2017-01-16
5楼  发表于: 2015-08-04 18:36
NanoPi 已经成功运行最新版 Debian Jessie
  64M  运行内存也能运行起来debian?  感觉确实低端啊
就是这么拽......
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
贡献值: 27 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
6楼  发表于: 2015-08-05 00:52
引用第5楼明治维新于2015-08-04 18:36发表的  :
NanoPi 已经成功运行最新版 Debian Jessie
  64M  运行内存也能运行起来debian?  感觉确实低端啊



NanoPi再低端也比Arduino和STM32要强大很多了,而且集成WiFi和蓝牙非常适合物联网方面的开发,可以直接运行Python,而价格相对低多了
Arduino配上WiFi和蓝牙模块,你搜一下淘宝价格。。。
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.
级别: 侠客
UID: 26570
精华: 0
发帖: 63
金钱: 315 两
威望: 63 点
贡献值: 0 点
综合积分: 126 分
注册时间: 2010-08-10
最后登录: 2022-10-20
7楼  发表于: 2015-08-05 09:15
运行linux 4.1 会出移植手册吗
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
贡献值: 27 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
8楼  发表于: 2015-08-05 11:04
引用第7楼yukoj2004于2015-08-05 09:15发表的  :
运行linux 4.1 会出移植手册吗


肯定不会,以后还会有4.2, 4.3等等,难道每个版本都需要做个移植手册?
自己和linux原版内核对比源代码是最好的学习研究方式,内核移植的资料网上有很多
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.
级别: 侠客
UID: 26570
精华: 0
发帖: 63
金钱: 315 两
威望: 63 点
贡献值: 0 点
综合积分: 126 分
注册时间: 2010-08-10
最后登录: 2022-10-20
9楼  发表于: 2015-08-05 11:27

 回 8楼(mindee) 的帖子

至少会提供修改过的内核源码和Debian 吧?