When I boot Tegra x2 with L4T rootfs , I see messages saying some railgate is disabled and I get freq related messages. But if I use default rootfs that comes with the board, there is no such messsage. I assume that some initialization script is disabling it by echoing some value into sysfs during init stage. Could you tell me which init script is used in L4T rootfs or how the init stage is executed in tegra x2. I want to know the systemd script which does this.
And one more thing, how can I clone default mmc rootfs of tegra x2 without using dd command. Is there any way to use default rootfs which comes with board so that I can use it for nfs boot?
I don’t think u-boot supports NFS boot, so I don’t think you can get there. If I’m wrong, that’d be great; please let us know what you find out!
If you want to clone a partition, you can read the block device; the root file system is called /dev/mmcblk0p1
If you have mounted a NFS file system on /auto/myhost, then you can clone the current root image (note: Currently mounted, so “dirty”) using:
You could also mount a large SD card and clone the image to that.
By the way, there are 17 (!) partitions on the internal embedded flash. I wonder what they’re all used for?
Disk /dev/mmcblk0: 29.1 GiB, 31268536320 bytes, 61071360 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 00000000-0000-0000-0000-000000000000
Device Start End Sectors Size Type
/dev/mmcblk0p1 4097 58724352 58720256 28G Microsoft basic data
/dev/mmcblk0p2 58724353 58732544 8192 4M Microsoft basic data
/dev/mmcblk0p3 58732545 58733056 512 256K Microsoft basic data
/dev/mmcblk0p4 58733057 58733568 512 256K Microsoft basic data
/dev/mmcblk0p5 58733569 58739712 6144 3M Microsoft basic data
/dev/mmcblk0p6 58739713 58739716 4 2K Microsoft basic data
/dev/mmcblk0p7 58739717 58740924 1208 604K Microsoft basic data
/dev/mmcblk0p8 58740925 58741924 1000 500K Microsoft basic data
/dev/mmcblk0p9 58741925 58746020 4096 2M Microsoft basic data
/dev/mmcblk0p10 58746021 58758308 12288 6M Microsoft basic data
/dev/mmcblk0p11 58758309 58762404 4096 2M Microsoft basic data
/dev/mmcblk0p12 58762405 59024548 262144 128M Microsoft basic data
/dev/mmcblk0p13 59024549 59090084 65536 32M Microsoft basic data
/dev/mmcblk0p14 59090085 59221156 131072 64M Microsoft basic data
/dev/mmcblk0p15 59221157 59221668 512 256K Microsoft basic data
/dev/mmcblk0p16 59221669 59745956 524288 256M Microsoft basic data
/dev/mmcblk0p17 59745957 61071326 1325370 647.2M Microsoft basic data
I see some railgate files in “/sys”, but nothing in the systemd init files. Perhaps the enable/disable is part of the drivers.
Clone depends on which version of the driver package you use. The wrong clone command from R27.1 will instead flash if using the R28.1 driver, and the R27.1 driver needs a patch. Which version of driver package are you using to clone from?
I was wrong – u-boot can pass NFS boot parameters to the kernel, and the kernel can boot from NFS.
Why do you not want to use “dd” to clone the root file system, btw?
Finally, instead of something disabling railgate, perhaps the problem is that the custom build/kernel/dts doesn’t enable it?
Yes I can do nfs boot with my Image. I could not use dd command because there was an error saying something like file too large even though I had enough space in my nfs host. So i thought we may get the default rootfs somehow differently. Is it available for download or anything?
And below is the message about railgate I am seeing. I grepped the entire rootfs but could not find where it was being generated from. If anyone has any pointer, it would be good.
The default rootfs is part of the kernel sources or jetpack download.
Note: This is a file-level archive, not an image-level archive.
On my system, it ends up at the following location:
/usr/local/jetson/jetpack/jetpack_download/Tegra_Linux_Sample-Root-Filesystem_R27.1.0_aarch64.tbz2
If you want to create a file-level archive of the rootfs, you can use tools like cpio or tar.
My understanding is that the railgates are kernel-level power management functions, and thus they are likely more affected by your device tree and set of kernel modules, than by the user-space tools that live in rootfs. However, I can’t find any documentation on those features at all, so I could be wrong, and I’d love to learn more if someone knows for sure.
I happened across this thread. Railgate is disabled message is from nvgpu/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c:railgate_enable_store(). Also curious about why this message is seen at seemingly random intervals.