1. 先对设备降级处理
2. 在降级的时候,装好盒子的驱动;
3. 安装 USB_Burning_Tool V2.1.6 烧录软件和 libusb-win32 驱动(设备管理器 -> 添加过时设备);
4. 找根HDMI线连接电视机;
5. 插上盒子的USB线和电源线,到这一步,盒子与电脑通过USB相连,盒子与电视机通过HDMI相连,盒子电源插上,电视机里有内容;
6. 打开“进入线刷模式.bat”脚本,输入盒子的IP地址,但别按回车、别按回车、别按回车;
7. 打开 USB_Burning_Tool,固件校验、去掉2个勾,别点开始、别点开始、别点开始;
8. 切换到第6步的界面,按回车!这个时候电视机会黑屏(关键点);
9. 马上,立刻切换到第7步的界面,按开始!这时候就会进入烧录模式,进度条开始滚动;
10. 烧录完成,拔USB线、电源线。
电脑启动的时候,左上角一条短白线一直在闪,说明主板自检已通过,进不了系统引导失败原因:
硬盘供电线或者数据线问题,关机后重新插拔下,再尝试开机,不行需更换数据线尝试。
主板BIOS的第一启动项没有设置好(通常是设为光驱和硬盘)也会导至无法引导系统,所以有一个光标在左上角。
硬盘引导记录缺失,或者硬盘分区表损坏。可用启动U盘启动电脑,选进PE微系统环境来维护。做好硬盘重要文件的备份,储存于移动硬盘。
运行DiskGenius软件,查看硬盘状态,重建主引导记录。
内存出现兼容性问题、主板超频等,也会开机后屏幕的左上角光标一直在闪,需重启进主板设置,检查主板设置参数, 降低内存频率或者更换内存条。选购内存须与元内存同一品牌、相同贴面的内存,兼容性问题出现几率低。
电脑USB口插着U盘、USB光驱或USB移动硬盘,这些外设无启动系统也会引起电脑自检过后屏幕出现左上角的光标便会一直停在那里一闪一闪的情况,此时长按关机按钮关机后拔下外设插头,重新开机。
电脑光驱插着CD碟片或者软驱内插着非启动软盘等也会出现光标便会一直停在那里一闪一闪的情况,由于主板出厂设置默认启动顺序是软驱-光驱-硬盘,无法进入硬盘启动而卡机。可取出软盘、光碟,按确认键可进入硬盘引导的系统。
系统损坏,重新安装系统。
电脑主板的元器件老化,导致主板自检时异常,可以打开电脑检查主板电解电容是否有鼓起或者漏浆现象,电感或者电路板有没有烧焦现象等,如有更换元器件或返修。
本地新建文件 android.hardware.usb.host.xml。
<permissions>。
<feature name="android.hardware.usb.host"/>。
</permissions>。
使用adb push 到 /system/etc/permissions。
adb push C:\Users\Yanfulei\Desktop\useb\android.hardware.usb.host.xml /system/etc/permissions。
下载 core_hardware.xml 文件并修改。
Android手机为handheld_core_hardware.xml平板为tablet_core_hardware.xml。
编辑handheld_core_hardware.xml文件。
增加<feature name="android.hardware.usb.host"/>。
重新将文件push回去
adb push C:\Users\Yanfulei\handheld_core_hardware.xml /system/etc/permissions。
由于公司的产品,导致我在Linux下写usb通信的代码出现了许多的问题,最后发现这些设备只能通过控制传输来操作设备,所以后面的问题就迎刃而解了。现在贴上当时在QT下写的代码,以防日后再碰到此类问题的时候翻查。
还有在QT下使用libusb库的时候一定要在(项目名.pro)文件加上:
[cpp] view plain copy。
INCLUDEPATH += /usr/include/libusb-1.0 。
LIBS += -L"/usr/lib/x86_64-linux-gnu" -lusb-1.0 。
否则程序无法找到该库的路径。
[cpp] view plain copy 。
libusb_device **devs; 。
libusb_device_handle *dev_handle; 。
libusb_context *ctx=NULL; 。
struct libusb_device_descriptor desc; 。
int r;
ssize_t cnt; 。
r=libusb_init(&ctx); 。
if(r<0)
{
//printf("init error"); 。
QMessageBox::about(this,"haha","initialerror"); 。
return ; 。
}
libusb_set_debug(ctx,3); 。
//cnt=libusb_get_device_list(ctx,&devs); 。
dev_handle=libusb_open_device_with_vid_pid(ctx,VID,PID); 。
if(dev_handle==NULL) 。
QMessageBox::about(this,"haha","open my dev error"); 。
else
QMessageBox::about(this,"haha","open my dev success"); 。
//libusb_free_device_list(devs,1); 。
if(libusb_kernel_driver_active(dev_handle,0)==1) 。
{
QMessageBox::about(this,"haha","kernel driver active"); 。
if(libusb_detach_kernel_driver(dev_handle,0)==0) 。
QMessageBox::about(this,"haha","kernel driver detached"); 。
}
r=libusb_claim_interface(dev_handle,0); 。
if(r<0)
{
QMessageBox::about(this,"haha","cannot claim interface"); 。
return ; 。
}
QMessageBox::about(this,"haha","claimed interface"); 。
// start use this usb 。
unsigned char dataOut[0x30]={0}; 。
dataOut[0]=0x00; 。
dataOut[1]=0x02; 。
dataOut[2]=0x08; 。
dataOut[3]=0x00; 。
dataOut[4]=0x02; 。
dataOut[5]=0x00; 。
dataOut[6]=0xb2; 。
dataOut[7]=0x30; 。
dataOut[8]=dataOut[2]^dataOut[3]^dataOut[4]^dataOut[5]^dataOut[6]^dataOut[7]; 。
//r=libusb_interrupt_transfer(dev_handle,LIBUSB_ENDPOINT_OUT, dataOut,9, &actual_length, 0); 。
//r=libusb_bulk_transfer(dev_handle,LIBUSB_ENDPOINT_OUT,dataOut,9,&actual_length,5000); 。
//此设备必须用控制传输 。
r=libusb_control_transfer(dev_handle, 0x21, 0x09, 0x0300, 0x00, dataOut+1, 0x20, 1000); 。
unsigned char dataRead[0x30]={0}; 。
r=libusb_control_transfer(dev_handle, 0xa1, 0x01, 0x0300, 0x00, dataRead, 0x20, 1000); 。
if(r<0)
{
QMessageBox::about(this,"haha","transfer data error"); 。
}else
{
QMessageBox::about(this,"haha","transfer data success"); 。
}
//release everything 。
r=libusb_release_interface(dev_handle,0); 。
libusb_attach_kernel_driver(dev_handle,0); 。
libusb_close(dev_handle); 。
libusb_exit(ctx);。
如你的是台式机器的话,那么建议你用一个ps2连接线的键盘或者鼠标就可以正常使用了,
再去设备管理器删除安装的驱动再重启,USB接口就好了。
笔记本暂时没试过,也不知道,因为上面没有ps2接口,不敢随便乱来。