6 April 2024 - 字数统计：10667 - 阅读大约需要38分钟 - Hits: Loading...

# 关于旧电脑的使用探索

by mayx

这是一篇创建于 天前的文章，其中的信息可能已经有所发展或是发生改变。

AI摘要

这篇文章是关于作者探索如何重新利用几台废旧电脑的体验，这些电脑尽管性能较差，但作者并未因此淘汰它们。他们将电脑改装为Linux系统进行测试，展示了四台电脑的配置和基础使用情况。尽管第一台Intel Pentium E5300的电脑在安装Ubuntu时遇到问题，但作者仍强调性能问题不大，相比于廉价的硬件如树莓派，这些旧电脑仍有可用性。文章指出，尽管老机器可能存在一些安装或兼容性问题，但并不意味着它们就该被淘汰。

- 起因
- 测试平台介绍
- 使用探索
  - 关于Darling的探索
  - 关于旧显卡利用的探索
  - 关于Anbox Cloud的探索
- 感想

性能差也不一定要淘汰！

#
起因

最近我偶然得到了几台淘汰的废旧电脑，试着重新拼装了一下，发现还有4台电脑还能开机，所以我想试试看这些旧电脑除了性能以外有什么该被淘汰的地方。

#
测试平台介绍

本次测试的4台电脑为了方便操作，我都装了Linux发行版，Windows的话想要登录还要远程桌面太麻烦了，以下是这些电脑的配置：

一、装有 Intel® Pentium® E5300 CPU的电脑

                     ..                    root@localhost.localdomain
                   .PLTJ.                  --------------------------
                  <><><><>                 OS: CentOS Stream 8 x86_64
         KKSSV' 4KKK LJ KKKL.'VSSKK        Host: G31M-ES2C
         KKV' 4KKKKK LJ KKKKAL 'VKK        Kernel: 6.8.1-1.el8.elrepo.x86_64
         V' ' 'VKKKK LJ KKKKV' ' 'V        Uptime: 2 days, 19 hours, 11 mins
         .4MA.' 'VKK LJ KKV' '.4Mb.        Packages: 953 (rpm)
       . KKKKKA.' 'V LJ V' '.4KKKKK .      Shell: bash 4.4.20
     .4D KKKKKKKA.'' LJ ''.4KKKKKKK FA.    Terminal: /dev/pts/2
    <QDD ++++++++++++  ++++++++++++ GFD>   CPU: Pentium E5300 (2) @ 2.600GHz
     'VD KKKKKKKK'.. LJ ..'KKKKKKKK FV     GPU: Intel 82G33/G31 Express
       ' VKKKKK'. .4 LJ K. .'KKKKKV '      Memory: 597MiB / 2969MiB
          'VK'. .4KK LJ KKA. .'KV'
         A. . .4KKKK LJ KKKKA. . .4
         KKA. 'KKKKK LJ KKKKK' .4KK
         KKSSA. VKKK LJ KKKV .4SSKK
                  <><><><>
                   'MKKM'
                     ''

二、装有 AMD Athlon™ II X4 641 CPU 和 NVIDIA GeForce GT 440 的电脑

                .-/+oossssoo+/-.               mayx@mayx-server
            `:+ssssssssssssssssss+:`           ----------------
          -+ssssssssssssssssssyyssss+-         OS: Ubuntu 20.04.6 LTS x86_64
        .ossssssssssssssssssdMMMNysssso.       Kernel: 5.4.0-174-generic
       /ssssssssssshdmmNNmmyNMMMMhssssss/      Uptime: 1 day, 23 hours, 13 mins
      +ssssssssshmydMMMMMMMNddddyssssssss+     Packages: 1276 (dpkg), 4 (snap)
     /sssssssshNMMMyhhyyyyhmNMMMNhssssssss/    Shell: bash 5.0.17
    .ssssssssdMMMNhsssssssssshNMMMdssssssss.   Terminal: /dev/pts/0
    +sssshhhyNMMNyssssssssssssyNMMMysssssss+   CPU: AMD Athlon II X4 641 (4) @ 2.800GHz
    ossyNMMMNyMMhsssssssssssssshmmmhssssssso   GPU: NVIDIA GeForce GT 440
    ossyNMMMNyMMhsssssssssssssshmmmhssssssso   Memory: 242MiB / 7925MiB
    +sssshhhyNMMNyssssssssssssyNMMMysssssss+
    .ssssssssdMMMNhsssssssssshNMMMdssssssss.
     /sssssssshNMMMyhhyyyyhdNMMMNhssssssss/
      +sssssssssdmydMMMMMMMMddddyssssssss+
       /ssssssssssshdmNNNNmyNMMMMhssssss/
        .ossssssssssssssssssdMMMNysssso.
          -+sssssssssssssssssyyyssss+-
            `:+ssssssssssssssssss+:`
                .-/+oossssoo+/-.

三、装有 Intel® Pentium® G3240 CPU的电脑

                .-/+oossssoo+/-.               mayx@mayx-server
            `:+ssssssssssssssssss+:`           ----------------
          -+ssssssssssssssssssyyssss+-         OS: Ubuntu 22.04.4 LTS x86_64
        .ossssssssssssssssssdMMMNysssso.       Host: H81M-S1
       /ssssssssssshdmmNNmmyNMMMMhssssss/      Kernel: 5.15.0-101-generic
      +ssssssssshmydMMMMMMMNddddyssssssss+     Uptime: 2 days, 19 hours, 58 mins
     /sssssssshNMMMyhhyyyyhmNMMMNhssssssss/    Packages: 984 (dpkg), 6 (snap)
    .ssssssssdMMMNhsssssssssshNMMMdssssssss.   Shell: bash 5.1.16
    +sssshhhyNMMNyssssssssssssyNMMMysssssss+   Terminal: /dev/pts/3
    ossyNMMMNyMMhsssssssssssssshmmmhssssssso   CPU: Intel Pentium G3240 (2) @ 3.100GHz
    ossyNMMMNyMMhsssssssssssssshmmmhssssssso   GPU: Intel HD Graphics
    +sssshhhyNMMNyssssssssssssyNMMMysssssss+   Memory: 371MiB / 3800MiB
    .ssssssssdMMMNhsssssssssshNMMMdssssssss.
     /sssssssshNMMMyhhyyyyhdNMMMNhssssssss/
      +sssssssssdmydMMMMMMMMddddyssssssss+
       /ssssssssssshdmNNNNmyNMMMMhssssss/
        .ossssssssssssssssssdMMMNysssso.
          -+sssssssssssssssssyyyssss+-
            `:+ssssssssssssssssss+:`
                .-/+oossssoo+/-.

四、装有 Intel® Xeon® E5-2620 CPU的电脑

                .-/+oossssoo+/-.               mayx@mayxserver
            `:+ssssssssssssssssss+:`           ---------------
          -+ssssssssssssssssssyyssss+-         OS: Ubuntu 22.04.4 LTS x86_64
        .ossssssssssssssssssdMMMNysssso.       Host: X79 0.9
       /ssssssssssshdmmNNmmyNMMMMhssssss/      Kernel: 5.15.0-101-generic
      +ssssssssshmydMMMMMMMNddddyssssssss+     Uptime: 18 hours, 41 mins
     /sssssssshNMMMyhhyyyyhmNMMMNhssssssss/    Packages: 773 (dpkg), 9 (snap)
    .ssssssssdMMMNhsssssssssshNMMMdssssssss.   Shell: bash 5.1.16
    +sssshhhyNMMNyssssssssssssyNMMMysssssss+   Terminal: /dev/pts/0
    ossyNMMMNyMMhsssssssssssssshmmmhssssssso   CPU: Intel Xeon E5-2620 0 (12) @ 2.500GHz
    ossyNMMMNyMMhsssssssssssssshmmmhssssssso   Memory: 8773MiB / 11928MiB
    +sssshhhyNMMNyssssssssssssyNMMMysssssss+
    .ssssssssdMMMNhsssssssssshNMMMdssssssss.
     /sssssssshNMMMyhhyyyyhdNMMMNhssssssss/
      +sssssssssdmydMMMMMMMMddddyssssssss+
       /ssssssssssshdmNNNNmyNMMMMhssssss/
        .ossssssssssssssssssdMMMNysssso.
          -+sssssssssssssssssyyyssss+-
            `:+ssssssssssssssssss+:`
                .-/+oossssoo+/-.

#
使用探索

其实对我来说，性能根本不是什么问题，毕竟想想即使是这些淘汰的电脑，性能也比树莓派强的多，包括对比上次买的Luckfox Pico Plus来说就强的更多了，所以即使性能比较差的电脑也不是不能用。

不过这些老机器还是有一些坑的，像第一台奔腾E5300的电脑，我试了一下Ubuntu就装不上，安装程序都打不开，可能还是有一些有差别的地方，所以安装了CentOS Stream 8。不过还好这些机器都是64位的CPU，如果是32位的就更麻烦了，可能很多包都没地方下载。

##
关于Darling的探索

那么对于这些机器来说干点什么好呢？当然除了GPIO之类的，树莓派能干的他们也能干，所以要干就干一些特别的东西。我想了一下，我平时用的电脑是macOS系统，虽然给那些旧电脑装黑苹果可能不太现实，但是我之前发现了一个叫Darling的项目，类似Wine那样在Linux上运行Windows程序，这个项目可以在Linux上运行macOS的程序。看起来挺有意思的，所以我打算在第一台机器上试着安装一下。

不过我按照官方文档上安装，对于CentOS Stream 8来说有好多包不知道为什么似乎都没有，比如libavformat-free-devel之类的，我只好从网上找其他RedHat系列类似的包，或者找替代品FFmpeg，另外Darling需要Linux 5.0或者更高的内核，CentOS的内核版本太低了，所以我升到了主线版本的Linux，也就是6.8的版本……最终花了一天的时间终于编译好了，然而悲剧的是运行的时候报了非法指令“Illegal instruction (core dumped)”的错误。一般来说这个错误是新机器上编译的程序在旧机器运行才会报的错，可我是在同一台机器上编译的为什么会报这种错误呢？可能是因为代码里包含汇编语言的代码吧。我发了个Issue问了一下作者，不过看起来他也不知道是什么问题……

对于这种问题我感觉也没什么好办法……可能这台机器真的就没办法了？在第二台速龙641的电脑上试了一下也不行……不过后来我在第三台装有奔腾G3240的电脑上试着编译安装了一下，结果可以运行。看来确实是奔腾E5300的问题。不过它俩到底差在哪里呢？看介绍会发现奔腾G3240里包含了Intel® SSE4.1和Intel® SSE4.2的指令集扩展。那么对于没有这个指令集扩展的CPU就没办法了吗？Intel官方给了一个解决方法是Intel® SDE，可以在旧机器上模拟运行使用了最新指令集的程序，甚至包括AVX512都可以模拟的出来，但是我用这个东西运行Darling的时候还是报错了，可能Darling需要用到内核的一些特性，但是SDE不能模拟……这都没办法是不是就彻底没办法了呢？

在偶然的一次浏览中，我发现了一个神奇的东西，内核扩展OPEMU，它可以让不支持一些指令集扩展的CPU通过模拟的方式支持，其实功能和SDE很像，只是它是在内核中运行的，我试着在第一台机器上编译安装了一下（顺便一说，如果是旧的5.x或者更早的Linux可以直接用这个仓库，而更新的Linux比如6.x的需要用PR中的这个仓库），结果Darling真的可以运行了！真是令人难以置信。

安装成功之后我在网上找了个C语言的程序：endoh1，这个程序可以用文本模拟流体。我在我的MacBook上编译了试了一下，运行没有问题，当然直接编译的程序是ARM64的程序，肯定不能在Darling里面运行，于是我切换到x86_64模式下又编译了一次，并且用`lipo`命令把两个程序合并到了一起，然后把程序上传到第一台机器中使用Darling运行，竟然可以正常运行，看来那个内核扩展还不错啊，Darling居然没有出问题。

不过测试了一下，可能还是有些地方有BUG，比如用Git的时候会报错，可能是和README中所说的CRC32表现有问题吧，不过Darling好像可以直接运行Linux中的命令，那我在用Git的时候调用Linux下的Git是不是也可以呢？试了一下不太行，因为执行Linux程序的时候不能用Darling中的目录结构，不过我想装omz只需要/Users目录就够了，我直接创建一个软链接把Darling的/Users目录映射到Linux的根目录就可以了吧，试了一下还行，可以正常运行，虽然Homebrew不能安装有点可惜……不过Neofetch可以安装😆，效果如下：

                        'c.          root@localhost.localdomain
                     ,xNMM.          --------------------------
                   .OMMMMo           OS: macOS 11.7.4 Darling x86_64
                   OMMM0,            Kernel: 20.6.0
         .;loddo:' loolloddol;.      Uptime: 2 days, 21 hours, 11 mins
       cKMMMMMMMMMMNWMMMMMMMMMM0:    Shell: bash 3.2.57
     .KMMMMMMMMMMMMMMMMMMMMMMMWd.    DE: Aqua
     XMMMMMMMMMMMMMMMMMMMMMMMX.      WM: Quartz Compositor
    ;MMMMMMMMMMMMMMMMMMMMMMMM:       WM Theme: Blue (Print: Entry, AppleInterfaceStyle, Does Not Exist)
    :MMMMMMMMMMMMMMMMMMMMMMMM:       Terminal: /dev/pts/2
    .MMMMMMMMMMMMMMMMMMMMMMMMX.      Memory: 0MiB / 2969MiB
     kMMMMMMMMMMMMMMMMMMMMMMMMWd.
     .XMMMMMMMMMMMMMMMMMMMMMMMMMMk
      .XMMMMMMMMMMMMMMMMMMMMMMMMK.
        kMMMMMMMMMMMMMMMMMMMMMMd
         ;KMMMMMMMWXXWMMMMMMMk.
           .cooc,.    .,coo:.

既然第一台电脑装了内核扩展还是有BUG，那么对于第三台电脑来说总该没问题了吧，试了一下Git可以正常运行，安装Homebrew也没问题，但是用brew安装软件的时候会报错，似乎是因为Darling安装的Command Line Tools for Xcode太旧了，有些命令没有所以不能正常安装，不过Neofetch又不需要编译，试着安装了一下没问题，但是运行的时候会报Segmentation fault: 11 (core dumped)的错误……不知道是什么问题。

##
关于旧显卡利用的探索

对于第二台电脑，可以看出来它有一张上古的独显NVIDIA GeForce GT 440，我装好驱动之后运行nvidia-smi可以看到：

    Sat Apr  6 08:26:45 2024
    +------------------------------------------------------+
    | NVIDIA-SMI 340.108    Driver Version: 340.108        |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |===============================+======================+======================|
    |   0  GeForce GT 440      Off  | 0000:01:00.0     N/A |                  N/A |
    | 40%   49C    P0    N/A /  N/A |      3MiB /  1023MiB |     N/A      Default |
    +-------------------------------+----------------------+----------------------+

    +-----------------------------------------------------------------------------+
    | Compute processes:                                               GPU Memory |
    |  GPU       PID  Process name                                     Usage      |
    |=============================================================================|
    |    0            Not Supported                                               |
    +-----------------------------------------------------------------------------+

既然是独显，那么果然还是想试试看能不能跑机器学习的算法呢。可是一般来说执行上面的命令可以看到显卡支持的CUDA版本，这个执行完并没有显示啊……那我要怎么用？首先我想试试装个PaddleOCR试试看，但就是因为不知道这个显卡到底能用哪个版本的CUDA，也不知道安装哪个版本的PaddlePaddle框架，更何况之前的机器学习算法对环境要求特别严格，甚至系统新了都没法用，于是在各种报错下我败下阵来，放弃使用CUDA来用这张显卡😭……

但并不代表机器学习必须使用CUDA，OpenCL也是可以的啊，正好我之前在测试OpenAI的ASR模型Whisper，有人开发的一个C++使用这个模型的软件whisper.cpp是支持通过CLBlast使用OpenCL。于是我就先编译安装了CLBlast，然后用对应的参数编译了whisper.cpp，总算是能跑起来了，后来看了一眼clinfo，原来这张显卡才支持CUDA 6.5啊，这能运行啥啊……最后试了一下效果也挺令人失望的，就测试的那个音频用了大概33秒左右才转录完成，果然旧显卡就是纯粹的垃圾啊。

##
关于Anbox Cloud的探索

现在轮到第四台至强E5-2620的电脑了呢，这台电脑可不一般，用的是服务器上用的CPU，一看就是被奸商坑了，买了个i9级处理器，殊不知是淘汰的洋垃圾🤣。不过我手头用的服务器其实也没多好，一台是至强E5-2620v2（双路），另一台是至强E5-2620v3（也是双路）（一二三代都有了🤣）：

                .-/+oossssoo+/-.               mayx@mayx-server
            `:+ssssssssssssssssss+:`           ----------------------
          -+ssssssssssssssssssyyssss+-         OS: Ubuntu 22.04.3 LTS x86_64
        .ossssssssssssssssssdMMMNysssso.       Host: NF5270M3 00001
       /ssssssssssshdmmNNmmyNMMMMhssssss/      Kernel: 5.15.0-78-generic
      +ssssssssshmydMMMMMMMNddddyssssssss+     Uptime: 84 days, 22 hours, 20 mins
     /sssssssshNMMMyhhyyyyhmNMMMNhssssssss/    Packages: 954 (dpkg), 4 (snap)
    .ssssssssdMMMNhsssssssssshNMMMdssssssss.   Shell: bash 5.1.16
    +sssshhhyNMMNyssssssssssssyNMMMysssssss+   Resolution: 1440x900
    ossyNMMMNyMMhsssssssssssssshmmmhssssssso   Terminal: /dev/pts/1
    ossyNMMMNyMMhsssssssssssssshmmmhssssssso   CPU: Intel Xeon E5-2620 v2 (24) @ 2.600GHz
    +sssshhhyNMMNyssssssssssssyNMMMysssssss+   GPU: 0b:00.0 ASPEED Technology, Inc. ASPEED Graphics Family
    .ssssssssdMMMNhsssssssssshNMMMdssssssss.   Memory: 68987MiB / 128875MiB
     /sssssssshNMMMyhhyyyyhdNMMMNhssssssss/
      +sssssssssdmydMMMMMMMMddddyssssssss+
       /ssssssssssshdmNNNNmyNMMMMhssssss/
        .ossssssssssssssssssdMMMNysssso.
          -+sssssssssssssssssyyyssss+-
            `:+ssssssssssssssssss+:`
                .-/+oossssoo+/-.

                .-/+oossssoo+/-.               mayx@mayx-algo-server
            `:+ssssssssssssssssss+:`           ---------------------
          -+ssssssssssssssssssyyssss+-         OS: Ubuntu 22.04.3 LTS x86_64
        .ossssssssssssssssssdMMMNysssso.       Host: PowerEdge R730
       /ssssssssssshdmmNNmmyNMMMMhssssss/      Kernel: 5.15.0-91-generic
      +ssssssssshmydMMMMMMMNddddyssssssss+     Uptime: 84 days, 20 hours, 16 mins
     /sssssssshNMMMyhhyyyyhmNMMMNhssssssss/    Packages: 1047 (dpkg), 4 (snap)
    .ssssssssdMMMNhsssssssssshNMMMdssssssss.   Shell: bash 5.1.16
    +sssshhhyNMMNyssssssssssssyNMMMysssssss+   Resolution: 1024x768
    ossyNMMMNyMMhsssssssssssssshmmmhssssssso   Terminal: /dev/pts/1
    ossyNMMMNyMMhsssssssssssssshmmmhssssssso   CPU: Intel Xeon E5-2620 v3 (24) @ 3.200GHz
    +sssshhhyNMMNyssssssssssssyNMMMysssssss+   GPU: NVIDIA Tesla T4
    .ssssssssdMMMNhsssssssssshNMMMdssssssss.   GPU: NVIDIA Tesla T4
     /sssssssshNMMMyhhyyyyhdNMMMNhssssssss/    Memory: 66345MiB / 128808MiB
      +sssssssssdmydMMMMMMMMddddyssssssss+
       /ssssssssssshdmNNNNmyNMMMMhssssss/
        .ossssssssssssssssssdMMMNysssso.
          -+sssssssssssssssssyyyssss+-
            `:+ssssssssssssssssss+:`
                .-/+oossssoo+/-.

都是正儿八经的洋垃圾，不过对于服务器嘛，垃圾一点也没什么，又不是不能用，至少比租的云服务器好吧。

不过既然是服务器级的CPU，自然实验也得要符合服务器级（这个级别的处理器就不用担心什么指令集缺失之类的问题了），正好最近注册了个Ubuntu Pro，里面有个Anbox Cloud，可以拿来试试看。

关于Anbox，我之前试过Waydroid和redroid，不过Anbox Cloud不太一样，这个有点像OpenStack那样，是云手机的管理和实现平台，Anbox对它来说就像QEMU对OpenStack，是创建实例的工具。安装还挺简单的，启用Ubuntu Pro之后再执行`sudo pro enable anbox-cloud`，剩下的跟着提示走就行了，不过因为我的硬盘有点问题，有一半的区域有坏块，虽然屏蔽掉了但还是有些问题，第一次安装失败了，第二次才成功。不过应该说不愧是云平台吗，用起来和我当年学OpenStack在虚拟机里安装一样卡，而且啥也没干先占掉8GiB内存，尤其是对这个又老，内存也小的垃圾旧机器来说果然还是有点勉强啊，更何况硬盘还是坏的🤣。安装好之后用浏览器直接输入IP就能登录平台了，第一次使用要绑定Ubuntu One账号，感觉有点不开放啊……登录之后可以上传应用作为模板，类似镜像那样，可以在创建会话的时候使用相同的镜像，然后每个会话之间是隔离的。不过有个问题是这个东西居然没有ARM兼容层，上传不兼容x86_64的软件会不允许创建应用😅，这有点废物啊，难不成想用这个东西搭个云手机厂商还要买一堆ARM的服务器？之后我找了半天发现Via浏览器可以兼容所有架构的处理器，上传上去之后又报错一次😅，重新再上传才算正常运行起来了。

#
感想

经过这次的测试，可以看出来这些旧电脑其实安装了Linux发行版之后除了会遇到一堆莫名其妙的问题之外，并不是不能用，顶多是卡了一些，或者要花点精力解决罢了。其实这么看来，除了人工智能方面的发展确实受到了硬件方面的制约，其他的程序其实都无所谓呢？即使是现在的软件放到以前的电脑上也能运行，不知道是软件发展的太慢，还是兼容性做的太好了呢？

tags: 旧电脑 - Darling - whisper - Anbox 查看原始文件

#### 推荐文章

Loading...

上一篇：如何用requests库验证证书
下一篇：从宝塔面板中学习运维知识
想问这篇文章
召唤伊斯特瓦尔