Chinaunix首页 | 论坛 | 博客
  • 博客访问: 552112
  • 博文数量: 99
  • 博客积分: 4010
  • 博客等级: 上校
  • 技术积分: 1117
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-23 15:17
文章分类

全部博文(99)

文章存档

2011年(4)

2010年(13)

2009年(82)

我的朋友

分类: LINUX

2010-02-01 11:32:52

今天再一次移植busybox到我们4020的linux系统上,这次移植的是busybox1.13.3版本,这次没啥大问题,基本上什么命令都能用了,但是还是出现自建的设备号不能超过255,如果自己建的设备号大于255的话就会在下位机mknod的时候报以下错误:
mknod: number 256 is not in 0..255 range
我上网查了下,无解,于是自己跟踪了下,发现是在/busybox-1.13.3/coreutils/mknod这个文件出问题了,具体的是mknod_main函数的下面这个语句:
 

     if (*name != 'p') {
                argc -= 2;
                if (argc == 2) {
                    /* Autodetect what the system supports; these macros should optimize out to two constants. */


                  dev = makedev(xatoul_range(argv[2], 0, major(UINT_MAX)),xatoul_range(argv[3], 0, minor(UINT_MAX)));

                    
                }
            }


这个中间的一个语句出问题,我直接将这个语句改为:

dev = makedev(xatoul_range(argv[2], 0, 65535),
      xatoul_range(argv[3], 0, 65535));

这样重新编译下就能使用255以上的节点了,哈哈!!

阅读(3107) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-02-02 15:34:34

为啥不改UNIT_MAX的值?