ARM架构安装ubuntu系统
<h2 id="一简介">一、简介</h2><p>arm开发板制作系统是比较麻烦,不论使用busybox还是yocto制作根文件系统对新手都比太友好,除非深度定制,否则使用ubuntu系统既可以满足,把更多的精力放在应用开发上。</p>
<h2 id="二准备材料">二、准备材料</h2>
<p>我使用的芯片是RK3288,小伙伴可以根据自己的情况选择开发版。<br>
开发环境:VMware<br>
操作系统:ubuntu<br>
开发版:RK3288</p>
<h2 id="三ubuntu的下载与配置">三、ubuntu的下载与配置</h2>
<ol>
<li>下载ubuntu系统<br>
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下,并解压。</li>
</ol>
<pre><code>mkdir ubuntu20.04.2
sudo tar zxf ubuntu-base-20.04.1-base-armhf.tar.gz -C ubuntu20.04.2
</code></pre>
<ol start="2">
<li>安装qemu-user-static工具<br>
安装完成后拷贝“/usr/bin/qemu-arm-static”到刚刚解压文件的“/usr/bin”路径下。</li>
</ol>
<pre><code>sudo apt-get install qemu-user-static
sudo cp /usr/bin/qemu-arm-static ubuntu20.04.2/usr/bin/
</code></pre>
<ol start="3">
<li>网络配置<br>
我在上一篇文章中uboot通过NFS挂载ubuntu根文件系统,介绍在ubuntu20.04.2/etc/apt/sources.list文件中更改ubuntu的软件源,不知道为啥这次配置后反而下载不了,所以这里我就没有配置,各位小伙伴视情况而定。为了制作成功的根文件系统能够联网,可以直接拷贝本机的dns配置文件到根文件系统的相应位置。</li>
</ol>
<pre><code>sudo cp /etc/resolv.conf ubuntu20.04.2/etc/resolv.conf
</code></pre>
<ol start="4">
<li>使用chroot工具挂载文件系统<br>
挂载成功后会进入到我们下来的系统中,注意里面的操作都是对我们挂载的系统进行操作的,无法在对开发系统进行操作,除非使用exit命令退出。</li>
</ol>
<pre><code>sudo chroot ubuntu20.04.2
</code></pre>
<p><img src="https://img2020.cnblogs.com/blog/2406897/202109/2406897-20210916145108970-652443121.png" alt="" loading="lazy"></p>
<ol start="5">
<li>安装软件<br>
首先更新源,更新完成,安装必要软件,如有需要根据自己需求安装所需的软件即可,以下是我使用时需要的软件。</li>
</ol>
<pre><code>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 iproute2
apt-get install udhcpc
apt-get install iputils-ping
</code></pre>
<ol start="6">
<li>用户配置<br>
设置root密码</li>
</ol>
<pre><code>passwd root
</code></pre>
<p>创建用户</p>
<pre><code>adduser rk3288
</code></pre>
<p>设置主机名称和本机IP</p>
<pre><code>echo "rk3288" > /etc/hostname
echo "127.0.0.1 localhost" >> /etc/hosts
echo "127.0.1.1 rk3288" >> /etc/hosts
</code></pre>
<ol start="7">
<li>设置串口和网络dhcp<br>
因为没有安装桌面,所以这里的配置要和内核中登录的串口的设备对应,否则串口会卡死,无法登陆。</li>
</ol>
<pre><code>sudo vim /lib/systemd/system/serial-getty\@.service
</code></pre>
<p>修改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’<br>
<img src="https://img2020.cnblogs.com/blog/2406897/202109/2406897-20210916153354236-1222460472.png" alt="" loading="lazy"></p>
<ol start="8">
<li>退出挂载</li>
</ol>
<pre><code>exit
</code></pre>
<h2 id="四打包跟文件系统">四、打包跟文件系统</h2>
<p>不同的开发板需要的文件格式不一样,有的只需要将根文件系统压缩即可,是情况而定。RK3288需要的是.img格式,所以需要将根文件系统打包成.img文件,具体的操作方法我就不在介绍了,可以了解我之前文章linux下制作img文件。</p>
<h2 id="五烧写文件">五、烧写文件</h2>
<ol>
<li>
<p>打开瑞芯的烧写软件,文件结构如图所示<br>
<img src="https://img2020.cnblogs.com/blog/2406897/202109/2406897-20210916154719067-2122511766.png" alt="" loading="lazy"></p>
</li>
<li>
<p>拷贝文件系统到<br>
\rockdev\Image路径下</p>
</li>
<li>
<p>打开AndroidTool_Release/AndroidTool.exe烧写工具,并将rootfs替换成要烧写的软件<br>
<img src="https://img2020.cnblogs.com/blog/2406897/202109/2406897-20210916155246850-753409320.png" alt="" loading="lazy"></p>
</li>
<li>
<p>通过ota连接设备,进入烧写模式,这里烧写的是linux系统,所以和andriod系统的烧写有所不同,具体如下<br>
<img src="https://img2020.cnblogs.com/blog/2406897/202109/2406897-20210916155524737-1416336476.png" alt="" loading="lazy"><br>
<img src="https://img2020.cnblogs.com/blog/2406897/202109/2406897-20210916155544976-837233801.png" alt="" loading="lazy"><br>
<img src="https://img2020.cnblogs.com/blog/2406897/202109/2406897-20210916155659454-988549017.png" alt="" loading="lazy"></p>
</li>
<li>
<p>完成烧写<br>
<img src="https://img2020.cnblogs.com/blog/2406897/202109/2406897-20210916160604177-868043611.png" alt="" loading="lazy"><br>
<img src="https://img2020.cnblogs.com/blog/2406897/202109/2406897-20210916160636659-662224755.png" alt="" loading="lazy"></p>
</li>
</ol>
<h2 id="五网络测试">五、网络测试</h2>
<ol>
<li>通过<code>sudo udhcpc</code>自动获取网络</li>
</ol>
<pre><code>ifconfig
</code></pre>
<p><img src="https://img2020.cnblogs.com/blog/2406897/202109/2406897-20210916160835236-1282122660.png" alt="" loading="lazy"></p>
<pre><code>sudo udhcpc
</code></pre>
<p><img src="https://img2020.cnblogs.com/blog/2406897/202109/2406897-20210916161019873-882359930.png" alt="" loading="lazy"></p>
<ol start="2">
<li>打开ssh登录<br>
修改/etc/ssh/sshd_config文件,</li>
</ol>
<pre><code>vim /etc/ssh/sshd_config
</code></pre>
<p>打开PermitRootLogin和PasswordAuthentication。<br>
<img src="https://img2020.cnblogs.com/blog/2406897/202109/2406897-20210916161359880-143293577.png" alt="" loading="lazy"><br>
<img src="https://img2020.cnblogs.com/blog/2406897/202109/2406897-20210916161445141-336507634.png" alt="" loading="lazy"><br>
重启ssh服务</p>
<pre><code>systemctl restart ssh
</code></pre>
<p>完成后就可以打开ssh服务了<br>
<img src="https://img2020.cnblogs.com/blog/2406897/202109/2406897-20210916161840821-2020651719.png" alt="" loading="lazy"></p>
<h2 id="六磁盘空间">六、磁盘空间</h2>
<ul>
<li>df(英文全称:disk full):列出文件系统的整体磁盘使用量</li>
<li>du(英文全称:disk used):检查磁盘空间使用量</li>
<li>fdisk:用于磁盘分区</li>
</ul>
<ol>
<li>查看文件系统的整体磁盘使用量</li>
</ol>
<pre><code>df -h
</code></pre>
<p><img src="https://img2020.cnblogs.com/blog/2406897/202109/2406897-20210916162824132-948313165.png" alt="" loading="lazy"></p>
<ol start="2">
<li>查看磁盘分区</li>
</ol>
<pre><code>fdisk -l
</code></pre>
<p><img src="https://img2020.cnblogs.com/blog/2406897/202109/2406897-20210916162930508-1267647274.png" alt="" loading="lazy"></p>
<ol start="3">
<li>用于列出所有可用块设备的信息</li>
</ol>
<pre><code>sudo lsblk
</code></pre>
<p><img src="https://img2020.cnblogs.com/blog/2406897/202109/2406897-20210916163058115-1633948702.png" alt="" loading="lazy"><br>
从上面信息可以看出来我整个空间有14G左右,但是文件系统使用的空间只有4G左右,还有10G的空间未使用,所以现在需要将系统空间重新分配一下。</p>
<ol start="4">
<li>重新分配空间<br>
从下图中可以明显看出来我整个空间有14G左右,而空间<code>/dev/mmcblk2p5</code>挂载的是根文件系统,并且空间有14.3G,但是通过<code>df -h</code>查看时只使用了4G左右,还有一部分空间未使用,所以只需要使用命令<code>resize2fs</code>将/dev/mmcblk2p5空间重新分配一下即可。<br>
<img src="https://img2020.cnblogs.com/blog/2406897/202109/2406897-20210916163550104-337489709.png" alt="" loading="lazy"><br>
重新分配根文件空间</li>
</ol>
<pre><code>sudo resize2fs /dev/mmcblk2p5
</code></pre>
<p><img src="https://img2020.cnblogs.com/blog/2406897/202109/2406897-20210916164305253-500454440.png" alt="" loading="lazy"><br>
到此在ARM架构中安装ubuntu系统已经完成了,有写得不好的地方望小伙伴们指出,我将努力学习并改进。</p>
<h2 id="参考文献">参考文献</h2>
<p>RK3288的ubuntu根文件系统制作与配置:https://www.it610.com/article/1291557055815032832.htm<br>
Linux平台查看、格式化、(开机自动)挂载未使用的磁盘空间https:<blog.csdn.net/rainforest_c/article/details/104986078><br>
resize2fs命令 – 调整文件系统大小:https://www.linuxcool.com/resize2fs<br>
Linux 磁盘管理:https://www.runoob.com/linux/linux-filesystem.html</p>
</div>
<div id="MySignature" role="contentinfo">
<p>本文来自博客园,作者:浇筑菜鸟,转载请注明原文链接:https://www.cnblogs.com/jzcn/p/15293360.html</p>
<p>如本博客的内容侵犯了你的权益,请与以下地址联系,本人获知后,马上删除。同时本人深表歉意,并致以崇高的谢意!cn_jiaozhu@qq.com</p><br><br>
来源:https://www.cnblogs.com/jzcn/p/15293360.html
頁:
[1]