「幸狐Luckfox pico开发板」适配Alpine Linux上篇

电子说

1.2w人已加入

描述

前言、为什么要适配Alpine Linux

为什么不是更多用户的Ubuntu,Debian,这是很多朋友第一时间会问的问题。 首先Alpine Linux占用的资源更小,使用更轻量的包管理系统,5M的最小rootfs是其他发行版没法比的。 其次Luckfox pico系列板子的Flash和RAM资源都比较少(除了最新的MAX版本),Alpine Linux是最优选择。

也有很多朋友没听说过Alpine Linux,担心不好用,接下来可以烧录固件体验一下。

一、下载固件并烧录

在文章链接下载nand固件压缩包之后,解压缩之后打开SocToolKit软件,在未接电的情况下按住BOOT按钮不放, 然后插入USB。 软件界面检测到maskrom设备后,点击搜索路径按钮,找到刚刚解压的目录,确认。 然后把所有下载项目都勾选上,点击下载按钮。

Ubuntu系统

二、连接串口并登录

下载完成后,拔出USB断电,连接串口开始配置系统。

Ubuntu系统

按Luckfox官方wiki的指引接好串口后,打开串口工具软件,给开发板接上网线和电源,就可以看到开发板的启动信息了。 镜像已开启了串口接入时,终端root账户免密登录配置,不需要再输入账户和密码了。

Ubuntu系统

简单查看一下根文件系统是否可以写入,就可以开始下一步的配置了。

Ubuntu系统

三、网络配置

资源少的板子不会安装各种网络工具,ifconfig和ip命令是最常用的配网和查看工具。

Alpine Linux提供了网络服务,可以通过编辑/etc/network/interfaces文件实现静态IP或者DHCP动态获取IP。以下就是将板子的IP网络配置成192.168.50.59,网关配置成192.168.50.1的模版。

`auto eth0
iface eth0 inet static

address 192.168.50.59
    netmask 255.255.255.0
    gateway 192.168.50.1`

建议使用静态IP,这样方便ssh远程登录到开发板。配置好之后,需要将networking服务启动才可以使用。 镜像默认已经开启了该服务,如果发现能ping通局域网和外网ip,但是无法解析域名,需要将/etc/resolv.conf文件里的域名解析服务器换成当地的服务器IP。

本文的镜像默认是使用网线接入网络,这样才能发挥包管理器和网络优势。USB的RNDIS是没有配置好的,建议插入网线使用。

四、ssh远程登录
镜像里默认安装和配置了ssh远程服务,已开启root远程登录配置,只需要接入串口的情况下,输入
passwd
命令修改root账户密码,然后就可以使用ssh客户端进行登录了。例如Termius的配置案例如下

Ubuntu系统

配置好就直接ssh远程连接就好了。

五、包管理器APK的使用

和大多数的人一样,给板子适配发行版的最大理由就是不想编译,直接安装软件包。
Ubuntu的包管理器命令很多,用了这么多年命令行的我也没记住,只记得更新和装软件包而已。
Alpine Linux的包管理器命令没这么复杂,记住3个就行了。

  • apk update,更新本地索引
  • apk add,安装软件包
  • apk del,删除软件包

就这么简单,没什么复杂的。例如安装gcc,只需要运行apk add gcc命令即可。

Ubuntu系统

安装完可以运行gcc -v查看版本情况

Ubuntu系统

Nand flash的空间不是很大,不建议安装大型的软件包,例如安装gcc后,剩余空间只有38.2M。

这时候使用apk del gcc命令可以删除gcc软件包和它的依赖。

Ubuntu系统

删除gcc后,剩余空间又变成80多M了。

我提供的镜像已修改成阿里源,正常的话安装速度都很快,觉得慢可以自行更换其他源。 修改一下/etc/apk/repositories文件就可以了。 大多数情况下,apk安装和删除软件包都会自动处理相关依赖,怎么来就怎么走,不会残留垃圾。

六、服务管理

由于板子资源少,自然能跑的服务也不多,镜像里默认使用的是OpenRC来管理服务。
所有可用的服务都在/etc/init.d/目录下。 常见的命令有以下几个。

  • rc-status查看默认级别的运行服务
  • rc-update add 添加服务到运行级别服务清单
  • rc-update del 从对应运行级别服务清单删除服务
  • rc-service 管理服务启停

添加和删除服务时,需要增加运行级别标识,例如常见的default,boot等等。 一般使用默认运行级别default即可,特殊的服务需要自行搜索一下相关配置。 举个例子,现在我们先查看一下默认级别都有什么服务。 在终端里运行rc-status命令,运行后终端结果如下

Ubuntu系统

然后分别尝试以下把sshd服务禁止启动,再把sshd服务开启启动。 只需要运行rc-update del sshd就可以禁止sshd服务启动了。 同样的,运行rc-update add sshd default就可以在启动时开启sshd服务。

Ubuntu系统

不想重启板子,重新启动服务可以用rc-service来管理当前系统的服务程序。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分