您的位置:时时app平台注册网站 > 时时app平台注册网站 > 《Taylor的山抛子派》之 山抛子派3B 安装CentOS 7

《Taylor的山抛子派》之 山抛子派3B 安装CentOS 7

2019-11-08 02:01

四、基础配置

 

4.7 设置系统时区

查看时区设置

[root@localhost ~]# timedatectl
      Local time: Sat 2018-07-07 13:51:00 UTC
  Universal time: Sat 2018-07-07 13:51:00 UTC
        RTC time: n/a
       Time zone: Etc/UTC (UTC,  0000)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
  DST active: n/a

设置时区

[root@localhost ~]# timedatectl set-timezone Asia/Shanghai

查看时区设置

[root@localhost ~]# timedatectl
    Local time: 日 2018-06-24 21:29:14 CST
Universal time: 日 2018-06-24 13:29:14 UTC
        RTC time: n/a
    Time zone: Asia/Shanghai (CST,  0800)
    NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
    DST active: n/a

# umount /tmp/rpi/boot/
# umount /tmp/rpi/home/
# umount /tmp/rpi/

三、烧录系统

镜像文件

树莓派的镜像文件为.img,下载的操作系统镜像为.img文件或raw.xz文件
本文使用CentOS for AArch64作为树莓派的操作系统,由于Centos官方未提供64位的img镜像下载,所以本文采用移植版的CentOS for AArch64
镜像下载地址:https://github.com/chainsx/centos64-rpi

使用工具

SDFormatter:TF卡格式化工具,用于格式化TF卡
下载地址:https://www.sdcard.org/chs/downloads/formatter_4/eula_windows/index.html

Win32DiskImager:镜像烧录工具,用于烧录img镜像
下载地址:https://sourceforge.net/projects/win32diskimager/

putty:SSH连接工具,用于ssh连接树莓派
下载地址:https://www.chiark.greenend.org.uk/~sgtatham/putty/

fdisk> Command (m for help): t
       Selected partition 1
       Partition type (type L to list all types): b
       Changed type of partition 'Linux' to 'W95 FAT32'.

4.2 升级系统内核

由于移植版本的系统内核未提供无线网络、蓝牙等扩展功能的驱动,所以需要升级系统内核,否则无法开启树莓派的无线网卡

查看内核版本

#查看内核版本
[root@localhost ~]# cat /proc/version
Linux version 4.13.16-chainsx-edition-CX-v5 (root@ubuntu) (gcc version 5.4.0 20160609 
(Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.6)) #1 SMP PREEMPT Tue Feb 20 18:45:58 CST 2018

配置hosts

#编辑hosts
[root@localhost ~]# vi /etc/hosts
#输入以下内容(或参考 常见问题及解决 使用DNS检测网站检测最新的IP)
192.30.253.112 github.com
151.101.113.194 github.global.ssl.fastly.net

克隆项目

#从git克隆项目
[root@localhost ~]# git clone https://github.com/chainsx/firmware64-rpi
Cloning into 'firmware64-rpi'...
remote: Counting objects: 2928, done.
remote: Total 2928 (delta 0), reused 0 (delta 0), pack-reused 2928
Receiving objects: 100% (2928/2928), 65.13 MiB | 2.82 MiB/s, done.
Resolving deltas: 100% (517/517), done.
Checking out files: 100% (2895/2895), done.

进入目录

[root@localhost ~]# cd /root/firmware64-rpi

安装内核

[root@localhost ~]# cd install && sh install.sh
Install Image,dtbs
cp: cannot overwrite directory ‘/boot/overlays’ with non-directory
cp: error writing ‘/boot/vmlinuz-4.16.0-chainsx-edition-chainsx v7’: No space left on device
Remove old modules
OK
Install modules
OK
Install firmware
OK
Install kernel_headers
OK
Configure files
#uncomment to overclock the arm. 700 MHz is the default.
arm_freq=700# NOOBS Auto-generated Settings:
hdmi_force_hotplug=1
config_hdmi_boost=4
overscan_left=24
overscan_right=24
overscan_top=16
overscan_bottom=16
disable_overscan=0
core_freq=250
sdram_freq=400
over_voltage=0
OK
You can reboot to use this new kernel.

重启系统

[root@localhost ~]# reboot

查看内核版本

[root@localhost ~]# cat /proc/version
Linux version 4.16.0-chainsx-edition-chainsx v7 (root@ubuntu) (gcc version 5.4.0 20160609 
(Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.6)) #3 SMP PREEMPT Thu Mar 22 02:32:13 CST 2018

本文主要用于记录安装过程,以便日后查阅回顾。

1.2 树莓派简介

树莓派是什么?

树莓派(Raspberry Pi),是一款只有一张信用卡大小的开源单板计算机, 它由英国的树莓派基金会开发,目的是以低价硬件及自由软件刺激在学校的
基本的电脑科学教育,在经历几代版本的更新迭代后,树莓派不仅支持Linux以及Linux的衍生版本系统,还支持Windows 10 IoT Core等全新的系统平台,
并且融入了众多的AI元素,是目前全球应用最广、最受电子爱好者、工程师、学生喜爱的开源单板计算机。

谁在玩树莓派?

通过上文的介绍我们可以了解到,树莓派最初的目的是致力于在校学生的计算机教育,无论是小学生、中学生还是大学生,都可以零基础入门。
随着树莓派的不断迭代、性能提升,其作用也在发生变化,除了计算机教育的应用,还被众多的嵌入式开发工程师、软件开发工程师等用来做各种实验项目。
如果你对树莓派或者编程感兴趣,无论你是否学过计算机编程,都可以零基础入门。

PS:《Taylor的树莓派》系列教程会陆续发布,希望热爱技术的你和我一起学习!

我们可以用树莓派做什么?

Linux系统学习
    利用树莓派学习Linux系统的基本操作和命令

Git服务器
    利用树莓派搭建局域网/外网的Git服务器,方便个人或小团队的代码管理

FTP服务器
    利用树莓派搭建局域网/外网的FTP服务器,建立个人或小团队的FTP站点

消息队列服务器
    利用树莓派搭建消息队列服务器,如:部署RPC服务端或消费者端进行消息处理等

爬虫服务器
    利用树莓派搭建分布式爬虫服务器,如:Python RabbitMQ redis的高并发分布式爬虫等

微服务部署
    利用树莓派部署基于Docker的微服务架构API,如.NET Core、Spring Boot等

物联网开发
    利用树莓派的串口连接各类传感器(如:温湿度传感器、光照传感器、烟雾传感器等)进行物联网开发

fdisk> Command (m for help): n
       Partition type
          p   primary (0 primary, 0 extended, 4 free)
          e   extended (container for logical partitions)
       Select (default p): p
       Partition number (1-4, default 1): 1
       First sector (32-31422463, default 32): 
       Last sector,  sectors or  size{K,M,G,T,P} (32-31422463, default 31422463):  128M        

4.4 配置无线网络

查看IP地址

[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
    valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.104/24 brd 192.168.0.255 scope global noprefixroute dynamic eth0
    valid_lft 6935sec preferred_lft 6935sec
    inet6 fe80::ba27:ebff:fee1:2a28/64 scope link
    valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff

#注意:查看wlan0的状态是否为UP,当前wlan0的状态没有UP,说明没有开启,执行下一条命令开启wlan0

开启wlan0

[root@localhost ~]# ip link set wlan0 up

查看IP地址

[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
    valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.104/24 brd 192.168.0.255 scope global noprefixroute dynamic eth0
    valid_lft 6912sec preferred_lft 6912sec
    inet6 xxxx::xxxx:xxxx:xxxx:xxxx/64 scope link
    valid_lft forever preferred_lft forever
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff

#注意:查看wlan0的状态是否为UP,当前wlan0的状态为UP,说明已经开启

安装wifi管理工具

[root@localhost ~]# yum -y install NetworkManager-wifi

配置文件设置wifi

[root@localhost ~]# cd /etc/sysconfig/network-scripts

创建配置文件

#ifcfg-后面的名称与下文NAME参数对应
[root@localhost ~]# vi ifcfg-taylor

#输入内容如下:
HWADDR=xx:xx:xx:xx:xx:xx #无线网卡MAC地址(本例以x号代替,可以使用 ip addr 命令查看 wlan0 的MAC地址)
ESSID=xxxxxx #wifi名称(无线网的名称,本例以x号代替)
MODE=Managed
KEY_MGMT=WPA-PSK
SECURITYMODE=open
MAC_ADDRESS_RANDOMIZATION=default
TYPE=Wireless
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none #启用静态IP
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=taylor #网络连接的名称
UUID=ff0af7a2-aac8-45b7-bf21-894d571c9b2a
ONBOOT=yes #开机自动启动
IPADDR=192.168.0.110 #静态IP
PREFIX=24 #子网掩码24位
GATEWAY=192.168.0.1 #默认网关
DNS1=192.168.1.1 #DSN 1
DNS2=192.168.0.1 #DNS 2

创建密钥文件

#keys-后面的名称与上文NAME参数对应
[root@localhost ~]# vi keys-taylor

#输入内容如下(本例以x号代替)
WPA_PSK=xxxxxx #wifi密码

重启系统

[root@localhost ~]# reboot

#系统重启后使用ip addr 命令查看wlan0是否正确分配ip,如果正确分配ip,此时可拔掉网线,断开ssh连接。
使用静态ip连接ssh,即使用wifi连接树莓派

 

4.1 扩展磁盘分区

系统烧录完成之后的系统分区为根分区 Linux分区,也就是TF卡的磁盘大小仅为系统镜像的大小,很显然这是不能接受的,我们要对磁盘进行重新分区,找回失去的磁盘空间

关于烧录分区

img镜像是一种可引导的分区文件,系统烧录完成后,磁盘被分为两个区。
一个是FAT16可读写的根分区,用来存放镜像引导文件和系统内核等文件。
一个是Linux的只读分区,用来存放Linux文件系统。
重新分区的目的就是将只读分区的剩余空间扩展出来,最大化磁盘剩余空间,用来存储其他文件

查看磁盘大小

[root@localhost ~]# df -h

进入分区工具

[root@localhost ~]# fdisk /dev/mmcblk0
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

磁盘分区

#删除分区(命令:d)
Command (m for help): d

#选择分区(删除默认分区)
Partition number (1,2, default 2): 输入2或直接回车

#列出分区表(命令:p)
Command (m for help): p
Device Boot             Start         End       Blocks   Id  System
/dev/mmcblk0p1   *        2048      131072       64512    e  W95 FAT16 (LBA)

#新建分区(命令:n)
Command (m for help): n

#选择分区类型(选择默认类型,输入p)
Select (default p): p

#选择分区(选择默认分区)
Partition number (2-4, default 2): 输入2或回车

#选择第二分区起始位置(使用默认)
First sector (131073-124735487, default 133120): 回车

#选择第二分区结束位置(使用默认)
Last sector,  sectors or  size{K,M,G} (133120-124735487, default 124735487): 回车

#列出分区表(命令:p)
Command (m for help): p
 Device Boot            Start         End       Blocks   Id  System
/dev/mmcblk0p1   *        2048      131072       64512    e  W95 FAT16 (LBA)
/dev/mmcblk0p2          133120   124735487    62301184   83  Linux

#把分区写进分区表,保存并退出(命令:w)
Command (m for help): w

重启系统

[root@localhost ~]# reboot

重启后调整分区大小(重要步骤!!!)

#要调整的分区为第二分区
[root@localhost ~]# resize2fs /dev/mmcblk0p2

查看磁盘大小

[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        59G  2.3G   54G   5% /
devtmpfs        454M     0  454M   0% /dev
tmpfs           459M     0  459M   0% /dev/shm
tmpfs           459M   12M  448M   3% /run
tmpfs           459M     0  459M   0% /sys/fs/cgroup
/dev/mmcblk0p1   63M   63M  2.0K 100% /boot
tmpfs            92M     0   92M   0% /run/user/0

 

4.8 修改系统密码

修改root密码(密码输入无任何回显,摸黑输入)

#若提示 无效的密码: 密码包含用户名在某些地方 请忽略该提示,再次输入密码即可更改成功

#英文版
[root@localhost ~]# passwd root
Changing password for user root.
New password:
BAD PASSWORD: The password contains the user name in some form
Retype new password:
passwd: all authentication tokens updated successfully.

#中文版
[root@localhost ~]# passwd root
更改用户 root 的密码 。
新的 密码:
无效的密码: 密码包含用户名在某些地方
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

重启系统

[root@localhost ~]# reboot
  1. 解除SD卡挂载

五、常见问题及解决

当看到Created a new partition 1 of type 'Linux' and of size 128 MiB.信息时就表示分区创建成功了。
根据刚才的提示我们可以知道,刚才创建的分区类型是“Linux”的,而树莓派要求Boot分区必须是FAT32,因此还需要输入t命令转换分区类型。输入L查询所有类型代码,可以查到W95 FAT32的代码是b,因此输入b,此时会显示类似下面的信息:

5.2 GitHub访问/下载太慢

使用(站长工具-Dns检测)
http://tool.chinaz.com/dns/ 
或(IP检测网站)
https://www.ipaddress.com/

分别检测
github.com
github.global.ssl.fastly.net-tools
codeload.github.com

写入hosts(Windows):
C:WindowsSystem32driversetchosts

192.30.253.113 github.com
151.101.73.194 github.global.ssl.fastly.net

cmd 执行 ipconfig /flushdns 命令,刷新 DNS 缓存

写入hosts(Linux):
vi /etc/hosts

192.30.253.112 github.com
151.101.113.194 github.global.ssl.fastly.net

max_usb_current=1
hdmi_group=2
hdmi_mode=87
hdmi_cvt 1024 600 60 6 0 0 0
hdmi_drive=1

一、简介

最后执行# rpi-update即可进行专用固件升级。

1.1 作者简介

Taylor
80后程序员,热爱技术、追求极致,爱玩、爱折腾,10年.NET开发,熟悉.NET、Java、Python等技术。

 

5.1 ifconfig命令无效

描述:输入ifconfig命令后显示 -bash: ifconfig: command not found 或 -bash: ifconfig: 未找到命令

原因:缺少net-tools包(net-tools包提供了ifconfig命令)

解决:安装net-tools
    yum install net-tools
拓展:
    1、CentOS 7最小化系统,使用 ip addr 和 ip link 命令来查找网卡详情,要知道统计数据,可以使用 ip -s link

    2、如果你不知道在哪里可以找到ifconfig命令,请按照以下简单的步骤来找到它。
        首先,让我们找出哪个包提供了ifconfig命令。要完成这项任务,输入以下命令:

        yum provides ifconfig

        或者你也可以使用以下命令

        yum whatprovides ifconfig

        “provides”或者“whatprovides”开关用于找出某个包提供了某些功能或文件

1.  Raspberry Pi document on Fedora official wiki []

1.3 ARM简介

在学习任何嵌入式开发之前,最先要了解的就是嵌入式终端的CPU架构。

树莓派是典型的嵌入式开发板,其CPU架构自然是ARM,先来看下树莓派3B 的硬件配置:

博通BCM2837B0 SoC,集成四核ARM Cortex-A53(ARMv8)64位@ 1.4GHz CPU,集成博通 Videocore-IV GPU

内存:1GB LPDDR2 SDRAM

有线网络:千兆以太网(通过USB2.0通道,最大吞吐量 300Mbps)

无线网络:2.4GHz和5GHz 双频Wi-Fi,支持802.11b/g/n/ac

蓝牙:蓝牙4.2&低功耗蓝牙(BLE)

存储:Micro-SD

其他接口:HDMI,3.5mm模拟音频视频插孔,4x USB 2.0,以太网,摄像机串行接口(CSI),
显示器串行接口(DSI),MicroSD卡座,40pin扩展双排插针

尺寸:82mmx 56mmx 19.5mm,50克

ARM概念

ARM首先是一个公司,这家公司设计CPU并向各个CPU制造商授权许可,所以ARM公司是一家CPU设计公司。同时,ARM也是ARM公司主导设计的CPU系列的简称。

ARM版本区分

ARM版本号可以分为三类:

· 内核版本号,例如ARMv5,ARMv7,ARMv7a,ARMv8a...

· Soc版本号,例如Cortex-A8,Cortex-A9...

· 芯片型号,例如2410,2440,6410,S5PV210...

CPU设计原理和总线

CPU主要包括运算器,控制器,存储器通过总线与Flash与内存连接。

总线就类似于CPU中的道路,数据通过总线在CPU和外设之间传输,CPU也通过内部总线与SOC中的其他外设连接,例如UART设备,内部总线由于在芯片内部,
抗干扰能力强,运算速度更快。

总线分为两种,地址总线和数据总线:

地址总线用于传输地址,CPU通过地址总线寻址,告诉设备要取的数据在哪个地址中,地址总线的位数决定了寻址范围

数据总线用于传输数据,CPU通过数据总线与外部交换信息,将设备要的数据通过该总线发送给对方,数据总线的位数决定了CPU单次通信能交换的信息数量

总线的速度决定了CPU和外设互换信息的速度

CPU的地址总线和数据总线的位数可以不同,CPU的位数就指的是数据总线的位数

32位CPU的寻址范围是4G所以最多支持4G内存,数据总线是32位的,那么传输一个int和传输一个char的效率是一样的。

在64位系统下运行32位软件,唯一的差别就是32位软件仍然是32寻址机制,所以只有64位系统才能原生支持超过4G内存的寻址。

树莓派3B 使用的CPU为四核ARM Cortex-A53(ARMv8)64位,通过上文我们了解到32位的寻址空间有限,并不能真正发挥64位CPU的性能,有实验证明,64位CPU的树莓派比32位的效率提高近30倍。

支持ARM的系统

了解了树莓派的CPU,再来说下支持树莓派的系统,目前支持树莓派的系统有以下几种:

Raspbain Stretch        树莓派官方操作系统(图形界面版)
Raspbain Stretch Lite   树莓派官方操作系统(命令行版)
Ubuntu Mate             Ubuntu标准系统(图形界面版)
......
Ubuntu Server           Ubuntu服务器系统
Windows 10 IoT Core     Windows 10的物联网核心系统
CentOS-armhfp           Centos arm32位版
CentOS-AArch64          Centos arm64位版

说明:Centos系统官方只提供32位版本的img镜像下载,64位版系统提供.iso的镜像下载,树莓派无法烧录.iso镜像
Centos从ARMv8开始使用AArch术语表示,AArch是ARMv8的官方Linux体系结构名称
详见官方说明:https://seven.centos.org/2015/03/building-centos-linux-7-for-armv8/
官方镜像地址32位:http://mirror.centos.org/altarch/7/isos/armhfp/
官方镜像地址64位:http://mirror.centos.org/altarch/7/isos/aarch64/

更多系统,详见

  1. 挂载Fedora ARM 23系统镜像和SD卡分区,拷贝镜像文件
    如果镜像还没解压,可以通过# unxz Fedora-Server-armhfp-23-10-sda.raw.xz命令解压。
    创建临时挂载点:# mkdir /tmp/img/
    创建loop device:# losetup --partscan --find --show Fedora-Server-armhfp-23-10-sda.raw /dev/loop0
    挂载loop device的根分区到临时挂载点:# mount -r /dev/loop0p3 /tmp/img/
    这里说明一下,通常Linux系统镜像中第一个分区是boot分区,对应/boot/路径。第二个分区是swap分区,可以忽略,第三个分区才是根分区,对应/。因为我们不打算使用原生的boot和kernal,因此不挂载第一个分区。官方的说明是,随Fedora一起发布的kernal暂时没有支持树莓派芯片的所有特性,因此最好使用树莓派的专用内核固件。
    接着挂载我们的SD卡系统根分区:
    # mkdir /tmp/rpi/
    # mount /dev/mmcblk0p3 /tmp/rpi/
    挂载SD卡boot分区:
    # mkdir /tmp/rpi/boot/
    # mount /dev/mmcblk0p1 /tmp/rpi/boot/
    挂载SD卡home分区:
    # mkdir /tmp/rpi/home/
    # mount /dev/mmcblk0p4 /tmp/rpi/home/
    然后,将镜像根分区中的文件拷贝到SD的根分区中:# cp -rpv /tmp/img/* /tmp/rpi/
    可以执行sync确认缓存同步。
    最后解除镜像文件的挂载:
    # umount /tmp/img
    # losetup -d /dev/loop0

4.3 更改系统语言

查看语言配置

[root@localhost ~]# cat /etc/locale.conf
LANG="en_US.UTF-8"

查看系统语言包

[root@localhost ~]# locale -a

修改语言配置

[root@localhost ~]# vi /etc/locale.conf
#更改为简体中文
LANG="zh_CN.utf8"

重启系统

[root@localhost ~]# reboot

查看语言配置

[root@localhost ~]# cat /etc/locale.conf
LANG="zh_CN.utf8"

 

4.6 升级系统版本

查看系统版本

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (AltArch)

备份重要数据

备份过程略(或不备份直接升级)

运行yum命令升级

#清除yum缓存
[root@localhost ~]# yum clean all

#更新所有包
[root@localhost ~]# yum -y update

重启系统

[root@localhost ~]# reboot

查看系统版本

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (AltArch)
  1. 安装树莓派固件更新包
    首先执行# dnf install binutils git安装依赖组件。
    然后执行以下命令安装rpi-update:

二、材料清单

树莓派3B (2.5V电源   USB线)x 1 约230-250元

闪迪TF卡(64G)x 1 约80-100元

TF卡读卡器 x 1 约10元

材料总价约300元
  1. 设置fstab文件内容
    这里需要注意,修改的是SD卡上的fstab文件,而不是自己电脑上的,如果改错了,自己的电脑就没法启动了,所以需要特别小心。
    首先执行# blkid | grep sdb命令查询sdb磁盘每个分区的UUID,如果是内置读卡器,磁盘名可能替换为mmcblk0
    然后使用常用的编辑器打开/tmp/rpi/etc/fstab文件,这个文件是在引导的时候用的,修改的时候需要比较严谨。首先,swap分区放在最后一行,行数不够可以拷贝一行。第一行一定是根分区,也就是我们分的第三个系统分区。往下必须是一棵树型结构,我们把boot分区放在第二行,把用户分区放在第三行,分别更新UUID、路径和分区格式信息。确认无误后保存。

4.5 安装基础工具

安装下载工具

[root@localhost ~]# yum -y install wget

安装epel源

#下载(清华大学镜像站地址)
[root@localhost ~]# wget https://mirrors.tuna.tsinghua.edu.cn/epel/epel-release-latest-7.noarch.rpm

#安装
[root@localhost ~]# rpm -vih epel-release-latest-7.noarch.rpm

#查看
[root@localhost ~]# cd /etc/yum.repos.d
[root@localhost yum.repos.d]# ls
CentOS-Base.repo         CentOS-CR.repo         CentOS-fasttrack.repo  CentOS-Sources.repo  epel.repo
CentOS-Base.repo.rpmnew  CentOS-Debuginfo.repo  CentOS-Media.repo      CentOS-Vault.repo    epel-testing.repo

#更新源
[root@localhost ~]# yum clean all && yum makecache

安装开发工具包

[root@localhost ~]# yum groupinstall "Development Tools"

如果要使用Waveshare 7inch HDMI LCD(C)屏幕的话,还要加入以下内容:

 

 

  1. 格式化刚才新建的SD卡分区
    如果分区已经成功,这时在/dev/目录下应该能看到sdb和新建的4个分区:sdb1,sdb2,sdb3,sdb4。如果是用内置读卡器,则可能是mmcblk0和对应的4个分区:mmcblk0p1,mmcblk0p2,mmcblk0p3,mmcblk0p4。
    通过mkfs.vfat 分区设备路径,将指定分区格式化为FAT32格式。通过mkswap 分区设备路径,将指定分区格式化为swap格式。通过mkfs.ext4 分区设备路径,将指定分区格式化为ext4格式。

之前在自己的树莓派上运行的一直是通过NOOB安装的Raspbian,但是本人平时更喜欢用Fedora作为开发和使用环境,而且Raspbian上的软件包通常更新比较缓慢。因为树莓派2代B型上市前,树莓派的芯片都是armv6或者更早的架构,只能运行ARM架构的Raspbian或者Fedora 18及更早版本。树莓派2代B型搭载的芯片架构是armv7,树莓派3代搭载的芯片架构是armv8,这两种芯片都能够运行ARM架构的Fedora 23,而仅运行Raspbian也难以充分发挥硬件性能,因此通过查找资料,最终找到了Fedora官方的文档说明。首先在16G的存储卡上验证成功,今天就在64G的SD卡上再来一遍,顺便把每个步骤记录下来,以备自己和其他人参考。

参考资料:

hdmi_force_hotplug=1
config_hdmi_boost=4
overscan_left=24
overscan_right=24
overscan_top=16
overscan_bottom=16
disable_overscan=0
core_freq=250
sdram_freq=400
over_voltage=0

  1. 拷贝树莓派专用固件
    如果固件还没解压,可以通过# unzip raspberry-firmware.zip命令解压。
    然后通过以下命令拷贝需要用到的文件:
    # cp -r firmware-master/boot/* /tmp/rpi/boot/
    # cp -r firmware-master/modules/* /tmp/rpi/lib/modules/
    然后在SD卡boot分区下创建一个名为cmdline.txt的文件,用来向内核传递参数。该文件内容如下:
    dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p3 rootfstype=ext4 elevator=deadline rootwait
    这里需要注意,因为这个文件是给树莓派机器用的,SD卡插入树莓派后,SD卡的设备路径应该是/dev/mmcblk0,根分区设备路径就是/dev/mmcblk0p3,所以应该固定写这个内容,而不再是准备SD卡时在电脑上的设备路径。
    接着在/boot分区下创建一个名为config.txt的文件,这一步是可选的,我第一尝试没有建立这个文件,系统可以正常启动。如果想建立这个文件,文件内容如下:

 

最后可以执行sync确认缓存同步。

       Created a new partition 1 of type 'Linux' and of size 128 MiB.

接着重复上面的步骤,创建swap分区和系统分区。注意新建分区和修改分区类型时选择分区的编号需要增长。根据官方文档,swap分区的分区类型应该是“Linux swap / Solaris”类型,对应的编号是82。而系统分区和用户分区则不需要修改分区类型。
于是,创建磁盘分区结构的工作就基本完成了,执行p命令查看结果,确认无误后执行w命令写入存储卡。如果系统提示需要重启或者重新连接读卡器的,先重启或者重新连接后再执行下一步。

# dnf remove kernel kernel-core kernel-modules
# dnf update

 

  1. 将SD卡插入树莓派并进行初始化
    上电后正常情况应该会显示初始化向导,可以选择1~4进行指定的操作,如设定时区、语言、设置root密码、新建管理员账号等。完成后重启即可。
    重启后执行以下命令移除没用使用到的Fedora官方内核并更新系统:

# curl -L -o /usr/bin/rpi-update 
# chmod  x /usr/bin/rpi-update

  1. 创建磁盘分区结构
    因为官方的文档中只介绍了fdisk的使用,因此就偷懒,只参考了官方文档的步骤,至于其他工具是否可行,暂时就不研究了。有兴趣的话可以试试。
    由于大部分操作都是需要根用户权限的,如果觉得经常sudo麻烦,可以直接su切换到根用户。
    首先需要确定磁盘的设备路径,使用USB读卡器有可能路径是/dev/sdb,而使用计算机内置的读卡器,SD卡的路径可能是/dev/mmcblk0,自己根据情况确定。
    确定设备路径后运行# fdisk /dev/sdb (这是我电脑上的路径)
    回车后进入交互模式,p打印当前操作磁盘的分区信息,d删除,删除现存的分区。
    接着说说我打算创建的分区:根据官方文档,boot分区128Mb就足够了,因为2代B型的内存是1G,所以swap分区干脆给1G;这时还剩大约58G可用空间,给系统16G以上的可用空间差不多了,如果打算作为开发工作站,装很多软件包,可以适当留多一些,剩下的空间作为用户分区。
    然后输入n创建新的分区,回车后出现提示,输入p可以创建主分区,输入e可以创建扩展分区,我们要创建的是主分区,之后根据提示输入1表示要创建的是第一个分区,然后输入两次回车,跳过First sector选项,在Last sector选项中输入 128M,表示划分给分区的大小。屏幕上的提示信息可以参考如下:

 

  1. 准备工作
    下载Fedora 23 ARM镜像和raspberry专用固件(Boot和Kernel):
    a. Fedora 23 ARM 官方下载地址 []
    b. Raspberry Pi专用固件下载地址 []
    下载完后解压到方便的目录备用即可。

本文由时时app平台注册网站发布于时时app平台注册网站,转载请注明出处:《Taylor的山抛子派》之 山抛子派3B 安装CentOS 7

关键词: