文章目录

  • 前言
  • 一、准备工作
  • 二、烧录系统
    • 1.下载对应的烧写工具
    • 2.启动系统
  • 三、连接Windows和远程管理可视化桌面
    • 1.连接putty
    • 2.在putty下联网
    • 3.重点!!!安装桌面环境及VNC
    • 4.Windows10系统通过VNC连接Ubuntu系统
  • 四、Reference

前言

随着国内科技研发人员和人才越来越多,强大的国产开发板也走进了国人的视野中,其中Firefly萤火虫开源的许多主板产品逐渐对标著名的树莓派,致力于人工智能、智能硬件、嵌入式开发、系统开发、应用程序开发等研发(Firefly开源团队打钱!)。

目前还是个视觉小白,最近在跟书开发视觉项目实例,碰巧身边有块Firefly的ROC-RK3328-CC板子,于是开始了刷系统及远程管理(还不是为了不用搞多一套键盘鼠标+小屏幕)的工作。

但是这个过程尤为艰辛,历经5天,差点就想直接入手树莓派4B了(说明一下,在树莓派最新的4B开发板问世之前,这板子的性能比树莓派的好很多),在此要吐槽一下官方,《开发手册》真的不行,写得太笼统了,玩的人少,资料不多,新手学习和开发的难度大,找开发资源也好难。

(你要说,这不是给新手玩的啊。那我直接respect+salute好吧。)


一、准备工作

这就是那块让我“魂牵梦绕”的ROC-RK3328-CC板,因为官方对其性能的描述,让很多开发者对其产生了幻想,包括我,为了那些还在Firefly路上的小伙伴们写下这篇帖,也在研发生涯中留下痕迹,也希望有dalao能在评论区指点一下我文中的一些疑问,相互交流,为科学技术的发展做贡献!!!

硬件设备:Firefly ROC-RK3328-CC(以下简称:板子)、32G SD卡、读卡器、串口下载工具(usb转ttl)、无线网卡
软件准备:VNC Viewer(PC端)、balenaEtcher(PC端)、putty(PC端)、ubuntu18.04-LXDE(从Firefly官网下载)

我选择的是LXDE版的Ubuntu,轻量级,够用就行;SD卡我选的比较大,毕竟玩视觉的,还是需要点内存的。

Firefly官网:http://wiki.t-firefly.com/zh_CN/ROC-RK3328-CC/intro.html(其他相关资料也可从此网站浏览)

VNC官网:https://www.realvnc.com/en/connect/download/viewer/


二、烧录系统

1.下载对应的烧写工具

按照官方的说法,固件分为原始固件和RK固件,具体什么区别请自行学习哈。

我选择的ubuntu18.04-LXDE属于原始固件,于是选用了Etcher进行烧录,用读卡器接入PC端,打开软件烧录即可。

注:如果选择了RK固件请使用烧写RK固件的工具进行烧写,我在摸索时打算烧写ubuntu 18.04-GPT,如果用烧写原始固件的Etcher烧录就会弹出“注意/提示”,因为GPT版本比原始固件的分区等较为复杂,所以不能同非对应的烧写工具刷系统(ubuntu 18.04-GPT烧录完系统还需要编译软件包,好麻烦,我没打算长久用这个,故直接LXDE轻量级桌面,对系统需求的高的小伙伴请刷写GPT)。

烧进SD卡后,软件会自动提示完成烧录Flash。

2.启动系统

将烧好的SD卡插入板子中,然后用串口工具连接PC作为信号传输,电源口外接5V 2A+的电源适配器(我牺牲了我的华为的充电器,没得边学习爱边摸鱼了)作为电源输入(电脑的usb口供电不足,放弃吧)。

当红灯和黄灯同时亮起时,说明系统正常开机;如果没有请检查供电和接线问题(我不会告诉你我第一次也线没接对的)。

此时,正常开机,意味着刷系统部分结束。


三、连接Windows和远程管理可视化桌面

刷写完系统后,我们当然要登陆和可视化才可以更好的管理我们的系统,知道它在做什么。

1.连接putty

这个简单,打开putty,选择Serial,给板子进行上电和连接PC。随后设置板子接入电脑的串口,设置波特率为1500000(一百五十万)。下面那一栏可以设置保存(Save)一下,名字胡乱写吧,下次直接载入(Load)这些数据就可以使用。

2.在putty下联网

载入putty后其实啥也没有,就这。

不过你如果是刚开机接入的话,会是这样的,其实没啥关系。

进去后,疯狂回车。出现了你的板子用户名就是正常的;疯狂回车毫无反应就有问题了,从接线、电压、串口等入手解决。

脸上板子后,我出现了一个未知名错误:

usb usb5-port1:cannot disable (err =  -32)

经过实验室的一个大神指点,虽然不知这个是什么原因(希望有清楚原因的dalao在评论区里指点一二),但是可以降低debug等级来让窗口屏蔽此错误信息:

echo 0 > /proc/sys/kernel/printk

随后,开始搜索WiFi网络,前提是你的板子上插上了无线网卡,然后请接上手机热点,Ubuntu十大未解之谜,连vpn都不一定有手机热点管用,不连手机热点各种报错,手机热点是对于Ubuntu是真的无敌,普通且自信好吧。

iwlist scanning | grep ESSID     //搜索可用wifi
nmcli device wifi connect wifiname password wifipasswd  //连接WiFi,WiFiname为你想接入的WiFi名,WiFipasswd为密码

连上后有一长串反馈,其中有个successfully就说明成功了(英语学渣)。

3.重点!!!安装桌面环境及VNC

默认情况下,Ubuntu18.04桌面版安装的是GNOME桌面环境而Ubuntu 18.04服务器并没有安装图形化桌面环境或VNC服务器。故,我们将为Ubuntu18.04服务器安装最新的Xfce桌面环境,外加使用官方Ubuntu软件存储库安装TightVNC。

我最开始安装了什么GNOME、LXDE等等桌面环境,最后VNC都用不了,用不了VNC我要你们这些桌面环境干嘛?我putty又用不了你们这些桌面环境,还有,lxde版本装LXDE桌面环境竟然用不了VNC,是我菜还是Firefly要出来解释一下官方给的映像文件有啥问题(也可能是因为我菜,毕竟配置文件看不懂,后面会涉及这部分内容)。

来,开始装。
首先,update一下:

sudo apt update

随后进行安装Xfce桌面环境:

sudo apt install xfce4 xfce4-goodies

接下来是安装TightVNC服务器:

sudo apt install tightvncserver

安装完成后,执行以下命令设置VNC服务的密码(密码只能是6-8字节),重复输入两次,之后会询问是否设置个人密码,我设置成了一样的:

vncpasswd

设置完密码后,可以先执行一次,看是否安装成功:

vncserver

第一次运行会生成一系列配置文件,我们需要配置~/.vnc/xstartup文件,说实话,我看不懂这个文件,我配置了很多次以后才出现了正常的界面,揉捏了很多个博主的文件内容,你们参考一下,希望有大神指导:

#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
xsetroot -solid grey
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
# Fix to make GNOME work
export XKL_XMODMAP_DISABLE=1
/etc/X11/Xsession#!/bin/sh
# wing two lines for normal desktop:
#unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
#gnome-session --session=gnome-classic &
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &
sesion-manager & xfdesktop & xfce4-panel &
xfce4-menu-plugin &
xfsettingsd &
xfconfd &
xfwm4 &
startlxde &
/usr/bin/ibus-daemon -d &

改变一下xstartup的权限:
这个问题是很多人容易忽视的问题,也是造成连接成功后黑屏的原因之一。
所以需要执行:chmod 777 ~/.vnc/xstartup

重启一下板子:

sudo reboot

随后,启动VNC服务,查看是否正常:

vncserver


我一般直接开2端口进行使用,指定开启某一个端口的命令如下:

vncserver :2         //以2号端口为例

注:每次配置完~/.vnc/xstartup文件后,要重新开启vnc端口,如果在配置前忘了关闭,配置后应重新关闭后再开启,关闭特定vnc端口的命令:

vncserver -kill:2            //以2号端口为例

4.Windows10系统通过VNC连接Ubuntu系统

在Windows和ROC-RK3328-CC的Ubuntu中安装好VNC后,先开启Ubuntu系统中的VNC:

vncserver :2         //以2号端口为例


同时查看Ubuntu系统的IP地址:

ip addr |grep inet |grep brd |awk '{ print $2}' |awk -F "/" '{ print $1}'

ip地址随着接入服务器和网关的不同会有所变化,但是接入的是同一台电脑的话是不会变的。

随后,打开PC端的VNC,点击左上角的“File”-“New connection”创建新的链接:
VNC Server:填写刚才在Ubuntu系统中获取的IP地址,同时加上端口号;
Name:随便命名,开心就行;
其他配置默认即可。
我的配置如下图所示:

配置好后,点击ok,便可以进入系统。
进入系统后,首先可能会有个提醒,其实没什么大碍,就是说这样的连接可能不太安全,直接点击“Continue”即可,顺便勾选不再提醒。
随后需要你填写刚才在Ubuntu系统中设置的6-8位密码,便可以进入系统,幸运的话,会有如下界面:

第一次进入,点击左边的选项“使用默认配置”,就会得到一个带有默认配置的XFCE桌面。


如果出现了上述界面,并完成了第一次进入系统,那本教程使用VNC在Ubuntu 18.04上安装VNC并连接Windows10的内容已经结束啦。

接下来是我自己的问题了,实际上,我第一次进入后,就已经报错,并且至今还是报错的。我第一次点击默认配置后的界面如下:


底端的选项有两个缺失,一个是终端选项,一个是Web浏览器选项。
至今连接后,仍会有这样的错误提示:

将错误提示关闭后,忽视浏览器和终端底端按钮问题的话,也倒能用,个人怀疑是xstartup文件配置的问题,希望有dalao解答一下应该如何配置,或者希望有小伙伴看到文件配置教程和指导可以转发给我,感激不尽!!!
大神告诉我,遇到这种情况,非要在这种板子的系统上用浏览器的话,可以装个火狐上去。

科研加油!!!


四、Reference

  1. https://blog.csdn.net/qqliuzhitong/article/details/114585411
  2. https://blog.csdn.net/weixin_36079835/article/details/112237302
  3. https://blog.csdn.net/chenguang_work/article/details/86241361

【学习番外篇】Firefly ROC-RK3328-CC刷Ubuntu18.04+VNC相关推荐

  1. 动手学深度学习番外篇 01.为什么from d2l import torch as d2l

    动手学深度学习番外篇 01.为什么from d2l import torch as d2l 在跟着网站动手学深度学习学习的时候,发现代码开头中经常要运行这样一句话 from d2l import to ...

  2. python学习 番外篇之模块

    番外篇:模块 模块概念 1.什么是模块 2.为何要用模块 模块的使用 首次导入模块发生的事情 不要一行导入多个模块 为导入的模块起别名,简化代码 直接从模块导入名称 一次导入模块所有名称,只适合少数情 ...

  3. lua 去除小数点有效数字后面的0_【物联网学习番外篇】Lua脚本编程扫盲

    在后面的物联网教程中,我们很快就会接触到Lua这个脚本语言,那么本篇内容结合后续的一些需要的开发点,针对Lua零基础的读者写一篇入门扫盲文章. 01 Lua 介 绍 Lua是一个小巧的脚本语言,其目标 ...

  4. swft入门学习番外篇-创建项目

    创建一个简单地项目文件,需要一下几个步骤 1.File->New->Project;  新建一个新的项目 2.Application->Single View Application ...

  5. 【大数据学习番外篇之爬虫3】爬美女照片

    为什么猪会说谎?因为它们不想被揭穿是猪! 1. 为什么小鸟总是歌唱?因为它们不会说话! 2. 为什么光头强不喜欢去博物馆?因为里面都是古人的头发! 3. 为什么鱼不喜欢唱歌?因为它们会唱跳不动! 4. ...

  6. 给深度学习入门者的Python快速教程 - 番外篇之Python-OpenCV

    转载自:https://zhuanlan.zhihu.com/p/24425116 本篇是前面两篇教程:给深度学习入门者的Python快速教程 - 基础篇 给深度学习入门者的Python快速教程 - ...

  7. Rust学习日记番外篇——代码写诗

    Rust学习日记番外篇--代码写诗 中秋节即将来临啦~~提前祝大家月饼节快乐.今天看到了掘金的文章,有个代码写诗的活动,那我就小露一手了. 0x01 选定诗句 在掘金有下面几句诗可选. 举头望明月,低 ...

  8. 安卓开发学习日记第四天番外篇_用Kotlin炒冷饭——越炒越小_莫韵乐的欢乐笔记

    安卓开发学习日记第四天番外篇--用Kotlin炒冷饭--越炒越小 前情提要 安卓开发学习日记第一天_Android Studio3.6安装 安卓开发学习日记第二天_破坏陷阱卡之sync的坑 安卓开发学 ...

  9. Matlab——学习记录篇1番外篇——hold on与hold off的区别

    重点重点!!!!!!!本人使用的Matlab版本是R2021b,如果下面代码在别的版本运行之后有bug显示的话,需要自己到百度寻找相应的函数把错误的地方替换 继上一篇学习记录篇1,编程的时候一直对ho ...

最新文章

  1. 云上人替代方案代码2
  2. Leetcode PHP题解--D68 283. Move Zeroes
  3. linux新终端找回任务,Linux 终端任务后台执行
  4. 【卷积神经网络】ResNet翻译详解
  5. spring security实战 3-使用授权码模式( Authorization Code grant)保护资源
  6. 总结:如何使用ClearCase进行开发工作
  7. 创建vue项目常用命令
  8. php AES加解密
  9. 性能工具之 Locust 工具关联与参数化
  10. 基于Arduino的吉他调音器
  11. 计算机能不能升级固态硬盘,笔记本升级固态硬盘后会怎样?秒懂
  12. android6 存储卡异常,手机SD卡无法读取时,如何在手机上修复损坏的SD卡?
  13. Python多线程抓取网页图片地址
  14. 将秒针声音加入JAVA,喜马拉雅联合秒针系统发布声音流广告报告 :“好声音”将不再是打扰...
  15. 极客头条:5月25日科技要闻 | 华为自研操作系统已注册;大疆回应信息泄露;2019 新款 iPhone 曝光
  16. 180个非常有用的电脑知识
  17. openstack上cinder卷的加密
  18. 计算机更换硬盘键盘鼠标不好使,电脑键盘和主板不兼容解决方法
  19. 移动出手了!推出老用户专享“特权”,携号转网用户却要想清楚
  20. PCA降维方法及在ATT人脸数据集的应用实例

热门文章

  1. Galaxy S8及S+全屏显示适配
  2. 支付宝小程序添加H5域名配置失败原因
  3. 邮件编码介绍及乱码的解决
  4. 强改微信内置浏览器——让x5内核滚粗
  5. 今日心得:七条人生箴言
  6. 关于职场,你需要不断拼搏
  7. 领导说“辛苦了”该怎么回?低情商说不辛苦,怎么回才显情商高?
  8. 全国低碳日·绿色低碳出行比赛-步数打卡小程序
  9. 生活随记-参观一大会址须知
  10. Unity使用UnityWebRequest实现本地日志上传到web服务器