今天再一次移植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以上的节点了,哈哈!!
阅读(3120) | 评论(1) | 转发(0) |