最近买了台4K电视,觉得可以当显示器用,但没主机,不知怎的想到了Jetson TK1,于是一冲动买了。因为没网线,而Jetson TK1没有无线网卡,所以也折腾了一番,记录一下,给万一也有像我一样没有网线还想用这块板子的人作为参考。
我是按照Nvidia官网的链接连到中国代理商的页面,可是买来之后,开机按照官网指南登陆图像界面却怎么也不能登陆,具体现象是输入了正确的用户名和密码(ubuntu:ubuntu)之后屏幕一闪又回到了登陆界面。上网查了查,说是权限问题,因为发现解决的方案说法不一,我试了几个能查到的之后又都不灵,再加上发现板子上自带的Linux For Tegra是R19的超级老旧版本,于是决定刷机(注意:刷机重装系统会清除开发板中存储的数据)。
刷机的步骤也在官网指南(http://developer.download.nvidia.com/embedded/jetson/TK1/docs/2_GetStart/Jeston_TK1_QuickStartGuide.pdf#nameddest=Introduction)里,步骤不难,不过按照CSDN上一高手的指南(http://blog.csdn.net/pyen/article/details/27563819)来看,在解压刷机需要的文件的时候,需要用--numeric-owner选项,否则就会出现我遇到的权限问题。保险起见,解压还是加上了这个选项,具体步骤如下:
1) 在Linux下,到L4T(https://developer.nvidia.com/linux-tegra-r213)的页面,找到Jetson TK1(http://developer.download.nvidia.com/embedded/L4T/r21_Release_v3.0/Tegra124_Linux_R21.3.0_armhf.tbz2)和sample file system(http://developer.download.nvidia.com/embedded/L4T/r21_Release_v3.0/Tegra_Linux_Sample-Root-Filesystem_R21.3.0_armhf.tbz2)这两个下载:
目前最新的版本是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的网页(https://developer.nvidia.com/jetson-tk1-development-pack)下载JetPackTK1-1.1-cuda6.5-linux-x64.run(http://developer.download.nvidia.com/devzone/devcenter/mobile/files/L4T/jetpack_tk1_1.1/02/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(http://elinux.org/Jetson/Network_Adapters),对Jetson TK1支持最好的目前是Intel 7260。可是L4T的内核版本似乎是不支持这款网卡的,需要自己装驱动,这个也比较简单,到firmware-iwlwifi (0.43) [https://packages.debian.org/sid/firmware-iwlwifi]下载deb包,然后用U盘双击安装即可,可以正常上网了。
--------------------------------附:
check network :(61.139.2.69 is telecom service IP):
sudo ping 61.139.2.69
if can not resolve domin:(ping www.baidu.com \n ping:unknow host www.baidu.com)
sudo gedit /etc/resolv.conf
add:
# Generated by NetworkManager
nameserver 127.0.1.1
https://developer.nvidia.com/platform-software-development
https://developer.nvidia.com/embedded/linux-tegra
https://developer.nvidia.com/linux-tegra-r213