ARM架构安装ubuntu系统
一、简介
arm开发板制作系统是比较麻烦,不论使用busybox还是yocto制作根文件系统对新手都比太友好,除非深度定制,否则使用ubuntu系统既可以满足,把更多的精力放在应用开发上。
二、准备材料
我使用的芯片是RK3288,小伙伴可以根据自己的情况选择开发版。
开发环境:VMware
操作系统:ubuntu
开发版:RK3288
三、ubuntu的下载与配置
- 下载ubuntu系统
ubuntu官网根文件系统下载地址 http://cdimage.ubuntu.com ,根据需要下载自己所需的版本,我使用的是ubuntu20.04.2。打开链接后选择ubuntu-base → releases → 版本号 → release → ubuntu-base-20.04.1-base-armhf.tar.gz 下载完成后将ubuntu-base-20.04.1-base-armhf.tar.gz拷贝到ubuntu下,并解压。
mkdir ubuntu20.04.2
sudo tar zxf ubuntu-base-20.04.1-base-armhf.tar.gz -C ubuntu20.04.2
- 安装qemu-user-static工具
安装完成后拷贝“/usr/bin/qemu-arm-static”到刚刚解压文件的“/usr/bin”路径下。
sudo apt-get install qemu-user-static
sudo cp /usr/bin/qemu-arm-static ubuntu20.04.2/usr/bin/
- 网络配置
我在上一篇文章中uboot通过NFS挂载ubuntu根文件系统,介绍在ubuntu20.04.2/etc/apt/sources.list文件中更改ubuntu的软件源,不知道为啥这次配置后反而下载不了,所以这里我就没有配置,各位小伙伴视情况而定。为了制作成功的根文件系统能够联网,可以直接拷贝本机的dns配置文件到根文件系统的相应位置。
sudo cp /etc/resolv.conf ubuntu20.04.2/etc/resolv.conf
- 使用chroot工具挂载文件系统
挂载成功后会进入到我们下来的系统中,注意里面的操作都是对我们挂载的系统进行操作的,无法在对开发系统进行操作,除非使用exit命令退出。
sudo chroot ubuntu20.04.2

- 安装软件
首先更新源,更新完成,安装必要软件,如有需要根据自己需求安装所需的软件即可,以下是我使用时需要的软件。
apt-get update
apt-get upgrade
# 需要安装的软件
apt-get install sudo
apt-get install openssh-server
apt-get install vim
apt-get install net-tools
apt-get install udhcpc
apt-get install iputils-ping
- 用户配置
设置root密码
passwd root
创建用户
adduser rk3288
设置主机名称和本机IP
echo "rk3288" > /etc/hostname
echo "127.0.0.1 localhost" >> /etc/hosts
echo "127.0.1.1 rk3288" >> /etc/hosts
- 设置串口和网络dhcp
因为没有安装桌面,所以这里的配置要和内核中登录的串口的设备对应,否则串口会卡死,无法登陆。
sudo vim /lib/systemd/system/serial-getty\@.service
修改BindsTo选项将‘dev-%i.device’改成‘dev-%i’,修改ExecStart选项将‘-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM’改成‘-/sbin/agetty -a root --keep-baud 115200,38400,9600 %I $TERM’

- 退出挂载
exit
四、打包跟文件系统
不同的开发板需要的文件格式不一样,有的只需要将根文件系统压缩即可,是情况而定。RK3288需要的是.img格式,所以需要将根文件系统打包成.img文件,具体的操作方法我就不在介绍了,可以了解我之前文章linux下制作img文件。
五、烧写文件
打开瑞芯的烧写软件,文件结构如图所示

拷贝文件系统到
\rockdev\Image路径下打开AndroidTool_Release/AndroidTool.exe烧写工具,并将rootfs替换成要烧写的软件

通过ota连接设备,进入烧写模式,这里烧写的是linux系统,所以和andriod系统的烧写有所不同,具体如下



完成烧写


五、网络测试
- 通过
sudo udhcpc自动获取网络
ifconfig

sudo udhcpc

- 打开ssh登录
修改/etc/ssh/sshd_config文件,
vim /etc/ssh/sshd_config
打开PermitRootLogin和PasswordAuthentication。


重启ssh服务
systemctl restart ssh
完成后就可以打开ssh服务了

六、磁盘空间
- df(英文全称:disk full):列出文件系统的整体磁盘使用量
- du(英文全称:disk used):检查磁盘空间使用量
- fdisk:用于磁盘分区
- 查看文件系统的整体磁盘使用量
df -h

- 查看磁盘分区
fdisk -l

- 用于列出所有可用块设备的信息
sudo lsblk

从上面信息可以看出来我整个空间有14G左右,但是文件系统使用的空间只有4G左右,还有10G的空间未使用,所以现在需要将系统空间重新分配一下。
- 重新分配空间
从下图中可以明显看出来我整个空间有14G左右,而空间/dev/mmcblk2p5挂载的是根文件系统,并且空间有14.3G,但是通过df -h查看时只使用了4G左右,还有一部分空间未使用,所以只需要使用命令resize2fs将/dev/mmcblk2p5空间重新分配一下即可。

重新分配根文件空间
sudo resize2fs /dev/mmcblk2p5

到此在ARM架构中安装ubuntu系统已经完成了,有写得不好的地方望小伙伴们指出,我将努力学习并改进。
参考文献
RK3288的ubuntu根文件系统制作与配置:https://www.it610.com/article/1291557055815032832.htm
resize2fs命令 – 调整文件系统大小:https://www.linuxcool.com/resize2fs
Linux 磁盘管理:https://www.runoob.com/linux/linux-filesystem.html
ARM架构安装ubuntu系统的更多相关文章
- 2016031901 - U盘安装ubuntu系统
使用U盘安装ubuntu系统 01.进入u盘安装 个人使用的是闪迪U盘安装 02. 个人重装ubuntu 03.进入ubuntu安装界面 04.进入语言界面 05.准备安装ubuntu 06.ubun ...
- [置顶] 使用U盘安装ubuntu系统
使用U盘安装ubuntu系统 在网上找了很多教程,都不起效,提示:“从光盘上读取数据出错”. 总结出了几个关键点. 首先,版本,Ubuntu 12.04 Server,一般的U盘安装都会报:“从光盘上 ...
- 安装ubuntu系统及ubuntu安装Python的几点心得
一.安装ubuntu系统 1.ubuntu系统是Linux系统的一种,和centos差别不大,但是个人还是建议大家安装ubuntu,它更适合国内使用习惯,换句话说更亲切. 2.安装方法不再赘述,网上有 ...
- 如何安装ubuntu系统
https://www.cnblogs.com/Chinasf/archive/2010/05/06/1728840.html [Ubuntu 下挂ISO到虚拟光驱的方法] 各种方法参考如下论坛 ...
- U盘上安装Ubuntu系统 便捷式系统 - 赖大大
简单介绍: U盘可以作为电脑的磁盘使用,在U盘上安装Ubuntu系统,只要有电脑,就可以轻松打开自己的系统, 方便又快捷,非常适合出差工作,学习使用. 另外,插入U盘后,需要我们就入电脑的Blos模式 ...
- 安装ubuntu系统 ——分区
安装ubuntu 系统主要分四个区 目录 建议大小 格式 描述 / 10G-20G ext4 根目录 swap <2048M swap 交换空间 /boot 400M左右 ext4 Linux的 ...
- VirtualBox虚拟机安装ubuntu系统(图文详解)
不多说,直接上干货! 想简单说下,想必大家有的喜欢玩一下linux操作系统,但是又不想实际安装在物理机上.那我们就需要用到虚拟机了,这里我们介绍一下如何用VirtualBox安装ubuntu的方法. ...
- 使用VMWare12.0安装Ubuntu系统
使用VMWare12.0安装Ubuntu系统 Vmware12的虚拟机的文档说明: http://pubs.vmware.com/workstation-12/index.jsp#com.vmware ...
- win10安装ubuntu系统出现的一些问题以及解决方案
前言 在win10系统进行安装新的ubuntu环境的时候遇到的一些问题,以及解决方案,供以后参考. 准备 从ubuntu官网下载最近版本的ubuntu系统,Ubuntu最新版本下载地址 操作系统:wi ...
随机推荐
- RHCE_DAY05
cron周期性计划任务 cron周期性计划任务用来定期执行程序,目前最主要的用途是定期备份数据 软件包名:cronie.crontabs 服务名:crond 日志文件:/var/log/cron cr ...
- Android达到什么水平才能顺利拿到 20k 无压力?
程序员分很多种类和等级,如果要提高达到20k的概率,有两个条件如果满足的话,则很容易达到: 1.一线城市:北上广深杭 2.互联网行业 如果你非得抬杠,我要在三线城市,做外包要赚20k的话,很难,我自己 ...
- 超详细Java基础-多态
茫茫人海千千万万,感谢这一秒你看到这里.希望我的能对你的有所帮助!共勉! 愿你在未来的日子,保持热爱,奔赴山海! Java基础知识(多态) 多态 多态就是指程序中定义的引用变量所指向的具体类型和通过该 ...
- 如何评价《Java 并发编程艺术》这本书?
对于书评这件事情,我其实是不想写的,因为每个人都有自己的一个衡量标准,每个人眼中都有自己的哈姆雷特,是好是坏每个人都褒贬不一.如果对于书中的知识你都掌握了,你只是想把它作为一种知识串联的记忆体的话,那 ...
- Configure Hosts with Puppet
According to "Pro Puppet" 2nd edition, Chapter 2, "Creating a Module to Manage SSH&qu ...
- Java程序员的推荐阅读书籍
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...
- STP生成树的一些笔记
一.STP概述 1.1.STP简介 交换网络环路主要由广播风暴.多帧复制和MAC地址表紊乱造成. 广播风暴:一个数据帧或包被传输到本地网段 (由广播域定义)上的每个节点就是广播:由于网络拓扑的设计和连 ...
- 内网探测之SPN服务扫描及相关利用
在写下一个大块之前,补充一些小知识点,也没啥新东西 0x01简介 如果常规扫描服务,结果不理想,非常GG,可以考虑使用SPN进行服务扫描,这是为了借助Kerberos的正常查询行为(向域控发起LDAP ...
- FirstGradle
一.导入依赖 二.build.gradle 整合SpringBoot plugins { id 'java' } group 'com.qiang' version '1.0.0-SNAPSHOT' ...
- docker 实现redis主从复制
目录 一.概览 二.安装master库 三.安装slave从库 四.错误分析 五.参考网址 一.概览 主库:192.168.3.13:6380 从库一:192.168.3.14:6381 从库二:19 ...