ls2021 发表于 2022-8-10 22:13

感觉Linux ARM的生态还是不如X86

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

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
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,感觉编译系统很麻烦。而且每次编译都要很久,参数错了又要重来

Archaeopteryx 发表于 2022-8-10 22:23

善用stackoverflow

月亮上的珊瑚 发表于 2022-8-10 22:40

LZ会这么多东西真不像是电子信息专业学不下去的人啊

SICP 发表于 2022-8-10 22:44

😅iOS有啥能够屏蔽特定人的App,每次看发贴都被蠢到,现在在用的是Stage1st Reader

ls2021 发表于 2022-8-10 22:51

解决了
重启了之后还是不行,后来发现是Portainer的端口搞错了,所以一直不通
板子没有硬件时钟,重启后如果没有连上网就会掉时间,不知道有没有办法解决。这个板子的GPIO还挺多的,不过不知道怎样操作

乔槁 发表于 2022-8-11 00:08

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

systemd-timesyncd 联网对时间吧。


#编辑设置文件
sudo nano /etc/systemd/timesyncd.conf
#添加时间服务器

NTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
FallbackNTP=0.pool.ntp.org 1.pool.ntp.org 0.fr.pool.ntp.org time.google.com
# 设置时间同步服务:
sudo systemctl enable systemd-timesyncd
sudo systemctl restart systemd-timesyncd
#查看时间同步服务状态
sudo systemctl status systemd-timesyncd

calmer 发表于 2022-8-11 00:28

你这个问题仿佛是小米6怎么还不更新安卓12。换个archlinuxarm支持的板子就有新版内核啦。

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

Flyfish233 发表于 2022-8-11 00:49

树莓派系统都被玩烂了,想装什么有什么,手机上Termux也是什么包都有

chachi 发表于 2022-8-11 00:52


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

ryanz 发表于 2022-8-11 01:37

这还算简单的,我干嵌入式的时候,就一个厂商的gcc,然后编uboot,编kernal,编buildroot,改启动脚本,然后这之后才能进系统干活,对了要干活第一件事先交叉编译一个qt。另外现代语言对交叉编译支持强了太多,比如golang rust,完全傻瓜式。另外如果嫌倒腾文件麻烦,先编个lrzsz塞进去。

r_ex 发表于 2022-8-11 02:35

交叉编译推荐musl libc toolchains,支持g++,并且也可以给clang当作sysroot
只要软件在musl上跑没问题,就可以静态编译了之后随便用
我把我常用的几个软件用这个编译了aarch64和rv64g版本,用起来挺正常的

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

ls2021 发表于 2022-8-11 09:54

乔槁 发表于 2022-8-11 00:08
systemd-timesyncd 联网对时间吧。

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

ls2021 发表于 2022-8-11 09:55

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

—— 来自 HUAWE ...

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

ryanz 发表于 2022-8-11 10:08

ls2021 发表于 2022-8-11 09:54
试过的,联网可以更新时间
不过有些环境可能没法联网,就要通过别的方法来更新时间
我这个板子的串口不知 ...

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

citrus 发表于 2022-8-11 10:46

年初发现淘宝上树莓派400反而比4G内存的4B便宜,就买了一个,现在看好像还涨了一两百

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

Sacko9 发表于 2022-8-11 10:57

本帖最后由 Sacko9 于 2022-8-11 11:03 编辑

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

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

—— 来自 S1Fun

starash 发表于 2022-8-11 11:09

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

mufu可以。

ls2021 发表于 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的温度、频率,这个也弄过。想把这些功能试着都做出来,感觉问题不大

tsubasa9 发表于 2022-8-11 13:23

月亮上的珊瑚 发表于 2022-8-10 22:40
LZ会这么多东西真不像是电子信息专业学不下去的人啊

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

limon 发表于 2022-8-12 11:50

lazydocker 不能 armv7 release 下一个解压即用吗?

ls2021 发表于 2022-8-12 12:06

limon 发表于 2022-8-12 11:50
lazydocker 不能 armv7 release 下一个解压即用吗?

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

Flyfish233 发表于 2022-8-12 12:12

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

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

ls2021 发表于 2022-8-12 13:19

Flyfish233 发表于 2022-8-12 12:12
国内有很多GitHub代下,给直链

一直用的ghproxy
有时候会说传入的URL非法,但是我电脑是可以打开的
脚本里面的github地址也要替换,多些步骤
能改源的东西都改了源
页: [1]
查看完整版本: 感觉Linux ARM的生态还是不如X86