当前位置: 首页 > news >正文

[Linux]从零开始的泰山派系统安装与远程教程

一、前言

        泰山派买回来也有一阵子了,最近慢慢开始研究。当然,学习这种Linux的开发板的第一步就是安装系统,对于RK系列的芯片系统安装有专门的软件,所有在系统安装方面比较简单。更多的还是我们应该怎么去编译系统,这一次,我们就从泰山派系统的编译,系统的安装以及没有显示器应该如何远程几个方面为大家讲解一下泰山派。这次的教程我们会涉及到Linux和安卓系统的安装和远程,我们也会使用到官方提供的烧录工具和远程工具。

二、需要准备什么?

        这次我们的教程主要是针对2+16G的泰山派,1+0版本的需要将系统装在内存卡里,这里因为硬件不允许所以1+0版本的泰山派我们不作演示,综上所述我们需要准备一个2+16G的泰山派。在有了泰山派以后,最好再去下载一份嘉立创官方给的泰山派的资料,资料中包含了我们本次会用到的所有文件都包含在嘉立创给出的资料中。资料占用的空间非常大,如果硬盘空间或者网络不允许的小伙伴可以下载我给出的资料,我的资料也包含了本次会用到的必要资料。大家打开网盘下载即可:

泰山派部分资料:通过百度网盘分享的文件:泰山派:https://pan.baidu.com/s/1dCxIfWpQA2XUt8hHYE5Azg?pwd=clxm 
提取码:clxm
复制这段内容打开「百度网盘APP 即可获取」

三、系统的编译

        编译系统我们需要在Linux的环境进行,并且需要16G以上的内存以及500G以上的硬盘空间,如果你的电脑不能满足你这样做,我的建议是使用已经编译好的系统。在上面给出的资料中和嘉立创官方资料中都可以找到已经编译好的系统。如果你没有Linux的环境,可以看下面的文章,下面的文章会教你如何在物理机和虚拟机中安装Ubuntu,当然这两个你选择一个即可:

在物理机安装Ubuntu:[Linux]如何在物理机安装Ubuntu(小白向)-CSDN博客

在虚拟机安装Ubuntu:[Linux]如何在虚拟机安装Ubuntu?(小白向)_linux虚拟机装乌班图-CSDN博客

当我们有了Linux的环境以后,我们就可以开始准备编译了。

我们可以打开嘉立创给的泰山派相关资料,我们可以看到嘉立创官方资料中的“系统SDK”文件夹:

4ce4f2c712e94115860c23655ffa9b1c.png

进入这个文件夹我们就能看到“linux”和“Andoroid”文件夹:

11159f643a4149b180b155b986151634.png

这两种系统的编译我们都会演示,当然,编译安卓的性能要求要高于Linux。

如果你没有下载嘉立创官方的SDK,而是下载的我给的资料可以打开资料中的系统SDK文件夹,这里Linux和Android的SDK各有一个:

4af56f5b55d44ca9a2a4fe623300daba.png

1.Linux系统的编译:

        在编译之前,请确保自己已经配置好了Ubuntu的环境,不管是物理机还是虚拟机,总之要有这个环境,下面我使用虚拟机进行演示,我这里使用的Ubuntu的系统版本为18.04,如果你是小白,我强烈建议你的Ubuntu版本和我一样,哪怕你使用20.04都可能出现你不能解决的报错,所以,强烈建议你使用和我一样的Ubuntu版本。虚拟机配置如下:

f673e57c31c04f42a6d920bc3a8c7aee.png

如果你有条件的话请尽量采取和我一样的配置。

这里可以看到,我们的Ubuntu18.04的虚拟机已经启动了:

3066b6ca99684c4185bea70fa5fe7822.png

下面我们需要将SDK文件上传到虚拟机中,我这里推荐使用samba服务,如果你会使用sftp当然也行。如果你还不会安装samba,可以看下面的帖子:

sanba的安装与配置:[Linux]在Ubuntu中安装samba并且正确配置(详细)_ubuntu 配置samba-CSDN博客

不管你使用哪种方法,总之需要你将泰山派的SDK文件复制到虚拟机中,如图:

ccc5999694d445e7a4c6427ab1752dee.png

我们使用下面的命令解压SDK,这里一定要加上sudo不然可能会报错:

sudo tar -xzvf ./tspi_linux_sdk_20230916.tar.gz

解压可能要解压很久,请大家耐心等待:

a301fa03bcb449d29afdbdd5b7b4425f.png

ecb3cc3d731d46d9bd572f0e4e66bf4b.png

现在这样就已经是解压完了,如果你在解压的过程中出现错误,请把解压的文件删除后重新解压:

63592e8d22024b9180af2307a0719474.png

解压完成以后,我们就可以准备编译了。

解压完成以后得到以下文件夹:

7ebe6e45666c458f8fad7a9be4f2953b.png

我们使用下面的命令来安装编译所需的环境:

sudo apt-get install git ssh make gcc libssl-dev liblz4-tool expect \
g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support \
qemu-user-static live-build bison flex fakeroot cmake gcc-multilib \
g++-multilib unzip device-tree-compiler ncurses-dev

这里直接复制粘贴即可:

ab65eae20db846d1b94792bbd87266ac.png

回车执行:

dc5b4412bbfe493faf6f41885f1f4c7c.png

696753f5c8034348a4d93ae6a6c161a2.png

下面我们要设置SDK文件夹的权限,因为我们一开始是使用root解压的,所以这些文件都属于root,我们需要设置这些文件的权限让所有用户都可以访问,后面编译我们是使用普通用户进行:

sudo chmod 777 -R ./Release/

我们将SDK文件夹的权限设置完成以后就可以进入这个文件夹了:

cd Release/

在进入SDK文件夹以后,确保自己的目录下有这些文件:

e4e23d4927764fda808d198f8bbd077b.png

运行下面的命令进行配置:

sudo ./build.sh device/rockchip/rk356x/BoardConfig-rk3566-tspi-v10.mk

0e6ec899db4a4ac79ebd812cd1c26dba.png在这里配置完成以后我们添加一条环境变量,使用下面的命令,注意这里不用加sudo:

export RK_ROOTFS_SYSTEM=buildroot

在做完以上的步骤以后,就可以开始编译了,注意在编译之前请确定你已经完整的执行的上面的所有命令并且没有出错。我们在SDK的文件夹下输入以下命令进行编译,注意这里不用加sudo,注意是不加:

./build.sh all 

输入命令以后,就开始编译了:

8394361318b44344bee334e0edbfd285.png

这里需要等以下,一会儿会让我们配置电源:

f7f6caa2ee6f43878bac26d0c150dc57.png

当出现下面的页面以后,就表示电源配置了,大家配置得跟我一样即可,如果这里随便配的话,后面就会有报错,所以请跟我相同配置:

e9f9ba544bb84595b49bf4af6bf066a6.png

f53d2e838171464bbcd80ce07effe8f0.png

157d9ab5a5d6484cbee31b5eab4fe094.png

688bf049f0714a7ebe2753c7afbb6361.png

e34a8e9154ba414bbdbbab29ea183203.png

32a0fc03460b42899749ceb9d73182c6.png

cb2ba1c5bf1b432d8cecf903e3fcf997.png

在最后这个选项以后回车过后这个窗口就会关闭,然后继续进入到编译中/:

55f1d61c33e14b5c875f585c05aa7523.png

编译的过程是非常漫长的。大家耐心等待,如果你的Ubuntu版本和我一样,中途大概率是没有错误的。编译可能需要好几个小时,根据自己电脑性能而定,等待编译完成吧!

出现下面的提示就表示已经编译成功了:

7458557aaf06461092a08fe53d242216.png

虽然编译成功了,但是我们还要进行固件打包,运行下面的命令:

./mkfirmware.sh

edaf47f2adc74c74b1e91a6457929a33.png

在固件打包以后,镜像文件被生成在了SDK目录下的“rockdev”目录下:

a732a22e7c8044f195b8274022dbe2cb.png

使用下面的命令将镜像打包成一个文件:

./build.sh updateimg

打包后,镜像仍然被保存在“rockdev”目录下。是一个名为“update.img”的文件:

859e40ca3c1c4f0099ceb3f3b95b03fd.png
在后面烧录时,可以直接烧录这个update.img文件,但是不推荐,这个系统虽然可以运行,但是很多功能不具备。

2.Android的编译

        下面我们来编译Android系统,安卓系统的编译比起Linux性能要求要高很多,大家尽量将虚拟机内存调整到18G以上,CPU的性能可以差,大不了就是编译慢,如果内存太小的话就会直接报错。这里磁盘大小设置为600G。下面是我虚拟机的配置:

2249d12f99e64d2e801937cf835196c7.png

我们同样需要使用一些文件传输服务将Android的SDK传到虚拟机中,如图:

f026ff40074c4e7c8a2295158e09af66.png

使用下面的命令解压SDK文件,这里大家将用户切换到root,一点要切换,后面的图片我没使用root操作,这是错误的。从解压文件这一步开始后面的步骤都要将用户切换到root,后面的操作都要使用root用户进行:

tar -xzvf ./tspi_android_sdk_20230909.tar.gz

5a63178948df4825bce3936cae781b3e.png

解压过程比较久,大家耐心等待。

这里解压就已经完成了:

34378253be86430d9289d4179ae5956d.png

我们可以看到解压出来的目录:

ff42944d234046a49d2a8fe3e52a8a2e.png

使用下面的命令进入这个目录:

cd tspi_android_sdk_20230909/

进入目录以后,我们使用下面的命令安装编译所需的环境,注意,这里的命令是一条命令,直接复制粘贴执行即可,注意这里要是root,之前也提到了,从解压开始的操作都要使用root:

apt-get update && apt-get install -y git python make openjdk-8-jdk git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libgl1-mesa-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libxml2-utils xsltproc unzip python bc imagemagick ccache schedtool libssl-dev libncursesw5-dbg libncursesw5-dev libncurses5 libncursesw5 libncursesada5-dev libncurses5-dbg libncurses5-dev libncursesada-doc libncursesada5 libncurses-dev libncurses-gst libncurses5-dev clang

70e170a7532c41f08615c41905c51de1.png

安装的过程也是非常漫长,大家耐心等待。安装完成以后,我们就可以进行下一步了。

在正式开始编译之前,我们还需要修改交换分区的大小,注意,这里必须修改交换分区的的大小,不然一定会报错。

这里修改交换分区的大小大家可以参考下面的文章:

修改交换分区:在Linux下禁用、添加|修改Swap分区(虚拟内存)教程_禁用swap-CSDN博客

这里我就不多说了,大家一定要查到自己的交换分区修改成功了才能开始编译:

f25d0dfe98824c2aa659dfcaac4b4c05.png

我们使用下面的命令进行SDK的编译,这里的命令是一整条命令,直接复制,粘贴,执行即可。这里执行是在SDK目录下执行:

cd u-boot && ./make.sh rk3566 && cd ../kernel && make clean && make distclean && make ARCH=arm64 tspi_defconfig rk356x_evb.config android-11.config && make ARCH=arm64 tspi-rk3566-user-v10.img -j16 && cd .. && source build/envsetup.sh && lunch rk3566_tspi-userdebug && make installclean -j16 && make -j16 && ./mkimage.sh

fb0b70c77d2043f1a897d99e6e5dd89f.png

1a9a8532d18f4d2ab500e7ed89108519.png

这里的编译过程非常漫长,大家耐心等待。

ba67173714b24b008635eea66bf8a725.png

根据上图我们可以看到,这里已经编译成功了。如果你在编译中途遇到错误,请先检查环境,其次再检查交换分区是否修改成功。

在编译完成以后,我们编译的镜像被存放在了SDK目录下的“rockdev/Image-rk3566_tspi”目录下:

4a7fc2161f2a43b3b8c003fd0d2ea580.png

我们在SDK目录下使用下面的命令来将这些镜像打包成一个镜像文件:

 ./build.sh -u

66abf6481794441eb87d61acee1d13e4.png

在执行完成以后,我们的镜像同样会被生成在SDK目录下的“rockdev/Image-rk3566_tspi”目录下:

26f4d06932c84f49b057f3a60cd53840.png

这个目录下的“update.img”文件就是打包好的镜像文件了。

至此,我们安卓系统的编译就结束了!

四、系统的安装

        在系统被编译好以后,我们就可以开始准备安装了,当然,如果你的电脑条件不允许你编译系统,你也可以直接使用嘉立创官方资料中的系统。打开嘉立创给的泰山派资料,看到“系统镜像”文件夹:

beb49367704a43e4879008fa40ca2f0a.png

进入以后可以看到许多种类的系统镜像:

14905339831a47d2a464e7648331c419.png

假如我们想安装Ubuntu的系统,我们就点击Ubuntu的文件夹:

324420e666424c179283890f82a9d6f0.png

我们可以看到这个img为后缀的文件就是系统镜像文件。

我们再看到安卓:

c8f8973e69ee4f948c87114d20db977b.png

我们可以看到安卓的系统针对不同的屏幕接口各编译了一套系统。大家可以根据自己的屏幕情况安装对应的系统,当然,如果你没有屏幕我们也有对应的远程方案。

在我给的资料中有部分的系统镜像,如图:

fc4f712417e04f1ca600af1812410893.png

也是为了保证通用性,这里的镜像我选择的都是hdmi版本的。不管你选择什么镜像道理都是一样的。有了镜像以后我们就可以准备下载了。

下面我们打开用于给泰山派下载镜像的软件,如果你下载的是嘉立创的官方资料,那么软件被放在了“开发工具”中:

c9d33d5fed8b47ebb3c0ba8144138221.png

进入以后我们可以看到这里有非常多的工具:

3f3006be0c1f4f0f9e76c62905740be6.png

如果你使用的是我给的资料,要使用到的文件被我放在了资料文件夹下的“软件工具中”:

4056014ad43b4cc089ddc479374f4b5e.png

这里我没做什么特殊处理,直接将嘉立创给的软件都复制过来了。

下载镜像我们需要用到这里面的两个压缩包,分别是“DriverAssitant_v5.11.zip”和“RKDevTool_Release_v2.86.zip”。这里的“DriverAssitant_v5.11.zip”是RK芯片的驱动程序,只有安装了这款芯片的驱动,我们的电脑才能够识别到RK芯片。“RKDevTool_Release_v2.86.zip”就是我们用来下载程序的了。我们可以在这个目录或者别的目录新建一个文件夹,将压缩包放进去再解压,请不要直接就在软件目录解压,这样压缩包会炸开。

我这里为了方便就在桌面新建名为“DriverAssitant_v5.11”的文件夹:

7b73b950fd9645ab8e53c724f58623a2.png

然后将“DriverAssitant_v5.11.zip”复制进去。这里出于对资料完整性的考虑。建议大家不要在资料文件夹中直接新建文件或文件夹。尽量采用将资料复制到别的地方使用的形式。下面我们复制“DriverAssitant_v5.11.zip”:

faa7140932614a46b088d7995cf093e2.png解压得到以下文件夹:

b077de2ca2db467f8fc5729d6cfd1ef6.png

进入这个文件夹,我们可以看到“DriverInstall.exe”程序就是我们RK芯片的驱动安装程序:

910e6978486c405391097913aeb32ba7.png

我们启动这个程序,我们可以看到以下窗口:

44fdf48b11504842956c6d67a117d2bc.png

不管你以前有没有安装过,这里都点击“驱动卸载”:

b26485d9d5214a41835037a68cc40b73.png

150b6168d02444fd967c68c65d042794.png

这里提示卸载成功以后,我们再点击“驱动安装”:

aae27681719a498aac8ba6f4414830e9.png

e9212ebff48749e68723d34c71d428d6.png

这里可以看到驱动已经安装成功了,这样我们就可以直接关掉这个驱动安装软件了。

下面我们准备打开系统烧写软件,我们同样先新建一个文件夹,将“RKDevTool_Release_v2.86.zip”压缩包复制到其中:

2295c0b04bf5499a92cf3005b3d40d12.png

089826501b5e43638739237fc242ca27.png

我们现在将这个压缩包解压,得到以下文件:

6e46b047afa64fe5b149fb02dcb6da25.png

我们点击“RKDevTool.exe”启动我们的烧写工具:

429b412a1b5e47859d998dd0ccc134cd.png

我们可以看到这里提示没有找到设备:

bcc3dd4a28f249838cba05e14cfbd73c.png

打开这个软件以后,我们就可以使用一条USB线一头接电脑,另一头接在泰山派的type-c接口上。

接口如图:

cc348bcb5c544d249296a24aa90e2599.png

在连接电脑以后,我们可以看到靠近type-c的接口的灯常亮,偏向右边的灯被渐变点亮,这就是正常的状态,如果你在连接电脑以后没有灯闪烁,那你就要考虑以下是不是USB线的问题,尝试更换USB线。

当你将泰山派连接到电脑以后,下载软件这边应该是不会有反应的:

24bd4f1e5e5d46c8be7b23d589c36708.png

当然,如果你看到了跟我一样的“发现一个ADB设备”这说明泰山派里面的系统正在运行,你的开发板是正常的。

我们现在准备进入开发板的程序下载模式,我们注意开发板上的“REC”和“RST”键:

65e32393ddc54ebdbd4e4190f67cabed.png

记得是在上电以后,我们一直按住“REC”键,随后按下“RST”键。“RST”键按下就可以松开,我们按下“RST”后“REC”不松,直到看到我们的软件中出现“发现一个LOADER设备”:

46a6eb483fb24edfb1f6993aebaab349.png

这个过程可能比较久,特别是在你松开“RST”以后,“REC”一直都不能松开,直到出现上图中的字样。这个过程可能需要看个人的感觉。如果你不能成功,请严格按照上面我说的再试一次。

当程序烧录软件发现LOADER设备以后,我们可以开始烧录了。我们点击软件的“升级固件”:

c9f69f906a184f6f8f30bb756549e82b.png

随后我们点击“固件”:

737445c3654f444f957c0d426794645a.png

我们将我们一开始准备好的固件选择进来,不管是Linux还是Android都可以使用这种方式:

22a726a816cf4ec88f898d8fb8399716.png

选择了固件以后,我们软件会使用一点时间来加载固件,大家耐心等一下:

926ff35ea46e40ab9f8afa1b11b6def6.png

固件加载进来以后,我们这里就出现了我们这个镜像的信息和loader的版本:

2882804d545144a59b71d2ce97f26b83.png

随后我们点击“升级”:

05441542561f49929866e12ee104cf9b.png

点击了升级以后,我们右边就有提示了:50e817e6e60c4236a8ca8df03996089e.png

我们等待这里的百分比走完:

fbb816bd93ff4cb6b7a71902f9ae9a92.png

在下载过程中,大家尽量不要动泰山派的连接线,也不要在正在下载程序时拔掉下载线,这样可能会导致下载失败甚至开发板不能使用,虽说有办法可以修复,但是会浪费我们的时间。

我们这里可以看到,固件烧录已经成功了,不管是Linux还是Android都可以使用这种烧录方式进行烧录:

3126809585d24b7dba614a423cde8952.png

如果你有HDMI接口的显示器,使用购买泰山派时赠送的转接头就可以接上显示器直接使用了。如果你像我一样,HDMI的接口坏了或者你没有HDMI的显示器也不要慌,我们有远程的方案提供给大家。

五、Linux以及Android的远程教程

        来到这个位置的小伙伴多半是没有显示器或者泰山派的HDMI接口已经损坏,当然,我们现在也有比较成熟的远程方案。不管是Linux还是Android我们都可以使用远程来解决无法直接观看屏幕的问题。下面我们分情况进行讲解,两种系统都会涉及到:

1.Linux的远程配置

        既然你已经给你的开发板刷入了Linux系统,说明你想学习Linux或者已经是Linux的开发者了。这里的教程可能需要你具有一定的Linux基础并且还需要有一定的硬件基础。当然,我们这里的操作都不难,下面让我们开始吧!

因为没有显示器,我们不能配置泰山派的网络,所以不能直接使用ssh。我们唯一能够操作泰山派的接口就是串口,下面我们要使用串口来操控泰山派的终端。

首先你需要一个USB转TTL的模块,这里我使用的是CH340,你也可以使用别的协议芯片:

7b675f41a8514505a4c35ca485e9d053.png

这里串口的驱动安装我就不多说了,还请大家自己研究。总的来说,你需要一个USB转TTL芯片并且安装对应的驱动使其能够找到串口。

下面需要找出在购买泰山派时送的串口转接线,也就是这根线:

2595f6dff89e4a2e8d18a69e8e02c966.png

我们需要将这根线连接到泰山派的串口上,如图中所示:

7bf8624a72324ccdb059a5e14f6fb613.png

这里的V表示VCC也就是电源,这里的G表示GND也就是接地。R表示RX表示接收,这里的接收我们要接到CH340的发送也就是TX。T表示TX表示发送,这里的发送要接到CH340的接收也就是RX。

我们将准备的转接线接入泰山派,另一头按照描述接线:

f23411c1c78e45888ee4dc6987ac48a8.png

在接好这一部分确定没有问题以后,就可以将CH340接在电脑上了。随后我们使用USB线给泰山派供电。

在电脑识别到串口以后,我们就可以进行下一步了:

cc977ee7e0ab4081833666e2fac5a4a9.png

我这里是串口3,大家自行查询CH340对应的串口号。

下面我们需要打开一个终端工具,这里我使用的是“WindTerm”是一个开源的远程工具,能够使用串口进行终端控制。下面我也会使用“WindTerm.exe”进行演示,大家当然也可以用自己的远程工具,只要工具具有串口远程功能就行。下面是“WindTerm”的开源地址:

WindTerm:GitHub - kingToolbox/WindTerm: A professional cross-platform SSH/Sftp/Shell/Telnet/Serial terminal.

当然,如果你下载了我给的资料,我的给的资料中也有这个软件。打开资料文件夹下的“远程软件”文件夹,如图:

f1a715f5e02843e5a2fe81f610668b9a.png

大家解压以后就可以直接打开远程软件使用。我这里就不演示了。

我们打开软件以后点击“会话”:

04c4a0a0fae64509929f3613801830e6.png

随后点击“新建会话”:

58b54cb6a25e48f1867a66e3c745d441.png

因为我们这里要使用串口访问泰山派的终端,我们这里点击“Serial”:

4f952fc1a4034196b575b8647839c34a.png

我们首先要将这里的串口修改为我们接到泰山派上的那个串口,我这里是串口3:

4d58b8f0b98341dea4a826cdf08d2f3f.png

这里的数据改为“text”:

a3b476a5b6a04103b00ed04e95054a27.png

随后我们点击“协议”:

f7596348478a48c9a168f1ee5355f7bb.png

这里的“波特率”我们选择自定义:

912dfbe5f64d4ff483b3e8f54b1da7b0.png

这里我们将“波特率”自定义为“1500000”,注意这里是5个0:

37c496ca800745e29c57dd252860ac76.png

随后我们点击右下角的“连接”,出现下面这样就表示连接成功了:

113fea92031d4f5c87d9d8db71b2683d.png

如果你在这一步连接失败了。首先检查CH340和泰山派是否连接正确。如果连接正确就去检查CH340的驱动有没有问题。如果这些都没有问题的话,将原本的连接关掉重新创建连接。创建连接时检查波特率设置是不是正确。当你完成了连接以后就可以进行下一步了。

当我们使用串口成功进入泰山派的终端以后,我们就可以开始配置远程了。当然,我们要远程,我们首先还是要让泰山派连接网络。下面我们就来配置泰山派的网络。

另外这里提以下,使用串口进入终端默认就是root不需要输入任何的账号密码,终端会时不时打印出日志大家不用管,后面会教大家怎么关日志,现在操作多回车几次即可:

cd7828b4e1b44f3d855f7c4c4f3de507.png

我们输入下面的命令来配置日志等级:

dmesg -n 3

这里我们临时将日志等级改为3,在这个等级只有错误和警告才会在串口输出。输入这条命令以后,就不会输出日志了:

d8aaf73fe14e40b78f70c3bb91871937.png

现在我们就可以开始配置泰山派的网络了。

下面我们会使用“NetworkManager”服务来配置网络。输入下面的命令来检查网卡状态:

nmcli device status

我们可以看到这里的网卡是没有连接网络的

79bc1106d3d549b9b4358a794f47fc46.png

下面我们打开“NetworkManager”的配置文件。因为我们现在是没有连接网络的状态,所以我们这里是不能使用网络来安装nano的,目前我们能使用的文本编辑器就只有vim了。没办法,虽然难用,但是我们已经没有别的办法了。使用下面的代码打开“NetworkManager”的配置文件:

vim  /etc/wpa_supplicant/wpa_supplicant.conf      

下面跟着我操作就不会错,注意屏幕上的文字。第一次进来是这样的,这是位于我vim的普通模式:

1deae81b539a4b438380aee71b0c13ac.png

下面我们在这个界面按下i进入vim的插入模式:

711e498c320849cb9d6c3d31f82b6240.png

当你按了i以后下面的文字会有变化,这里的“INSERT”就表示到插入模式了。

我们在插入模式下将下面的代码复制到文件中。这里需要注意,只要是在终端操作,都不要使用“ctrl+c”或者“ctrl+v”等快捷键。一律右键复制,右键粘贴:

network={ssid="ACE3"psk="123456789"key_mgmt=WPA-PSK
}

8d72dfdefac34d81870787c3f68b4863.png

点击粘贴以后弹出这个我们再点击粘贴即可:

c651c525d4f14122b08f0d7053d1ccf5.png

可以看到,我们这里的代码已经粘贴进来了:

38812ae6b9764330ba8ddf0e6cb87b66.png

这里的ssid就是我们无线网络的名字,psk就是我们无线网络的密码,大家根据自己的情况修改即可。

我们在编辑好并且确认没问题以后,我们按下键盘的“ESC”键回到vim的普通模式中:

7aef022294d242bab868ce4c08aaf301.png

在回到普通模式以后,我们输入一个“:”,是的输入一个冒号,这个冒号是英文的:

f0a75e476d9c4944a1bfcc32181ae5cf.png

我们可以发现,我们输入冒号以后,我们的光标来到了最下面,这就是vim的末行模式,这里我们不用删除冒号,继续输入“wq”即可,如图:

46c348dcaf0f475cb1b080f8d2760f1c.png

输入以后我们回车:

874a6a92c3e94f5b86dc35cf99ee9d41.png

我们可以看到这里已经退出来了。

大家也可以再打开文件看一下有没有配置好。

我们现在启动“wpa_supplicant”,使用下面的命令:

wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf

bfc5b2dc2ae14ce7b270781fb38a5a1b.png

这里提示我们已经成功启动了服务并且已经初始化。我们使用下面的命令来获取IP地址:

dhclient wlan0

这条命令是不会有输出的。如果有输出就表明有错误出现,可以尝试重启以后再进行上面的步骤。

经过了上面的步骤以后,我们的网络应该就已经连接成功了,我们输入“ifconfig”来查看网卡状态:

3f454053c02a4221803a7a3663492dbc.png

我们可以看到这里的五项网卡已经被分配到IP地址了。说明无线网络连接成功。

既然已经连接到网络了,那我们就可以使用“apt”来实现在线包管理了,我们使用下面的命令来更新包源:

apt update

在耿欣完包源以后,我们就可以来安装“openssh”了。这样我们就可以使用ssh来远程我们的开发板了。使用下面的命令安装openssh:

apt install openssh-server

你可能会遇到下面的错误:

01da442473424c5c91172db6127ac2ac.png

这个错误表示我们安装的“openssh”依赖于“openssh-client”这个包,我们使用下面的命令来安装“openssh-client”:

apt install openssh-client

在安装成功以后,我们再使用刚才的命令安装“openssh”:

apt install openssh-server

当“openssh”安装成功以后,我们使用下面的命令来查看“openssh”是否在运行:

systemctl status sshd

如果“openssh”正常启动,应该是这样的:

18ce3b2c72fd4c9eaa0a59d5565d6cc1.png

如果你的“openssh”没有启动,可以用下面的命令来启动它:

systemctl start sshd

当“openssh”启动成功以后,我们就可以远程连接了,我们使用下面的命令设置一下默认账户的密码:

passwd lckfb

6e42157175ef4ecdb42a3a34698a6021.png

密码更新成功以后,我们就可以使用远程工具连接了,个人比较喜欢“powershell”自带了远程,下面也使用“powershell”的远程工具演示,大家可以选择自己喜欢的工具远程:

这里我们输入下面的命令进行远程,注意,这里是在“powershell”中才能输入这条命令:

ssh lckfb@192.168.55.248

这里的“lckfb”是我们的用户名,@后面的就是我们开发板的IP地址。大家根据自己开发板的情况来写IP地址。但是用户这里不能使用root,记住是不能使用root:

9ef612920a1e4001918714b9d48261b8.png

输入密码后回车:

71b4c86eb38a4793af1bfa03a34463f6.png

如上图所示,我们已经连接进来了。

目前我对于我的开发板只能使用ssh进行连接,还没有找到桌面远程的办法。我尝试了RDP桌面,也尝试了自己编译RDP再安装还尝试了VNC但是都失败了。如果有大佬有好用的桌面方案还请指点一下。

2.Android的远程配置

        比起Linux,安卓的远程就友好许多了,我们可以直接使用ADB远程泰山派的Android系统。下面就让我们开始操作吧。这里我们使用的是一个名为“scrcpy”的软件对泰山派的安卓系统进行远程。“scrcpy”的优势就在于,不需要使用网络,只使用ADB就能实现远程。下面是“scrcpy”的开源主页:

scrcpy:GitHub - Genymobile/scrcpy: Display and control your Android device

如果你下载了我给的资料,可以打开资料文件夹的“远程工具”文件夹,将“scrcpy”软件的压缩包解压即可:

4d340c498b74492caf40982c589a3518.png

解压后,得到以下文件夹:

c36a3c68d836432db48ffb2107cd5bc9.png

进入文件夹我们就可以看到“scrcpy”的本体了:

e894fc7b935049479efc7e0cbe140365.png

我们使用USB线将电脑与泰山派连接,这里需要安装一下ADB驱动,不会安装的话,大家自行百度一下。我这里就不演示了。安装ADB驱动是必须的,不安装的话无法打开远程。

再连接好泰山派并且已经安装好ADB驱动以后,我们就直接启动“scrcpy”的软件即可:

f67610b4d95742cab3fc72f3013ff9b0.png

这个地方应该是不会出错的。如果就这样可能会供电不足,大家可以插上PD诱骗器的12V供电。

至此,我们安卓的远程就已经完成了,是不是非常简单,诶嘿!

六、结语

        总算结束了,哈呼,说实话有点累。编译之类的非常费时间。远程桌面自己试了很多次,虽说没试出来就是了。总之,感谢大家的观看

 

 

 

相关文章:

[Linux]从零开始的泰山派系统安装与远程教程

一、前言 泰山派买回来也有一阵子了,最近慢慢开始研究。当然,学习这种Linux的开发板的第一步就是安装系统,对于RK系列的芯片系统安装有专门的软件,所有在系统安装方面比较简单。更多的还是我们应该怎么去编译系统,这一…...

Python国产新 ORM 框架 fastzdp_sqlmodel 快速入门教程

创建模型 from typing import Optional from sqlmodel import Field, SQLModel import fastzdp_sqlmodel as fasmclass Hero(SQLModel, tableTrue):id: Optional[int] Field(defaultNone, primary_keyTrue)name: strsecret_name: strage: Optional[int] None创建表 from ty…...

面试速通宝典——3

51. 野指针和内存泄漏是什么?如何避免? ‌‌‌‌  内存泄漏:是指程序中以动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。 ‌‌‌‌  避免&…...

每天一个数据分析题(四百七十三)- 元数据

下列哪些元素属于元数据内容? () A. 名称 B. 长度 C. 类型 D. 取值范围 数据分析认证考试介绍:点击进入 题目来源于CDA模拟题库 点击此处获取答案 数据分析专项练习题库 内容涵盖Python,SQL,统计学…...

产品经理面试整理-练习常见面试问题

练习常见面试问题是准备产品经理面试的重要环节。掌握这些问题的回答思路,不仅能帮助你在面试中更加自信,还能展示你对产品管理的深入理解。以下是一些常见的产品经理面试问题,以及如何高效准备这些问题的指南。 1. 常见面试问题及回答思路 1.1 你如何定义产品成功? ●...

一步到位的智慧:BI可视化大屏在复杂环境中如何精准拾取目标

在可视化设计器中实现良好的组件拾取功能,是提升用户体验和设计效率的关键。它们不仅能够提升用户体验和操作效率,还能够增强设计的灵活性和精度,促进设计创新,并最终提升设计的质量和价值。因此,在可视化设计过程中&a…...

前端开发迎来新机会,全栈转型就靠这个!

在如今的开发世界,全栈开发者已成为许多前端开发者的新目标。随着技术的不断演进,前端不再局限于写页面和样式,而是逐渐向后端延伸,甚至触及数据库和云服务。如果你想在职业道路上更进一步,向全栈开发者靠拢&#xff0…...

关于less的基本使用

1、介绍及概述 1.1、解释 less 是方便开发人员书写CSS的一门预处理语言。浏览器只认识html /css /js格式的文件,所以直接引入.less文件,没有任何的效果,需要把less文件转换成css文件 1.2、概述 CSS弊端: 没有逻辑性、变量、函…...

python 将 aac 转为 mp3,保持原有目录结构

需要提前安装 FFmpeg import os import subprocess import time from concurrent.futures import ThreadPoolExecutor, as_completeddef convert_file(input_path, output_path):command [ffmpeg,-y, # 自动覆盖现有文件-i, input_path,-acodec, libmp3lame,-b:a, 192k,outpu…...

考研数据结构——C语言实现折半查找

首先定义了一个有序数组a,然后计算出数组的长度n。接着定义了一个要查找的元素x,值为79。binarySearch函数实现了二分查找算法,它接受数组、左右边界和目标值作为参数,通过不断缩小搜索范围来查找目标值。如果找到了目标值&#x…...

【游戏引擎】C++自制游戏引擎 Lunar Game Engine

Lunar-Game Engine 仓库位置 Lunar Game Engine Lunar GameEngie是几个渣渣业余写的基于C的游戏引擎。 相比于比较成熟的引擎,该引擎的特点如下 结构,标准混乱bug众多根本不能用! 最后的最后 To The Moon and Beyond! 简介 Luna Engine基于 C 和…...

使用【Sa-Token】实现Http Basic 认证

使用Sa-Token开源架构快速实现Http Basic 认证&#xff0c;如上图 1、springboot环境下直接添加starter即可 <!-- Sa-Token 权限认证&#xff0c;在线文档&#xff1a;https://sa-token.cc --> <dependency><groupId>cn.dev33</groupId><artifactI…...

layui table中的checkbox禁用问题

在项目开发中遇到table框已经选择过的数据不支持二次选择从而要禁用复选框不许选中&#xff0c;但会导致复选框全选时layui的table组件源码中赋值时是根据全部复选框的下标顺序来赋值到数组中返回给你&#xff0c;这样已被禁用复选框的数据也会被push到数组中导致数据错乱&…...

102.SAPUI5 sap.ndc.BarcodeScannerButton调用摄像头时,localhost访问正常,使用IP访问失败

目录 原因 解决办法 1.修改谷歌浏览器的setting 2.在tomcat中配置https访问 参考 使用SAPUI5的sap.ndc.BarcodeScannerButton调用摄像头时&#xff0c;localhost访问正常&#xff0c;使用IP访问时&#xff0c;一直打不开摄像头&#xff0c;提示getUserMedia()问题。 原因…...

20240923软考架构-------软考186-190答案解析

每日打卡题186-190答案 186、Mesh 化架构是把&#xff08; &#xff09;从业务进程中分离&#xff0c;分离后在业务进程中只保留很“薄”的Client部分&#xff0c;Client 通常很少变化&#xff0c;只负责与 Mesh进程通信&#xff0c;原来需要在SDK中处理的流量控制、安全等逻辑…...

基于Spring Boot的宠物咖啡馆平台【附源码】

基于Spring Boot的宠物咖啡馆平台&#xff08;源码L文说明文档&#xff09; 目录 4 系统设计 4.1 系统概述 4.2系统结构 4.3.数据库设计 4.3.1数据库实体 4.3.2数据库设计表 5系统详细实现 5.1 管理员模块的实现 5.1.1 用户信息管理 …...

C++模拟实现list:list、list类的初始化和尾插、list的迭代器的基本实现、list的完整实现、测试、整个list类等的介绍

文章目录 前言一、list二、list类的初始化和尾插三、list的迭代器的基本实现四、list的完整实现五、测试六、整个list类总结 前言 C模拟实现list&#xff1a;list、list类的初始化和尾插、list的迭代器的基本实现、list的完整实现、测试、整个list类等的介绍 一、list list本…...

Offer60:n个骰子的点数

题目&#xff1a;把n个骰子扔在地上&#xff0c;所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。 分析:要解决这个问题&#xff0c;我们需要先统计出每个点数出现的次数&#xff0c;然后把每个点数出现的次数除以,就能求出每个点数出现的概率了。我们…...

几种常见的索引类型扫描

第一种&#xff1a;index unique scan 索引唯一扫描&#xff0c;当可以优化器发现某个查询条件可以利用到主键、唯一键、具有外键约束的列&#xff0c;或者只是访问其中某行索引所在的数据的时候&#xff0c;优化器会选择这种扫描类型。第二种&#xff1a;index range scan 索…...

苹果CMS插件:优化蜘蛛访问内容,提升百度收录率

确保蜘蛛抓取原始内容 专为苹果CMS设计的广告管理插件&#xff0c;能够智能识别搜索引擎蜘蛛与普通访客&#xff0c;确保蜘蛛访问时展示原始内容&#xff0c;从而提升被百度等搜索引擎收录的几率。 广告显示提升收益 对于普通访客&#xff0c;该插件则优先显示广告内容&#…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...