你的位置:首页 > 操作系统

[操作系统]Jetson TK1刷机+配置Mini PCI


最近买了台4K电视,觉得可以当显示器用,但没主机,不知怎的想到了Jetson TK1,于是一冲动买了。因为没网线,而Jetson TK1没有无线网卡,所以也折腾了一番,记录一下,给万一也有像我一样没有网线还想用这块板子的人作为参考。

刷机

我是按照Nvidia官网的链接连到中国代理商的页面,一看居然是京东,可是买来之后,开机按照官网指南登陆图像界面却怎么也不能登陆,具体现象是输入了正确的用户名和密码(ubuntu:ubuntu)之后屏幕一闪又回到了登陆界面。作为一名Linux小白,上网查了查,说是权限问题,因为发现解决的方案说法不一,我试了几个能查到的之后又都不灵,再加上发现板子上自带的Linux For Tegra是R19的超级老旧版本,于是决定刷机。

手动刷机

刷机的步骤也在官网指南里,步骤不难,不过按照CSDN上一高手的指南来看,在解压刷机需要的文件的时候,需要用--numeric-owner选项,否则就会出现我遇到的权限问题。作为Linux小白,保险起见,解压还是加上了这个选项,具体步骤如下:

1) 在Linux下,到L4T的页面,找到Jetson TK1和sample file system这两个下载:

目前最新的版本是R21.3,以这个版本为例,下载下来的是两个文件:

Tegra124_Linux_R21.3.0_armhf.tbz2

Tegra_Linux_Sample-Root-Filesystem_R21.3.0_armhf.tbz2

把这两个文件放在某个文件夹下,先解压驱动包

sudo tar --numeric-owner -jxpf Tegra124_Linux_R21.3.0_armhf.tbz2

等待解压结束,会出现一个Linux_for_Tegra文件夹。这个文件夹下有一个rootfs的文件夹,这里就是要放L4T的地方了,所以先进入rootfs文件夹:

cd Linux_for_Tegra/rootfs

然后解压基于Ubuntu的L4T Sample Image:

sudo tar --numeric-owner -jxpf ../../Tegra_Linux_Sample-Root-Filesystem_R21.3.0_armhf.tbz2

然后返回上层文件夹:

cd ..

执行安装脚本,会生成真正的system image。

sudo ./apply_binaries.sh

接下来就要开始刷机了,先按住板子最边缘的force recovery按钮不松开,然后按一下reset,板子会重启进入recovery mode,这个时候你会发现系统中新mount上了一个16G的eMMC设备。然后执行刷机命令:

sudo ./flash.sh -S 8GiB jetson-tk1 mmcblk0p1

mmcblk0p1就是板子内部存储对应的设备名。

刷机成功后板子重启,就能进入Ubuntu界面了,按照开发需求去https://developer.nvidia.com/linux-tegra-r213下载CUDA和OpenCV的deb包,双击就能安装了。

自动刷机

事实上Jetson TK1的官网也提供了傻瓜刷机包JetPack,只要到Jetpack的网页下载JetPackTK1-1.1-cuda6.5-linux-x64.run到进行刷机操作的Linux里,然后执行

chmod +x JetPackTK1-1.1-cuda6.5-linux-x64.run

然后双击,就会弹出图形界面,按照界面一步步来就能搞定从驱动到L4T到OpenCV和CUDA的所有相关包,不过鉴于前面所说的可能出现的权限问题,我还是放弃了这个套路。

安装无线网卡

因为无线信号离板子和电视太远,为了更好的信号,决定使用接Mini-PCIe的无线网卡而不是USB无线网卡,根据官方的wiki,对Jetson TK1支持最好的目前是Intel 7260,我是在淘宝和京东上买来了网卡和外接天线,一共不到200。可是L4T的内核版本似乎是不支持这款网卡的,需要自己装驱动,这个也比较简单,到firmware-iwlwifi (0.43)下载deb包,然后用U盘双击安装即可,可以正常上网了。