Banana PI (中文名:香蕉派,以下简称 BPI)是比 Raspberry PI (中文名:树莓派)性能更强、功能更多、内置 AllWinner A20 双核 CPU、1GB DDR3内存、SATA 硬盘接口、千兆网口、HDMI接口、可运行 Linux/OpenWRT/Android 等系统、而且价格比较便宜的单板微型电脑;详见:www.bananapi.com


在 BPI 官网上提供有几个常见系统的 IMG 供下载(http://www.lemaker.org/resources/9-38/image_files.html),可直接烧写到 SD 卡用于启动 BPI;本文试验了另一种自行构建 BPI 系统的方法,可根据需要定制系统各部件和功能;本文打算尝试构建一个最小的基本 Linux 服务器系统;为了方便,本文直接选用目前广泛使用的 Ubuntu 提供的成熟 core 作为 rootfs,这样既能保证系统稳定可靠,又便于后期功能定制,节省时间和精力。安装 ubuntu core 14 和 gcc 开发环境等常用软件后总共占用600MB存储空间,内存占用50MB左右,系统运行状况如下:

== A. 准备工作 ==

一、所需硬件

需要 Banana PI 开发板一块;

一台正常运行 Linux 系统的电脑(Linux 虚拟机也行);

容量大于 1GB SD 卡,或者 TF 配卡套,以及相应读卡设备;

另准备一张 4GB SD 卡,用于烧写现有 .img 以启动 BPI 作辅助操作;

二、所需软件

从 ubuntu 网站 http://cdimage.ubuntu.com/ubuntu-core/releases/ 下载 ubuntu-core-14.04.1-core-armhf.tar.gz 包文件(60MB)

从 banana pi 网站 http://www.lemaker.org/resources/9-38/image_files.html 下载 Raspbian_For_BananaPi_v3_0.img 包文件

从 sunxi 网站 http://dl.linux-sunxi.org/nightly/u-boot-sunxi/u-boot-sunxi/u-boot-sunxi-latest/ 下载 u-boot-sunxi-bananapi.tar.xz 包

== B. 主要步骤 ==

一、SD 卡分区

在 Linux 电脑上连接 SD 卡,查看设备编号:

$ sudo fdisk -l

如果系统中没有连接别的设备,通常此 SD 卡设备名为: /dev/sdb ;以下假设此卡就为 /dev/sdb,须根据实际情况进行替换;命令中写错设备名后果难料;

进入 fdisk 分区程序,用 n 子命令将此卡空间分成两个分区,提示输入第一分区大小时输入 +30M,其他参数均以回车接受默认值即可;

$ sudo fdisk /dev/sdb

以 p 子命令查看分区情况,确认无误后,输入 w 子命令确认分区写入卡设备中并退出;

二、格式化分区

将 SD 卡中两个分区分别进行格式化为 vfat 和 ext4 文件系统;

$ sudo mkfs.vfat /dev/sdb1
$ sudo mkfs.ext4 /dev/sdb2

三、写入 U-Boot 启动代码

从下载的 u-boot-sunxi-bananapi.tar.xz 包中取出 u-boot-sunxi-with-spl.bin 文件;

先清除 SD 卡前段内容;

$ sudo dd if=/dev/zero of=/dev/sdb bs=1k count=1023 seek=1

接着在特定位置写入启动代码和数据

$ sudo dd if=/path/to/u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8

注意:此处命令行假设所有下载的文件包均存放在 /path/to 虚拟目录中,操作时须替换成实际目录;

四、安装内核启动文件

如果愿意,Linux 内核文件可以选择自行编译;这里为了方便,直接从厂商提供的 IMG 包中取出;这里选用从 Raspbian_For_BananaPi_v3_0.img 包中取出内核文件,主要就这三个:(uImage,script.bin,uEnv.txt);

先查看 IMG 包中第一分区的起始块位置,这里假设为 8192,将其乘以 512 的结果 4194304 放入下面命令中;

$ sudo mkdir /mnt/img
$ fdisk -l /path/to/Raspbian_For_BananaPi_v3_0.img
$ sudo mount -t vfat -o loop,offset=4194304
/path/to/Raspbian_For_BananaPi_v3_0.img  /mnt/img

挂载成功后,从 /mnt/img 目录中复制出来这三个内核文件即可;

$ cp /mnt/img/uEnv.txt  ./
$ cp /mnt/img/bananapi/uImage ./
$ cp /mnt/img/bananapi/script.bin ./
$ sudo umount /mnt/img

由于 ./Raspbian_For_BananaPi_v3_0.img 包中内核放在子目录 ./bananapi 中,现在我们打算将此三个内核文件直接放在 SD 卡第一分区根目录中,所以还需要将复制出来的 uEnv.txt 内容用 vi 命令稍稍编辑一下,去掉内核文件的目录路径,使其内容写成这样子,然后保存退出 vi 命令;

bootargs=console=ttyS0,115200 console=tty0
disp.screen0_output_mode=EDID:1280x720p50 hdmi.audio=EDID:0
console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline
rootwait
aload_script=fatload mmc 0 0x43000000 script.bin;
aload_kernel=fatload mmc 0 0x48000000 uImage; bootm 0x48000000;
uenvcmd=run aload_script aload_kernel

内核文件提取出来后,就可以复制到 SD 卡第一分区中;

$ sudo mkdir /mnt/sd
$ sudo mount -t vfat /dev/sdb1 /mnt/sd
$ cp uEnv.txt script.bin uImage /mnt/sd
$ sudo umount /mnt/sd

如果需要调整 script.bin 中参数,比如AV口接电视机,则需要先用 bin2fex 软件来实现文件格式转换成文本文件,再作修改,参见:linux-sunxi.org/Fex_Guide

五、安装 rootfs

将下载得到的 ubuntu-core-14.04.1-core-armhf.tar.gz 包文件直接释放到 SD 卡第二分区即可;

$ sudo mount /dev/sdb2 /mnt/sd
$ cd /mnt/sd
$ tar xzvf /path/to/ubuntu-core-14.04.1-core-armhf.tar.gz

六、安装 modules 和 firmware 文件

采用与前面第四步相同的方法,直接从现成 Raspbian_For_BananaPi_v3_0.img 中取出内核对应的 modules/firmware 文件;

先查出 IMG 包中第二分区的起始块位置,这里假设为 122880,将其乘以 512 的结果 62914560 放入下面命令中;

$ fdisk -l /path/to/Raspbian_For_BananaPi_v3_0.img
$ sudo mount -t ext4 -o loop,offset=62914560 /path/to/Raspbian_For_BananaPi_v3_0.img  /mnt/img

挂载成功后,从 /mnt/img 目录中复制内核版本对应的 modules/firmware 硬件驱动相关文件到 /mnt/sd;

$ sudo cp -r /mnt/img/lib/firmware  /mnt/sd/lib/

$ sudo cp -r /mnt/img/lib/modules/3.4.90  /mnt/sd/lib/modules

从宿主系统复制 DNS 服务器地址信息 resolv.conf 到 /mnt/sd/etc,稍后可能需要在线安装软件;

$ sudo cp -p /etc/resolv.conf /mnt/sd/etc

完成以上步骤,SD 卡中 core 系统所需文件基本都已就绪,只待对新系统稍作配置即可开始工作了;

七、初步配置新系统

为了完成 SD 卡中新系统基本配置,需要使用 chroot 命令,方便对新系统设置 root 密码,安装必要软件包等操作;

由于上述操作过程均是在一台 x86 Linux 主系统上进行,而 chroot 需要使用 arm 架构的主系统,所以,这里利用另一张 SD 卡启动 Banana PI 作为主系统进行操作;如果你使用的主系统电脑本身就是 arm 架构,就不必另启 BPI 了,可直接利主系统进行其余操作;

为了切换到 BPI arm 主系统中进行 chroot 操作,须先卸载 x86 系统上挂载的 SD 卡,同时清除临时目录;

$ sync
$ sudo umount /mnt/img
$ sudo umount /mnt/sd
$ sudo rm -r /mnt/img /mnt/sd

用烧写好的另一张 SD 卡启动 BPI(可以采用 Raspbian_For_BananaPi_v3_0.img),并将新系统 SD 卡通过读卡器连接到 BPI USB端口,先查看系统中已自动识别的 USB
设备,以确定新 SD 卡的设备名称,这里假设新SD卡设备名称为:/dev/sdb

$ lsusb
$ lsblk

挂载新SD卡的第二分区到 /mnt 目录,然后进入 chroot 状态;

$ sudo mount /dev/sdb2 /mnt
$ sudo chroot /mnt /bin/bash

正常进入 chroot 后,所有命令均直接针对新系统进行操作;首先,设置 root 密码;

# passwd

然后配置主机名称、设置 noatime、添加用户帐户、并开启网络接口等;

# echo "ucore14" > /etc/hostname
# adduser newid

在启动命令文件 /etc/rc.local 中插入一行:mount -o remount -o noatime / ,以提升性能同时防止频繁擦写弄坏 SD 卡;

# vi /etc/rc.local

然后设置时区;

# mv /etc/localtime /etc/localtime.0
# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

在 /etc/network/interfaces 输入网卡配置,比如,打算以 DHCP 方式连接路由器,则在其中填入以下内容:

auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

如果还需要配置 wifi 网络,则须另购一只兼容的 USB 接口 wifi 网卡,然后通过 wpa_supplicant 软件进行配置;这里暂时不考虑安装wifi网卡,待新系统正常运行起来再配置其他子系统即可;

至此,一个最基本的 Ubuntu 核心系统即安装完成,如果一切正常,便可使用此 SD 卡正常启动 Banana PI 了;不过得注意,下载得到的 ubuntu-core-14.04.1-core-armhf.tar.gz 包文件中并未安装 sshd 软件包,这意味着无法远程登录进入系统;假如你没有 HDMI 显示器可用,或者你的 Banana PI 只作服务器运行,则在退出 chroot 状态前,安装上 ssh 软件包是很有必要的,为此,需要跳转到下一步骤;

如果此时不打算安装 ssh 服务,也不再进行其他配置和操作,则可以考虑退出 chroot 状态,并卸载 SD 卡;

# exit
# sync
# sudo umount /mnt

八、安装 SSH 远程登录(无屏必需)

在上面 chroot 状态中继续安装 ssh 软件包;如果此前已退出 chroot 则需再次进入 chroot ;

# apt-get update
# apt-get install ssh

此命令需要在线下载软件包,这也是前面需要事先复制 /etc/resolv.conf 到 SD 卡 rootfs 的原因;网速正常的话,通常几分钟即可下载安装完成;

由于默认安装的 sshd_config 配置,基于对安全性的考虑,不允许以密码方式远程登录 root 帐户和空密码远程登录,只允许使用 ssh-key 远程登录 root 帐户;这里为了方便登录,决定暂时开启密码登录,编辑 /etc/ssh/sshd_config 配置文件;

# vi /etc/ssh/sshd_config

将此项设置的值由 "without-password" 改为 "yes" 即可,或者将原设置行注释掉,再输入新的设置行,如下:

# PermitRootLogin without-password
PermitRootLogin yes

保存此项设置修改后,必要的安装和配置就全部完成了,退出 chroot,卸载 SD 卡并关机;

# exit
# sync
# sudo umount /mnt
# sudo poweroff

至此,此 SD 卡中已包含有一个可启动的 Ubuntu Core 14.04 for Banana PI;将此 SD 卡插入 Banana PI 开机,如果顺利,很快就可启动出来,并可以 ssh 远程登录进入系统;上面配置 Banana PI 以 DHCP 方式从路由器自动获取 IP 地址,所以,在 ssh 登录前,可在路由器管理界面 DHCP 栏目中查看路由器为 BPI 分配的 IP 地址;

由于 Ubuntu Core 只是一个 Core,没有包含其他任何应用系统,如:APACHE、MYSQL、PHP、X11、OFFICE 等等,不过,可利用 Debian 系的 apt-get install xxx 很方便的安装其余所需要的软件。。。

== C. 小结 ==

以上试验步骤实现了在目标 SD 卡中从分区开始配置一个可启动 Banana PI 的 Ubuntu Core 系统,操作步骤较多,为了省事,也可以采用逆向操作,即直接在 SD 卡中烧写一个现成的 IMG 系统,然后用目标 rootfs 替换掉原系统即可;网上有许多针对 arm 架构的 rootfs 可用,较小的解压后只有30M左右,比如:linaro-image-minimal-initramfs-genericarmv7a;不过,为了方便安装应用软件,还是选用 debian core, ubuntu core 这类要方便一些,尽管尺寸稍大些;

另外,基于以上操作步骤,稍作变通,即可根据需要制作自己的 .img 系统;过程大致相同,只需将 SD 卡换成一个 .img 文件,将 .img 文件挂载为 loop 设备即可;具体操作此处不再赘述;

Banana PI (香蕉派) 安装 ubuntu-core-14 最小核心的操作步骤相关推荐

  1. 来自新手Banana Pi香蕉派初体验

    2019独角兽企业重金招聘Python工程师标准>>> 一.前言 一段时间来对有强大的技术支持和完善的社区的Raspberry Pi很感兴趣,本想入一片学习学习,但转念一想Raspb ...

  2. Banana PI 香蕉派项目

    2019独角兽企业重金招聘Python工程师标准>>> (一)            产品背景和市场趋势 香蕉派产品是结合市场现有开源硬件平台的优缺点的基础上为开源硬件及电子创新爱好 ...

  3. banana PI 香蕉派 网站上线,

    2019独角兽企业重金招聘Python工程师标准>>> 以后新品发布都会在此网站上体现,请大家多多关注. 转载于:https://my.oschina.net/Bananapi/bl ...

  4. 安装Ubuntu 18.04后的一些操作

    安装Ubuntu 18.04后的一些操作 1.设置root密码 sudo passwd 2.登陆root(输入密码后看到井号就是切换成为root账户) su 3.删除预装 apt-get remove ...

  5. 已有Win10基础上安装Ubuntu双系统(含BIOS操作)

    参考:[Linux安装]Win10安装Ubuntu双系统(含BIOS操作)_百里飞洋的博客-CSDN博客_win10安装ubuntu双系统 一个16G的空U盘,台式机 U盘引导盘制作工具(Rufus) ...

  6. Centos7安装部署免费confluence wiki(知识库)详细操作步骤

    Centos7安装部署免费confluence wiki(知识库)详细操作步骤 前言:confluence是团队协作软件,改变团队工作方式,作为现代化办公不可缺少的工具 wiki所需的安装包: 链接: ...

  7. Mac 安装Maven的几种方法和操作步骤

    Mac 安装Maven的几种方法和操作步骤 方法一:通过Homebrew安装Maven 方法二:通过官方网站下载安装包安装Maven 方法三:通过SDKMAN安装Maven Maven是一种常用的Ja ...

  8. 香蕉派安装64位linux,快速上手 香蕉派镜像烧录与系统启动

    你需要什么 第一次使用Banana Pi, 您至少需要下表中的配件. 配件表 编号 配件 配件说明 1 MicroSD 卡 SD卡是可选的.如果需要从SD卡启动,最小大小为8GB, 等级为10 (该类 ...

  9. 香蕉派安装64位linux,在香蕉派里安装配置archlinux到树莓派

    把TF卡通过读卡器插入到香蕉派中,sdX是SD卡盘符.以下操作在香蕉派shell中完成 一.SD卡分区 使用fdisk 工具$ fdisk /dev/sdX 在fdisk 提示命令下删除旧分区并新建: ...

最新文章

  1. hdu2824(2009多校第一场) 线性筛法求欧拉函数
  2. 在WINCE5.0开始菜单中添加应用程序
  3. 东南亚Lazada平台3C数码市场概括,手机配件消费电子选品推荐
  4. CentOS中启动Jar包、后台启动、查看输出日志、查看服务进程、杀死进程
  5. matlab 2017 ubuntu,ubuntu安装matlab R2017,
  6. 快速git本地项目到github的关键命令及执行步骤(附上idea到git的步骤)
  7. 第二章 指南(4.3)添加 View
  8. mysql slave修改_MySql主从复制(初学笔记)
  9. 闭包 装饰器 偏函数
  10. java代码内创建mysql索引_点评阿里JAVA手册之MySQL数据库 (建表规约、索引规约、SQL语句、ORM映射)...
  11. 电大计算机网络模拟题及答案,最新国家开放大学电大本科《计算机网络》期末题库及答案...
  12. android裁剪部分放大动画,【Android】图片放大被截了一部分之认识clipChildren属性的用法...
  13. 三星专用计算机软件,三星PC套件Kies软件
  14. 体育用品商城小程序开发功能
  15. 房产管理系统平台平台管理分析
  16. 增量式旋转编码器的使用,以arduino为例
  17. textField使用合集(附字体设置合集)
  18. 2021哪款蓝牙耳机好?音质、颜值顶尖的五款优秀蓝牙耳机推荐
  19. numeric比较大小 数据库_数据库基础知识个人整理版-强烈推荐
  20. ABB KUC321AE HIEE300698R0001、KUC755AE106 3BHB005243R0106、KUC711AE 3BHB004661R0001、KUC720AE01

热门文章

  1. r910服务器增加内存,dellr910服务器硬件手册及安装方法
  2. dellR730装机教程
  3. S4 HANA MRP LIVE
  4. linux 查看 操作系统位数
  5. 《暗黑破坏神》经典爆笑小说
  6. 服务器没有立即响应请求,服务器没有及时响应或控制请求
  7. docker镜像加速,docker更换为国内镜像
  8. 双十一小马哥背后的女人们
  9. CAD控件:界面控制说明和方法
  10. w10电脑c盘满了怎么清理_w10电脑自动更新安装完c盘满了怎么清理