Nvidia Jetson TX2 使用ubuntu 16.04刷Jetpack 3.2碰到的一些坑
刚入手了一块Nvidia Jetson TX2的开发套件,首先刷机到jetpack 3.2碰到的一些坑以及解决方法。
坑1: 机器缺少Hdmi的连接线
解决方法:网上新购一条,又等了几天才能接上开发板用
坑2:PC主机使用的是虚拟机安装的Ubuntu 16.04,磁盘预留空间不足,导致安装中途磁盘空间耗光,安装失败
解决方法:将虚拟机建在一个空闲空间大的的磁盘上,
不要信网上说的只要10G左右空间就好,那只是要安装到板子上的镜像大小,还需要下载的资源空间,以及虚拟机系统自身所要的空间。
最后总的虚拟机镜像需要35G不到一点。其中写到板子上的系统空间约11G,下载的cuda开发包等下载文件需要4G左右,PC端的程序安装了几个G
安装完成后,可以将安装目录下的板子镜像相关文件删除,可回收约10来G磁盘空间。
坑3:安装过程中,需要联网下载资源包,速度太慢,耗了一天没有下载完毕。
解决方法: 选择一个靠谱的源,开始相信阿里,选择阿里的源,结果不用说了,换了163的源,速度一下飞起
坑4:这个问题是坑3带来的,因为速度太慢,中间终止掉了安装进程,结果换源 apt-get update 命令时会报
“无法下载 http://mirrors.163.com/ubuntu/dists/xenial/multiverse/binary-arm64/Packages 404 Not Found [IP: 2001:67c:1560:8001::14 80]”
等错误,不应该的
解决方法:google搜索了一下,只需要两个命令即可解决
sudo apt-get remove .*:arm64
sudo dpkg –remove-architecture arm64
然后 sudo apt-get update 一下
坑5:向板子上写入系统前,选择的网络是第一个PC和板子公用路由的方式,结果因为虚拟机是NAT方式,给板子写入系统后,没有能找到板子的IP
解决方法:退出安装程序,重新运行安装命令,选择自定义安装,不要选将系统写入板子。
一路next,提示输入IP地址和账号时,在板子上用ifconfig 看下板子的IP,输入账号密码,继续安装即可
坑6:按照提示信息以恢复模式启动板子后,PC上lsusb没能看到有Nvidia Corp字样的行
解决方法:很简单,拔掉usb线,重新接一下,然后lsusb可以看到了,之前怀疑步骤错误,反复关电源重启好多次,都以为是板子坏了.
基本系统刷好,后面就可以安装Tensorflow, Caffe等框架了,有空再慢慢研究。
安装Caffe: https://blog.csdn.net/wyr_rise/article/details/79620903
安装Tensorflow: https://github.com/peterlee0127/tensorflow-nvJetson
使用别人编译好的whl直接安装,免去漫长的编译时间
Popularity: 12% [?]
Random Posts
树莓派登陆密码忘记的处理方法
买来玩的树莓派长时间没有登陆,忘记登陆密码了,网上找了一些重置密码的方法多是是使用命令行要外接显示器的方式,对我ssh登陆的不适用。
想来因为树莓派是linux系统,直接修改shadow文件将pi账号的密码修改为一个已经知道的密码,再登陆后修改一下就好。
首先拆卸下树莓派上的SD卡,使用USB连接器接到电脑上,直接接的windows系统,看不到shadow文件,于是安装一个linux虚拟机,在虚拟机中挂载。
首先在Linux虚拟机中用root账号创建一个临时测试账号,对账号设置一下密码
-
useradd test
-
passwd test
-
…
-
cat /etc/shadow
提示密码输入的时候输入 test 作为密码,可以看到如下一行
test:$6$AVQjiImu$S.cv1b2ZgI32ddDye6ehRYPCI/hpfPDofuZXUQHTXpBgUA3kFVLUYsOPXybaAX7EwZfrvkT0Udcw36Ye.6P140:17429:0:99999:7:::
test后面两个冒号之间的字符串,就是密码test对应的值
拷贝出来,修改树莓派中shadow的pi那行的值,得到
pi:$6$AVQjiImu$S.cv1b2ZgI32ddDye6ehRYPCI/hpfPDofuZXUQHTXpBgUA3kFVLUYsOPXybaAX7EwZfrvkT0Udcw36Ye.6P140:17429:0:99999:7:::
保存,将SD卡弹出插回到树莓派中,开机重连,使用密码 test 做为登陆密码,顺利进入。
Popularity: 11% [?]
Random Posts
CentOS 6下Android SDK碰到提示”libc.so.6: version `GLIBC_2.14′ not found”的解决方法
在CentOS 6的机器上安装了Android的开发环境,碰到如下一些问题和解决方法
1. Android Studio 添加Android SDK时,提示缺少JDK 1.5、JDK 1.6 或 JDK 1.7, 但是机器上已经安装好JDK 1.6, JDK 1.7,还是提示同样的问题
解决方法,软件的提示信息Bug,其实是缺少 JDK 1.8(这个提示Bug应该会在后续版本被修订), 下载安装JDK 1.8,添加JDK 1.8后,再添加Android SDK,一切正常。
2. 新建一个简单Android项目,编译,提示”libc.so.6: version `GLIBC_2.14′ not found” 的错误信息
下载使用的是Android SDK Ver 25.2.5 Platform Tools Ver 25.0.3 Build Tools Ver 25.0.2
google搜索,确认是libc库的版本低的原因,CentOS 的libc版本文v2.14 要CentOS 7 才有支持 GLiBC_2.14,
解决方法要么重装系统使用CentOS 7, 要么逐个试验降低SDK版本,直到可以不要GLIBC_2.14的可用SDK版本。
既不想重装系统到CentOS7, 也不想逐个往下试验低版本SDK,
搜索网络后找到一个解决方法,也就是在其他目录编译安装一个并行的glibc 2.14版本,然后使用LD_LIBRARY_PATH临时指定到这个新安装的libc目录
-
wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
-
tar zxvf glibc-2.14.tar.gz
-
cd glibc-2.14
-
mkdir build
-
cd build
-
../configure –prefix=/opt/glibc-2.14
-
make -j4
-
sudo make install
-
export LD_LIBRARY_PATH=/opt/glibc-2.14/lib
在同一个终端下执行原本会出现 libc.so.6: version `GLIBC_2.14′ not found 提示的 aapt 命令,结果正常运行
至此,以为大功告成了,同一终端下,执行打开IDE的命令,结果没有界面出现
继续尝试解决方案,
将原本aapt改名aapt_, 新建一个同名的aapt,写入如下bash脚本
-
#!/bin/sh
-
export LD_LIBRARY_PATH=/opt/glibc-2.14/lib && "$0"_ $@
添加执行权限,在命令行下试了一下可以正常执行,将其他几个命令做同样处理
新建一个终端窗口,打开IDE,正常,新建一个Android项目,编译正常,
到此,大功告成,在没有更换操作系统和降低Android SDK版本的情况可以进行Android开发了
—-华丽分割线—–
“libc.so.6: version `GLIBC_2.14′ not found” 提示产生的原因:
使用了高版本的libc库编译,
-
objdump -T aapt |grep GLIBC_2.14
可以看到只有一个 memcpy 函数使用到了 GLIBC_2.14,
查看了一个CentOS目录下的应用,可以看到memcpy使用的是 GLIBC_2.2.5
如果自己拥有源码,可以添加如下一行代码,指定memcpy使用 GLIBC_2.2.5,使高版本编译出来的程序可以不做任何处理运行在低版本libc的系统上
__asm__(".symver memcpy,memcpy@GLIBC_2.2.5");
Popularity: 9% [?]
Random Posts
使用WIFI调试Android程序
在连接usb线的情况下,先运行,端口可以自己指定换其他端口
adb tcpip 4455
查看手机的IP地址,然后
adb connect 手机IP:4455 adb shell
断开手机usb连接线,使用
adb devices
可以看到名为 手机IP:4455的设备
连接这个设备和以前一样调试操作
调试完成后,使用
adb usb
切换回使用usb数据线调试。
Popularity: 8% [?]
Random Posts
体验Delphi XE4 iOS 开发时真机调试环境下碰到的一些问题解决方法
最新的Delphi XE4支持了iOS原生开发,凑着热闹也试了一下,发现很多传统Delphi界面开发的模式在iOS开发这儿都得到了延续,如创建窗体,拖拉控件,对控件的事件做处理等。可以通过它快速实现使用标准界面的应用。
初步感受之开发iOS程序的不足之处:
- 编译出来的文件比较大
- 对用的最多的基本String行为做了修改
一个简单的应用都快20MB的大小了,虽说现在手机的内存比较大了,但是也不能这么样吧,这还没算运行时需要的运行内存都这么大了,实际运行起来需要多少内存呢?
只支持Unicode的字符串,AnsiString不支持了,而且居然从0开始下标了,让熟悉了传统Delphi字符串以1为下标的人情以何堪啊
回到正题,真机调试过程中碰到的一些问题以及解决方法:
- 设置好Proile后,编译时在codesign时出现 [PAClient Error] Error: E0264 ambiguous错误
- 执行文件时候出现 Unable to install package. (e8008015) 错误。
- 写的程序需要外部资源,未能在打包发布中带过去
按照官方解释,只能有一个名称好用,当有冲突且错误提示中Matchs名称不一样的时候可以删除掉一个,或者修改名称唯一。但是还有一个问题其实就是这台开发电脑使用了好久,有之前的过期证书未被删除,这儿也是显示冲突的,需要在Mac证书助理中显示已过期的证书(默认不显示已过期的证书,你的感觉会同名的只有一个),然后将过期的证书删除,保证同名的只有一个即可正常通过codesign
这个问题有人在EMB提问过,结果官方一句未能重新问题就打发了,对EMB鄙视。实际情况是做测试的机器的udid未在证书签名中,加入设备的udid后后重新签名证书,问题消失。
这个问题需要在菜单的Deployment将需要的资源添加进去即可(要注意添加的目录和程序中的读取对应起来),在这儿再次鄙视EMB,居然没有资源的目录结构,且不能批量目录增加资源文件,需要手工逐个文件添加,对那些使用大量资源的人估计就惨了,在不同目录下拥有同名资源的人就更惨了。
Popularity: 8% [?]
Random Posts
修改XCode中__MyCompanyName__的默认值
可以在工程属性的 Oragnization 中设置,但是这个只有在创建工程后才有作用,创建工程时所生成的文件中仍然是 __MyCompanyName__,在什么地方可以修改默认值呢?
可以通过修改地址薄的方法。
1、打开地址簿程序
2、在菜单中选中 卡片-》前往我的卡片
如果没有卡片,可以新建一张卡片,然后使用菜单 卡片-》将这张设为我的卡片
3、打开卡片后,点击下面的编辑按钮,输入编辑公司信息
保存退出,再次在iOS SDK中创建文件,可以看到__MyCompanyName__已经变为所输入的公司信息
Popularity: 8% [?]
Random Posts
Android中ListView控件的使用
ListView要正常显示需要三个元素
1. 用来显示数据的 ListView 控件
2. 用来显示的数据 data
3. 用来将数据和 ListView 绑定的 ListAdapter
常见ListView风格
Android.R.layout.simple_list_item_1:每一项只有一个TextView
Android.R.layout.simple_list_item_2:每一项有两个TextView,id分别为text1和text2
Android.R.layout.simpte.list_item_single_choice,每一项有一个TextView,但是这一项可以被选中。
常见的ListAdapter子类
1. ArrayAdapter
使用一个数组来存储数据,实际显示数组项中toString()方法获得字符串。
-
// 构造一个listview对象
-
String[] data = {"item1","item2","item3"};
-
// 构造一个数组对象,也就是数据
-
listview.setAdapter(new ArrayAdapter(this,android.R.layout.simple_list_item_1, data));
-
//构造一个array适配器,然后listview对象通过setAdapter方法调用适配器来和自己绑定数据
-
setContentView(listview);
2. SimpleAdapter 派生的 SimpleCursorAdapter 和Sqlite数据绑定
一般用在 Android.R.layout.simple_list_item_2 一行数据有两行数据项的列表
SimpleAdapter需要传入一个数组列表和两个数组,其中数组列表用来存放实际数据,其中每一项为一个map,使用key=value方式存放数据。 两个数组一个为待显示的key名称,另外一个为显示数据的控件id
-
List<map>> data = new ArrayList</map><map>>();
-
Map item;
-
-
item = new HashMap();
-
item.put("name","张三");
-
item.put("sex","男");
-
data.add(item);
-
-
item = new HashMap();
-
item.put(“name”,”李四”);
-
item.put(“sex”,”女”);
-
-
data.add(item);
-
-
//构造listview对象
-
ListView listview= new ListView(this);
-
-
/*构造一个适配器。
-
* 1,第三个参数是说明用的是系统默认的布局data,android.R.layout.simple_list_item_2
-
* 2,第四和第五个参数一起理解:
-
* 把我们添加数据时姓名那一列对应到android.R.id.text1这个TextView中,把性别对应到android.R.id.text2这个TextView中。
-
*/
-
SimpleAdapter adapter = new SimpleAdapter(this,
-
data,
-
android.R.layout.simple_list_item_2,
-
new String[]{"name","sex"},
-
new int[]{android.id.text1,android.R.id.text2});
-
-
// 设置显示
-
listview.setAdapter(adapter);
-
setContentView(listview);
-
</map>
Popularity: unranked [?]
Related
Android动态挂载事件处理
好处,
1. 对代码块清晰方便阅读
2. 可以动态修改按钮的处理行为
如下列举了一下事件处理动态挂载处理方式
对Click事件做处理
-
public void onClick(View v) {
-
// doBtn Cmd
-
}
-
};
-
-
btn.setOnClickListener(btnHandler);
对ListView的ItemClick事件做处理
-
@Override
-
public void onItemClick(AdapterView av, View v, int selID, long resid ) {
-
switch (selID) {
-
case 0: // cmd0
-
doCmd0();
-
break;
-
case 5: // about
-
showAbout();
-
break;
-
}
-
}
-
};
-
-
listView.setOnItemClickListener(listClickHandler);
Popularity: unranked [?]
Related
在Android使用AlterDialog输入简单数据
使用AlterDialog实现其他语言类似InputBox之类的简单数据输入。
-
-
alter.setIcon(getResources().getDrawable(R.drawable.icon));
-
alert.setTitle("输入框标题");
-
alert.setMessage("输入提示信息");
-
-
// 添加一个EditText输入数据
-
final EditText input = new EditText(this);
-
alert.setView(input);
-
-
alert.setPositiveButton("确定", new DialogInterface.OnClickListener() {
-
public void onClick(DialogInterface dialog, int whichButton) {
-
String value = input.getText();
-
// 对输入的数据做处理
-
}
-
});
-
-
alert.setNegativeButton("取消", new DialogInterface.OnClickListener() {
-
public void onClick(DialogInterface dialog, int whichButton) {
-
// 做取消输入的事情
-
}
-
});
-
//显示对话框等待输入数据
-
alert.show();
Popularity: unranked [?]
Related
XCode4将已存在的cvs工程添加到git库中
XCode4去除了一些版本库的支持,现在只支持git和svn,早先使用的cvs库就需要做下处理,才能继续使用XCode集成的版本库功能。
添加到本地 git 库中
步骤1. 在终端下先转到项目所在目录
步骤2. 执行 git init 创建本地库
步骤3. 使用 vi .gitignore 添加要忽略的目录和文件
步骤4. 使用 git add .gitignore
步骤5. 执行 git commit “初始化库”
步骤6. 添加所有项目文件 git add -A
步骤7. 执行 git commit “初次代码入库”
经过以上处理后,再在XCode4打开项目,发现已经可以使用集成的git版本库功能了。
Popularity: unranked [?]