MinKNOW 安装教程

一、安装 Nvidia SDK manager

根据 Nvidia官网 教程说明,先下载用于 Ubuntu (或者其他当前使用的Linux发行版)的安装包。其中 Ubuntu版的下载地址如下:
https://developer.nvidia.com/sdkmanager_deb
注意:使用该地址下载可能需要先注册Nvidia用户,注册步骤请按照官网提示一步步进行,此处不多赘述。
下载完成后打开终端 Terminal,键入以下命令安装sdkmanager(此处假设下载好的.deb安装包位于 ~/Downloads/目录,该目录是大多数浏览器的默认下载目录,如果你手动修改过下载保存目录,请自行替换):

$ cd ~/Downloads
$ sudo apt install ./sdkmanager*.deb -y

等待安装完毕后键入以下命令打开刚安装好的sdkmanager:

$ sdkmanager

二、刷机

进入SDK Manager 的GUI图形界面后取消勾选 HARDWARE CONFIGURATION 栏中的 Host Machine 选勾,再点击 Target Hardware方框右下角的三个点 ...,选择Jetson TX2 models

点击TARGET OPERATING SYSTEM栏右下角的三小点...,选择JetPack 4.6 (rev.3)

点击CONTINUE TO STEP 02进入下一步。

勾选左下角选矿 I accept the terms and conditions of the license agreements,点击CONTINUE TO STEP 03进入下一步,按照要求输入当前用户密码后开始下载系统镜像。

下载完成后出现一个提示框,要求选择自动或者手动安装。点击skip中止自动安装。

从 carrier 板子商 auvidea 官网 下载J120的 JetPack4.6 补丁,下载地址:

https://auvidea.eu/download/firmware/Jetpack_4.6/Jetpack_4_6_TX2_J120.tar.bz2

下载完毕后用tar命令或者直接右键点选Extract here解压缩,再解压缩kernel_out.tar.bz2压缩包。将解压缩之后的kernel_out目录中的所有文件复制到JetPack目录并覆盖。

$ cp ~/Downloads/Jetpack_4_6_TX2_J120/kernel_out/* ~/nvidia/nvidia_sdk/JetPack_4.6_Linux_JETSON_TX2_TARGETS/Linux_for_Tegra/

运行一下补丁脚本:

$ cd ~/nvidia/nvidia_sdk/JetPack_4.6_Linux_JETSON_TX2_TARGETS/Linux_for_Tegra/
$ sudo ./apply_binaries.sh

按照 Nvidia开发论坛 的指示,下载一个「创建默认用户」的脚本,下载地址如下:

https://forums.developer.nvidia.com/uploads/short-url/xMF6uijxdcBfNYWQxDNcQEWEmOJ.gz

同样解压缩后放入Linux_for_Tegra目录并赋予执行权限

$ cp ~/Downloads/l4t_create_default_user.sh ~/nvidia/nvidia_sdk/JetPack_4.6_Linux_JETSON_TX2_TARGETS/Linux_for_Tegra/
$ chmod +x ~/nvidia/nvidia_sdk/JetPack_4.6_Linux_JETSON_TX2_TARGETS/Linux_for_Tegra/l4t_create_default_user.sh

运行这个命令创建默认用户和密码(这里选择的用户和密码都是minit)

$ cd ~/nvidia/nvidia_sdk/JetPack_4.6_Linux_JETSON_TX2_TARGETS/Linux_for_Tegra/
$ sudo ./l4t_create_default_user.sh -u minit -p minit

将 Jetson TX2 模块插入 auvidea J120 板子。用 usb A to B 数据线连接板子的B口和Linux电脑。接通板子电源,依顺序操作:

  • 按住板子上的 Force Recovery 按钮
  • 按 Reset 按钮
  • 松开 Reset 按钮
  • 松开 Force Recovery 按钮

回到电脑终端,键入以下命令开始刷机:

$ cd ~/nvidia/nvidia_sdk/JetPack_4.6_Linux_JETSON_TX2_TARGETS/Linux_for_Tegra/
$ sudo ./flash.sh jetson-tx2 mmcblk0p1

三、开机并连接

刷机完成后(终端显示success),Reset重启板子。找一根网线通过板子上的以太网口与路由器连接。在路由器管理界面的已接入设备中找到新接入板子的 IP 地址(以下假设该地址是 192.168.1.x)。

保证PC电脑跟TX2板子接入了同一台路由器的网域,在终端命令行中通过以下命令连接板子:

$ ssh minit@192.168.1.x

提示输入密码时输入 minit。如果网络连接正确这时候应该就能正确显示 minit@linux:~$ 的命令提示符,即顺利连入。

四、安装软件

按照
https://github.com/sirselim/jetson_nanopore_sequencing/blob/main/setup-guide-mk1c.txt
教程的方法,依次键入以下命令:

注一:以上链接内7/8/9和10的前半部分步骤不要执行
注二:以下所有命令都是在 ssh 连入板子系统,也就是命令提示符为 minit@linux:~$ 时输入的,不要错误地在PC电脑本身的终端内输入!
注三:不要把以下命令整块复制进终端执行,请务必一行一行复制或手打,每一行输入进去后都要回车,并注意是否有错误提示。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
cd ~/
git clone https://github.com/sirselim/jetson_nanopore_sequencing.git
cd ./jetson_nanopore_sequencing
wget https://mirror.oxfordnanoportal.com/software/analysis/ont-guppy_5.1.12_linuxaarch64_cuda10.tar.gz
tar -xzvf *_linuxaarch64_cuda10.tar.gz

sudo apt update
sudo apt upgrade

sudo cp nanoporetech.sources.list /etc/apt/sources.list.d/
wget -O- https://mirror.oxfordnanoportal.com/apt/ont-repo.pub | sudo apt-key add -
sudo apt update

sudo apt install minknow-core-minion-1c-offline ont-bream4-mk1c \
ont-configuration-customer-mk1c ont-kingfisher-ui-mk1c \
ont-vbz-hdf-plugin ont-minion1c-fpga

sudo cp -r ont-guppy /opt/ont/
sudo ln -s /opt/ont/ont-guppy/bin/guppy_basecaller /usr/bin/guppy_basecaller
sudo ln -s /opt/ont/ont-guppy/bin/guppy_basecall_client /usr/bin/guppy_basecall_client
sudo ln -s /opt/ont/ont-guppy/bin/guppy_basecall_server /usr/bin/guppy_basecall_server
sudo ln -s /opt/ont/ont-guppy/bin/guppy_basecaller_supervisor /usr/bin/guppy_basecaller_supervisor
sudo ln -s /opt/ont/ont-guppy/bin/guppy_barcoder /usr/bin/guppy_barcoder
sudo ln -s /opt/ont/ont-guppy/bin/guppy_aligner /usr/bin/guppy_aligner
sudo ln -s /opt/ont/ont-guppy/bin/minimap2 /usr/bin/minimap2

sudo /opt/ont/minknow/bin/config_editor --conf application \
--filename /opt/ont/minknow/conf/app_conf \
--set guppy.server_config.server_executable="/usr/bin/guppy_basecall_server" \
--set guppy.client_executable="/usr/bin/guppy_basecall_client" \
--set guppy.barcoding_executable="/usr/bin/guppy_basecall_barcoder" \
--set guppy.alignment_executable="/usr/bin/guppy_basecall_aligner" \
--set guppy.minimap_executable="/usr/bin/minimap2"

sudo /opt/ont/minknow/bin/config_editor --conf user \
--filename /opt/ont/minknow/conf/user_conf \
--set output_dirs.base="/data/minknow" \
--set output_dirs.logs="/data/minknow/log/minknow"

sudo cp ./systemd_files/guppyd.service /lib/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable guppyd.service
sudo systemctl start guppyd.service

安装tightVNC服务,用于远程连接 TX2 系统桌面:

$ sudo apt install tightvncserver -y

安装完成后设置 VNC 密码:

$ vncpasswd

输入你想要设置的远程登录密码,记得最少8位。
利用以下命令启动 VNC 服务:

$ vncserver

如果看到命令行提示New 'X' desktop is linux:1则表示vnc服务成功启动。

注:这里不建议将 vncserver 设置成开机启动,一是为了安全,二是为了在vnc连接前用ssh连接以下保证网络连接正常。因此每次断电重启都需要重新输入一遍 vncserver

五、设置热点

因为用路由器连接很不方便,因此最好利用J120板子自带的无线网卡设置一个wifi access point,即无线热点,这样将来想连接板子就不需要插路由器网线。设置热点的方法非常简单,只需要使用系统自带的NetworkManager即可实现:

依然是在ssh远程控制的终端内输入:

$ sudo nmcli dev wifi hotspot ifname wlan0 ssid minit password "YourOwnPassword"
$ sudo nmcli con mod minit autoconnect true

这时候就已经可以在有wifi的设备中看到wifi列表中出现minit这个wifi,wifi密码就是上述命令中你用来替换”YourOwnPassword”的部分。连接上之后只需要在该设备(注意这里不再是minit板子系统的命令行)的终端命令行内用

$ ssh minit@10.42.0.1

即可连接J120板子。

六、利用VNC客户端连接板子系统桌面

在 PC 电脑安装 VNC 客户端用于远程连接J120板子的图形界面。

这里的PC电脑可以是Windows/Linux/MacOS,客户端系统不限,只要安装对应的VNC系统即可。本教程展示Linux客户端的安装使用,其他操作系统请参考各自的客户端使用方法

RealVNC 官网 下载 realVNC viewer 客户端deb包,记得根据自己的PC电脑实际架构来选择。这里我选择下载x64的 deb 包:
https://downloads.realvnc.com/download/file/viewer.files/VNC-Viewer-6.22.315-Linux-x64.deb

下载完成后安装

$ cd ~/Downloads/
$ sudo apt install ./VNC-Viewer-6.22.315-Linux-x64.deb

安装完成后输入

$ vncviewer

打开客户端,在地址栏输入 192.168.1.x:5901(网线路由器连接)或者10.42.0.1:5901(Wifi 热点连接),按提示输入你用vncpasswd设置的8位以上密码,即可成功连接远程桌面。

七、运行 MinKNOW 图形界面

成功连接远程桌面后,在ssh 成功连接后的远程终端内输入:

$ export DISPLAY=:1
$ sh /usr/bin/minknow_ui_start.sh

即可成功开启minknow图形界面。由于默认的UI分辨率是1920x1080,如果窗口过大,可以修改minknow_ui_start.sh脚本调整尺寸

$ sudo apt install nano
$ sudo nano /usr/bin/minknow_ui_start.sh
# 把文件内的 1920 改成 800,1080 改成 600,或者其他你想要的数字,zoom factor 也可以改成1。

八、制作本地软件源镜像

使用apt-mirror可以制作 apt 源的本地镜像。在你要设置本地镜像的电脑上输入以下命令(保证硬盘足够大且同样是Ubuntu系统):

$ sudo apt install apt-mirror
$ sudo nano /etc/cron.d/apt-mirror
# 文件内添加内容
@daily /usr/bin/apt-mirror

设置你要镜像的源:

1
2
3
4
5
6
7
8
9
$ sudo nano /etc/apt/mirror.list
# 输入以下内容
# mk1c xenial stable
deb [arch=arm64] https://cdn.oxfordnanoportal.com/apt xenial-stable-mk1c non-free
deb [arch=arm64] https://mirror.oxfordnanoportal.com/apt xenial-stable-mk1c non-free

# mk1c bionic - assuming these will become viable soon
#deb [arch=arm64] https://cdn.oxfordnanoportal.com/apt bionic-stable-mk1c non-free
#deb [arch=arm64] https://mirror.oxfordnanoportal.com/apt bionic-stable-mk1c non-free

保存退出
手动运行一下apt-mirror

sudo su apt-mirror
apt-mirror

更具体的教程可参考
https://blog.programster.org/set-up-a-local-ubuntu-mirror-with-apt-mirror