本博客倡导开放源代码,在此公布之程序源代码如无特别声明均采用GNU通用公共 许可证(GPL)

乐在其中

分享学习Linux的乐趣

  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  23 随笔 :: 0 文章 :: 401 评论 :: 0 Trackbacks
共3页: 1 2 3 
@ccbcfan
我也注意到这个了。2.6.12的内核有prism54驱动,但似乎只支持PCI卡。所有要用usb,就必须把新的驱动back port到2.6.12,这个任务并不简单。
@usli
关于USB打印机,2.6.12的内核还不支持。只有把高版本内核的驱动反向移植(back port)过来。tomato支持说明驱动已经被反向移植到2.4内核了。
re: 编译内核(Compile the Kernel) gouzhuang 2010-10-07 01:00
@ygao
试试这个:http://cid-33323d948b0eaf12.office.live.com/self.aspx/.Public/rt1073-devel/drivers/rt73-module-20101007.tar.bz2

不知道你的内核是否打开了debug,所有编译了两个版本,一个打开了debug,一个关闭debug。其中应该有一个适合你的内核。
re: 升级BusyBox gouzhuang 2010-10-07 00:38
@hibaby
dvdplayer除了使用常规内存外还映射了大量的播放机专用硬件的地址空间。通过下面的命令可以查看dvdplayer的内存地址映射情况:
 
cat /proc/<DvdPlayer 的进程号>/maps
00400000-00cbe000 r-xp 00000000 1f:01 1095       /usr/local/bin/DvdPlayer
10000000-100af000 rw-p 008be000 1f:01 1095       /usr/local/bin/DvdPlayer
100af000
-10300000 rwxp 100af000 00:00 0          [heap]
2aaa8000
-2aaa9000 rw-00000000 00:07 0          /SYSVdeadcafe (deleted)
40000000-70020000 rw-40000000 00:00 0 
7c7fc000
-7c800000 rwxp 7c7fc000 00:00 0 
7c9fc000
-7ca00000 rwxp 7c9fc000 00:00 0 
7cbfc000
-7cc00000 rwxp 7cbfc000 00:00 0 
7cdfc000
-7ce00000 rwxp 7cdfc000 00:00 0 
7cffc000
-7d000000 rwxp 7cffc000 00:00 0 
7d1fc000
-7d200000 rwxp 7d1fc000 00:00 0 
7d5fc000
-7d600000 rwxp 7d5fc000 00:00 0 
7d7fc000
-7d800000 rwxp 7d7fc000 00:00 0 
7d9fc000
-7da00000 rwxp 7d9fc000 00:00 0 
7dbfc000
-7dc00000 rwxp 7dbfc000 00:00 0 
7ddfc000
-7de00000 rwxp 7ddfc000 00:00 0 
7dffc000
-7e000000 rwxp 7dffc000 00:00 0 
7e1fc000
-7e200000 rwxp 7e1fc000 00:00 0 
7e3fc000
-7e400000 rwxp 7e3fc000 00:00 0 
7e5fc000
-7e600000 rwxp 7e5fc000 00:00 0 
7e7fc000
-7e800000 rwxp 7e7fc000 00:00 0 
7e9fc000
-7ea00000 rwxp 7e9fc000 00:00 0 
7ebfc000
-7ec00000 rwxp 7ebfc000 00:00 0 
7edfc000
-7ee00000 rwxp 7edfc000 00:00 0 
7effc000
-7f000000 rwxp 7effc000 00:00 0 
7f1fc000
-7f200000 rwxp 7f1fc000 00:00 0 
7f83e000
-7f853000 rwxp 7f83e000 00:00 0          [stack]
 
其中仅40000000-70020000这一段就有768M。

re: 升级BusyBox gouzhuang 2010-10-06 23:22
@hibaby
buildroot的gcc版本很新,目标代码大小优化有了很大提高,我没动过busybox代码。
 
关于VSZ的问题,可以肯定是busybox 1.1.3的bug,它把常驻内存大小RSS当成了虚拟内存大小VSZ,证据如下:
busybox 1.1.3 ps 输出:
  PID  Uid     VmSize Stat Command
    
1 0           300 S   init      
    
2 0               SWN [ksoftirqd/0]
    
3 0               SW< [events/0]
    
4 0               SW< [khelper]
    
5 0               SW< [kthread]
    
6 0               SW< [kblockd/0]
    
7 0               SW  [khubd]
    
8 0               SW  [pdflush]
    
9 0               SW  [pdflush]
   
11 0               SW< [aio/0]
   
10 0               SW  [kswapd0]
   
12 0               SW  [eth0]
   
13 0               SW  [mtdblockd]
   
21 0           304 S   init      
   
22 0           308 S   init      
   
23 0           308 S   init      
   
24 0           308 S   init      
   
79 0           168 S   ./RootApp DvdPlayer
   
82 0           352 S   inetd
   
85 1           320 S   portmap
   
92 0           364 S   rpc.statd
   
99 0           364 S   rpc.statd
  
114 0               SW  [nfsd]
  
121 0               SW  [lockd]
  
128 0               SW< [rpciod/0]
  
115 0               SW  [nfsd]
  
131 0           392 S   rpc.mountd
  
147 0               SWN [jffs2_gcd_mtd2]
  
148 0           168 S   ./RootApp DvdPlayer
  
150 0          3652 S < DvdPlayer
  
151 0           168 S   ./RootApp DvdPlayer
  
163 0          3652 S   DvdPlayer
  
164 0          3652 R   DvdPlayer
  
165 0          3652 S   DvdPlayer
  
167 0          3652 S   DvdPlayer
  
169 0          3652 R   DvdPlayer
  
170 0          3652 S   DvdPlayer
  
171 0          3652 S   DvdPlayer
  
172 0          3652 S   DvdPlayer
  
173 0          3652 S   DvdPlayer
  
174 0          3652 S   DvdPlayer
  
175 0          3652 S   DvdPlayer
  
176 0          3652 S   DvdPlayer
  
177 0          3652 S   DvdPlayer
  
178 0          3652 S   DvdPlayer
  
239 0          3652 S   DvdPlayer
  
242 0          3652 S   DvdPlayer
  
243 0          3652 S   DvdPlayer
  
244 0          3652 S   DvdPlayer
  
245 0          3652 S   DvdPlayer
  
246 0          3652 S   DvdPlayer
  
274 0           348 S   /usr/sbin/ntpd -218.75.4.130 -114.80.81.1 -122.
  
288 0          1464 S   /usr/sbin/nmbd -D
  
290 0          2092 S   /usr/sbin/smbd -D
  
368 0               SW< [Ieee80211/0]
  
369 0               SW< [wlan0/0]
  
432 0           300 S   telnetd
  
433 0           476 S   -sh
 
1041 0           348 S   /sbin/udhcpc -/var/lock/udhcpc_eth0.pid -15 --s
 
1046 0               SW  [scsi_eh_0]
 
1047 0               SW  [usb-storage]
 
1093 0               SWN [kjournald]
 
1166 0           476 S   /bin/sh
 
1167 0           340 R   ps

busybox 1.15.3 ps 输出:
  PID USER       VSZ STAT COMMAND
    
1 root      1200 S    init      
    
2 root         0 SWN  [ksoftirqd/0]
    
3 root         0 SW<  [events/0]
    
4 root         0 SW<  [khelper]
    
5 root         0 SW<  [kthread]
    
6 root         0 SW<  [kblockd/0]
    
7 root         0 SW   [khubd]
    
8 root         0 SW   [pdflush]
    
9 root         0 SW   [pdflush]
   
11 root         0 SW<  [aio/0]
   
10 root         0 SW   [kswapd0]
   
12 root         0 SW   [eth0]
   
13 root         0 SW   [mtdblockd]
   
21 root      1200 S    init      
   
22 root      1200 S    init      
   
23 root      1200 S    init      
   
24 root      1200 S    init      
   
79 root       400 S    ./RootApp DvdPlayer
   
82 root      1212 S    inetd
   
85 daemon     648 S    portmap
   
92 root       612 S    rpc.statd
   
99 root       612 S    rpc.statd
  
114 root         0 SW   [nfsd]
  
121 root         0 SW   [lockd]
  
128 root         0 SW<  [rpciod/0]
  
115 root         0 SW   [nfsd]
  
131 root       668 S    rpc.mountd
  
147 root         0 SWN  [jffs2_gcd_mtd2]
  
148 root       400 S    ./RootApp DvdPlayer
  
150 root      780m S <  DvdPlayer
  
151 root       400 S    ./RootApp DvdPlayer
  
163 root      780m S    DvdPlayer
  
164 root      780m S    DvdPlayer
  
165 root      780m S    DvdPlayer
  
167 root      780m S    DvdPlayer
  
169 root      780m S    DvdPlayer
  
170 root      780m S    DvdPlayer
  
171 root      780m S    DvdPlayer
  
172 root      780m S    DvdPlayer
  
173 root      780m S    DvdPlayer
  
174 root      780m S    DvdPlayer
  
175 root      780m S    DvdPlayer
  
176 root      780m S    DvdPlayer
  
177 root      780m S    DvdPlayer
  
178 root      780m S    DvdPlayer
  
239 root      780m S    DvdPlayer
  
242 root      780m S    DvdPlayer
  
243 root      780m S    DvdPlayer
  
244 root      780m S    DvdPlayer
  
245 root      780m S    DvdPlayer
  
246 root      780m S    DvdPlayer
  
274 root      1200 S    /usr/sbin/ntpd -218.75.4.130 -114.80.81.1 -122.
  
288 root      3496 S    /usr/sbin/nmbd -D
  
290 root      5648 S    /usr/sbin/smbd -D
  
368 root         0 SW<  [Ieee80211/0]
  
369 root         0 SW<  [wlan0/0]
  
432 root      1204 S    telnetd
  
433 root      1220 S    -sh
 
1041 root      1200 S    /sbin/udhcpc -/var/lock/udhcpc_eth0.pid -15 --s
 
1046 root         0 SW   [scsi_eh_0]
 
1047 root         0 SW   [usb-storage]
 
1093 root         0 SWN  [kjournald]
 
1166 root      2088 S    /bin/sh
 
1168 root      1204 S    telnetd
 
1169 root      1216 S    -sh
 
1184 root      1204 R    ps -ef
optware procps 软件包的ps aux 输出
/opt/bin/ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   
TIME COMMAND
root         
1  0.0  0.2   1200   300 ?        S    20:55   0:00 init     
root         
2  0.0  0.0      0     0 ?        SN   20:55   0:00 [ksoftirqd/0]
root         
3  0.0  0.0      0     0 ?        S<   20:55   0:01 [events/0]
root         
4  0.0  0.0      0     0 ?        S<   20:55   0:00 [khelper]
root         
5  0.0  0.0      0     0 ?        S<   20:55   0:00 [kthread]
root         
6  0.0  0.0      0     0 ?        S<   20:55   0:00 [kblockd/0]
root         
7  0.0  0.0      0     0 ?        S    20:55   0:00 [khubd]
root         
8  0.0  0.0      0     0 ?        S    20:55   0:00 [pdflush]
root         
9  0.0  0.0      0     0 ?        S    20:55   0:00 [pdflush]
root        
11  0.0  0.0      0     0 ?        S<   20:55   0:00 [aio/0]
root        
10  0.0  0.0      0     0 ?        S    20:55   0:00 [kswapd0]
root        
12  0.6  0.0      0     0 ?        S    20:55   0:45 [eth0]
root        
13  0.0  0.0      0     0 ?        S    20:55   0:02 [mtdblockd]
root        
21  0.0  0.2   1200   304 ?        Ss   20:55   0:00 init     
root        
22  0.0  0.2   1200   308 vc/2     Ss+  20:55   0:00 init     
root        
23  0.0  0.2   1200   308 vc/3     Ss+  20:55   0:00 init     
root        
24  0.0  0.2   1200   308 vc/4     Ss+  20:55   0:00 init     
root        
79  0.0  0.1    400   168 ?        S    20:55   0:00 ./RootApp DvdPlayer
root        
82  0.0  0.2   1212   352 ?        Ss   20:55   0:00 inetd
daemon      
85  0.0  0.2    648   320 ?        S    20:55   0:00 portmap
root        
92  0.0  0.3    612   364 ?        Ss   20:55   0:00 rpc.statd
root        
99  0.0  0.3    612   364 ?        Ss   20:55   0:00 rpc.statd
root       
114  0.0  0.0      0     0 ?        S    20:55   0:00 [nfsd]
root       
121  0.0  0.0      0     0 ?        S    20:55   0:00 [lockd]
root       
128  0.0  0.0      0     0 ?        S<   20:55   0:00 [rpciod/0]
root       
115  0.0  0.0      0     0 ?        S    20:55   0:00 [nfsd]
root       
131  0.0  0.3    668   392 ?        Ss   20:55   0:00 rpc.mountd
root       
147  0.0  0.0      0     0 ?        SN   20:55   0:00 [jffs2_gcd_mtd2]
root       
148  0.0  0.1    400   168 ?        S    20:55   0:00 ./RootApp DvdPlayer
root       
150  0.1  3.0 799008  3652 ?        S<   20:55   0:07 DvdPlayer
root       
151  0.0  0.1    400   168 ?        S    20:55   0:00 ./RootApp DvdPlayer
root       
163  0.0  3.0 799008  3652 ?        S    20:55   0:00 DvdPlayer
root       
164  0.0  3.0 799008  3652 ?        S    20:55   0:00 DvdPlayer
root       
165  0.0  3.0 799008  3652 ?        S    20:55   0:00 DvdPlayer
root       
167  0.0  3.0 799008  3652 ?        S    20:55   0:00 DvdPlayer
root       
169  0.0  3.0 799008  3652 ?        S    20:55   0:00 DvdPlayer
root       
170  0.0  3.0 799008  3652 ?        S    20:55   0:00 DvdPlayer
root       
171  0.0  3.0 799008  3652 ?        S    20:55   0:00 DvdPlayer
root       
172  0.0  3.0 799008  3652 ?        S    20:55   0:00 DvdPlayer
root       
173  0.0  3.0 799008  3652 ?        S    20:55   0:00 DvdPlayer
root       
174  0.0  3.0 799008  3652 ?        S    20:55   0:00 DvdPlayer
root       
175  0.0  3.0 799008  3652 ?        S    20:55   0:00 DvdPlayer
root       
176  0.0  3.0 799008  3652 ?        S    20:55   0:00 DvdPlayer
root       
177  0.0  3.0 799008  3652 ?        S    20:55   0:00 DvdPlayer
root       
178  0.0  3.0 799008  3652 ?        S    20:55   0:00 DvdPlayer
root       
239  0.0  3.0 799008  3652 ?        S    20:55   0:00 DvdPlayer
root       
242  0.0  3.0 799008  3652 ?        S    20:55   0:00 DvdPlayer
root       
243  0.0  3.0 799008  3652 ?        S    20:55   0:00 DvdPlayer
root       
244  0.0  3.0 799008  3652 ?        S    20:55   0:00 DvdPlayer
root       
245  0.0  3.0 799008  3652 ?        S    20:55   0:00 DvdPlayer
root       
246  0.0  3.0 799008  3652 ?        S    20:55   0:00 DvdPlayer
root       
274  0.0  0.2   1200   348 ?        Ss   20:55   0:00 /usr/sbin/ntpd -218.75.4.130 -114.80.81.1 -122.226.192.4 -211.166.12
root       
288  0.0  1.2   3496  1464 ?        Ss   20:56   0:00 /usr/sbin/nmbd -D
root       
290  0.0  1.7   5648  2092 ?        Ss   20:56   0:00 /usr/sbin/smbd -D
root       
368  0.0  0.0      0     0 ?        S<   21:10   0:04 [Ieee80211/0]
root       
369  0.0  0.0      0     0 ?        S<   21:10   0:00 [wlan0/0]
root       
432  0.0  0.2   1204   300 ?        Ss   21:10   0:01 telnetd
root       
433  0.0  0.3   1220   476 pts/0    Ss   21:10   0:00 -sh
root      
1041  0.0  0.2   1200   348 ?        Ss   21:54   0:00 /sbin/udhcpc -/var/lock/udhcpc_eth0.pid -15 --/etc/udhcpc.script -i
root      
1046  0.0  0.0      0     0 ?        S    22:03   0:00 [scsi_eh_0]
root      
1047  0.0  0.0      0     0 ?        S    22:03   0:00 [usb-storage]
root      
1093  0.0  0.0      0     0 ?        SN   22:03   0:00 [kjournald]
root      
1166  0.0  0.3   2088   476 pts/0    S+   22:48   0:00 /bin/sh
root      
1168  0.1  0.2   1204   300 ?        Ss   22:48   0:00 telnetd
root      
1169  0.2  0.3   1216   448 pts/1    Ss   22:48   0:00 -sh
root      
1187  0.0  0.4   1520   508 pts/1    R+   22:49   0:00 /opt/bin/ps aux
re: 重新编译uClibc gouzhuang 2010-10-06 15:51
@hibaby
我没有试过打开locale,uclibc 0.9.28版对locale的支持可能还不完整,能否工作不好说。以后有时间我准备尝试升级到新版本的uclibc。对于中文文件名的处理,目前我是通过nfs或samba共享在PC上进行文件操作,只要两端都使用相同字符编码(我要utf8)就没有问题。
re: 关于固件制作 gouzhuang 2010-10-06 15:38
@hibaby
你说的ls命令无法识别,是不是显示乱码?其实这是文件名的编码方式和telnet客户端的编码方式不一致造成的,比如文件名用gb2312编码而telnet客户端用utf8编码。这个问题可以通过两端使用一致的编码来解决。但是目前shell下还是不支持输入中文,以及中文文件名自动完成。
@ccbcfan
我的Netcore NW336网卡在与AP成功连接时会产生linkup事件。似乎你的无线网卡不会产生linkup event。

无线网卡扫描无线网络以及连接到AP需要一定的时间,所以你的mystart脚本应该在iwconfig之后稍微等待一下再启动dhcpc,如下:

ifconfig wlan0 up
iwconfig wlan0 essid "dd-wrt_vap"
sleep 5
/sbin/udhcpc -i wlan0 -t 15 -b -q -s /etc/udhcpc.script >> /var/log/hotplug.log 2>&1

如果修改wifi_monitor,也建议你的注释掉elif那一行后加入一个5秒的sleep

#elif [ "$EVENT" = "net.wlan0.linkup" ] ; then
sleep 5
/sbin/udhcpc -i $INTERFACE -t 15 -b -q -s /etc/udhcpc.script >> $LOG 2>&1
@usli
fat32肯定不行。这个文件系统有不少符号连接,请用ext3文件系统。
@ccbcfan
请将wifi_monitor第90行的EOF前的所有空格全部删除再试试。如果还不行,请在第2行加入set -x打开trace。

这个脚本我是在busybox 1.15.3下测试过的。你用的是什么版本?

>现在有两个问题需要解决:
>1是插入USB网卡后,无法自动连接AP;
>2是ZD1211B无线网卡还无法在DvdPlayer中调用和配置使用!
第1个问题需要解决wifi_monitor的问题。如果第1个问题解决了,就没有必要在DvdPlayer中配置无线网卡了。我的播放机的DvdPlayer本身就不支持无线网卡配置。
re: 升级BusyBox gouzhuang 2010-10-05 20:42
@hibaby
用华硕的工具链确实会报“unrecognized option `-static-libgcc'”的警告,因为gcc版本很老(2.96),还不支持这个选项,不过这个警告可以忽略。我用自制的工具链(gcc 4.4.2)编译时就无此警告。

关于ps和top显示VSZ大小的问题,我以前没有注意,能说详细一点吗?另外,除了busybox还有其他变化吗?
@易吧软件
多谢指正,我确实漏写了/tmp/usbmounts/sda1。已经在博文中修正。
@fourcute
可以把下面的命令加入/usr/local/etc/rcS脚本的最前面:
/sbin/insmod /path/to/venus_ir_new.ko

影子驱动是通用的,支持好几种摇控器通讯协议。
re: 好久没有更新了 gouzhuang 2010-09-30 09:36
@ccbcfan
Sorry, 是我的失误:我在strip时给错了参数,把符号表都给删除了。请试一下这个http://www.cnitblog.com/Files/gouzhuang/zd1211.ko-20100930.zip

QQ我会加你为好友,不过QQ我不常用,MSN经常在线,如果你有MSN交流更方便些。
re: 好久没有更新了 gouzhuang 2010-09-29 14:51
@ccbcfan
>我现在用的是新出的T10S(1073DDC+),可以直接ismod挂载吗?
我认为这些新产品在linux内核上不会有大的变化,因此能用的可能性很高,直接用insmod加载即可。如有报错请将错误信息以及dmesg命令输出的相关信息贴出来。
re: 好久没有更新了 gouzhuang 2010-09-28 11:47
@ccbcfan
zd1211的驱动编译好了:http://www.cnitblog.com/Files/gouzhuang/zd1211.ko-20100927.zip 请测试。
编译很顺利,只修改了Makefile里的编译器设置以及内核路径就一次通过了。
http://sourceforge.net/projects/zd1211/上有个firmware包,可能加载驱动时会用到。

关于播放机以及qemu上的本机编译环境,我需要花点时间整理一下在跟大家分享。
re: 好久没有更新了 gouzhuang 2010-09-27 17:12
@ccbcfan
曾经帮网友老顽童编译了Realtek的8187L的驱动,不知对你是否有用。可在这里下载:http://www.cnitblog.com/Files/gouzhuang/r8187l.ko.no_modvers.zip

ZD1211B驱动源码在哪里?我可以试试。

关于转帖我没意见,只要注明出处就行了。
@bgs90@126.com
1. 安装 sdelinux-5.03.06-1.i386.rpm
2. cp /usr/local/lib/gcc-lib/mipsel-linux/2.96-sdelinuxmips-040127/*.o /usr/local/lib/gcc-lib/mipsel-linux/2.96-sdelinuxmips-040127/soft/
3. cd /usr/local/mipsel-linux/; tar xjvf inc_lib.tar.bz2
@bgs90@126.com
在debian系统中应该用下面的命令安装rpm包:

alien -i sdelinux-5.03.06-1.i386.rpm
re: Buildroot - 让交叉编译更轻松 gouzhuang 2010-09-15 08:55
@bgs90
buildroot各版本之间变化比较大,我的补丁几乎可以肯定不适用于新版本。不过我觉得2009.11版已经够用了。
@Tom
Here's the code that does the trick:

--------- CODE BEGIN --------------
typedef void cleanup_fn (void);

static int __init venus_ir_new_init_module(void) {
int result;

struct device_driver *old_driver;
cleanup_fn *venus_ir_cleanup_module;

old_driver = driver_find("VenusIR", &platform_bus_type);
if(old_driver) {
kobject_put(&old_driver->kobj); /* decrease reference count */
printk(KERN_DEBUG "Old VenusIR driver found at %p\n", old_driver);

venus_ir_cleanup_module = (cleanup_fn*)kallsyms_lookup_name("venus_ir_cleanup_module");
if(venus_ir_cleanup_module) {
printk(KERN_DEBUG "Found venus_ir_cleanup_module() @ 0x%p\n", venus_ir_cleanup_module);
(*venus_ir_cleanup_module)();
printk(KERN_DEBUG "venus_ir_cleanup_module() called\n");
} else {
printk(KERN_WARNING "venus_ir_cleanup_module() not found!\n");
return -ENOENT;
}
} else {
printk(KERN_DEBUG "Old VenusIR driver NOT found, no need to clean up\n");
}

/* module initialize code follows */
...
---------- CODE END -------------------

In venus_ir_new_init_module(), I first use driver_find() to search the embedded driver by name, if found, then lookup its cleanup function venus_ir_cleanup_module() in kernel symbol table and call that function to let the old driver cleanup itself. After that, we can go on the normal initialization work.
re: 升级BusyBox gouzhuang 2010-08-19 08:55
@jims
我无法编辑,只能删除了
re: 升级BusyBox gouzhuang 2010-08-18 11:06
@jims
我推测dragon的方法应该是直接修改flash。mac地址应该是保存在flash的第4个分区上。这个分区可以通过设备/dev/mtdblock/3访问。用下面的命令可以抓取这个分区的映像存到usb存储上:
dd if=/dev/mtdblock/3 of=/tmp/usbmounts/sda1/mtd3.img

在映像文件里可用二进制编辑器搜索到MAC地址的字符串,格式为:XX.XX.XX.XX.XX.XX,字母大写。找到这个字符串在文件中的字节偏移量offset。

注意:下面的命令我没有测试过,可能有损坏播放机的风险!!!
用dd命令修改MAC地址(要求echo命令支持-n参数):
echo -n 'XX.XX.XX.XX.XX.XX' | dd of=/dev/mtdblock/3 bs=1 seek=offset

其中offset为前面找到的字节偏移量。
re: 升级BusyBox gouzhuang 2010-08-18 09:13
@jims
1.15.3 ifconfig 有修改mac地址的功能,配置busybox时需要打开下面的ifconfig选项:
Enable option "hw" (ether only)

这个功能还需要网卡驱动程序的支持,在海信的MP800H上我没有试过。
@lurry
echo /sbin/hotplug > /proc/sys/kernel/hotplug 可恢复系统默认的hotplug程序
re: 升级BusyBox gouzhuang 2010-06-17 17:09
@jackboy
哦,这个我漏掉了。我修改了工具链的一个头文件: /usr/local/lib/gcc-lib/mipsel-linux/2.96-sdelinuxmips-040127/include/limits.h

请打下面的补丁:
--- limits.h.orig 2004-02-12 20:38:47.000000000 +0800
+++ limits.h 2010-03-02 08:53:11.984943511 +0800
@@ -94,5 +94,12 @@
#define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1)
#endif

+/* Minimum and maximum values a `signed long long int' can hold. */
+#define LLONG_MAX 9223372036854775807LL
+#define LLONG_MIN (-LLONG_MAX - 1LL)
+
+/* Maximum value an `unsigned long long int' can hold. (Minimum is 0.) */
+#define ULLONG_MAX 18446744073709551615ULL
+
#endif /* _MACH_MACHLIMITS_H_ */
#endif /* _LIMITS_H___ */
@李晓枫
>运行这个gspca.ko这个模块跟内核有关系吗?
这个模块可以在原厂内核上加载。
@801H
用这个http://www.cnitblog.com/Files/gouzhuang/hotplug.zip 替换/sbin/hotplug,然后按下面的步骤测试:

usb光驱先不连接播放机,在光驱中放入光盘,然后将光驱连接到播放机。
@801H
谢谢鼓励!usb光驱已有人成功用手工方式挂载(请参考:http://www.kboox.com/viewthread.php?tid=5585&page=1#pid22519),所以驱动不是问题。你是希望实现自动挂载吧?
我看了一下hotplug程序的源码,发现支持光驱的代码被有意屏蔽了(代码还在,只是在编译时被忽略)。最简单的办法就是解除屏蔽重新编译hotplug。如果你愿意尝试,我很乐意为你编译。
@ogutsua@gmail.com
for unknown reason, some of your replies were lost. I have sent a message to the administrator, hoping he/she could help to look into this issue. Anyway, if that happens again, you could send email to gouzhuang (at) gmail.com.
@laowantong
我先尝试了一下从2.6.31的内核backport驱动程序,发现内核已发生了很大的变化,移植难度太大。只好退而求其次,找了一个比较老的版本http://mxhaard.free.fr/spca50x/Download/gspcav1-20071224.tar.gz, 编译成功了。

模块gspca.ko依赖于videodev.ko,另外两个模块v4l1-compat.ko,v4l2-common.ko没有依赖关系,可能是提供应用程序接口的,我也一起打包了。

下载地址:http://www.cnitblog.com/Files/gouzhuang/gspca.tar.zip
@ogutsua@gmail.com
In fact I had the same "symbols disagree" problem on my first attempt to compile a module. Later I found the key to circumvent it: disable Module versioning support, i.e. unset CONFIG_MODVERSIONS in .config.

I believe the kernel source I have is NOT exactly the same as the player vendor's, I got it from Asus at the following link:
ftp://ftp.asus.com/pub/ASUS/Digital_Media_Player/HDP-R1/SourceCode/OPlay_HDP-R1_GPL_SourceCode.zip
@初学者
修改前的源代码:http://www.cnitblog.com/Files/gouzhuang/venus_ir_orig.tar.zip
来自华硕提供的内核源码
@laowantong
OK, I'll look into that later.
@老顽童
在PC上用ubuntu能驱动吗?如果可以,请找出是由哪个模块驱动的。
re: 编译内核(Compile the Kernel) gouzhuang 2010-05-10 16:16
@老顽童
>如果没硬件, 用那个什么模拟器, 能够试验IDE的东东么??
恐怕很难用模拟器来试验IDE驱动。
re: 编译内核(Compile the Kernel) gouzhuang 2010-05-06 10:44
@老顽童
深表同情!还在保修期吧?赶紧送修吧。
@老顽童
有驱动程序源码吗?
re: 编译内核(Compile the Kernel) gouzhuang 2010-05-06 09:11
@老顽童
>在固件M890_V8.2.5R2071上成功了!!!
这是个好消息!我们终于可以为官方内核编译模块了:)。看来关闭符号版本检查是关键。

另外,你说的那个avi文件我下载了,在海信的机子上用我自己编的内核可以播放,没有任何问题。我猜测M890的播放程序依赖内核中的某些功能,而这些功能在华硕的内核源码里没有。

>真的USB DISK都是 ro mount的. 那怎么FAT32可以RW呢? EXT3就只能RO?
那一定是别的程序或脚本将它remount,rw。难道是DvdPlayer?可以试一下stopall停掉DvdPlayer然后再插入fat32 usb disk。
re: 编译内核(Compile the Kernel) gouzhuang 2010-05-05 13:03
@老顽童
>因为你用的是华硕公布的源码, 我这里估计是MELE的,修改KERNEL不奇怪.
其实源码都来自于realtek,播放机厂家修改内核到可能性不大,很可能是它们拿到了新版的源码。

>能不能把"wake_up_process"去掉? 我不知道它是做什么的.
这个是内核进行进程调度的函数之一,属于核心功能。

>Success (2): 不是说找不到文件么? 会不会我放的地方/usr/local/etc不对?
这个错误代码只是很粗略的分类,在这里到意思应该是:“找不到匹配的符号”。既然dmesg已经指出了wake_up_process版本不匹配,说明模块找到了但在并试图加载时因为这个失败了。

>insmod 有没有要求其他的config文件modules.dep, .alias, etc呢?
没有。
re: 编译内核(Compile the Kernel) gouzhuang 2010-05-05 10:20
@laowantong
>r8187l: disagrees about version of symbol wake_up_process
这说明官方内核源码的确与我们的不同,某些内核接口发生了变化造成其符号版本不同(符号的版本是其外部接口特征通过某种checksum算法计算得到的)。
我关闭了符号版本检查重新编译了模块,希望它能加载(以前没有试过,不知到能否行得通)。当然这样做是有风险的,很可能官方内核的变化确实已经造成不兼容,强行加载会使内核不稳定!不过试试也无妨。
http://www.cnitblog.com/Files/gouzhuang/r8187l.ko.no_modvers.zip
re: 编译内核(Compile the Kernel) gouzhuang 2010-05-04 16:21
@老顽童
仔细看了一下你提供的官方内核符号表,发现有些符号在华硕的内核源码里找不到!比如:
AES_H_CTX_Init
AES_H_DigestCleanup
AES_H_DigestFinal
AES_H_DigestInit
AES_H_DigestPeek
AES_H_DigestUpdate
AES_H_InitHash.0
aes_h_md
MARS_AES_H_DigestFinal
MARS_AES_H_DigestUpdate
Mars_aes_h_md
MARS_SHA1_DigestFinal
MARS_SHA1_DigestUpdate
Mars_sha1_md
MCP_aes_h
MCP_AES_H_PADDING
MCP_mars_aes_h
MCP_mars_sha1
MCP_SHA1_DataHash
MCP_SHA1_DataHashTest
MCP_SHA1_Hashing
MCP_SHA1_HASH_INIT
MCP_SHA1_IV_UPDATE
MCP_SHA1_PADDING
SHA1_CTX_Init
SHA1_DigestCleanup
SHA1_DigestFinal
SHA1_DigestInit
SHA1_DigestPeek
SHA1_DigestUpdate
sha1_md

结论:我们手里的源码不是最新的:(
re: 编译内核(Compile the Kernel) gouzhuang 2010-05-04 14:02
@老顽童
>上次说的, 你编译的kernel 在play avi文件时有点问题
你能肯定跟内核有关吗?用官方的内核能播放吗?

>哦, 还有就是内接IDE盘的问题, 你觉得有希望解决吗?
希望是有的,但是需要深入去看源代码,要花多少时间不好确定,能否解决也没有把握。

>为什么USB的EXT3文件系统总是被mount 成readonly, NTFS系统却会mount 成RW?
从hotplug的源码来看都是mount -o ro的,也许M890厂商修改了源码。要想知道很简单,看看下面命令的输出
strings hotplug|grep mount
如果播放机上没有strings命令就把/sbin/hotplug拷到PC Linux上执行
re: 编译内核(Compile the Kernel) gouzhuang 2010-05-04 11:17
@老顽童
要用原厂内核必需首先解决模块编译的兼容性问题,否则还会遇到insmod报“Success (8)”的错误。也就是说:你必需知道原厂编译内核所用的.config配置文件。

其实驱动程序的源码不需做额外的移植,只要进行交叉编译就可以了,我做的只是根据我的编译环境修改了Makefile以及修正一个小bug。 这里是完整的补丁:http://www.cnitblog.com/Files/gouzhuang/rtl8187L_linux_26.1039.0104.2010.release.patch.zip
re: 编译内核(Compile the Kernel) gouzhuang 2010-05-04 08:54
@老顽童
我们的努力总算没有白费,Cheers!
关于无线网的自动配置,可以参考我的文章 http://www.cnitblog.com/gouzhuang/archive/2010/03/26/hotplug.html

/sbin/hotplug程序在编译时就把支持的设备列表固化其中了,因此它不会自动加载r8187l。你要么重新编译/sbin/hotplug,要么干脆用r8187l替换r8187。r8187和r8187l的区别我没有去研究,但对你来说完全可以用r8187l替换r8187。方法如下:
1.删除/lib/modules/2.6.12.6-VENUS/kernel/drivers/net/wireless/realtek/rtl8187 目录下的所有内容
2.将r8187l.ko改名为r8187.ko并放入上面的目录
3.删除modules.dep中的原r8187.ko和它依赖的ieee80211_*.ko的内容,并相应修改r8187l.ko的文件名和路径。
4.删除modules.alias和modules.usbmap中有关r8187的内容,并将r8187l改名为r8187

官方固件升级修改内核的可能性不大,因此你可以用我编译的内核和模块去替换。
re: Buildroot - 让交叉编译更轻松 gouzhuang 2010-05-03 11:58
@aaron
>关键是这个参数不知道如何设置export NDAS_KERNEL_PATH=/
这个参数应该设置为OpenWRT的内核源码路径
re: 编译内核(Compile the Kernel) gouzhuang 2010-05-03 11:29
@老顽童
>epc : 801473fc mod_timer+0x20/0x84 Tainted: PF
>ra : c01969a0 ieee80211_softmac_scan_wq+0x2bc/0x2c4 [r8187l]

按这个线索找下去,比较了一下8187L和8187的源码,在ieee80211_softmac.c第429行发现一个可疑之处:会造成为2.6.12内核编译时生成为2.4内核写的代码,很可能是realtek增加对2.6.20以上内核支持时引入的bug。我把它修改了重新编译,希望能解决问题,否则我也没有办法了。
http://www.cnitblog.com/Files/gouzhuang/r8187l.ko.20100503.zip

源码补丁:http://www.cnitblog.com/Files/gouzhuang/ieee80211_softmac.patch.zip


re: 编译内核(Compile the Kernel) gouzhuang 2010-04-30 13:09
@laowantong
我意识到我对Makefile的一处修改可能有问题!原来的Makefile中强制gcc产生硬件浮点运算指令: -mhard-float。我知道播放机的CPU是没有浮点运算单元(FPU)的,所以我就简单地把它给注释掉了。现在想想可能正确的做法应该是把它替换成-msoft-float。我加上了-msoft-float重新编译了一下,请你再试一下。
http://www.cnitblog.com/Files/gouzhuang/r8187l.ko.zip
re: 编译内核(Compile the Kernel) gouzhuang 2010-04-30 09:29
@laowantong
>for x86 compile, I did get 2ko files and installed
I checked the Makefile, for 2.6 kernel everything is compiled into one module. What's the name of the 2 ko you got?

Did you test if the card works on PC with this driver? I suspect the driver was only tested on x86, it may have problem with mips.
共3页: 1 2 3