Po ostatnim upgrade klawisze sterujące w konsoli strzeliły focha [systemd]

Light-I light-i at o2.pl
Fri Jun 19 21:17:04 CEST 2015


W odpowiedzi na wiadomość z dnia 19.06.2015, 19:21, od Jacek Konieczny:
>
>> W sumie to pewnie coś związanego z nVidia/Optimus - pierwsze wywołanie
>> wrzuca właściwy font (nie wiem tylko czy z właściwą mapą), po czym ładuje
>> się nvidia i jest standardowy font en
>
> Próbowałeś sterownik grafiki do initramfs wrzucić? Dracut wydaje się zbyt
> głupi, żeby samemu na to wpaść, ale jak mu się w konfig wpisze co trzeba, to
> załaduje sterownik grafiki i ustawi fonty jeszcze przed startem właściwego
> inita.
Używam genintrd przy pomocy skryptu z załącznika. Dorzuciłem PREMODS="nvidia"
do /etc/sysconfig/genintrd, niczego to nie zmieniło na lepsze, tylko initramfs
urósł sporo, a systemd-vconsole-setup.service nawet fontu nie ładuje…
Mam wrażenie, ze w przypadku takiej hybrydy grafiki nie da się inaczej niż w 
rc.local wywołać ponowną konfigurację font/key-map.
Zresztą używanie na tym Xorg to też zabawa w oskryptowywanie xrandr.
-- 
Pozdrawiam,
Light-I

-------------- nast�pna cz��� ---------
#!/usr/bin/env python2
# -*- encoding: utf-8 -*-
# -*- coding: utf-8 -*-

from os import path as ph, getcwd as pwd, chdir as cd, remove as rm
from glob import glob as ls
class bootCleanup:
	def __init__(self):
		cdir = pwd()
		self.main()
		cd(cdir)

	def lsFileVer(self, fileminor, cut=None):
		lsVer = ls(fileminor)
		ver_list = []
		for key_ver in lsVer:
			if cut:
				key_ver = key_ver.replace(cut, '')
			ver_list.append(key_ver.split('-', 1)[1])
		ver_list = sorted(ver_list, key=lambda x: map(int, x.replace('-', '.').split('.')), reverse=True)
		print("%s:" % fileminor)
		for ver in ver_list:
			print("\t<%s>" % ver)
		return ver_list

	def main(self):
		cd('/boot')
		ver_kernel = self.lsFileVer('vmlinuz-*')
		ver_initrd = self.lsFileVer('initrd-*.xz', cut='.xz')
		ver_initram = self.lsFileVer('initramfs-*.img', cut='.img')
		for ver in ver_kernel:
			if ver not in ver_initrd:
				self.run("geninitrd -v -f initrd-%s.xz %s" % tuple((ver,)*2))
		for ver in ver_initrd:
			if ver not in ver_kernel:
				print("> rm initrd-%s.xz" % ver)
				rm("initrd-%s.xz" % ver)
		if ver_kernel:
			self.run("ln -sf vmlinuz-%s vmlinuz" % (ver_kernel[0]))
			self.run("ln -sf initrd-%s.xz initrd" % (ver_kernel[0]))
			self.run("ln -sf initramfs-%s.img initram" % (ver_kernel[0]))
		if len(ver_kernel)>1:
			self.run("ln -sf vmlinuz-%s vmlinuz.old" % (ver_kernel[1]))
			self.run("ln -sf initrd-%s.xz initrd.old" % (ver_kernel[1]))
			self.run("ln -sf initramfs-%s.img initram.old" % (ver_kernel[1]))
		for gz_inrd in ls("initrd*.gz"):
			print("> rm %s" % gz_inrd)
			rm(gz_inrd)
		bMemT = False
		memTdst = 'memtest'
		for memt in ('memtest86+', '/usr/bin/memtester'):
			if ph.isfile(memt):
				self.run("ln -sf %s %s"% (memt, memTdst))
				bMemT = True
				break
		if not bMemT and ph.islink(memTdst):
			print("> rm %s" % memTdst)
			rm(memTdst)

	def run(self, cmd, echo=True):
		from subprocess import Popen
		from time import sleep
		from shlex import split as shs
		if echo:
			print("> %s" % cmd)
		process = Popen(shs(cmd))
		while process.poll() == None: # poll()=None means still running
			sleep(.4)
		return

if __name__=='__main__':
	gogo = bootCleanup()


More information about the pld-devel-pl mailing list