搜索

1

主题

357

帖子

1111

积分

QQ游客

积分
1111
发表于 2014-9-17 18:30:45
里面有个export TSLIB_TSDEVICE=/dev/input/event2这一行,看下鼠标是event2吗
回复 点赞

使用道具 举报

1

主题

24

帖子

91

积分

注册会员

Rank: 2

积分
91
 楼主| 发表于 2014-9-18 10:13:06
鼠标暂且用USB的,可以使用,倒不是问题,有了以下这句
export QWS_MOUSE_PROTO='MouseMan:/dev/input/mice'
外接USB鼠标就可以使用了。
回复 点赞

使用道具 举报

1

主题

24

帖子

91

积分

注册会员

Rank: 2

积分
91
 楼主| 发表于 2014-9-18 10:21:59
关于TS,我看了网上资料说
vim qtopia-free-2.2.0/qtopia/src/qt/qconfig-qpe.h
+             #define QT_QWS_IPAQ
+             #define QT_QWS_IPAQ_RAW
添加了两项,然后查看了一下设备情况
[root@iTOP-4412]# cat /proc/bus/input/devices
I: Bus=0018 Vendor=12fa Product=2143 Version=0100
N: Name="ft5x0x_ts"
P: Phys=
S: Sysfs=/devices/virtual/input/input4
U: Uniq=
H: Handlers=mouse1 event4
B: PROP=0
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=1000003

这个应该就是TS,因为触摸屏幕,是有反应的,如下:

[root@iTOP-4412]# cat /dev/input/event4 | hexdump
0000000 02ab 0000 ac1c 000b 0003 0000 01a6 0000
0000010 02ab 0000 ac21 000b 0003 0001 017f 0000
。。。

然后按你说的修改
-              export TSLIB_TSDEVICE=/dev/input/event2
+             export TSLIB_TSDEVICE=/dev/input/event4

貌似触摸点坐标和USB鼠标光标坐标不一致,有偏差,
所以干脆去掉USB鼠标,改为TS鼠标
#export QWS_MOUSE_PROTO='MouseMan:/dev/input/mice'
export QWS_MOUSE_PROTO='TPanel:/dev/input/mouse1'
/usr/local/tslib/bin/ts_calibrate
再加上坐标校准,
这下坐标是准确了,但是,好像响应有点问题,时而有反应,时而无反应。。。

算了,还是先返回使用USB鼠标,继续调试终端Terminal的问题。。。
回复 点赞

使用道具 举报

1

主题

24

帖子

91

积分

注册会员

Rank: 2

积分
91
 楼主| 发表于 2014-9-18 13:16:15
一个比较可疑的地方是

        qtopia-free-2.2.0/qtopia/src/3rdparty/applications/embeddedkonsole/main.cpp
        QTOPIA_ADD_APPLICATION("embeddedkonsole",Konsole);
        QTOPIA_MAIN
        \|/
        qtopia-free-2.2.0/qtopia/src/3rdparty/applications/embeddedkonsole/konsole.cpp
        void Konsole::init(const char* _pgm, QStrList & _args)
        {
                connect( newAct, SIGNAL( activated() ), this, SLOT( newSession() ) ); newAct->addTo( toolbar );
        }
        \|/
        qtopia-free-2.2.0/qtopia/src/3rdparty/applications/embeddedkonsole/konsole.cpp
        void Konsole::newSession()
        {
                TESession *se = new TESession(this, te, se_pgm, se_args, "xterm");
        }
        \|/
        qtopia-free-2.2.0/qtopia/src/3rdparty/applications/embeddedkonsole/session.cpp
        TESession::TESession()
        {
                sh = new MyPty();
        }
        \|/
        qtopia-free-2.2.0/qtopia/src/3rdparty/applications/embeddedkonsole/MyPty.cpp
        MyPty::MyPty() : cpid(0)
        {
                fd = openPty();
        }
        \|/
        qtopia-free-2.2.0/qtopia/src/3rdparty/applications/embeddedkonsole/MyPty.cpp
        int MyPty:penPty()
        {
                sprintf(ptynam,"/dev/pty%c%c",*c0,*c1);
                if ((ptyfd = :pen(ptynam,O_RDWR)) >= 0) {
                }
        }

在open()伪终端/dev/pty*时失败,所以,查看了一下/dev目录,确实没有伪终端设备文件
[root@iTOP-4412]# ls /dev/pty*
ls: /dev/pty*: No such file or directory

打不开伪终端,Terminal就无法和shell建立通道,自然就看不到命令行提示符,问题应该跟这个有关。

可是,对比了一下iTop-4412出厂版本的Qtopia,/dev下也没有伪终端设备文件,怎么就没问题,
。。。有点dizzy
回复 点赞

使用道具 举报

1

主题

24

帖子

91

积分

注册会员

Rank: 2

积分
91
 楼主| 发表于 2014-9-18 15:46:55
参考了百度文库里一篇《linux下伪终端机制详解》,才知道/dev/pty*的机制比较老了,
现在由/dev/ptmx统一负责分配伪终端,所以,修改代码,总算Terminal有响应了。

代码修改如下:
qtopia-free-2.2.0/qtopia/src/3rdparty/applications/embeddedkonsole/MyPty.cpp
#if 0
    for (const char* c0 = "pqrstuvwxyzabcde"; ptyfd < 0 && *c0 != 0; c0++) {
        for (const char* c1 = "0123456789abcdef"; ptyfd < 0 && *c1 != 0; c1++) {
            sprintf(ptynam,"/dev/pty%c%c",*c0,*c1);
            sprintf(ttynam,"/dev/tty%c%c",*c0,*c1);
            if ((ptyfd = :pen(ptynam,O_RDWR)) >= 0) {
                if (geteuid() != 0 && !access(ttynam,R_OK|W_OK) == 0) {
                    ::close(ptyfd);
                    ptyfd = -1;
                }
            }
        }
    }
#endif
    ptyfd = :pen("/dev/ptmx", O_RDWR);
    if (ptyfd >= 0) {
            grantpt(ptyfd);
            unlockpt(ptyfd);
            char *slavename = ptsname(ptyfd);
            snprintf(ttynam, sizeof(ttynam), "%s", slavename);
            if (geteuid() != 0 && !access(ttynam, R_OK | W_OK) == 0) {
                    ::close(ptyfd);
                    ptyfd = -1;
            }   
    }   

虽然可以输入命令并得到响应,还是有点怪怪的,输入状态(光标)貌似是全角的,双字节。
暂且不管了,还是先回到老问题,Qtopia Error initialising audio. 的问题。
回复 点赞

使用道具 举报

1

主题

24

帖子

91

积分

注册会员

Rank: 2

积分
91
 楼主| 发表于 2014-9-21 20:21:57
最终发现是在打开/dev/dsp时失败导致了
        qtopia-free-2.2.0/qt2/src/kernel/qsoundqss_qws.cpp
        class QWSSoundServerData : public QObject {
                bool openDevice()
                {
                        if ((fd = :pen("/dev/dsp", O_WRONLY|O_NONBLOCK)) != -1) {
                             ...
                        }
                        if (!openOkay) {
                                qDebug("Failed opening audio device");
                                return false;
                        }
                }
        }

[root@iTOP-4412]# ls /dev/dsp
ls: /dev/dsp: No such file or directory

对比了一下友善之臂(FriendlyARM)开发板的设备文件
[root@FriendlyARM /]# ls -l /dev/dsp
lrwxrwxrwx    1 root     root             9 Sep 21 12:07 /dev/dsp -> sound/dsp
[root@FriendlyARM /]# ls -l /dev/adsp
lrwxrwxrwx    1 root     root            10 Sep 21 12:07 /dev/adsp -> sound/adsp
[root@FriendlyARM /]# ls -l /dev/audio
lrwxrwxrwx    1 root     root            11 Sep 21 12:07 /dev/audio -> sound/audio
[root@FriendlyARM /]# ls -l /dev/mixer
lrwxrwxrwx    1 root     root            11 Sep 21 12:07 /dev/mixer -> sound/mixer
[root@FriendlyARM /]# ls -l /dev/sound/
crw-rw----    1 root     root       14,  12 Sep 21 12:07 adsp
crw-rw----    1 root     root       14,   4 Sep 21 12:07 audio
crw-rw----    1 root     root       14,   3 Sep 21 12:07 dsp
crw-rw----    1 root     root       14,   0 Sep 21 12:07 mixer
回复 点赞

使用道具 举报

1

主题

24

帖子

91

积分

注册会员

Rank: 2

积分
91
 楼主| 发表于 2014-9-22 14:47:25
应该是内核没有支持老式的OSS驱动,make menuconfig重新配置内核,打开了声卡驱动的三项配置:
        --- Advanced Linux Sound Architectur
        <*>   OSS Mixer API
        <*>   OSS PCM (digital audio) API
        [*]     OSS PCM (digital audio) API - Include plugin system
编译内核:make
烧写内核:sdfuse flash kernel zImage
重启系统,还是没有自动生成/dev/sound下面的设备文件,
回复 点赞

使用道具 举报

1

主题

357

帖子

1111

积分

QQ游客

积分
1111
发表于 2014-9-22 20:08:28
mplay那个播放器是用的哪个设备节点,参考一下他的代码试试呢,
回复 点赞

使用道具 举报

1

主题

24

帖子

91

积分

注册会员

Rank: 2

积分
91
 楼主| 发表于 2014-9-23 18:08:53
本帖最后由 hgy1234 于 2014-9-23 18:32 编辑

之前测试过mplayer能播放音频,那肯定是用的ALSA的设备文件,ALSA打开设备文件的方法与OSS打开设备文件的方法不一样,
ALSA对打开设备文件进行了封装,要调用ALSA的API方法,所以,不能简单的只修改qtopia代码中的音频设备文件名,可能改动比较大。

回复 点赞

使用道具 举报

1

主题

24

帖子

91

积分

注册会员

Rank: 2

积分
91
 楼主| 发表于 2014-9-24 09:25:11
本帖最后由 hgy1234 于 2014-9-24 09:28 编辑

不好意思,一个低级错误,之前某次调试时把
sound/soc/codecs/Makefile
sound/soc/samsung/Makefile
关于binary里解压缩wm8960.tgz audio_wm8960.tgz的语句注释掉了,
导致内核启动时根本就没找到声卡
[    2.823694] ALSA device list:
[    2.823700]   No soundcards found.
更别说创建/dev/sound里的相关设备文件了。

不过,全新解压iTop4412_Kernel_3.0_20131113.tar.gz,
make menuconfig打开了声卡驱动的三项配置:
        --- Advanced Linux Sound Architectur
        <*>   OSS Mixer API
        <*>   OSS PCM (digital audio) API
            OSS PCM (digital audio) API - Include plugin system
编译出来的内核,启动时Kernel panic。。。。
[    2.721446] Samsung Audio Subsystem Driver, (c) 2011 Samsung Electronics
[    2.721507] audss_init: RCLK SRC[busclk]
[    2.721868] mmc0: cmd 5 response timeout error
[    2.723673] mmc0: cmd 5 response timeout error
[    2.725482] mmc0: cmd 5 response timeout error
[    2.727286] mmc0: cmd 5 response timeout error
[    2.730133] mmc0: cmd 55 response timeout error
[    2.732972] mmc0: cmd 55 response timeout error
[    2.735825] mmc0: cmd 55 response timeout error
[    2.738662] mmc0: cmd 55 response timeout error
[    2.799887] hub 1-3:1.0: USB hub found
[    2.804166] hub 1-3:1.0: 3 ports detected
[    2.821261] Unable to handle kernel NULL pointer dereference at virtual address 00000050
[    2.827944] pgd = c0004000
[    2.830581] [00000050] *pgd=00000000
[    2.834130] Internal error: Oops: 805 [#1] PREEMPT SMP
[    2.839248] Modules linked in:
[    2.842289] CPU: 0    Not tainted  (3.0.15 #31)
[    2.846810] PC is at preallocate_dma_buffer+0x2c/0x6c
[    2.851837] LR is at dma_new+0x68/0xac
[    2.855570] pc : [<c03ed8d0>]    lr : [<c03ed978>]    psr: 20000053
[    2.855574] sp : d6041d08  ip : d6041d20  fp : d6041d1c
[    2.867025] r10: d63158c0  r9 : d618ae00  r8 : d6330558
[    2.872233] r7 : 00000000  r6 : d6330400  r5 : 00000000  r4 : 00000000
[    2.878743] r3 : 000000d0  r2 : 00000002  r1 : 00020000  r0 : d618be00
[    2.885255] Flags: nzCv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment kernel
[    2.892632] Control: 10c5387d  Table: 4000404a  DAC: 00000015
[    2.898359]
[    2.898361] PC: 0xc03ed850:
[    2.902611] d850  e24cb004 e3a08000 e1a06000 e1a05000 e2807038 e59540b8 e285501c e3540000
[    2.910770] d870  0a000008 e5942058 e3520000 0a000005 e5960000 e5941060 e594305c e59001e8
[    2.918929] d890  ebf17d2b e5848058 e1550007 1afffff0 e89dabf0 e1a0c00d e92dd830 e24cb004
[    2.927089] d8b0  e1a02101 e3a05000 e0622281 e3a030d0 e3a01802 e0802002 e59240b8 e3a02002
[    2.935248] d8d0  e5842050 e284205c e590c000 e59cc1e8 e5845064 e584c054 e5900000 e59001e8
[    2.943407] d8f0  ebf17eef e1500005 e5840058 13a03802 03e0000b 11a00005 15843060 e89da830
[    2.951566] d910  e1a0c00d e92dd830 e24cb004 e59031e8 e1a05002 e1a04001 e59320fc e3520000
[    2.959725] d930  0a00001b e5931100 e5932104 e1912002 03e00000 03a01000 03a02c01 018300f2

请问版主,你是技术支持吗?能否用你们源码帮我编译一个添加OSS那三项配置的内核,谢谢!
回复 点赞

使用道具 举报

下一页 »
返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

登录或注册

官方客服

QQ:2551456065

官方QQ群

195631883

扫一扫关注迅为公众号

群号652692981

 
快速回复 返回顶部 返回列表