Keyboard 默认情况下如何生成完全支持西班牙语的Yocto图像

Keyboard 默认情况下如何生成完全支持西班牙语的Yocto图像,keyboard,settings,locale,yocto,Keyboard,Settings,Locale,Yocto,我在尝试设置Yocto映像时遇到了问题,并且完全支持 英语和西班牙语(默认为西班牙语)。我正在构建的映像基于rocko分支,而我的发行版基于“systemd” 我当前的distro.conf yocto设置如下: GLIBC_GENERATE_LOCALES ?= "es_ES.UTF-8 en_US.UTF-8" IMAGE_LINGUAS ?= "es-es en-us" 使用此设置,我将获得具有此区域设置的图像: # locale LANG= LC_CTYPE="POSIX" LC_NU

我在尝试设置Yocto映像时遇到了问题,并且完全支持 英语和西班牙语(默认为西班牙语)。我正在构建的映像基于rocko分支,而我的发行版基于“systemd”

我当前的distro.conf yocto设置如下:

GLIBC_GENERATE_LOCALES ?= "es_ES.UTF-8 en_US.UTF-8"
IMAGE_LINGUAS ?= "es-es en-us"
使用此设置,我将获得具有此区域设置的图像:

# locale
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

# localectl
System Locale: n/a
   VC Keymap: ES
  X11 Layout: es
   X11 Model: pc105
 X11 Options: terminate:ctrl_alt_bksp

# locale -a
C
POSIX
en_US
es_ES

# locale -m
ES

# locale charmap
ANSI_X3.4-1968

# rpm -qa | grep charmap
glibc-charmap-es-2.26-r0.corei7_64
# localectl
System Locale: LANG=es_ES.UTF-8
              LANGUAGE=es:en
   VC Keymap: ES
  X11 Layout: es
   X11 Model: pc105
 X11 Options: terminate:ctrl_alt_bksp
使用该设置生成的映像无法按预期工作。当我按下按钮时 (enye)键在ssh控制台上,我得到以下信息:

root at hostname:~#
(arg: 1)
正如您所看到的,控制台上没有打印“ñ”字符

经过大量测试,我已经能够通过创建以下两个文件来修复此问题:

$ cat /etc/locale.conf
LANG=es_ES.UTF-8
LANGUAGE=es:en

$ cat /etc/profile.d/locale.sh
LC_ALL=es_ES
LANG=es_ES
LANGUAGE=es_ES
重新启动后,我获得以下localectl设置:

# locale
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

# localectl
System Locale: n/a
   VC Keymap: ES
  X11 Layout: es
   X11 Model: pc105
 X11 Options: terminate:ctrl_alt_bksp

# locale -a
C
POSIX
en_US
es_ES

# locale -m
ES

# locale charmap
ANSI_X3.4-1968

# rpm -qa | grep charmap
glibc-charmap-es-2.26-r0.corei7_64
# localectl
System Locale: LANG=es_ES.UTF-8
              LANGUAGE=es:en
   VC Keymap: ES
  X11 Layout: es
   X11 Model: pc105
 X11 Options: terminate:ctrl_alt_bksp
而“ñ”键按预期工作:

root at hostname:~# ñññññ
我不知道如何解决这个问题,而不必手动更改生成的图像。我希望生成的图像与西班牙语支持可用一旦。wic图像烧录到我的USB记忆棒

有可能吗?应该如何管理

提前感谢您抽出时间!:-)

创建一个配方(.bb)文件并重新编译

转到您的
元层/配方核心/

vi你好。bb

DESCRIPTION= "added language support"
FILESEXTRAPATHS_prepend := "${THISDIR}:"
LICENSED="CLOSED"
SRC_URI = "file://locale.conf \
           file://locale.sh"
S="${WORKDIR}"
do_install(){
 install -d ${D}${sysconfdir}/profile.d/
 install -m 0777 ${S}/locale.conf ${D}${sysconfdir}
 install -m 0777 ${S}/locale.sh ${D}${syscondif}/profile.d/
}
FILES_${PN} ="${sysconfdir}/*"
创建一个配方(.bb)文件并重新编译

转到您的
元层/配方核心/

vi你好。bb

DESCRIPTION= "added language support"
FILESEXTRAPATHS_prepend := "${THISDIR}:"
LICENSED="CLOSED"
SRC_URI = "file://locale.conf \
           file://locale.sh"
S="${WORKDIR}"
do_install(){
 install -d ${D}${sysconfdir}/profile.d/
 install -m 0777 ${S}/locale.conf ${D}${sysconfdir}
 install -m 0777 ${S}/locale.sh ${D}${syscondif}/profile.d/
}
FILES_${PN} ="${sysconfdir}/*"

这就是我解决问题的方法。首先,创建以下文件:

$ cat locale.conf
LANG=es_ES.UTF-8
LANGUAGE=es

$ cat locale.sh
LANG=es_ES

$ cat vconsole.conf
KEYMAP=es
之后,创建以下配方:

DESCRIPTION = "Add es language support"
FILESEXTRAPATHS_prepend := "${THISDIR}:"
LICENSE = "CLOSED"
SRC_URI = " \
    file://locale.conf \
    file://vconsole.conf \
    file://locale.sh"
S = "${WORKDIR}"
do_install(){
    install -d ${D}${sysconfdir}/profile.d/
    install -m 0644 ${S}/locale.conf ${D}${sysconfdir}
    install -m 0644 ${S}/vconsole.conf ${D}${sysconfdir}
    install -m 0755 ${S}/locale.sh ${D}${sysconfdir}/profile.d/
}
FILES_${PN} ="${sysconfdir}/*"

希望这个答案将来对其他人有帮助!:-)

这就是我解决问题的方法。首先,创建以下文件:

$ cat locale.conf
LANG=es_ES.UTF-8
LANGUAGE=es

$ cat locale.sh
LANG=es_ES

$ cat vconsole.conf
KEYMAP=es
之后,创建以下配方:

DESCRIPTION = "Add es language support"
FILESEXTRAPATHS_prepend := "${THISDIR}:"
LICENSE = "CLOSED"
SRC_URI = " \
    file://locale.conf \
    file://vconsole.conf \
    file://locale.sh"
S = "${WORKDIR}"
do_install(){
    install -d ${D}${sysconfdir}/profile.d/
    install -m 0644 ${S}/locale.conf ${D}${sysconfdir}
    install -m 0644 ${S}/vconsole.conf ${D}${sysconfdir}
    install -m 0755 ${S}/locale.sh ${D}${sysconfdir}/profile.d/
}
FILES_${PN} ="${sysconfdir}/*"

希望这个答案将来对其他人有帮助!:-)

你的回答很有帮助,湿婆先生。首先,我非常感谢你抽出时间。它有一些拼写错误,我将在下一个答案中修复。然而,关键问题是在不进行手动更改的情况下解决这个问题,添加两个手动生成的文件对我来说是“手动更改”。我希望有一个更好的方法来解决这个问题,而不是这样做。你的回答很有帮助,湿婆先生,首先我要感谢你花了这么多时间。它有一些拼写错误,我将在下一个答案中修复。然而,关键问题是在不进行手动更改的情况下解决这个问题,添加两个手动生成的文件对我来说是“手动更改”。我希望有一个更好的方法来解决这个问题,而不是这样做。