最近买了台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盘双击安装即可,可以正常上网了。