Skip to contentSkip to conversation

New: Fakeroot and the target/generic/device_table.txt create bad device nodes.

Buildroot bugzilla at busybox.net 1 participant 4 messages May 13, 2010 – Jun 5, 2010

lore
Share & tools
lore
#0 lore raw

https://bugs.busybox.net/show_bug.cgi?id=1771

Summary: Fakeroot and the target/generic/device_table.txt
create bad device nodes.
Product: buildroot
Version: unspecified
Platform: Other
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P5
Component: Other
AssignedTo: unassigned at buildroot.uclibc.org
ReportedBy: akennedy at drs-tem.com
CC: buildroot at uclibc.org
Estimated Hours: 0.0

BUILD=Slackware 12.0 (slightly modified)
TARGET=ARM
Filesystem=Jffs2.

brw-r----- 1 root root  3,  1 2010-04-27 09:55 hda
brw-r----- 1 root root  3,  1 2010-04-27 09:55 hda1
brw-r----- 1 root root  3,  2 2010-04-27 09:55 hda2
<SNIP>
brw-r----- 1 root root  3, 65 2010-04-27 09:55 hdb
brw-r----- 1 root root  3, 65 2010-04-27 09:55 hdb1
brw-r----- 1 root root  3, 66 2010-04-27 09:55 hdb2
<SNIP>
brw-r----- 1 root root 22,  0 2010-04-27 09:55 hdc
brw-r----- 1 root root 22,  0 2010-05-13 15:23 hdc0
brw-r----- 1 root root 22,  1 2010-04-27 09:55 hdc1
brw-r----- 1 root root 22,  2 2010-04-27 09:55 hdc2

<SNIP>

I attempted something "new" with the above. For /dev/hdc* I made the following change in target/generic/device_table.txt to see what whould happen:

/dev/hda b 640 0 0 3 0 0 0
-
/dev/hda b 640 0 0 3 1 1 1
15
/dev/hdb b 640 0 0 3 64 0 0
-
/dev/hdb b 640 0 0 3 65 1 1
15
#/dev/hdc b 640 0 0 22 0 0 0
-
#/dev/hdc b 640 0 0 22 1 1 1
15
/dev/hdc b 640 0 0 22 0 0 1
15

As you see from the above, the devices get made /dev/hdc (correctly), but then /dev/hdc0 (what's that!?!) however, hda and hdb are completely wrong.

For me the fix is simple, I make the correction to the file as I did for hdc for any others that I need like that, then I run a post script that deletes any occurance of hd.0.

Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
#1 lore raw

[Buildroot] [Bug 1771] Fakeroot and the target/generic/device_table.txt create bad device nodes.

https://bugs.busybox.net/show_bug.cgi?id=1771

--- Comment #1 from Thomas Petazzoni <[email protected]> --- I just made a test with the default target/generic/device_table.txt and the result for hd* is good :

fs/dev$ ls -l hd*
brw-r----- 1 root root 3, 0 2010-05-21 23:31 hda brw-r----- 1 root root 3, 1 2010-05-21 23:31 hda1 brw-r----- 1 root root 3, 10 2010-05-21 23:31 hda10 brw-r----- 1 root root 3, 11 2010-05-21 23:31 hda11 brw-r----- 1 root root 3, 12 2010-05-21 23:31 hda12 brw-r----- 1 root root 3, 13 2010-05-21 23:31 hda13 brw-r----- 1 root root 3, 14 2010-05-21 23:31 hda14

brw-r----- 1 root root 3,  2 2010-05-21 23:31 hda2
brw-r----- 1 root root 3,  3 2010-05-21 23:31 hda3
brw-r----- 1 root root 3,  4 2010-05-21 23:31 hda4
brw-r----- 1 root root 3,  5 2010-05-21 23:31 hda5
brw-r----- 1 root root 3,  6 2010-05-21 23:31 hda6
brw-r----- 1 root root 3,  7 2010-05-21 23:31 hda7
brw-r----- 1 root root 3,  8 2010-05-21 23:31 hda8
brw-r----- 1 root root 3,  9 2010-05-21 23:31 hda9

brw-r----- 1 root root 3, 64 2010-05-21 23:31 hdb brw-r----- 1 root root 3, 65 2010-05-21 23:31 hdb1 brw-r----- 1 root root 3, 74 2010-05-21 23:31 hdb10 brw-r----- 1 root root 3, 75 2010-05-21 23:31 hdb11 brw-r----- 1 root root 3, 76 2010-05-21 23:31 hdb12 brw-r----- 1 root root 3, 77 2010-05-21 23:31 hdb13 brw-r----- 1 root root 3, 78 2010-05-21 23:31 hdb14 brw-r----- 1 root root 3, 66 2010-05-21 23:31 hdb2 brw-r----- 1 root root 3, 67 2010-05-21 23:31 hdb3 brw-r----- 1 root root 3, 68 2010-05-21 23:31 hdb4 brw-r----- 1 root root 3, 69 2010-05-21 23:31 hdb5 brw-r----- 1 root root 3, 70 2010-05-21 23:31 hdb6 brw-r----- 1 root root 3, 71 2010-05-21 23:31 hdb7 brw-r----- 1 root root 3, 72 2010-05-21 23:31 hdb8 brw-r----- 1 root root 3, 73 2010-05-21 23:31 hdb9

In the device list you pasted, the minor numbers are incorrect. hda should be 3:0, hda1 should be 3:1, hda2 3:2, hdb should be 3:64, hdb1 3:65, hdb2 3:66. hdc is 22:0, hdc1 is 22:1, etc. See Documentation/devices.txt in the Linux kernel source tree for the official reference.

So I don't see what's wrong in Buildroot. Could explain in more details what is the problem for you ?

Thanks!

Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
#2 lore raw

[Buildroot] [Bug 1771] Fakeroot and the target/generic/device_table.txt create bad device nodes.

In reply to bugzilla at busybox.net

https://bugs.busybox.net/show_bug.cgi?id=1771

--- Comment #2 from Andy Kennedy <[email protected]> --- (In reply to comment #1)

I attempted to e-mail this, but it looks like it didn't go through. . . so if this is a dup, please forgive.

Quoted 5 lines

--- Comment #1 from Thomas Petazzoni
<[email protected]> ---
I just made a test with the default
target/generic/device_table.txt and the
result for hd* is good :

Sorry, I thought I had articulated correctly. To restate: this problem ONLY occurs with the building of a jffs2 filesystem. When I 'make tarroot' I get a device tree with correctly populated device nodes. Only when I 'make jffs2root' do I get funky minor numbers.

Quoted 8 lines

In the device list you pasted, the minor numbers are incorrect. hda should be
3:0, hda1 should be 3:1, hda2 3:2, hdb should be 3:64, hdb1 3:65, hdb2 3:66.
hdc is 22:0, hdc1 is 22:1, etc. See Documentation/devices.txt in the Linux
kernel source tree for the official reference.

Yes, this was the reason for the bug report. These devices are being made incorrectly.

More information, however, is that if I make the nodes myself in the <path to target>/dev directory, modify buildroot/target/generic/device_table.txt to EXCLUDE hd{a-c} and sd{a-c} then I get the devices correctly in the filesystem.
Which makes me wonder if fakeroot is the red herring and the real culprit is
actually makedevs.

Hopefully I have cleared something up for you.

Andy

Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
#3 lore raw

[Buildroot] [Bug 1771] Fakeroot and the target/generic/device_table.txt create bad device nodes.

In reply to bugzilla at busybox.net

https://bugs.busybox.net/show_bug.cgi?id=1771

Thomas Petazzoni <[email protected]> changed:

What |Removed |Added
----------------------------------------------------------------------------

             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED

--- Comment #3 from Thomas Petazzoni <[email protected]> --- Ok, bug reproduced and understood. I've just sent a patch to the Buildroot list that fixes it:
http://lists.busybox.net/pipermail/buildroot/2010-June/035015.html

Thanks for your report!

Signature · 3 lines
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.