V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
探索世界的好奇心万岁
firechat
V2EX  ›  分享发现

国产化系统鲲鹏 CPU+UOS 适配经历

  •  
  •   firechat · 267 天前 · 12021 次点击
    这是一个创建于 267 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一直想要给公司产品做国产化系统适配,但一直苦于无法购买到国产化主机。最近正好有个客户需要做国产化项目,系统中的 IM 子系统是使用我们的,就跟他们商量借用一段时间。本周二客户邮寄的国产化主机收到了,拆箱的那一刻,我的心里复现出一个念头,这是我们公司及我个人历史性的一刻,我们有幸参与了国产化这一伟大而又艰巨的任务。虽然我们公司很渺小,但还有无数其它或伟大或渺小的公司和个人共同参与,汇流成河、聚沙成塔,这件事情一定会做成功的。

    废话不多说了,开箱吧。打开箱子,拿出来主机,主机如下图所示,机箱比较小,还是很漂亮的,各种接口也都比较丰富。 thtf_pc1

    再拍一下铭牌 thtf_pc2

    开机看一下吧。开机的一刹那风扇“嗡”的一声吓我一跳,之后风扇运作平稳,听不到任何噪声,因为没有专业仪器,没有办法测试到分贝数。在执行重度编译任务时,风扇没有发现任何变化,完全没有觉察到声音,这可能就是 arm 架构的优势,能耗比较低,而且 PC 又不像手机那样空间狭窄,拥有了足够的空间,散热不是问题,所以风扇的压力就很小。

    进入到系统以后,第一感觉可谓是惊艳。笔者重度使用 MacOS 和 Ubuntu,UOS 的界面非常漂亮,可以甩 Ubuntu 几条街,个人感觉比 mac os 也要漂亮一些。当然这是个人的直观感受,没有量化指标,可能不同的人有不同的感觉,但 Deepin 的漂亮还是在网上比较公认的。 Desktop

    下面是系统信息,可以看到 UOS 的版本及 CPU 信息 Info

    软件方面,系统附带有应用商店,各种常用的软件也是一应俱全,对付一般的办公应该绰绰有余,搜索到自己需要的软件点击安装就自动安装了,十分方便。但也仅限于此,目前生态还不完善,很多专业的软件都比较匮乏。生态和用户数量就是个先有鸡还是先有蛋的问题,随着国家推进国产化系统,用户数量就会上升,软件厂商也会跟进,这样就能形成良性循环。也真心希望系统厂商能够目光长远,降低使用门槛,让更多的用户用上国产操作系统,只有这样才能真正的依靠自己活下去,壮大起来。 Store1

    下载排行,可以看到平台上软件排行状态 Store2

    由于职业病的原因,特意研究了一下商店里的微信。微信不能直接使用,还必须要发送邮寄到 UOS 去申请开通,猜测可能是使用了 Web 或者以前旧有的协议,需要联系微信打开这些开关。如果您的微信在浏览器上无法登录,我猜测在 UOS 登录成功后,应该就可以在 WEB 登录了。没有实际验证,如果谁验证了,可以告诉我结果。 wechat

    另外一些其它常用的聊天软件和企业协同版本软件也都没有。但居然还有电报,能登录上去吗?由于时间关系,没有去验证,登录不上去是大概率事件。 IM

    由上图可见社交沟通类的软件非常少,这就是我们公司此次工作目的了,完成野火 IM 在 UOS 上的适配,让客户可以在国产化系统上使用完全私有部署的沟通软件。

    由于 UOS 也是源于 debian 的,在命令行下 apt 命令和 ubuntu 下一样方便,笔者后面很多开发的软件都是 apt 安装的。apt 安装需要打开开发者模式,在控制中心搜索开发者模式,按照提示操作就可以打开。

    由于本文是记录国产化适配,就不做过多的测评了。如果想了解更多,大家可以看一下机器的官网指标参数和[评测视频]( https://search.bilibili.com/all?keyword=鲲鹏 920)。我的最终感觉要比评测视频里说的要好得多,无论是鲲鹏 920 还是 UOS,可能是因为我是程序员的原因吧。

    UOS 我重装了几回(因为要测试没有开发环境的软件运行情况,查找软件依赖),安装非常简单,X86 的可以在 UOS 官网下载,国产 CPU 版本的操作系统通过客服就可以要到。下载 ISO 镜像后,用官方提供的工具在 windows 系统下制作一个安装 U 盘,然后插上去,点几下就完成了安装。大家有兴趣可以安装看一下。

    检查一下 Web 的兼容性,用 UOS 自带的浏览器打开 web 地址,扫码登录,功能一切正常。商店里还有火狐,应该也都没有问题。界面如下图所示。 web-chat

    下面正式开始适配。适配分成两部分,一部分是 PC 客户端 pc-chat 的适配;另外一部分是 server 的适配,server 需要使用到国产数据库。由于篇幅的问题,本文只讲适配 PC 客户端吧,server 的适配等到有空再写。

    pc-chat是野火 IM 在 PC 上的客户端,界面和功能和微信 /钉钉的 PC 端类似,实现是通过 electron 实现的,其中协议栈是 C++的库,上层 UI 是 H5 写的。pc-chat 已经在 linux x86 上完成了开发,所以在 UOS arm64 上只需要重新编译即可。

    C++协议栈编译,

    安装依赖 cmake,python,build-essential,node,node-gyp,其中 cmake 在应用商店里有,点击安装就可以了

    另外两个通过命令行安装

    sudo apt update
    sudo apt install python,build-essential
    

    node 的安装方法是在 nodejs.org 上下载 arm 版本的,然后解压到/usr/local/lib/nodejs,然后把 bin 目录添加到 PATH 中就可以用了。

    node 安装完成之后,通过npm install -g node-gyp安装 node-gyp 。

    由于 mars 中使用了 openssl 的静态库,所以需要重新编译 openssl 库,从 github openssl release 处下载 1.0.2f 版本,然后按照 readme 上的说明,如下编译

    ./configure
    make
    

    编译完成后,找到libcrypt.alibssl.a,在 mars 项目建立文件夹“openssl_lib_linux_arm64”,然后再修改 linux 的编译脚本,引用 arm64 的静态库。

    mars 的编译:对比 linux_x86 的编译脚本,创建 arm64 的编译脚本 python build_linux_arm64.py , 运行之后开始了 C++和 node 库的编译,编译成功后就得到了 marswrapper.node 协议栈库。

    编译到这里的顺利程度远超出我的想象的,基本上没有遇到任何问题,这也就是说明 arm 的生态非常的好,常用的工具链中都有 arm 版本的。有些库没有对应架构版本,也很容易编译得到。

    截图插件的编译

    pc-chat 的截图插件是 QT 的,好处是跨平台,可以在各个平台上运行,只需要在对应的平台上编译一次就可以了。商店里有 QT Csreator,直接安装,但发现无法编译,因为没有装 QT,在 QT 官方的 download 页面也无法找到 arm 版本,而在网上找到的 UOS 安装 QT 都是针对 x86 平台的,正当一筹莫展的时候突然想到是不是可以试试命令行模式,通过apt install qt5-default命令,顺利地编译出了截图插件。 QT

    打包 Electron 软件包

    下面就是编译 Electron 了,修改一下打包的脚本,electron-builder 添加--arm64参数,然后执行npm install, npm run package-linux-arm64,编译打包失败,原来还依赖 fpm,fpm 最新版本还有问题,还需要回退到上一个版本,折腾一番后,顺利打包成功。运行起来以后,所有功能都是正常的,非常地成功。 pc-chat

    我们还录制了一个简单的视频,放到了 B 站上,可以点击这里观看。

    其实打包 electron 时还是有些担心的,因为用到了太多的库,有些库是平台依赖的,需要 node-gyp 进行编译,但真没有想到所有的依赖都是一遍就通过的,只有打包的时候遇到 fpm 的问题。

    鲲鹏 920 适配过了,应该所有的 arm64 的 CPU 都可以支持了,应该也能支持海光 CPU 了,后面还要找机会找台海光的 PC 测试一下。

    总结

    可以看出 arm 的生态环境还是非常的好,工具链齐全,大部分代码都是一遍通过,偶尔出现问题,也都是可以通过 stackoverflow 查找解决的。通过这次适配,我感觉所有的在 x86 linux 上运行的软件都应该可以比较容易地移植到 arm64 linux 上去。

    另外一个感觉就是,arm 的性能稍微差了点,我用一台 i3 的 NUC 对比过,这台机器的编译时间大概是 NUC 的 1.2 倍到 1.8 倍不等。应该是单核的性能相对 X86 差了不少,但能效比应该是能够吊打 X86 的,毕竟 arm 是比较省电的。INTEL 在过去的十年太佛系了,没有太大的进步。

    生态完善,能效比高,苹果都要转向 arm 了,可见未来 arm 的发展前景了。

    Arm 加油!国产化系统加油!中国加油!

    第 1 条附言  ·  267 天前
    海光是 x86 架构,文中搞错了。飞腾是 Arm64 的
    168 条回复    2020-08-03 18:00:56 +08:00
    1  2  
    firechat
        101
    firechat   266 天前
    @FS1P7dJz 确实是软文,国产系统的软文,哈哈
    firechat
        102
    firechat   266 天前
    @xiaokanhongchen

    @lyhiving

    可以用 deepin,基本一样的
    firechat
        103
    firechat   266 天前
    @joyqi 鲲鹏是 arm 授权的,跟所有的 arm 都兼容,理论上软件运行中树莓派还是鲲鹏上都没有区别
    idhrwb01296
        104
    idhrwb01296   266 天前 via Android
    三个字,不敢用
    firechat
        105
    firechat   266 天前
    @yujiang
    @cnnblike

    现在还不好买,成熟度不够,买太早了反而会伤了大家的心,让 zf 先去踩踩坑吧
    firechat
        106
    firechat   266 天前
    @12101111 带上 electron,包的大得吓死人了,不过好处是没有兼容性的问题。
    iyear
        107
    iyear   266 天前   ❤️ 5
    @elfive #94 楼上的某些言论虽然说的只是国产,看看历史发言,不像是想建设祖国的样子吧
    iyear
        108
    iyear   266 天前
    @elfive #94 越来越有 loc 那味儿了,loc 某些人的屁股……
    gdzzzyyy
        109
    gdzzzyyy   266 天前   ❤️ 1
    上面吵爱不爱干嘛。有就是多个选择而已。只要不是强制消费,别干预市场,比如全线禁售 windows,apple,别整体“沸腾”体软文。谁好用,谁对自己有用就用谁的。别上来就定义下标签。国产的海康 1tssd 价格 900 块钱,用着也挺好的。当然我肯定不做吃螃蟹的人,毕竟我买这些产品没人给我补贴,我也不是土豪。但后面越来越好我就有多个选择,质量越好,价格越低就会让国际巨头也降价。
    nicevar
        110
    nicevar   266 天前
    Deepin 除了有些小 bug 外,用来工作已经完全没有问题了
    Lykos
        111
    Lykos   266 天前   ❤️ 6
    熟悉的回复,熟悉的 v2ex
    massacreformash
        112
    massacreformash   266 天前 via iPhone
    v2 没长毛的小学生太多了
    tankren
        113
    tankren   266 天前   ❤️ 1
    国产化 pc 是战略产物 小毛孩太幼稚了
    p1gd0g
        114
    p1gd0g   266 天前
    加油吧。
    ihipop
        115
    ihipop   266 天前 via Android
    微信不能用的原因是因为 deepin 的微信目前还是 wine 的,然后微信没有 arm 版,其他的你都懂的
    l00t
        116
    l00t   266 天前
    @gdzzzyyy #109 担心的就是强制消费。
    Narcissu5
        117
    Narcissu5   266 天前
    倒是可以给机关采购一批,还可以有效的避免上班玩纸牌
    Counter
        118
    Counter   266 天前   ❤️ 5
    香蕉人来洗洗 FB 剑桥分析事件,棱镜门事件,Crypto AG 事件
    firechat
        119
    firechat   266 天前
    @Narcissu5 有扫雷。。。
    bubuyu
        120
    bubuyu   266 天前
    之前下了 UOS 个人体验版,安装时繁体中文选项竟然是“正体中文”,不知道商用版的 UOS 是不是也这样。
    supuwoerc
        121
    supuwoerc   266 天前
    我司也是做国产化的,机房里面很多这种机器,每天总司 OA 群里的适配问题还是不少的 =。=
    Leez088
        122
    Leez088   266 天前
    @l00t 普通人自用的电脑谁会强制你用什么,顶多是 zf 和一些重要单位才可能会强制吧
    cnkuner
        123
    cnkuner   266 天前   ❤️ 4
    @gdzzzyyy 政务领域必然全面推 UOS,民用其实更该担心美国禁止你使用 win 和 macos 。
    @Narcissu5 @firechat 现在年轻公务员很忙的。
    楼上某些阴阳怪气的,就问你美爹全面禁了各种操作系统,会给你豁免让你单独用吗?你上班的公司被搞了,你不会被裁吗?
    propc
        124
    propc   266 天前
    不敢用不敢用不敢用三连
    lozzow
        125
    lozzow   266 天前
    @elfive 这边建议移民哟
    whi147
        126
    whi147   266 天前 via iPhone   ❤️ 1
    接入自由社会,共享科技不香吗?现在造成的一切不就是主动脱钩的结果吗?
    propc
        127
    propc   266 天前   ❤️ 3
    @cnkuner 笑话,US 什么时候禁用过普通民众使用 WIN 了?我倒是怕厉害锅为了强推这个东西而禁止民众使用 WIN,ZF 一贯的尿性又不是不知道,,
    tkl
        128
    tkl   266 天前   ❤️ 1
    说句不好听的 楼主什么都没做 依赖安装工程师...

    @loading 具体怎么测试,我就用 gin 跑了个 hello world vscode 也可以
    x66
        129
    x66   266 天前   ❤️ 6
    不会吧不会吧,现在还有人相信自由社会,共享科技那一套??
    saturnast
        130
    saturnast   266 天前
    这个帖子下面的 NC 好多,全部 block 了就行了。
    l00t
        131
    l00t   266 天前   ❤️ 2
    @Leez088 #122 你忘了当年没搞起来的 WAPI, 以及绿坝?只要技术允许,我国 ZF 要强制你用啥有什么困难?
    domosekai
        132
    domosekai   266 天前   ❤️ 2
    老美会不会禁民众使用 win/mac 我不敢说,如果把中国等同朝鲜和伊朗列入出口禁止清单,那么有可能。即便这样,我的第二选择也是主流的 linux 发行版,而不是这种国产 UI
    DaRenCC
        133
    DaRenCC   266 天前
    deepin 有钱优化的话,还是有前途的,支持
    firechat
        134
    firechat   266 天前
    @domosekai 程序员可以使用主流的 linux 发行版,普通老百姓怎么办?社会都崩溃了,程序员能够独善其身吗? CPU 从哪里来,难道要靠走私吗
    mengzhuo
        135
    mengzhuo   266 天前   ❤️ 1
    UOS 就是 Deepin 换皮。
    竟然还要收钱,真想不通高层是不是吃了屎……

    其实怕监控,改用开源发行版就好,鲲鹏是标准 DTS,自己编内核打进去就行。
    什么?不会?这点水平都没有,还怕个屁监控啊。
    bubuyu
        136
    bubuyu   266 天前
    @mengzhuo RHEL 、SUSE 也收费,Linux 商业版收费没什么问题。
    Curtion
        137
    Curtion   266 天前
    就国内软件那吊样来说,有人发发牢骚,骂几句我是可以理解的。
    huntcool001
        138
    huntcool001   266 天前   ❤️ 1
    过两年就会要求国产厂商品牌机出厂强制安装 国产操作系统了..

    你看强制卡车司机安装北斗导航,还有前几年的绿坝. 你就知道了.
    lagoon
        139
    lagoon   266 天前
    我怕的是被监听吗?我怕的是被监听之后,FBI 就找上门了。
    qieqie
        140
    qieqie   266 天前
    去年年底用过同款机器,自带应用商店打不开,apt 源 401,
    自己配了一个 debian buster 的源也没什么兼容问题
    cigarzh
        141
    cigarzh   266 天前
    求拆机给大🔥看看
    firechat
        142
    firechat   266 天前
    @cigarzh 这个不能啊,是借的电脑,不能随便动。B 站上有人做的有评测,有拆机,不过说实话应该也没啥好看的,就是一堆电子器件。
    stormsuncc
        143
    stormsuncc   266 天前
    @firechat
    是不是 ZF 行为只有 ZF 知道了。中国属于集权独裁 ZF,讲道理应该比美国这种郭嘉对企业掌控力度更大。只要天朝 ZF 想,在天朝就没有 ZF 不能做的。举个例子,满大街摄像头,丢小孩一点有用的信息拍不到,抓违章倒是准时的很,有人要说技术达不到,就当我没说好了。

    @bitdepth 抱歉,学历有限不是很理解您说的啥。。。我是对于您说的“不開源自動上傳小秘密給北京”,我想表达是,winmac 这些,偷小秘密也是给美国佬吧。安卓这些国产手机国产系统偷小秘密才会给天朝 ZF 的。
    firechat
        144
    firechat   266 天前   ❤️ 3
    @stormsuncc 人是群体性动物,群体就必须有管理者,不同的是有些是被”独裁“管理的,也有些是资本家管理的,同理在美利坚也没有什么是大资本家不能做的,爱泼斯坦事件比在国内发生的很多事更离奇,有结果吗?资本其实是更黑心的更冷血,新冠感染了那么多,死了那么多弱势群体,有人管吗?中国好歹都是免费治疗,国外资本家谁管你死活。摄像头的例子举得就不恰当,国内治安过去 10 年提升了非常多,丢小孩的少了多少,盗窃和恶性犯罪少了多少,至少夜里 12 点,走在北京偏僻的胡同我也一点儿都不害怕。
    CRight
        145
    CRight   266 天前
    @mengzhuo 红帽家也这样啊,商业版应该还有相关维护服务吧
    Devin
        146
    Devin   266 天前 via Android
    @firechat 热度差不多就行了,有人见不得国产好,存心把这贴关到水深火热,不要上他们的套
    herozzm
        147
    herozzm   266 天前 via Android
    lz 这是在翔上喷香水
    nocwat
        148
    nocwat   266 天前
    也在搞国产化系统移植,支持国产处理器,但不包括换皮版的 ”国产“ x86 处理器,
    以及借着国产化大搞产业园圈地的某些厂商。
    domosekai
        149
    domosekai   266 天前   ❤️ 2
    @firechat 新冠死人凭什么要资本家负责?我得了病也不会因为没钱就找马爸爸,更不会因为马爸爸不理我就说他黑心啊。美国是小 gov,民众认可它不管这些,人家立国 200 多年来就是这样,奥巴马要推全民医保也大批人反对。换句话说,这是美国人自己选择的制度,残酷但是合理。如果大部分人不满那么就重新立法呗,这也是制度的一部分。我们是管你新冠没错,但我不会因为这个就觉得什么都该让国家管。在一个个人不能批评,遑论改变的地方,你只看到监控帮忙抓抢劫抓偷小孩实在是有点管中窥豹。
    back0893
        150
    back0893   266 天前
    看着还行啊..
    出 nuc,当成开发机不错.
    bitdepth
        151
    bitdepth   266 天前 via iPad
    @stormsuncc 我不是美國人,但是我也不信任 NSA 。NSA 是有很多黑歷史的,我基於自身隱私選擇不相信他。
    同樣不僅基於過往紀錄,還基於對立關係,我也不相信北京。
    不只是中國的 Android 設備製造商( Lenovo 電腦的 UEFI 也是),samsung, nokia 也被脅迫了。甚至被抓包的後門後宣稱只是把中國的韌體錯誤更新到外國去。
    AslanFong
        152
    AslanFong   266 天前
    @bitdepth 不要回复和主题无关的内容 ok ?想阐述政治观点小道消息去品葱
    firechat
        153
    firechat   266 天前
    @domosekai 资本家控制了大部分财富,垄断了所有的资源,而且想办法影响 zf,各种方法“避税”,一点儿社会责任都不用承担,真好,我要是有钱人,我也会喜欢美国的。但中国的传统文化就不是这样,穷则独善其身,达则兼济天下,所谓权力越大责任越大,哪怕是个小地主,遇到灾荒年也得舍粥济民,我觉得这种传统很优秀。另外哪里不允许批评了,你在这里批评也没有人封你的号啊,连方方这样吃着体制的饭砸体制的锅的也没有怎么着她呀,倒是我觉得最近 twitter/FB 清理了一大批中国账户有点儿意思
    bitdepth
        154
    bitdepth   266 天前 via iPad
    @AslanFong 我覺得您理解和我不在同一模式下。我只是在質疑這一系列產品
    Caan07
        155
    Caan07   266 天前
    国产的机器,国产化的麒麟系统的操作真的是让人一言难尽,另外,长城世恒的几款主机的散热做的还不好,开机没多久机箱感觉到明显的发热.......
    Caan07
        156
    Caan07   266 天前   ❤️ 1
    @iyear #93 请不要把 Party 和 Country 划等号。另外,人家没说恨什么给人家贴标签总不好吧?
    fluorinedog
        157
    fluorinedog   266 天前 via iPad
    @domosekai 都什么年代了还能看到活着的社会达尔文主义... 真让人大开眼界...
    gy6221
        158
    gy6221   265 天前
    @Counter 那解释一下某些地方可以日常工作巡查时查到人家私聊内容,然后查水表?
    Counter
        159
    Counter   265 天前 via Android
    edk24
        160
    edk24   265 天前
    国产发行版, 用 deepin 两年了
    jaleo
        161
    jaleo   265 天前
    @0gys #92 今天又看到关于 arm 的新闻 Arm 公司指责中国 arm 公司董事长传播虚假信息
    因为 arm 中国公司享有 arm 产品的中国独家代理权和基于 arm 技术架构的研发权利 很明显 Arm 公司和厚朴投资打算联手做掉中国 arm 公司董事长 拿下 arm 中国公司的控制权
    这个厚朴投资虽然是 arm 中国公司的股东 实则代表国际资本的利益
    gy6221
        162
    gy6221   265 天前 via Android
    @Counter 请问你看完全文了吗?
    FlushHip
        163
    FlushHip   264 天前
    也有幸参与了国产化 UOS 的软件移植,Windows 下的 C++应用程序移植,后改用 CMake 管理,移植起来还挺方便的;只不过在 UOS 下,应用程序的 root 权限的获取是个麻烦。
    learningman
        164
    learningman   264 天前
    @domosekai 资本主义不找资本家找谁?社会主义找国家啊,国家干的也不错啊
    Zhang
        165
    Zhang   263 天前
    我们的业务代码已经跑在鲲鹏 920 上一两个月啦,shockingly good!
    firechat
        166
    firechat   260 天前   ❤️ 1
    @loading golang 测试过了,在另外一台 x86 机器上交叉编译,编译出 arm64 linux 版本,运行没有问题
    loading
        167
    loading   260 天前 via Android
    @firechat golang 是最新版本吗,听说只要 libc 版本够高就好了,能说下 libc 版本吗?

    参考命令
    ls -l /lib/i386-linux-gnu/libc.so.6
    firechat
        168
    firechat   260 天前
    @loading 我们 golang 的应用少,所以一直没有升级 golang 版本,现在用的是 1.13 ,用的是 mac,看不到 libc 的版本
    1  2  
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2388 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 13:36 · PVG 21:36 · LAX 06:36 · JFK 09:36
    ♥ Do have faith in what you're doing.