部分调试记录

Ubuntu16.04纯命令行安装VMwareTools

hudahua@hudahua-virtual-machine:~$ sudo apt-get install open-vm-tools -y

hudahua@hudahua-virtual-machine:~$ sudo apt-get install open-vm-tools-desktop

无法加载so文件,版本问题

[root@dragonboard /]# ./Qserial -qws
./Qserial: error while loading shared libraries: libpng.so.3: cannot open shared object file: No such file or directory
[root@dragonboard /]# find -name "libpng.so"
./usr/lib/libpng.so
[root@dragonboard /]# ln -s /usr/lib/libpng.so /usr/lib/libpng.so.3

有so文件,无法加载

./usr/bin/qtcamera_arm 
./usr/bin/qtcamera_arm: error while loading shared libraries: libts-0.0.so.0: cannot open shared object file: No such file or directory

ls /usr/local/tslib/lib/
libts-0.0.so.0      libts.la            pkgconfig
libts-0.0.so.0.1.1  libts.so            ts

cp -a /usr/local/tslib/lib/*.so* /usr/lib/
方法二:

[root@TX2440A /]# export LD_LIBRARY_PATH=$/usr/local/tslib/lib/
[root@TX2440A /]# echo $LD_LIBRARY_PATH
$/usr/local/tslib/lib/

关于挂载nfs文件系统的一些参数

bootloader vivi
param set linux_cmd_line "console=ttySAC0 root=/dev/nfs nfsroot=192.168.0.106:/work/nfs_root/rootfs_qtopia_qt4 ip=192.168.0.10:192.168.0.106:192.168.0.106:255.255.255.0:sbc2440.arm9.net:eth0:off"

param save

Supervivi> param show
Linux command line: noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0


/work/nfs_root/rootfs_qtopiaqt4/etc/init.d/
vi ifconfig-eth0
	/sbin/
ifconfig eth0 192.168.0.10 netmask 255.255.255.0 up

vi rcS
/sbin/ifconfig lo 127.0.0.1
/etc/init.d/ifconfig-eth0
/bin/qt4 &

#将提示信息显示到tty1控制台上,即LCD屏上
echo "                                  " > /dev/tty1
echo "Starting Qtopia, please waiting..." > /dev/tty1

关于QT旋转90度的设置

一:配置qt的arm选项中,添加-qt-gfx-transformed 编译出错添加库-lrt

./configure -embedded arm -no-mouse-linuxtp-qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib -no-qt3support -no-openssl -nomake demos -nomake doc -nomake tools -qt-gfx-transformed -lrt

编译通过后把
/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib下的所有内容拷贝到根文件系统的/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib目录下
在根文件系统环境变量中添加
/etc/init.d/rcS
	/bin/qtpoid
vi /bin/qtpoid
	添加
export QWS_DISPLAY=Transformed:Rot90
./qtcamera_arm -qws -display "Transformed:Rot90"

2012-11-15
故障现象:error: invalid option `abi=aapcs-linux’

分析原因:去掉Kernel Features中的EABI和ABI选项。
			Kernel Features  --->                                                        
[] Use the ARM EABI to compile the kernel                                                                               [ ]   Allow old ABI binaries to run with this kernel (EXPERIMENTAL)  

重新编译内核成功(没有报错,但烧进开发板后不能够启动。)
可能不能编译是交叉编译环境的版本问题。
原因:是由于交叉编译器的版本由于之前调试裸板程序时,改为了arm-linux-gcc –V(3.4.5)版本,该版本没有EABI选项,
而之前的bootloder和内核的交叉编译环境是arm-linux-gcc –v (4.1.2)

解决方法/步骤: 
将交叉编译环境改为4.1.2后,将		
Kernel Features  --->                                                        
[*] Use the ARM EABI to compile the kernel                                                                               [*]   Allow old ABI binaries to run with this kernel (EXPERIMENTAL)  	 选上编译进内核,重新烧写启动成功。

2012-11-20
故障现象:

在配置触摸屏驱动时,根据韦东山视频的程序调试,发现能够进入IRQ_TC中断函数pen_down_up_irq ,(打印输出printk("pen up\n");,printk("pen down\n");)
(request_irq(IRQ_TC, pen_down_up_irq, IRQF_SAMPLE_RANDOM, "ts_pen", NULL);)
但不能启动ADC中断,
分析原因:
通过增加调试信息,printk()逐一追踪程序执行过程,(触摸屏执行过程简要说明:首先在驱动程序中给触摸屏驱动程序初始化时,注册了一个触摸屏驱动模块,使能了 IRQ_TC 和 IRQ_ADC,IRQ_TC是用来等到触摸点的电压, IRQ_ADC将得到的将模拟电压转换为数字电压。)发现IRQ_ADC没有工作,查看其它人写的驱动代码后,
解决方法/步骤:
将request_irq(IRQ_TC, pen_down_up_irq, IRQF_SAMPLE_RANDOM, "ts_pen", NULL) ;改为  request_irq(IRQ_TC, pen_down_up_irq, IRQF_SHARED|IRQF_SAMPLE_RANDOM, "ts_pen", s3c_ts_dev) ;后 ADC工作正常。
			转换后结果输出。

重新烧写新的内核后,出现网络拼不同,不能够挂载NFS 系统 linux下

mount: mounting tmpfs on /tmp failed: No such file or directory
dm9000 dm9000.0: WARNING: no IRQ resource flags set.
eth0: link down
route: SIOCADDRT: Network is unreachable
Please press Enter to activate this console.
 cd /etc/init.d/
			vi rcS
添加
ifconfig lo 127.0.0.1
ifconfig eth0 192.168.0.10 netmask 255.255.255.0 up
route add default gw 192.168.1.1

用自己编写的u_boot启动以前开发板的kernel时提示:

s3c2410-rtc s3c2410-rtc: setting system clock to 2012-11-29 04:35:03 UTC (1354163703)
Root-NFS: No NFS server available, giving up.
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device "mtdblock3" or unknown-block(2,0)
Please append a correct "root=" boot option; here are the available partitions:
1f00            1024 mtdblock0 (driver?)
1f01            4096 mtdblock1 (driver?)
1f02          256896 mtdblock2 (driver?)

分析原因:

U_boot传入的boot_pararms参数不一致:
setup_commandline_tag("noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0");setup_commandline_tag设置为mtdblock3时,启动的出错信息
Enter your selection: Initializing GPIO ports.........
解决方法/步骤:
. 将root=/dev/mtdblock3改为root=/dev/mtdblock2    知道root存放的块的地址:
setup_commandline_tag("noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0");

在内核启动信息里面能够找到相应的信息:
Creating 3 MTD partitions on "NAND 256MiB 3,3V 8-bit":
0x000000000000-0x000000100000 : "boot"
0x000000120000-0x000000520000 : "kernel"
0x000000520000-0x000010000000 : "yaffs2"


//系统的分区信息:
[root@TX2440A /]# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00100000 00020000 "boot"
mtd1: 00400000 00020000 "kernel"
mtd2: 0fae0000 00020000 "yaffs2"
arch/arm/plat-s3c24xx/common-smdk..c文件中:
//linux内核设置分区信息:
static  struct  mtd_partition  smdk_default_nand_part[]  =  { 
#elif  defined(CONFIG_256M_NAND) 
[0]  =  {   
.name    =  "boot", 
   .offset    =  0, 
.size     =  SZ_1M,   
},   
[1]  =  { 
.name    =  "kernel", 
.offset    =  SZ_1M  +  SZ_128K,   
.size      =  SZ_4M,   
[2]  =  { 
.name    =  "yaffs2",   
.offset    =  SZ_1M  +  SZ_128K  +  SZ_4M, 
.size     =  SZ_256M  -  SZ_4M  -  SZ_1M  -  SZ_128K,   
} 
#endif  
}; 

关于QT旋转90度的设置

一:配置qt的arm选项中,添加-qt-gfx-transformed 编译出错添加库-lrt

分析原因:
./configure -embedded arm -no-mouse-linuxtp-qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib -no-qt3support -no-openssl -nomake demos -nomake doc -nomake tools -qt-gfx-transformed -lrt
解决方法/步骤:
编译通过后把
/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib下的所有内容拷贝到根文件系统的/usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib目录下

在环境变量中添加
/etc/init.d/rcS
	/bin/qtopia
vi /bin/ qtopia
	添加
export QWS_DISPLAY=Transformed:Rot90
调试总结(心得):

qt隐藏标题栏
setWindowFlags(Qt::FramelessWindowHint);

2019-09
故障现象(问题)
继电器控制电路中,如遇到电路故障,不能通过CPU控制继电器工作,需提供一个电路(硬件逻辑电路),通过按键控制继电器的通断,达到临时使用的目的
解决思路
在继电器控制线圈端口并接一路控制电路,电路正常工作时,让其处于高阻态,不影响电路的工作,一旦电路出现故障,通过按键控制所有继电器吸合工作。

解决方法:
1、通过三极管(MOS管实现)
2、74hc573输出未使能时输出IO口高阻态实现,个人倾向第二种方法
部分调试记录_第1张图片
部分调试记录_第2张图片
对IC功能的熟悉程度决定了灵活运用的思路。
另外该电路,稍作改变可以用于冷热备份设计

无法打开内核设备“\.\Global\vmx86”:系统找不到指定的文件。您在安装 VMware Workstation后是否进行了重新引导?未能初始化监视器设备。
如下图所示。
部分调试记录_第3张图片
这个问题至今已出现过了两次。

解决方法:

  1. Win键+X键—>选择命令提示符(管理员),或者找到c:\windows\system32\cmd.exe 文件,右击选择以管理员身份运行。

  2. 输入以下的命令并回车

net start vmci

net start vmx86

net start VMnetuserif
  1. 改变vmware几种服务的启动方式为:
sc config vmci start= auto

sc config vmx86 start= auto

sc config VMnetuserif start= auto

ubuntu进不了图形界面
ubuntu无法进入图形界面的解决办法:

在登录界面按ctrl+Alt+F1(F2-F6都可以),然后输入用户名密码进行登录。

1、使用Ctrl + Alt + F1组合键进入字符命令行界面

2、试试 restartx

3、如果第2条解决不了,再试试 sudo service lightdm restart 重启 lightdm

4、如果第3条解决不了,再试试 sudo dpkg-reconfigre lightdm 选择 lightdm

5、如果第4条解决不了,就只能重装 unity 了

sudo apt-get update

sudo apt-get install --reinstall ubuntu-desktop

sudo apt-get install unity

6、如果以上都解决不了,只能重装系统。

你可能感兴趣的:(linux)