[U-Boot] [PATCH] sandbox: restore ability to access host fs through standard commands
Stephen Warren
swarren at wwwdotorg.org
Wed Jun 11 17:45:01 CEST 2014
On 06/10/2014 09:29 PM, Josh Wu wrote:
> On 6/11/2014 6:43 AM, Stephen Warren wrote:
>> Commit 95fac6ab4589 "sandbox: Use os functions to read host device tree"
>> removed the ability for get_device_and_partition() to handle the "host"
>> device type, and redirect accesses to it to the host filesystem. This
>> broke some unit tests that use this feature. So, revert that change. The
>> code added back by this patch is slightly different to pacify checkpatch.
>>
>> However, we're then left with "host" being both:
>> - A pseudo device that accesses the hosts real filesystem.
>> - An emulated block device, which accesses "sectors" inside a file stored
>> on the host.
>>
>> In order to resolve this discrepancy, rename the pseudo device from host
>> to hostfs, and adjust the unit-tests for this change.
>> diff --git a/disk/part.c b/disk/part.c
>> + /*
>> + * Special-case a psuedo block device "hostfs", to allow access
>> to the
>> + * host's own filesystem.
>> + */
>
> Do we need to change the sb ls help message from 'host' to 'hostfs' as
> well?
Yes.
>> + if (0 == strcmp(ifname, "hostfs")) {
>> + *dev_desc = NULL;
>> + info->start = = 0;
>
> a typo. one additional '='.
Indeed. I guess I forgot to recompile after fixing checkpatch:-/
>> diff --git a/test/command_ut.c b/test/command_ut.c
>> @@ -165,12 +165,12 @@ static int do_ut_cmd(cmd_tbl_t *cmdtp, int flag,
>> int argc, char * const argv[])
>> #ifdef CONFIG_SANDBOX
>> /* File existence */
>> - HUSH_TEST(e, "-e host -
>> creating_this_file_breaks_uboot_unit_test", n);
>> - run_command("sb save host -
>> creating_this_file_breaks_uboot_unit_test 0 1", 0);
>> - HUSH_TEST(e, "-e host -
>> creating_this_file_breaks_uboot_unit_test", y);
>> + HUSH_TEST(e, "-e hostfs -
>> creating_this_file_breaks_uboot_unit_test", n);
>
> There still has a odd behavior:
> at first, when we run 'sb load host 0 200000 /home/env.sh', it will show
> '** Bad device host 0 **'
> but after use 'sb bind 0 test.img', then above command can work well.
"sb load" works fine for me on *hostfs*:
=> sb ls hostfs - /boot
...
176764 memtest86+.bin
...
=> sb load hostfs - 0 /boot/memtest86+.bin
176764 bytes read in 29 ms (5.8 MiB/s)
I'm not sure if "sb load" on "host" is expected to work; "host" is an
emulated block device that works just like any other block device, i.e.
without using the "sb" comamnd, so I'd expect it to be used with plain
old ls/fatls/extls, load/fatload/ext2load/, ...
> IMHO, we need use 'host' and 'hostfs' for different usage. suck like:
> 'host' interface means host block device that we use 'sb bind'.
> 'hostfs' interface means host file system
That's what this patch should provide.
More information about the U-Boot
mailing list