linux-user: add pseudo /proc/hardware for m68k
Debian console-setup uses /proc/hardware to guess the keyboard layout. If the file /proc/hardware cannot be opened, the installation fails. This patch adds a pseudo /proc/hardware file to report the model of the machine. Instead of reporting a known and fake model, it reports "qemu-m68k", which is true, and avoids to set the configuration for an Amiga/Apple/Atari and let the user to chose the good one. Bug: https://github.com/vivier/qemu-m68k/issues/34 Signed-off-by: Laurent Vivier <laurent@vivier.eu> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20190517133149.19593-3-laurent@vivier.eu> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
This commit is contained in:
parent
fff6938264
commit
4ab6713ef6
|
@ -6787,7 +6787,7 @@ static int is_proc_myself(const char *filename, const char *entry)
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(HOST_WORDS_BIGENDIAN) != defined(TARGET_WORDS_BIGENDIAN) || \
|
#if defined(HOST_WORDS_BIGENDIAN) != defined(TARGET_WORDS_BIGENDIAN) || \
|
||||||
defined(TARGET_SPARC)
|
defined(TARGET_SPARC) || defined(TARGET_M68K)
|
||||||
static int is_proc(const char *filename, const char *entry)
|
static int is_proc(const char *filename, const char *entry)
|
||||||
{
|
{
|
||||||
return strcmp(filename, entry) == 0;
|
return strcmp(filename, entry) == 0;
|
||||||
|
@ -6847,6 +6847,14 @@ static int open_cpuinfo(void *cpu_env, int fd)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(TARGET_M68K)
|
||||||
|
static int open_hardware(void *cpu_env, int fd)
|
||||||
|
{
|
||||||
|
dprintf(fd, "Model:\t\tqemu-m68k\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static int do_openat(void *cpu_env, int dirfd, const char *pathname, int flags, mode_t mode)
|
static int do_openat(void *cpu_env, int dirfd, const char *pathname, int flags, mode_t mode)
|
||||||
{
|
{
|
||||||
struct fake_open {
|
struct fake_open {
|
||||||
|
@ -6865,6 +6873,9 @@ static int do_openat(void *cpu_env, int dirfd, const char *pathname, int flags,
|
||||||
#endif
|
#endif
|
||||||
#if defined(TARGET_SPARC)
|
#if defined(TARGET_SPARC)
|
||||||
{ "/proc/cpuinfo", open_cpuinfo, is_proc },
|
{ "/proc/cpuinfo", open_cpuinfo, is_proc },
|
||||||
|
#endif
|
||||||
|
#if defined(TARGET_M68K)
|
||||||
|
{ "/proc/hardware", open_hardware, is_proc },
|
||||||
#endif
|
#endif
|
||||||
{ NULL, NULL, NULL }
|
{ NULL, NULL, NULL }
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue