redhat9+skyeye1.2.4 运行成功

来源:互联网 发布:优化电脑的软件 编辑:程序博客网 时间:2024/05/29 13:46

最近在学习关于内核的一些东西,如下:

(一)编译源码 
 下载使用skyeye1.2.4这个可以调试2410的,

#cd skyeye-1.2.4
  [root@localhost skyeye-1.2.4]# make
  .......
   --start-group -Lbinary -larm -ldev -lutils -lbfin -lcoldfire -lppc -lmips -lbfd -liberty --end-group -lm -Wl,--export-dynamic -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0
  binary/libppc.a(ppc_mmu.o)(.text+0x1c7e): In function `ppc_mmu_set_sdr1':
  arch/ppc/common/ppc_mmu.c:1273: undefined reference to `prom_quiesce'
  collect2: ld returned 1 exit status
  make: *** [binary/skyeye] Error 1

打开arch/ppc/common/ppc_mmu.c 找到1273,注释掉if (quiesce) {
prom_quiesce();
}我看到quiesce==false,该if里面应该不执行的,不知道有什么作用?

[root@localhost skyeye-1.2.4]# make
--start-group -Lbinary -larm -ldev -lutils -lbfin -lcoldfire -lppc -lmips -lbfd -liberty --end-group -lm -Wl,--export-dynamic -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0
****
**** The binary file located at 'binary/skyeye', enjoy it.
****
成功了!!!

(二)运行测试用例
[root@localhost skyeye]# cd skyeye-testsuite-2.2
[root@localhost s3c2410]# cd s3c2410x-2.6.14/
[root@localhost s3c2410x-2.6.14]# ls
initrd.img skyeye.conf vmlinux
[root@localhost s3c2410x-2.6.14]# skyeye -e vmlinux
big_endian is false.
arch: arm
cpu info: armv4, arm920t, 41009200, ff00fff0, 2
mach info: name s3c2410x, mach_init addr 0x8080354
ethmod num=1, mac addr=0:4:3:2:1:f, hostip=10.0.0.1
lcd_mod:1
段错误

出错了!注释掉skyeye.conf中的lcd: type=s3c2410x, mod=gtk
[root@localhost s3c2410x-2.6.14]# skyeye -e vmlinux
可以运行起来,看来是LCD的支持出了问题。可以用ls查看虚拟系统的目录



(三)找LCD问题
发现device/lcd/skyeye_lcd_gtk.c的464行if (gtk_init_check(&global_argc, &global_argv) == FALSE) {
出错,打印发现global_argc,global_argv都没赋值,找到utils/main/skyeye.c的main (int argc, char **argv),加入
global_argc=argc;
global_argv=argv;
[root@localhost skyeye-1.2.4]# make
[root@localhost skyeye-1.2.4]# cp binary/skyeye /usr/local/bin/
[root@localhost s3c2410x-2.6.14]# skyeye -e vmlinux

效果图如下,但是/bin/ash: can't access tty; job control turned off,似乎改了之后tty出现了冲突。但是对于内核的调试,估计不用lcd也可以的。

原创粉丝点击