找回密码
 立即注册
搜索
查看: 4807|回复: 22

[软件] 感觉Linux ARM的生态还是不如X86

[复制链接]
     
发表于 2022-8-10 22:13 | 显示全部楼层 |阅读模式
今天翻出来了一块RK3288的开发板,想搭建一套带Web UI的Docker环境,主要是想用一下ARM架构的Linux
装Docker和Docker Compose还好,配置非root用户访问docker之类的安装后步骤也没遇到什么问题,但是安装Web UI的管理Docker的容器遇到了问题  
先是尝试安装SimpleDocker,发现预编译的容器不支持AArch64,折腾了好久,未果。因为没有编译过这种程序,不知道怎么编译,所以没有编译出来
再就是Portainer,安装是正常的,但是打不开那个管理页面
  1. curl -v https://localhost:9443
复制代码
得到的回应是
  1. $ curl -v https://localhost:9443
  2. * Rebuilt URL to: https://localhost:9443/
  3. *   Trying 127.0.0.1...
  4. * TCP_NODELAY set
  5. * Connected to localhost (127.0.0.1) port 9443 (#0)
  6. * ALPN, offering h2
  7. * ALPN, offering http/1.1
  8. * successfully set certificate verify locations:
  9. *   CAfile: /etc/ssl/certs/ca-certificates.crt
  10.   CApath: /etc/ssl/certs
  11. * TLSv1.3 (OUT), TLS handshake, Client hello (1):
  12. * TLSv1.3 (IN), TLS handshake, Server hello (2):
  13. * TLSv1.3 (IN), TLS Unknown, Certificate Status (22):
  14. * TLSv1.3 (IN), TLS handshake, Unknown (8):
  15. * TLSv1.3 (IN), TLS Unknown, Certificate Status (22):
  16. * TLSv1.3 (IN), TLS handshake, Certificate (11):
  17. * TLSv1.3 (OUT), TLS alert, Server hello (2):
  18. * SSL certificate problem: unable to get local issuer certificate
  19. * stopped the pause stream!
  20. * Closing connection 0
  21. curl: (60) SSL certificate problem: unable to get local issuer certificate
  22. More details here: https://curl.haxx.se/docs/sslcerts.html

  23. curl failed to verify the legitimacy of the server and therefore could not
  24. establish a secure connection to it. To learn more about this situation and
  25. how to fix it, please visit the web page mentioned above.
复制代码
以前部署HTTPS没遇到过这种问题的,不知道怎么解决
退而求其次,用lazydocker算了
于是用ghproxy下载下来了安装脚本,修改好了网址,之后执行
执行了过后,什么事情都没有发生,在$HOME输入ls -al,也没有看到.local/bin,完全不知道执行的时候发生了什么错误
感觉应该是install -Dm 755 lazydocker -t "$DIR"这行代码出现了问题,不过真的不知道要怎么解决


因为这个开发板只有1G的内存,系统又是装在存储卡里,编译软件很困难
好久没弄交叉编译了,早就忘记怎么弄了。电脑上倒是用Hyper-V开了Ubuntu,编译环境算是搭起来了,不过不知道为什么,基本上没有什么可以成功编译的东西
而且交叉编译真的好麻烦,验证一下编译的程序还要来回倒腾
想过弄一台ARM架构的开发机,但是m1太贵了,树莓派涨价得厉害,外贸盒子、章鱼星球、N1不知道行不行。其实只需要在主力机上用vscode借助ssh连接上去就够了,应该不太需要性能吧
而且我手里的这块Rock Pi E内核还是4.4,厂家似乎早就跑路了,也不知道有没有办法自己编译一个新点的内核和系统。编译过OpenWRT,感觉编译系统很麻烦。而且每次编译都要很久,参数错了又要重来
回复

使用道具 举报

     
发表于 2022-8-10 22:23 | 显示全部楼层
善用stackoverflow
回复

使用道具 举报

     
发表于 2022-8-10 22:40 来自手机 | 显示全部楼层
LZ会这么多东西真不像是电子信息专业学不下去的人啊
回复

使用道具 举报

     
发表于 2022-8-10 22:44 | 显示全部楼层
😅iOS有啥能够屏蔽特定人的App,每次看发贴都被蠢到,现在在用的是Stage1st Reader
回复

使用道具 举报

     
 楼主| 发表于 2022-8-10 22:51 | 显示全部楼层
解决了
重启了之后还是不行,后来发现是Portainer的端口搞错了,所以一直不通
板子没有硬件时钟,重启后如果没有连上网就会掉时间,不知道有没有办法解决。这个板子的GPIO还挺多的,不过不知道怎样操作
回复

使用道具 举报

发表于 2022-8-11 00:08 | 显示全部楼层
ls2021 发表于 2022-8-10 22:51
解决了
重启了之后还是不行,后来发现是Portainer的端口搞错了,所以一直不通
板子没有硬件时钟,重启后如 ...

systemd-timesyncd 联网对时间吧。


  1. #编辑设置文件
  2. sudo nano /etc/systemd/timesyncd.conf
  3. #添加时间服务器
  4. [Time]
  5. NTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org  0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
  6. FallbackNTP=0.pool.ntp.org 1.pool.ntp.org 0.fr.pool.ntp.org time.google.com
  7. # 设置时间同步服务:
  8. sudo systemctl enable systemd-timesyncd
  9. sudo systemctl restart systemd-timesyncd
  10. #查看时间同步服务状态
  11. sudo systemctl status systemd-timesyncd
复制代码
回复

使用道具 举报

     
发表于 2022-8-11 00:28 来自手机 | 显示全部楼层
你这个问题仿佛是小米6怎么还不更新安卓12。换个archlinuxarm支持的板子就有新版内核啦。

—— 来自 HUAWEI NOP-AN00, Android 10上的 S1Next-鹅版 v2.5.2-play
回复

使用道具 举报

     
发表于 2022-8-11 00:49 来自手机 | 显示全部楼层
树莓派系统都被玩烂了,想装什么有什么,手机上Termux也是什么包都有
回复

使用道具 举报

     
发表于 2022-8-11 00:52 | 显示全部楼层

不会交叉编译来抱怨没软件用
回复

使用道具 举报

     
发表于 2022-8-11 01:37 来自手机 | 显示全部楼层
这还算简单的,我干嵌入式的时候,就一个厂商的gcc,然后编uboot,编kernal,编buildroot,改启动脚本,然后这之后才能进系统干活,对了要干活第一件事先交叉编译一个qt。另外现代语言对交叉编译支持强了太多,比如golang rust,完全傻瓜式。另外如果嫌倒腾文件麻烦,先编个lrzsz塞进去。
回复

使用道具 举报

     
发表于 2022-8-11 02:35 | 显示全部楼层
交叉编译推荐musl libc toolchains,支持g++,并且也可以给clang当作sysroot
只要软件在musl上跑没问题,就可以静态编译了之后随便用
我把我常用的几个软件用这个编译了aarch64和rv64g版本,用起来挺正常的

docker之类的不好搞,因为docker要正常运行,需要host的内核版本>=guest要求的内核版本,而很多硬件驱动不在主线上,内核都是很老的版本
回复

使用道具 举报

     
 楼主| 发表于 2022-8-11 09:54 | 显示全部楼层
乔槁 发表于 2022-8-11 00:08
systemd-timesyncd 联网对时间吧。

试过的,联网可以更新时间
不过有些环境可能没法联网,就要通过别的方法来更新时间
我这个板子的串口不知道怎么回事好像坏了,完全没有反应,很奇怪。别的I/O,在Ubuntu下控制,我还不会
回复

使用道具 举报

     
 楼主| 发表于 2022-8-11 09:55 | 显示全部楼层
calmer 发表于 2022-8-11 00:28
你这个问题仿佛是小米6怎么还不更新安卓12。换个archlinuxarm支持的板子就有新版内核啦。

—— 来自 HUAWE ...

这个板子也没那么老吧,而且我看别的Rk3288好像就有新的内核
没有移植过Linux,不知道除了要改dtb以外,还有什么要修改的
回复

使用道具 举报

     
发表于 2022-8-11 10:08 来自手机 | 显示全部楼层
ls2021 发表于 2022-8-11 09:54
试过的,联网可以更新时间
不过有些环境可能没法联网,就要通过别的方法来更新时间
我这个板子的串口不知 ...

那你自己想一想呗,板子已经丐到没有rtc,不能联网的话你要设置成哪个时间,板子没有rtc的情况自己能知道自己关机了多久吗,不能啊,所以要准确的时间就得联网。如果粒度只需要到月,那就写一个脚本定时记录时间到文件系统中,然后再到initd或者systemd中加入读取这个时间更新到系统的脚本,做到每次开机都设置成上一次写入过的时间。
回复

使用道具 举报

发表于 2022-8-11 10:46 | 显示全部楼层
年初发现淘宝上树莓派400反而比4G内存的4B便宜,就买了一个,现在看好像还涨了一两百

但现在最不爽的其实是UEFI启动机制,我想弄个开机必须输密码但可以通过SSH远程操作的(dropbear),至今没找到好用的arm下的解决方案,都需要自己编译或者内核升级后要重新手动改配置
回复

使用道具 举报

     
发表于 2022-8-11 10:57 | 显示全部楼层
本帖最后由 Sacko9 于 2022-8-11 11:03 编辑
SICP 发表于 2022-8-10 22:44
😅iOS有啥能够屏蔽特定人的App,每次看发贴都被蠢到,现在在用的是Stage1st Reader ...

编辑一下,换了saralin,可以屏蔽用户的发帖和回复

—— 来自 S1Fun

评分

参与人数 1战斗力 +2 收起 理由
SICP + 2 好评加鹅

查看全部评分

回复

使用道具 举报

     
发表于 2022-8-11 11:09 | 显示全部楼层
SICP 发表于 2022-8-10 22:44
😅iOS有啥能够屏蔽特定人的App,每次看发贴都被蠢到,现在在用的是Stage1st Reader ...

mufu可以。

评分

参与人数 1战斗力 +2 收起 理由
SICP + 2 好评加鹅

查看全部评分

回复

使用道具 举报

     
 楼主| 发表于 2022-8-11 13:00 | 显示全部楼层
ryanz 发表于 2022-8-11 10:08
那你自己想一想呗,板子已经丐到没有rtc,不能联网的话你要设置成哪个时间,板子没有rtc的情况自己能知道 ...

因为我板子串口好像坏了,只能ssh连上去了,没有试过断网的情况下系统的时间的行为
我记得现在很多没有RTC的板子就是你说的那样,每次正常关机的时候会记录关机的时间到磁盘,开机的时候再来读取,这点看dmesg也可以看到
我的想法是加一个RTC上去,这个以前做过51和STM32的,Ubuntu下操作I/O感觉很麻烦,打算用SPI挂一个单片机,再在那个单片机上跑个程序,来控制外设。不过如果单片机的电源不断的话,STM32很多都自带RTC的
没有RTC,hwclock直接报错,不知道这块是怎样做的。我在想能不能把自己的那个RTC让系统识别成hwclock
接屏幕的话,直接走SPI或者I2C接这个板子上,就得手写控制屏幕的程序,但是如果把数据传到单片机,就可以拿写好的程序改一下
树莓派的SPI和I2C感觉应该没这么难控制。这个板子官方没有什么相关的文档,连Demo也没有,SPI和I2C在Linux里的地址也是莫名其妙,没什么规律
打算这几天试着弄一下SPI通信,而且感觉Linux下控制这些接口很奇怪,不习惯。接口也少
看了一下别的板子,r5s也有个SPI,如果做成了的话也可以移植到R5S上去
systemd的服务以前折腾clash的时候写过,感觉应该没什么问题。
RK3328的温度、频率,这个也弄过。想把这些功能试着都做出来,感觉问题不大
回复

使用道具 举报

发表于 2022-8-11 13:23 | 显示全部楼层
月亮上的珊瑚 发表于 2022-8-10 22:40
LZ会这么多东西真不像是电子信息专业学不下去的人啊

有一说一
别看lz每次打那么多字母
一个连lazydocker那几十行安装脚本都看不懂的
只是个脚本小子而已
真学知识就摆烂那种
回复

使用道具 举报

     
发表于 2022-8-12 11:50 | 显示全部楼层
lazydocker 不能 armv7 release 下一个解压即用吗?
回复

使用道具 举报

     
 楼主| 发表于 2022-8-12 12:06 | 显示全部楼层
limon 发表于 2022-8-12 11:50
lazydocker 不能 armv7 release 下一个解压即用吗?

我那个机器上没开代理,用curl访问Github老是断
电脑上下载好,用scp传过去了
回复

使用道具 举报

     
发表于 2022-8-12 12:12 来自手机 | 显示全部楼层
ls2021 发表于 2022-8-12 12:06
我那个机器上没开代理,用curl访问Github老是断
电脑上下载好,用scp传过去了 ...

国内有很多GitHub代下,给直链
回复

使用道具 举报

     
 楼主| 发表于 2022-8-12 13:19 | 显示全部楼层
Flyfish233 发表于 2022-8-12 12:12
国内有很多GitHub代下,给直链

一直用的ghproxy
有时候会说传入的URL非法,但是我电脑是可以打开的
脚本里面的github地址也要替换,多些步骤
能改源的东西都改了源
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-11-15 11:12 , Processed in 0.099227 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表