Arch Linux - ignoruje ustawienia w pliku /etc/vconsole.conf

Witam was serdecznie, ostatnio zauważyłem problem w Arch Linux. Otóż nie ustawia mi czcionki w wirtualnych konsolach(tych dostępnym pod kombinacją klawiszy Ctrl+Alt+F1, Ctrl+Alt+F2 itd.). W graficznych emulatorach terminala jest wporządku, ale w tych już nie jest. No i problem objawia się tym, że nie wyświetla mi polskich znaków, bo domyślna czcionka ich nie obsługuje. Plik /etc/vconsole.conf wygląda tak:

KEYMAP=pl
FONT=Lat2-Terminus16

Co ciekawe, jeżeli ustawie ręcznie czcionkę poleceniem setfont Lat2-Terminus16, to bez problemu się zmienia i wyświetla polskie znaki, z tym, że nie mogę ich wprowadzać(są krzaki zamiast nich), no ale zależy mi tylko na wyświetlaniu, wprowadzanie nie jest mi potrzebne do szczęścia(chociaż w X’ach mogę bez problemu wpisywać polskie znaki w emulatorze terminala). Zupełnie jakby olewał ten plik. Jak to rozwiązać?

https://wiki.archlinux.org/index.php/Fonts#Console_fonts

If the fonts seems to not change on boot, or change only temporarily, it is most likely that they got reset when graphics driver was initialized and console was switched to framebuffer. To avoid this, load your graphics driver earlier. See for example Kernel mode setting#Early KMS start, [2] or other ways to setup your framebuffer before /etc/vconsole.conf is applied.

 

Widziałem tą poradę na wiki Archa, lecz nic ona nie daje, mam odpowiedni wpis w /etc/mkinitcpio.conf(i915, bo mam kartę Intela, no, mam hybrydową grafikę, ale system uruchamia się i domyślnie używa karty Intel, a w przypadku Radeona mam zamknięte sterowniki i jest on normalnie wyłączony, póki go nie włącze ręcznie) i problem dalej występuje.

Pytanie czy jest wyłączony sprzętowo (bios) czy za pomocą sterowników. Bo jeśli to drugie to podczas startu i tak ładują się sterowniki AMD i również do nich trzeba zastosować podane rozwiązanie.

Nie sądze, że to Radeon jest winowajcą. Wprawdzie jest wyłączany za pomocą sterowników, ale tak czy siak system domyślnie używa karty Intel i to na niej jest wyświetlane wszystko. A nie mogę zrobić tego rozwiązania, bo nie działa to dla zamkniętych sterowników.

dragon321

Podaj wynik polecenia:

cat /etc/mkinitcpio.conf |grep ^HOOKS

Taki jest wynik tego polecenia:

HOOKS="base udev resume plymouth autodetect modconf block filesystems keyboard fsck"

Zerknij tutaj:

http://lists.freedesktop.org/archives/systemd-devel/2011-June/002562.html

Nie, to nie pomaga mi. Przejrzałem status usługi nie pokazuje ona żadnych błędów. Warto napomknąć, że śmiga po restarcie - nie chce się ustawić, jak uruchamiam komputer od zera, jak restartuje to działa.

Wiem, że jest to obejście problemu, ale możesz spróbować dopisać odpowiednie komendy w /etc/bashrc:

localectl pl
setfont Lat2-Terminus16

 

Dodaj do parametrów kernela:

vconsole.keymap=pl vconsole.font=Lat2-Terminus16

Jak nie zadziała zmień vconsole.font na vconsole.font.map

Niestety nie pomogło. Dziwna sprawa. Chyba trzeba będzie zastosować jednak to obejście problemu z dodaniem tego do /etc/bashrc.

Zamień na

HOOKS="base udev resume plymouth autodetect modconf block filesystems keyboard consolefont keymap fsck"

Zregeneruj kernel:

sudo mkinitcpio -p linux

Restart

Jeżeli używasz niestandardowego kernela zamień linux na nazwę kernela (np: linux-lts linux-ck itd.)

Nie pomogło, dodanie tego ponadto spowodowało wyświetlanie błędu przy uruchamianiu komputera:

setfont: KDEFONTOP: Invalid argument

Ponadto zauważyłem, że systemd wyświetla też błąd usługi systemd-vconsole-setup.service. Oto wyjście polecenia systemctl status:

paź 17 00:43:12 ArchPC-Linux systemd[1]: Starting Setup Virtual Console...
paź 17 00:43:12 ArchPC-Linux systemd-vconsole-setup[398]: mapscrn: cannot open map file _Lat2-Terminus16_
paź 17 00:43:12 ArchPC-Linux systemd-vconsole-setup[398]: /usr/bin/setfont failed with error code 1.
paź 17 00:43:12 ArchPC-Linux systemd[1]: systemd-vconsole-setup.service: Main process exited, code=exited, status=1/FAILURE
paź 17 00:43:12 ArchPC-Linux systemd[1]: Failed to start Setup Virtual Console.
paź 17 00:43:12 ArchPC-Linux systemd[1]: systemd-vconsole-setup.service: Unit entered failed state.
paź 17 00:43:12 ArchPC-Linux systemd[1]: systemd-vconsole-setup.service: Failed with result 'exit-code'.

 

paź 17 00:43:12 ArchPC-Linux systemd-vconsole-setup[398]: mapscrn: cannot open map file _Lat2-Terminus16_

Przeinstaluj pakiet kbd.

sudo pacman -S kbd

ls /usr/share/kbd/consolefonts/ |grep ^Lat2-Terminus

Podaj obecną zawartość pliku: 

cat /etc/vconsole.conf

Powinna być następująca:

KEYMAP=pl2
FONT=Lat2-Terminus16
FONT_MAP=8859-2

Jeżeli jest inna, zamień ją na powyższą.

Zregeneruj kernel (patrz moja poprzednia wypowiedź).

Może i powinna, lecz ja mam tak:

KEYMAP=pl

Niestety, dalej nic, zrobiłem wszystko dokładnie jak napisałeś. Próbowałem nawet konfiguracji takiej samej jak ma użytkownik ubuuser i też nic. Dalej ten sam błąd. Nie wiem czy pisałem czy nie, ale ręczne ustawienie poleceniem setfont działa bez problemu - tylko ma problem z automatycznym ustawieniem podczas uruchamiania.

Chyba znam potencjalną przyczynę problemu. Może to być plymouth, bo zanim je zainstalowałem, to działało bez problemów. No cóż, chyba muszę się z tym pogodzić i ręcznie ustawiać font, bo plymouth chciałbym zachować mimo wszystko.

Nie mam Plymouth a u mnie też działało dopiero po ręcznym ustawieniu.

Znalazłem gdzieś na forum post, że pomaga dodanie do /etc/mkinitcpio.conf w sekcji MODULES modułu karty graficznej (w moim przypadku i915). Oczywiście na koniec polecenie:

mkinitcpio -p linux

 

Edit:

Zawartość mojego pliku /etc/vconsole.conf:

KEYMAP=pl
FONT=lat2-16
FONT_MAP=8859-2

 

Nie rozumiesz do końca. Przed instalacją plymouth wszystko było dobrze, działało bez problemu, dopiero po instalacji plymouth znowu przestało mi ustawiać czcionkę. Mówiąc “ręcznie” miałem na myśli używanie polecenia setfont. Właśnie w sekcji modules mam dodany wpis do grafiki(też i915 w moim wypadku), więc to nie to na pewno, bo plymouth wymaga tego i tak musiałem to dodać.