abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 15:33 | IT novinky

    Po 26 letech od protiprávního policejního zásahu, který byl spuštěn na základě podnětu společnosti Microsoft, Obvodní soud pro Prahu 2 rozsudkem potvrdil, že Mironet prokázal významnou část svého nároku na náhradu škody vůči Ministerstvu spravedlnosti ČR. Soudem nyní přiznaná část nároku znamená rekordní odškodné, jaké kdy české soudy přiznaly za nesprávný postup státu. Spor byl rozdělen na několik škod, u pravomocně uzavřených částí

    … více »
    Ladislav Hagara | Komentářů: 15
    včera 15:22 | Nová verze

    Lehké desktopové prostředí LXQt bylo vydáno ve verzi 2.4.0. Jde o převážně opravné vydání s drobnými vylepšeními podpory Waylandu.

    |🇵🇸 | Komentářů: 0
    včera 12:44 | IT novinky

    Počítačová hra Kingdom Come: Deliverance 2 českého studia Warhorse získala cenu BAFTA v kategorii nejlepší příběh. V konkurenci pěti dalších nominovaných děl porazila i úspěšnou francouzskou hru Clair Obscur: Expedition 33, která v letošním ročníku získala cenu za nejlepší hru roku.

    Ladislav Hagara | Komentářů: 1
    včera 12:22 | Komunita

    Projekt KDE oslaví v říjnu 30 let. Matthias Ettrich poslal 14. října 1996 do diskusní skupiny comp.os.linux.misc zprávu, která započala historii projektu. Důležité milníky jsou zobrazeny na časové ose KDE.

    Ladislav Hagara | Komentářů: 2
    včera 02:55 | Komunita

    Byly vyhlášeny výsledky letošní volby vedoucí/ho projektu Debian (DPL, Wikipedie). Poprvé povede Debian žena. Novou vedoucí je Sruthi Chandran. Letos byla jedinou kandidátkou. Kandidovala již v letech 2020, 2021, 2024 a 2025. Na konferenci DebConf19 měla přednášku Is Debian (and Free Software) gender diverse enough?

    Ladislav Hagara | Komentářů: 16
    včera 00:55 | Nová verze

    Byla vydána nová verze 10.3 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Přidána byla podpora Orange Pi 4 LTS. Přibyl balíček Prometheus.

    Ladislav Hagara | Komentářů: 0
    19.4. 18:55 | Nová verze

    Implementace VPN softwaru WireGuard (Wikipedie) pro Windows, tj. WireGuard pro Windows a WireGuardNT, dospěly do verze 1.0.

    Ladislav Hagara | Komentářů: 2
    19.4. 16:11 | IT novinky

    V Pekingu dnes proběhl 2. ročník půlmaratonu humanoidních robotů. První 3 místa obsadili roboti Honor Lightning v různých týmech. Nový rekord autonomního robota je 50 minut a 26 sekund. Operátorem řízený robot to zvládl i s pádem za 48 minut a 19 sekund. Řízení roboti měli časovou penalizaci 20 %. Před rokem nejrychlejší robot zvládl půlmaraton za 2 hodiny 40 minut a 42 sekund. Aktuální lidský rekord drží Jacob Kiplimo z Ugandy s časem 57 minut a 20 sekund [𝕏].

    Ladislav Hagara | Komentářů: 6
    17.4. 17:11 | Zajímavý článek

    Stanislav Fort, vedoucí vědecký pracovník z Vlčkovy 'kyberbezpečnostní' firmy AISLE, zkoumal dopady Anthropic Mythos (nový AI model od Anthropicu zaměřený na hledání chyb, který před nedávnem vyplašil celý svět) a předvedl, že schopnosti umělé inteligence nejsou lineárně závislé na velikosti nebo ceně modelu a dokázal, že i některé otevřené modely zvládly v řadě testů odhalit ve zdrojových kódech stejné chyby jako Mythos (například FreeBSD CVE-2026-4747) a to s výrazně nižšími provozními náklady.

    MakeIranBombedAgain❗ | Komentářů: 8
    17.4. 12:44 | IT novinky

    Federální návrh zákona H.R.8250 'Parents Decide Act', 13. dubna předložený demokratem Joshem Gottheimerem a podpořený republikánkou Elise Stefanik coby spolupředkladatelkou (cosponsor), by v případě svého schválení nařizoval všem výrobcům operačních systémů při nastavování zařízení ověřovat věk uživatelů a při používání poskytovat tento věkový údaj aplikacím třetích stran. Hlavní rozdíl oproti kalifornskému zákonu AB 1043 a kolorádskému SB26-051 je ten, že federální návrh by platil rovnou pro celé USA.

    MakeIranBombedAgain❗ | Komentářů: 13
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (8%)
     (1%)
     (12%)
     (30%)
     (3%)
     (6%)
     (2%)
     (15%)
     (25%)
    Celkem 1365 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: python a ... zase disky

    23.7.2014 12:12 Milan
    python a ... zase disky
    Přečteno: 513×

    Zdravím všechny ..

    nedávno jsem se tady dotazoval, jak oddělím zrno od plév (soubory a /*teď už vím, že se to jmenuje */ nody ). Dalším googlením jsem se dostal až ke knihovně pylibparted (stará, neudržovaná, ale dobře se s tím pracuje, no, a hlavně, je v opensuse repu.

    Nicméně ... knihovna má problém ( spíše to bude vlastnost ) s CDROMkou, některé funkce na tom padají, a pro mnou zamýšlený program stejně o práci s CDROMkou neuvažuju.

    Ok, takže zase odděluji zrno od plév. Otázka zní, jak poznám, že nod patří CDROMce ?.

    Jedna možnost se nabízí načíst si /proc/partitions a pylibparted se dotázat na path (pylibparted.PedDevice.getPath() ) k zařízení a tuto cestu najít v partitions, kde máme major minor, podle http://lxr.free-electrons.com/source/include/uapi/linux/major.h?v=3.14 tohoto nějak určit, že dané zařízení je CD, a loopnout se na další zařízení v pořadí (tj, nepokračovat dalším očucháváním CDčka ).

    Tato konstrukce může fungovat, ale pak jsem si uvědomil, že mc a dokonce i ls -l mi prásknou major minor u nodu, tak proč to takto zdaleka obcházet?

    Hm, ale teď nemůžu přijít na to, jak se k major minor v pythonu dostanu.

    os.stat sice vrací st_dev, ale u těch nodů je to míněno asi jako device, kde leží (možná ani to ne, protože to, co se mi vrací, není stejné číslo jako v partitions ... moc o tom nevím).

    Prolézal jsem další možnosti, zkusil jsem googlit, ale rozmanitost ( a nepoužitelnost )  nalezených výsledků mne opět zahnala tam "kde mi rozumějí " :-D ) tak snad jste to pochopili,

    předem díky za nápovědu.

    Milan


    Řešení dotazu:


    Odpovědi

    23.7.2014 14:42 Sten
    Rozbalit Rozbalit vše Re: python a ... zase disky
    Otázka je, jestli opravdu potřebujete zjistit, že je to CD-ROM, nebo stačí zjistit, že tam není médium (můj odhad, proč to padá).

    To první lze zjistit tak, že tomu zařízení pošlete nějaký příkaz pro CD-ROM (doporučuji nějaký informační příkaz, třeba CDROM_GET_CAPABILITY). Pokud to CD-ROM není, tak řekne, že to neumí.

    To druhé je ještě jednodušší. Při pokusu to zařízení otevřít dostanete chybu “No medium found” (ENOMEDIUM).
    23.7.2014 20:44 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Rozbalit Rozbalit vše Re: python a ... zase disky
    Aha, no ono to právě kiksuje, když je zasunutý disk .. jinak ta enumerace mechaniku přeskočí. To jsem měl napsat ..

    V pylibparted jsem nenašel žádnou funkci, která by mi řekla : toto je harddisk, toto je CD ... toto je páska a podobně. Atributy major minor jména zařízení by mi to řeklo, ale nevím, jak je získat.
    23.7.2014 15:26 graviton
    Rozbalit Rozbalit vše Re: python a ... zase disky
    Takhle?

    os.stat("/dev/sr0").st_rdev >> 8
    23.7.2014 21:06 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Rozbalit Rozbalit vše Re: python a ... zase disky
    ááááá ... teď jste mne dostal ...

    st_rdev je ta kouzelná formulka .. jak jsem to mohl přehlídnout, když jsem koukal na os.stat .. nechápu a vám díky ..

    Milan
    24.7.2014 10:47 graviton
    Rozbalit Rozbalit vše Re: python a ... zase disky
    Ono to ve výsledku z os.stat na rozdíl od ostatních věcí není vidět jako datová položka (asi metoda?), člověk musí zabloudit do dokumentace, aby se dozvěděl, na co že se to má zeptat.
    29.7.2014 14:45 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Rozbalit Rozbalit vše Re: python a ... zase disky
    Nakonec jsem to zmastil takto :
    import pylibparted, os (a možná ještě něco)
    def collect_disks( ):
    	result = { }
    
    	devs = pylibparted.probeAllDevices()
    
    	for p in devs :
    		# Device
    		d = pylibparted.PedDevice(p)
    		devpath = d.getPath()
    		devpath_stat = os.stat(devpath)
    		d_mode = devpath_stat.st_mode
    		if (  d_mode & 24576  <> 24576 ) :
    			#print 'Device:', devpath,  ' is not block'
    			continue
    		d_major = devpath_stat.st_rdev >> 8
    		#print d_major
    		if ( not d_major in (8, 3, 22 ) ):
    			#print "Device ",  devpath, ' is not a disk'
    			continue
    		result[ devpath ] = {}
    		model = d.getModel()
    		#print 'Model: ',  model
    		result[ devpath ][ 'model' ] = model
    		result[ devpath ][ 'type' ] = 'D'
    		#print 'Device type :',  d.getType()
    		size = d.getLength()
    		#print 'Size:', size
    		result[ devpath ][ 'size' ] = size
    		ssize =  d.getSectorSize()
    		#print 'Sector size: ', ssize
    		result[ devpath ][ 'ssize' ] = ssize
    		disktype = d.diskProbe()
    		subtype = disktype.getName()
    		#print'Name: ',  subtype
    		result[ devpath ][ 'subtype' ] = subtype
    		c,h,s = d.getBiosCHS()
    		chs = str(c) + '/' + str(h) + '/' + str(s)
    		#print 'BIOS CHS:', chs
    
    		c,h,s = d.getHwCHS()
    		chs = str(c) + '/' + str(h) + '/' + str(s)
    		#print 'HW CHS:', chs
    
    		# Partition table
    		pt = d.diskNew()
    		parts = pt.getPartitions()
    
    		for part in parts :
    			if part.isActive() :
    				part_path = part.getPath()
    				#print ' Partition:', part_path
    				result[ part_path ] = {}
    				result[ part_path ]['type'] = 'P'
    
    				parttype = part.getTypeName()
    				#print ' Type Name:', parttype
    				#print ' ID:', part.getId()
    				result[ part_path ][ 'model' ] = parttype
    				geom = part.getGeometry()
    
    				#print '  Start:', geom.getStart()
    				#print '  End:', geom.getEnd()
    				size = geom.getLength()
    				#print '  Length:', size
    				result[ part_path ][ 'ssize' ] = ssize
    				result[ part_path ][ 'size' ] = size
    				fs = part.getFsType()
    				if fs :
    					#print '  FS:', fs.getName()
    					result[ part_path ]['subtype'] = fs.getName()
    	    # parts
    	# devs
    	return result
    

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.