dmesg istifadə edərək log analizi. Dmesg linux tornavida istifadə etmədən Linux kompüterinin aparatları haqqında məlumat əldə etmək nə edir

Sistem administratorları və adi olanlar Linux istifadəçiləri, problemləri həll etmək üçün tez-tez log fayllarına baxmalıdır. Əslində, sistemdə hər hansı bir səhv baş verdikdə, hər hansı bir sistem administratorunun etməli olduğu ilk şey budur.

Özü əməliyyat sistemi Linux və işləyən proqramlar yaradır Müxtəlif növlər müxtəlif log fayllarına daxil olan mesajlar. Linux xüsusi istifadə edir proqram təminatı, log fayllarının saxlanması üçün fayllar və qovluqlar. Hansı faylların hansı proqramların qeydlərini ehtiva etdiyini bilmək vaxtınıza qənaət etməyə və problemi daha tez həll etməyə kömək edəcək.

Bu yazıda biz Linux logging sisteminin əsas hissələrinə, log fayllarına, həmçinin Linux qeydlərinə baxa biləcəyiniz yardım proqramlarına baxacağıq.

Linux log fayllarının əksəriyyəti /var/log/ qovluğunda yerləşir.

Rw-r--r-- 1 kök kök 52198 10 may 11:03 alternatives.log
drwxr-x--- 2 kök kök 4096 14 noyabr 15:07 apache2
drwxr-xr-x 2 kök kök 4096 25 aprel 12:31 apparmor
drwx------ 2 kök kök 4096 5 may 10:15 audit
-rw-r--r-- 1 kök kök 33100 10 may 10:33 boot.log

Aşağıda 20-yə baxacağıq müxtəlif fayllar Linux qeydləri /var/log/ kataloqunda yerləşir. Bu qeydlərdən bəziləri yalnız müəyyən paylamalarda tapılır, məsələn, dpkg.log yalnız Debian əsaslı sistemlərdə tapılır.

/var/log/messages- sistemin işə salınması zamanı qeydə alınanlar da daxil olmaqla qlobal Linux sistem qeydlərini ehtiva edir. Bu jurnalda bir neçə növ mesaj qeyd olunur: poçt, cron, müxtəlif xidmətlər, nüvə, autentifikasiya və s.

/var/log/dmesg- nüvədən alınan mesajları ehtiva edir. Yükləmə mərhələsində bir çox mesajı qeyd edir, onlar yükləmə prosesi zamanı işə salınan aparat qurğuları haqqında məlumatları göstərir. Bunun Linux sisteminin başqa bir qeydi olduğunu söyləyə bilərsiniz. Jurnaldakı mesajların sayı məhduddur və fayl dolduqda hər yeni mesajla köhnə mesajların üzərinə yazılacaq. Siz həmçinin dmseg əmrindən istifadə edərək bu jurnaldan mesajlara baxa bilərsiniz.

/var/log/auth.log- istifadəçi girişləri və istifadə edilmiş autentifikasiya mexanizmləri daxil olmaqla, sistemdə istifadəçi avtorizasiyası haqqında məlumatları ehtiva edir.

/var/log/boot.log- Sistem işə salındıqda qeyd olunan məlumatları ehtiva edir.

/var/log/daemon.log- Müxtəlif fon demonlarından mesajlar daxildir

/var/log/kern.log- Həmçinin kerneldən gələn mesajları ehtiva edir, səhvləri aradan qaldırmaq üçün faydalıdır xüsusi modullar, nüvəyə quraşdırılmışdır.

/var/log/lastlog- Bütün istifadəçilərin son sessiyası haqqında məlumatları göstərir. Deyil mətn faylı, ona baxmaq üçün lastlog əmrindən istifadə etməlisiniz.

/var/log/maillog /var/log/mail.log- server qeydləri E-poçt sistemdə işləyir.

/var/log/user.log- İstifadəçi səviyyəsində bütün qeydlərdən məlumat.

/var/log/Xorg.x.log- X server mesaj jurnalı.

/var/log/alternatives.log- Yeniləmə-alternativlər proqramının işləməsi haqqında məlumat. Bunlar standart əmrlərə və ya kitabxanalara simvolik bağlantılardır.

/var/log/btmp- log Linux faylı uğursuz giriş cəhdləri haqqında məlumat ehtiva edir. Fayla baxmaq üçün last -f /var/log/btmp əmrindən istifadə etmək rahatdır

/var/log/cups- Çap və printerlərlə bağlı bütün mesajlar.

/var/log/anaconda.log- quraşdırma zamanı qeydə alınan bütün mesajlar bu faylda saxlanılır

/var/log/yum.log- Yum istifadə edərək paket quraşdırmaları haqqında bütün məlumatları qeyd edir.

/var/log/cron- Cron demonu hər hansı bir proqramı icra etməyə başlayanda bu faylda proqramın özündən hesabat və mesajlar yazır.

/var/log/secure- autentifikasiya və avtorizasiya ilə bağlı məlumatları ehtiva edir. Məsələn, SSHd uğursuz giriş cəhdləri də daxil olmaqla burada hər şeyi qeyd edir.

/var/log/wtmp və ya /var/log/utmp - Linux sistem qeydləri , istifadəçi girişlərinin jurnalını ehtiva edir. wtmp əmrindən istifadə edərək kimin və nə vaxt daxil olduğunu öyrənə bilərsiniz.

/var/log/faillog- log linux sistemləri, uğursuz giriş cəhdlərini ehtiva edir. Bu faylın məzmununu göstərmək üçün faillog əmrindən istifadə edin.

/var/log/mysqld.log- MySQL verilənlər bazası serverindən Linux log faylları.

/var/log/httpd/ və ya /var/log/apache2- linux11 Apache veb serverinin log faylları. Giriş qeydləri access_log faylında, xəta qeydləri isə error_log faylındadır

/var/log/lighttpd/- Lighttpd veb serverinin Linux qeydləri

/var/log/conman/- ConMan müştəri log faylları,

/var/log/mail/- bu kataloq əlavə poçt serveri qeydlərini ehtiva edir

/var/log/prelink/- Prelink proqramı yükləmə prosesini sürətləndirmək üçün kitabxanaları və icra olunanları əlaqələndirir. /var/log/prelink/prelink.log proqram tərəfindən dəyişdirilmiş .so faylları haqqında məlumat ehtiva edir.

/var/log/audit/- Audit edilmiş demon tərəfindən yaradılan məlumatları ehtiva edir.

/var/log/setroubleshoot/ - SE Linux təhlükəsizlik problemlərini bildirmək üçün müəyyən edilmiş problem aradan qaldırılmış demondan (SE Trouble Shoot Daemon) istifadə edir. Bu jurnalda bu proqramdan mesajlar var.

/var/log/samba/- məlumat və qeydləri ehtiva edir fayl serveri Qoşulmaq üçün istifadə edilən Samba paylaşılan qovluqlar Windows.

/var/log/sa/- Sysstat paketi tərəfindən toplanmış .cap faylları ehtiva edir.

/var/log/sssd/- İdarə edən sistem təhlükəsizlik demonu tərəfindən istifadə olunur uzaqdan giriş qovluqlara və autentifikasiya mexanizmlərinə.

Linux-da qeydlərə baxılır

Linux-da qeydlərə baxmaq üçün bir neçə əmr satırı yardım proqramından istifadə etmək rahatdır Linux sətirləri. Hər kəs ola bilər mətn redaktoru, və ya xüsusi kommunal. Çox güman ki, Linux-da qeydlərə baxmaq üçün super istifadəçi hüquqlarına ehtiyacınız olacaq. Bu məqsədlər üçün ən çox istifadə olunan əmrlər bunlardır:

  • zgrep
  • zmore

Bu əmrlərin hər biri haqqında ətraflı məlumat verməyəcəyəm, çünki onların əksəriyyəti artıq veb saytımızda ətraflı müzakirə edilmişdir. Ancaq bir neçə misal çəkəcəyəm. Linux qeydlərinə baxmaq çox sadədir:

Sürüşmək imkanı ilə /var/log/messages jurnalına baxırıq:

az /var/log/messages

Real vaxt rejimində Linux qeydlərinə baxın:

quyruq -f /var/log/messages

dmesg log faylını açın:

cat /var/log/dmesg

dmesg-nin ilk sətirləri:

baş /var/log/dmesg

Biz yalnız /var/log/messages-dan səhvlər çıxarırıq:

grep -i xətası /var/log/messages

Bundan əlavə, qrafik yardım proqramlarından istifadə edərək Linux-da qeydlərə baxa bilərsiniz. Sistem proqramı Log Viewer, laptopda və ya sistem qeydlərinə asanlıqla baxmaq və nəzarət etmək üçün istifadə edilə bilər Şəxsi kompüter Linux ilə.

Proqramı X serveri quraşdırılmış istənilən sistemə quraşdıra bilərsiniz. Həmçinin, qeydlərə baxmaq üçün istənilən qrafik test redaktoru istifadə edilə bilər.

nəticələr

/var/log kataloqunda siz haqqında bütün lazımi məlumatları tapa bilərsiniz Linux işi. Bugünkü məqalədən siz hara baxmaq və nə axtarmaq lazım olduğunu bilmək üçün kifayət qədər öyrəndiniz. İndi Linux-da qeydlərə baxmaq sizə problem yaratmayacaq. Hər hansı bir sualınız varsa, şərhlərdə soruşun!

Məhz yükləmə mərhələsində xidmətlərdə və ya avadanlıqda çoxlu səhvlər baş verə bilər. Bu mesajlara baxmaq çox faydalı ola bilər, lakin onlar çox tez keçir və onları oxumağa həmişə vaxtımız olmur. Lakin onların hamısına əmrdən istifadə etməklə baxmaq olar dmesg.

Dmesg - bu hansı yardım proqramıdır və nə üçün istifadə olunur?

Sistemin yüklənməsi zamanı nüvə, işəsalma sistemi, drayverlər, ləpə modulları yüklənərkən və aparat işə salındıqda ekranda nüvənin vəziyyəti, yükləmə prosesi və proqram təminatı haqqında məlumatları əks etdirən çoxlu sayda mesajlar göstərilir. cihazların vəziyyəti.

Məhz yükləmə mərhələsində xidmətlərdə və ya avadanlıqda çoxlu səhvlər baş verə bilər. Bu mesajlara baxmaq çox faydalı ola bilər, lakin onlar çox tez keçir və onları oxumağa həmişə vaxtımız olmur. Lakin onların hamısına dmesg əmrindən istifadə etməklə baxmaq olar.

1. Yükləyərkən mesajlara baxın

Superuser hüquqları ilə dmesg əmrini işlətməklə siz yükləmə zamanı nüvənin çıxardığı bütün mesajları alacaqsınız. Burada çox şey görə bilərsiniz faydalı məlumat. Onlara bir-bir baxıb nə demək istədiklərini anlamağa çalışa bilərsiniz. İndi yükləmə mesajlarının necə göründüyünü bildiyiniz üçün, onlar yaranarsa, bir çox problemin öhdəsindən asanlıqla gələ bilərsiniz.

$dmesg | daha çox [ 0.000000] mikrokod: CPU0 mikrokodu n 0x29 reviziyasına erkən yeniləndi, tarix = 2013-06-12 [ 0.000000] cgroup subsys cpuset işə salınır [ 0.000000] cgroup subsys cpuiti işə salınır [00.0.0 .000000] Linux versiyası 4 . 1. 20-11-default() (gcc versiyası 4.8.5 (SUSE Linux)) #1 SMP PREEMPT 18 Mart Cümə 14:42:07 UTC 2016 (0a392b2)

2. Yaddaşa baxın

dmesg-dən istifadə edərək sistemdə mövcud yaddaşın miqdarını görə bilərsiniz:

$dmesg | grep Yaddaş

0.000000] Yaddaş: 3848228K/4006256K mövcuddur (6567K kernel kodu, 1085K rwdata, 4852K rodata, 1560K init, 1520K bss, 158028K cmareserved0)

3. Şəbəkə adapterlərinin vəziyyətinə baxın

dmesg bütün cihaz status mesajlarını saxladığından biz statusa baxa bilərik şəbəkə adapteri və ya onun işə salınması zamanı baş vermiş səhvlər:

$dmesg | grep eth [ 101.043873] tg3 0000:02:00.0 eth0: Link 100 Mbps-də yüksəkdir, tam dupleks [ 101.043885] tg3 0000:02:00.0 eth0: [X90.0.0] üçün axın nəzarəti söndürülüb 0:02 :00.0 eth0: EEE deaktiv edilib [101.043909] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: keçid hazır olur

4. dmesg bufer ölçüsünün dəyişdirilməsi

Defolt dmesg bufer ölçüsünün kifayət etmədiyini düşünürsünüzsə, bir anda orada ola biləcək mesajların sayını artırmaq üçün ölçüsünü dəyişə bilərsiniz. Bunu etmək üçün sadəcə faylı redaktə edin və kompüteri yenidən başladın.

$ vi /boot/config-4.1.20-11-defolt CONFIG_LOG_BUF_SHIFT=18

Bu xəttin parametrinin dəyərini istədiyinizə dəyişdirin, standart olaraq 18-dən istifadə edirəm, bu o deməkdir ki, 18 kilobaytlıq bir tampon yaradılacaq. Ancaq bufer ölçüsünü istədiyiniz kimi təyin edə bilərsiniz.

5. dmesg buferini silin

Bəzən lazımsız mesajların bir-birinə qarışmaması üçün Dmesg buferini təmizləməlisiniz. Bunu aşağıdakı əmrlə edə bilərsiniz:

$dmesg -c

İndi dmesg əmrini yenidən işlətsəniz, bufer boş olacaq.

6. Dmesg-də tarix və vaxt

Gördüyünüz kimi, standart olaraq dmesg-də heç bir tarix yoxdur, sadəcə bir etiket istifadə olunur, yükləmənin başlanğıcından vaxt dəyişikliyi. Amma hər mesajın tam tarixini və saatını görmək də mümkündür. Bunu etmək üçün /var/log/kern.log faylına baxın:

$dmesg | grep "L2 cache" 18 oktyabr 23:55:40 ubuntu kernel: [0.014681] CPU: L2 cache: 2048K

Hər şeyin işləməsi üçün klogd xidməti konfiqurasiya edilməli və işləməlidir.

7. dmesg səhvlərinə baxın

Bu sadə kombinasiya ilə siz yükləmə və ya sistemin işləməsi zamanı baş verən bütün səhvləri görə bilərsiniz:

$dmesg | grep xətası

Kiçik bir misala baxaq. Tutaq ki, mənim Wifi işləmir. Bilirəm ki, komputerdə adapter var, işə salınıb və Windows-da hər şey işləyir. Amma indi yox. Dmesg jurnalına baxırıq və görürük:

[21.772824] b43-phy0 XƏTA: Mikroproqram faylı "b43/ucode15.fw" tapılmadı[21.772842] b43-phy0 XƏTASI: "b43-open/ucode15.fw" mikroproqram faylı tapılmadı [ 21.772852] b43-phy0 XƏTA: Lütfən, terminalı açın və düzəltmək üçün "sudo /usr/sbin/install_bcm43x_firmware" əmrini daxil edin. bu sürücü versiyası üçün proqram təminatı. Off-line quraşdırma üçün "RPM paketlərindən proqram təminatının quraşdırılması" bölməsinə keçin və təlimatlara əməl edin.

Mesajdan başa düşürük ki, burada problem proshivkadadır və sistem hətta onu həll etmək üçün hansı əmrdən istifadə oluna biləcəyini və ya bu məsələni qurmaq və yükləmək haqqında harada oxumaq lazım olduğunu söyləyir. zəruri fayllar. Beləliklə, həll olunmaz görünən problem bir neçə dəqiqəyə həll olundu. Linux jurnallarına baxmaq çox faydalı bir şeydir, ondan istifadə etməyi unutmayın. Hamısı budur, hər hansı bir sualınız varsa, şərhlərdə yazın!

Bu yazıda problemə kömək edəcək konsol proqramları haqqında yazmaq istəyirəm tam məlumat kompüterinizin avadanlığı haqqında (istehsalçı, marka, cihaz ID və avadanlıq haqqında digər məlumatlar). Pis korporasiyanın OS-dən Linux-a keçən bir çox istifadəçi işləməyə öyrəşib qrafik proqramlar, lakin Linux-da işlədiyiniz illər ərzində başa düşürsünüz ki, Terminalda hər şey daha sürətli işləyir, verilən məlumat daha dolğun və çevikdir.

Utility lspci bütün PCI avtobusları və onlarda olan cihazlar haqqında ətraflı məlumatı əks etdirən Unix yardım proqramıdır. lspci yardım proqramı əvvəlcə PCI avtobusundan məlumatları oxuyur, sonra faylda yerləşən öz verilənlər bazasında əlavə məlumat axtarır. /usr/share/hwdata/pci.ids və avadanlıq identifikatoru, istehsalçı, cihazlar, siniflər və alt siniflər kimi məlumatları ehtiva edir. Proqramı işə salmaq üçün Terminalda işə salın:

lspci


02:00.0 Ethernet nəzarətçisi: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)
03:00.0 USB nəzarətçi: ASMedia Technology Inc. ASM1042 SuperSpeed ​​USB Host Controller
04:00.0 SATA nəzarətçisi: JMicron Technology Corp. JMB362 SATA Controller (rev 10)
05:00.0 USB nəzarətçi: ASMedia Technology Inc. ASM1042 SuperSpeed ​​USB Host Controller
06:00.0 SATA nəzarətçisi: JMicron Technology Corp. JMB362 SATA Controller (rev 10)

07:06.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306/7/8 IEEE 1394 OHCI Nəzarətçi (rev c0)

Daha çox məlumat əldə etmək üçün çalıştırın:

lspci -v

03:00.0 USB nəzarətçi: ASMedia Technology Inc. ASM1042 SuperSpeed ​​USB Host Controller (prog-əgər 30)

Bayraqlar: avtobus ustası, sürətli inkişaf, gecikmə 0, IRQ 46
Yaddaş fe500000 (64 bit, əvvəlcədən alına bilməz)
Bacarıqlar:

05:00.0 USB nəzarətçi: ASMedia Technology Inc. ASM1042 SuperSpeed ​​USB Host Controller (prog-əgər 30)
Alt sistem: ASUSTeK Computer Inc. P8B WS ana plata
Bayraqlar: avtobus ustası, sürətli inkişaf, gecikmə 0, IRQ 50
Yaddaş fe300000 (64 bit, əvvəlcədən alına bilməz)
Bacarıqlar:
İstifadədə olan nüvə sürücüsü: xhci_hcd

07:05.0 Multimedia video nəzarətçisi: Conexant Systems, Inc. CX23880/1/2/3 PCI Video və Audio Dekoder (rev 05)
Bayraqlar: avtobus ustası, orta devsel, gecikmə 32, IRQ 20
fb000000-da yaddaş (32 bit, əvvəlcədən alına bilməz)
Bacarıqlar:
İstifadədə olan nüvə sürücüsü: cx8800

07:06.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306/7/8 IEEE 1394 OHCI Nəzarətçi (rev c0) (proqram-əgər 10)
Alt sistem: ASUSTeK Computer Inc. Ana plata
Bayraqlar: avtobus ustası, orta devsel, gecikmə 32, IRQ 21
fc000000-da yaddaş (32 bit, əvvəlcədən götürülə bilməz)
I/O portları a000
Bacarıqlar:
İstifadədə olan nüvə sürücüsü: firewire_ohci
Nəticədə, daha çox mətn olacaq, lakin avadanlıq haqqında məlumat da daha həcmli olacaqdır. Siz hətta, məsələn, istədiyiniz cihazın asılı olduğu IRQ nömrəsini də öyrənə bilərsiniz. Əgər xüsusi avadanlıq, məsələn, Nvidia video kartı haqqında məlumat tapmaq lazımdırsa, grep əmri ilə axtarış əmrindən istifadə etməlisiniz. Nəticədə komandamız aşağıdakı kimi olacaq:

lspci | grep NVIDIA

Nəzərə alın ki, grep əmri hərflərə həssasdır, ona görə də ilk dəfə sizə lazım olan məlumatı tapmasanız, axtarış sözlərini dəyişdirməlisiniz, məsələn: nvidia, NVIDIA və ya sözün bir hissəsi - idia və ya IDIA.

Komandanın çıxışı belə idi:

01:00.0 VGA uyğun nəzarətçi: NVIDIA Corporation GF108 (rev a1)
01:00.1 Audio cihazı: NVIDIA Corporation GF108 High Definition Audio Controller (rev a1)

Mətn faylında avadanlıq haqqında məlumat əldə etmək istəyirsinizsə, əmri yerinə yetirin:

lspci > lspci.txt

Nəticədə, Əsas kataloqunuzda lspci.txt mətn faylı görünəcək

Sistemdəki bütün cihazların siyahısını, o cümlədən USB və SCSI, yaddaş konfiqurasiyasını əldə etmək, prosessor tipini öyrənmək lazımdırsa, proqramdan istifadə edə bilərsiniz. dmesg. Sistem nüvəsi tərəfindən aşkar ediləcək bütün avadanlıqların siyahısını göstərir.

Terminalda əmri işə salın:

dmesg

Əgər əmri icra etsəniz:

dmesg | az

onda tapılan avadanlıqların siyahısı çox böyük olacaq. Buna görə də, bütün məlumatları təhlil etmək üçün bu əmrin çıxışını mətn faylında saxlamağı məsləhət görürəm. Bunu etmək üçün əmri işlədin:

dmesg | daha az > dmesg.txt

İstədiyiniz cihazları tapmaq üçün dmesg çıxışı da süzülə bilər. Aşağıdakı əmr sistemdəki bütün USB cihazlarının siyahısını göstərəcək:

dmesg | grep -i usb

Utilitydən də istifadə edə bilərsiniz lshw. Quraşdırılmayıbsa, əmri yerinə yetirin:

sudo apt-get install lshw

Onu işə salmaq üçün əmri yerinə yetirin:

sudo lshw

Proqram qurğular haqqında məlumatla birlikdə avadanlıqların strukturlaşdırılmış siyahısını göstərir. Məlumat çox tutumlu və faydalıdır. Kommunal çıxışdan bəzi məlumatlar:

*-cdrom
Təsvir: DVD-RAM yazıcısı
məhsul: DRW-24B5ST
İstehsalçı: ASUS
fiziki ID: 0.0.0
avtobus məlumatı: scsi@3:0.0.0
məntiqi ad: /dev/sr1

Versiya: 1.00
xüsusiyyətləri: çıxarıla bilən audio cd-r cd-rw dvd dvd-r dvd-ram
konfiqurasiya: ansiversion=5 mount.fstype=iso9660 mount.options=ro,nosuid,nodev,relatime,uid=1000,gid=1000,iocharset=utf8,mode=0400,dmode=0500 dövlət=quraşdırılmış status=hazır
*-orta
Fiziki ID: 0
məntiqi ad: /dev/sr1
məntiqi ad: /media/dm/disk
konfiqurasiya: mount.fstype=iso9660 mount.options=ro,nosuid,nodev,relatime,uid=1000,gid=1000,iocharset=utf8,mode=0400,dmode=0500 state=mounted

Siz həmçinin /proc sistem kataloqundan bir çox faydalı məlumat çıxara bilərsiniz. Bu, sistem haqqında bir çox faydalı məlumatları, yəni noutbukun batareya səviyyəsini, prosessor haqqında məlumatı, fan sürətini, qoşulmuş qurğular haqqında məlumatı saxlayan sistemin və onun dəyişənlərinin vəziyyətinin bir növ "snapshot"ıdır. , və daha çox. /proc qovluğunda hansı faylların olduğunu görmək üçün əmri yerinə yetirməlisiniz:

ls /proc/

Prosessor haqqında məlumat tapmaq üçün əmri yerinə yetirin:

cat /proc/cpuinfo

Mənim vəziyyətimdə çıxış belə idi (mətn məlumatının yalnız bir hissəsi göstərilir):

prosessor: 0
satıcı_id: AuthenticAMD
CPU ailəsi: 21
model: 1
model adı: AMD FX(tm)-6100 Six-Core Processor
addım: 2
mikrokod: 0x6000629
CPU MHz: 1400.000
keş ölçüsü: 2048 KB
fiziki id: 0
qardaşlar: 6
əsas id: 0
CPU nüvələri: 3
turşu: 16
ilkin apicid: 0
fpu: bəli
fpu_istisna: bəli
CPU səviyyəsi: 13
wp: bəli

Laptopun batareyasının vəziyyətini öyrənmək üçün aşağıdakı əmri yerinə yetirməlisiniz:

cat /proc/acpi/battery/BAT0/info

Bütün qoşulmuş USB cihazları haqqında məlumat tapmaq üçün yardım proqramından istifadə etməlisiniz lsusb. Komandanı işə salın:

lsusb

Avtobus 003 Cihaz 004: ID 13fe:4100 Kingston Technology Company Inc.
Avtobus 003 Cihaz 003: ID 125f:c96a A-DATA Technology Co., Ltd. C906 Flaş Diski
Avtobus 003 Cihaz 001: ID 1d6b:0002 Linux Foundation 2.0 kök mərkəzi
Avtobus 007 Cihaz 001: ID 1d6b:0001 Linux Foundation 1.1 kök mərkəzi
Avtobus 006 Cihaz 001: ID 1d6b:0001 Linux Foundation 1.1 kök mərkəzi
Avtobus 002 Cihaz 004: ID 058f:6361 Alcor Micro Corp. Multimedia kart oxuyucusu
Avtobus 002 Cihaz 001: ID 1d6b:0002 Linux Foundation 2.0 kök mərkəzi
Avtobus 005 Cihaz 002: ID 046d:c05a Logitech, Inc. M90/M100 Optik Siçan
Avtobus 005 Cihaz 001: ID 1d6b:0001 Linux Foundation 1.1 kök mərkəzi
Avtobus 001 Cihaz 001: ID 1d6b:0002 Linux Foundation 2.0 kök mərkəzi
Avtobus 004 Cihaz 001: ID 1d6b:0001 Linux Foundation 1.1 kök mərkəzi
Avtobus 011 Cihaz 001: ID 1d6b:0003 Linux Foundation 3.0 kök mərkəzi
Avtobus 010 Cihaz 003: ID 04d9:1702 Holtek Semiconductor, Inc.
Avtobus 010 Cihaz 002: ID 046d:0829 Logitech, Inc.
Avtobus 010 Cihaz 001: ID 1d6b:0002 Linux Foundation 2.0 kök mərkəzi
Avtobus 009 Cihaz 001: ID 1d6b:0003 Linux Foundation 3.0 kök mərkəzi
Avtobus 008 Cihaz 001: ID 1d6b:0002 Linux Foundation 2.0 kök mərkəzi

Və nəhayət, sabit disklər haqqında məlumat əldə etmək üçün bir neçə kommunal. Utility hdparm ATA interfeysi ilə sərt disklərin parametrlərini tənzimləyir və onlara baxır. O, sürücünün keşinin ölçüsü, yuxu rejimi, enerjinin idarə edilməsi, akustikanın idarə edilməsi və DMA parametrləri kimi parametrləri təyin edə bilər ki, qoşulmuş sərt disklər haqqında məlumat əldə etmək üçün əmri yerinə yetirin:

sudo hdparm -I /dev/sda

Bu əmrlə sabit diskiniz /dev/sda haqqında məlumat tapacağıq. Budur çıxışın bir hissəsi:

ATA cihazı, çıxarılmayan media ilə
Model nömrəsi: WDC WD6400AARS-00Y5B1
Seriya nömrəsi: WD-WCAV5D714851
Firmware Revision: 80.00A80
Nəqliyyat: Serial, SATA 1.0a, SATA II Genişləndirmələri, SATA Rev 2.5, SATA Rev 2.6
Standartlar:
Dəstəklənir: 8 7 6 5
Ehtimal istifadə: 8
Konfiqurasiya:
Məntiqi maksimum cərəyan
silindrlər 16383 16383
başlar 16 16
sektorlar/trek 63 63

CHS cari ünvanlı sektorlar: 16514064
LBA istifadəçisinin ünvanlı sektorları: 268435455
LBA48 istifadəçi ünvanlı sektorlar: 1250263728
Məntiqi/Fiziki Sektor ölçüsü: 512 bayt
Proqram quraşdırılmayıbsa, Terminalda əmri işlədin:

sudo apt-get quraşdırma hdparm

fdisk -l

Nəticədə, bütün bağlı sabit disklərin, flash sürücülərin və yaddaş kartlarının siyahısını görəcəyik. Diskdə neçə bölmənin yaradıldığını da görəcəyik.

Disk /dev/sda: 640.1 GB, 640135028736 bayt
255 baş, 63 sektor/yol, 77825 silindr, cəmi 1250263728 sektor
Vahidlər = 1 * 512 = 512 bayt sektorları
Sektor ölçüsü (məntiqi/fiziki): 512 bayt / 512 bayt
I/O ölçüsü (minimum/optimal): 512 bayt / 512 bayt
Disk ID: 0x0009d6f7

Cihaz Yükləmə Başlama Son Blokları İd Sistemi
/dev/sda1 * 2048 61441501 30719727 83 Linux
/dev/sda2 61442048 73730031 6143992 82 Linux dəyişdirmə / Solaris
/dev/sda3 73730048 1250263039 588266496 83 Linux

Hamısı budur və hər kəsə uğurlar!

—————————————————————————

Məşhur Macarıstanın Bonanza Banzai qrupundan yaraşıqlı ÁKOS

Mənbə: Vida sürücüsündən istifadə etmədən Linux Maşınınızın Avadanlıq Təfərrüatlarını Tapmaq
Tərcümə: V. Kostromin, 11 yanvar 2007-ci il

Təcrübəsiz bir çox Linux istifadəçiləri yalnız konsolda mövcud olan əmrlərdən istifadə edərək Linux kompüterlərinin aparatının bəzi xüsusiyyətlərini müəyyən etməkdə çətinlik çəkirlər. komanda xətti). Qrafik qabıqlar Son vaxtlar kifayət qədər rahat formada bu cür məlumatları təqdim edən xüsusi yardım proqramlarını ehtiva edir. Lakin administratorların və ev kompüteri istifadəçilərinin həmişə onlardan istifadə etmək imkanı olmur.

Bu qısa dərslikdə Linux kompüterinizin texniki xüsusiyyətlərini komanda xəttindən necə əldə edə biləcəyinizi öyrənəcəyik. Bu təlimatı sona qədər oxuduqdan sonra bir dəqiqə ərzində kompüterinizin bütün komponentlərinin xüsusiyyətləri ilə birlikdə tam siyahısını əldə edə biləcəksiniz. Bu, məsələn, axtarışa kömək edə bilər zəruri sürücülər və avadanlıqlarınız üçün dəstək ünvanları.

Hissə 1: lspci Komandanlığından istifadə edərək Avadanlıq Məlumatının Alınması

Utility lspci sistemdəki bütün PCI avtobusları, eləcə də bu avtobuslara qoşulmuş bütün qurğular haqqında məlumatları göstərmək üçün nəzərdə tutulmuşdur. Varsayılan olaraq göstərir qısa siyahı belə cihazlar. Bununla belə, bir çox variantdan istifadə edə bilərsiniz lspci daha çox almaq üçün ətraflı məlumat və ya digər proqramlardan istifadə edərək sonrakı emal üçün yönümlü məlumat.

# /sbin/lspci
00:00.0 Host körpüsü: Intel Corporation 82865G/PE/P DRAM Controller/Host-Hub Interface (rev 02)
00:02.0 VGA uyğun nəzarətçi: Intel Corporation 82865G İnteqrasiya Qrafik Nəzarətçisi (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (rev 02)
00:1e.0 PCI körpüsü: Intel Corporation 82801 PCI Bridge (rev c2)
00:1f.1 IDE interfeysi: Intel Corporation 82801EB/ER (ICH5/ICH5R) IDE Controller (rev 02)
03:08.0 Ethernet nəzarətçisi: Intel Corporation 82562EZ 10/100 Ethernet Controller (rev 02)
....

İndi mən bilirəm ki, Intel Corporation 82865G İnteqrasiya Qrafik Nəzarətçi qrafik çipi var və mən internetdə onun üçün sürücü axtara bilərəm. Bu çipə uyğun olan xəttin hansı məlumatı ehtiva etdiyinə baxaq:

Daha çox məlumat əldə etmək üçün -v və ya -vv seçimlərindən istifadə edə bilərsiniz. Məsələn, mən əmr verəndə lspci -v, aşağıdakı nəticəni aldım:

00:02.0 VGA uyğun nəzarətçi: Intel Corporation 82865G İnteqrasiya edilmiş Qrafik Nəzarətçi (rev 02) (prog-if 00)
Alt sistem: IBM Naməlum cihaz 0285
Bayraqlar: avtobus ustası, sürətli inkişaf, gecikmə 0, IRQ 185
f0000000-da yaddaş (32-bit, əvvəlcədən götürülə bilər)
e8000000-da yaddaş (32 bit, əvvəlcədən alına bilməz)
1800-də I/O portları
Bacarıqlar: Güc İdarəetmə versiyası 1

Utility lspciəvvəlcə PCI avtobusundan məlumatları oxuyur, sonra faylda yerləşən öz verilənlər bazasında əlavə məlumat axtarır. /usr/share/hwdata/pci.ids və avadanlıq identifikatoru, istehsalçı, cihazlar, siniflər və alt siniflər kimi məlumatları ehtiva edir. Komanda

# cat /usr/share/hwdata/pci.ids | grep "82865G İnteqrasiya edilmiş Qrafik Nəzarətçi"
82865G İnteqrasiya edilmiş Qrafik Nəzarətçi

cihazımızın da bu verilənlər bazasına daxil olduğundan əmin olmağa imkan verir. Avadanlıqların bu siyahısı səhifədə dəstəklənir və siz yardım proqramından istifadə edə bilərsiniz yeniləmə-pciidsƏn son versiyanı əldə etmək üçün.

2-ci Hissə: dmesg əmrindən istifadə edərək aparat məlumatlarının əldə edilməsi

Komanda dmesg Linux-da nüvə halqası buferinin məzmununa baxmaq üçün adətən istifadə olunur. O, istifadəçiyə sistemin yükləmə prosesi zamanı verilən mesajların məzmununu göstərməyə imkan verir.

Utility lspci PCI cihazlarını aşkar etmək üçün yaxşı işləyir, lakin biz tez-tez sistemdəki bütün cihazların siyahısına ehtiyac duyuruq. İstifadə dmesgəməliyyat sistemimiz tərəfindən aşkar edilən bütün cihazların xüsusiyyətlərinə baxa bilərik.

# dmesg | az
Normal zona: 59248 səhifə, LIFO toplusu:15
DMI mövcuddur.
20000000-dan başlayan PCI resurslarının ayrılması (boşluq: 10000000:eec00000)
2793.055 MHz prosessor aşkar edildi.
1 zonalist quruldu. Cəmi səhifələr: 63344
Kernel komanda xətti: ro root=/dev/VolGroup00/LogVol00 rhgb sakit
Sürətli FPU saxlama və bərpa etməyə imkan verir... hazırdır.
CPU#0 işə salınır
CPU 0 irqstacks, hard=c07ae000 soft=c078e000

.....

Gördüyünüz kimi, dmesgçoxlu məlumat istehsal edir, ona görə də istifadə etməlisiniz grepçıxışı tam olaraq bizi maraqlandıran məlumatlarla məhdudlaşdırmaq. Fərz edək ki, daxil Bu an Sistemdə quraşdırılmış yaddaş haqqında məlumatla maraqlanırıq.

#dmesg | grep -i yaddaş
Yaddaş: 244136k/253376k mövcuddur (2139k kernel kodu, 8732k qorunur, 866k data, 240k init, 0k highmem)
Başlanğıc yaddaşın boşaldılması: 2124k boşaldıldı
Ayrılmış cəmi HugeTLB yaddaş, 0
Qeyri-uçucu yaddaş sürücüsü v1.2
agpgart: 8060K oğurlanmış yaddaş aşkar edildi.
İstifadə edilməmiş nüvə yaddaşının boşaldılması: 240k boşaldıldı
.....

Eyni şəkildə, sizi maraqlandıran və ya hazırda problemi olan hər hansı bir cihaz haqqında məlumatları təcrid edə bilərsiniz, məsələn, mərkəzi prosessor(CPU), USB cihazları və s.

3-cü hissə: /proc-dan hardware məlumatının alınması

Bəzən işləyən sistemdə real vaxt rejimində RAM və ya CPU məlumatlarını əldə etməli ola bilərsiniz. Bunun üçün virtual fayl sistemindən istifadə edə bilərsiniz /proc. Bəlkə kommunal haqqında xatırlayacaqsınız üst, lakin unutmayın ki, o, sadəcə fayl sistemindən məlumatları oxuyur /proc. Kataloqda yerləşən fayllarda heç bir dəyişiklik etməməyi unutmayın /proc, yalnız əmrdən istifadə edə bilərsiniz pişik bu fayllara baxmaq üçün.

Əmri yerinə yetirməklə ls kataloqda /proc, siz sisteminiz haqqında məlumatları ehtiva edən müxtəlif qovluqları və faylları görəcəksiniz.

Məsələn, cpuinfo-dan başlayaraq bu faylların nələri ehtiva etdiyinə baxaq.

# pişik /proc/cpuinfo
prosessor: 0
satıcı_id: Orijinal Intel
CPU ailəsi: 15
model: 2
model adı: Intel(R) Pentium(R) 4 CPU 2.80GHz
addım: 9
CPU MHz: 2793.055
keş ölçüsü: 512 KB
....

Gəlin daha dərindən baxaq və bir neçə qovluğu açaq. Məsələn, qovluğa gedək ide və sabit diskim haqqında məlumatları oxuyun.

# cat /proc/ide/ide0/hda/sürücü
ide-disk versiyası 1.18
# cat /proc/ide/ide0/hda/tutum
78156288
# cat /proc/ide/ide0/hda/model
IC35L060AVV207-0

4-cü hissə: fdiskdən istifadə edərək sabit diskiniz haqqında daha çox məlumat əldə edin

Əvvəlki addımda istifadə edərək /proc, biz sabit diskimizin parametrləri haqqında yalnız əsas, lakin kifayət qədər məhdud məlumat aldıq. İndi Linux-da mövcud olan əmrdən istifadə edərək daha dolğun məlumat əldə edək fdisk. Onun köməyi ilə siz sabit disk bölmələri, mövcud yerin miqdarı, işğal edilmiş yerin miqdarı, dəyişdirmə və s. haqqında məlumat əldə edə bilərsiniz.

Proqram fdisk disk bölmə cədvəli ilə işləmək üçün alətdir. Fiziki disklər adətən disk bölmələri adlanan çoxlu məntiqi disklərə bölünür. Fiziki diskin necə bölündüyü haqqında məlumat fiziki diskin sıfır sektorunda yerləşən disk bölmə cədvəlində saxlanılır.

Diskinizdə hansı bölmələrin olduğunu görmək üçün sadəcə əmri daxil edin:

# fdisk -l
Disk /dev/hda: 40.0 GB, 40016019456 bayt
255 başlıq, 63 sektor/yol, 4865 silindr
Vahidlər = 16065 * 512 = 8225280 bayt silindrlər
Cihazın açılışı Son Blokların İd Sistemini işə salın
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14 4865 38973690 8e Linux LVM

İki və ya daha çox diskiniz varsa (məsələn, hda və hdb) və müəyyən bir disk haqqında məlumat əldə etmək istəyirsinizsə, əmrdə istədiyiniz diski göstərin, məsələn, fdisk -l /dev/hda

Hissə 5 (oxuyucu rəyi əsasında ƏLAVƏ EDİLMİŞDİR): dmidecode əmrindən istifadə edərək BIOS məlumatının göstərilməsi

Utility dmidekod sisteminizin DMI (Masaüstü İdarəetmə İnterfeysi) cədvəlinin məzmununu insan tərəfindən oxuna bilən formatda göstərir. Bu cədvəldə sistemin aparat komponentləri, BIOS versiyası məlumatı və s. ilə bağlı məlumatlar var. Çıxışda dmidekod o, təkcə cari sistem konfiqurasiyasının təsvirini ehtiva etmir, həm də icazə verilən maksimum parametr dəyərləri, məsələn, dəstəklənən CPU tezlikləri, maksimum mümkün yaddaş miqdarı və s.

Çıxış məlumatını yalnız DMI-nin müəyyən sahələri ilə məhdudlaşdırmaq istəsəm, seçimdən istifadə edərək bunu edə bilərəm ─ t və hansı növ məlumatın məni maraqlandırdığını göstərən. Məsələn, DMI-də prosessor məlumatı 4-cü tip, yaddaş məlumatı isə 17-ci tipdir.

Ümid edirəm ki, bu bələdçi MythTV-ni Fedora əsaslı sistemdə quraşdıran və bu təlimatı oxuyana qədər bəzi cihazların parametrlərini müəyyən etmək üçün kompüterini açıq saxlayan dostuma kömək etdiyi qədər sizə də kömək edəcək :)

Oxucuların cavablarından

Tornavida istifadə etmədən aparat detallarını tapmaq

Əla və çox məlumatlandırıcı məqalə üçün təşəkkür edirik. İndi nəhayət kompüterimdəki qutunun qapağını bağlaya bilərəm :-)
TonyH

DMIDECODE-u sınayın

Dmidecode ilə siz bir hesabatda daha çox məlumat əldə edə bilərsiniz.
İmzasız

Əslində, kompüterinizin hansı tip yaddaşdan istifadə etdiyi barədə daha çox məlumat əldə etmək mümkündür, məsələn, yox. sancaqlar və sürət və növ ...
Tutaq ki, əgər mən işdə otursam və uzaqdan ev kompüterimə daxil ola bilsəm, RAM-ı təkmilləşdirmək imkanını müəyyən etmək üçün kifayət qədər məlumat toplaya biləcəyəmmi...?
Bunu bir dəfə sınadım və uğursuz oldum - bu problemi həll etməyə olduqca yaxın oldum, çipset növü üçün seçmək üçün yalnız iki variantım qaldı ana plata, təsadüfən onlardan birini seçdim və... təxmin etmədim :-(!!
İmzasız

Başqa bir şey sınayın!

lshw- bunun üçün əla vasitədir.
Bunun üçün GTK interfeysi də var.
İmzasız

Digər yaxşı kommunal xidmətlər

Yenidən cəhd elə dmidekod. RedHat/Fedora əsaslı sistemlərdə o, adətən kataloqda yerləşir /usr/sbin, və həmçinin Portage vasitəsilə və ya ünvanında mövcuddur mənbə kodları(www.nongnu.org/dmidecode/). Bu sizə sisteminiz haqqında çox şey söyləyəcək.

Disklər haqqında məlumat əldə etmək üçün istifadə edə bilərsiniz smartdsmartctl.

Kristofer Arnold (arnoldch AT yahoo-inc DOT com)

lsusb və /sys fayl sistemi

Fayl sisteminə göz atmağı unutmayın /sys. Bəzi məlumatlar lazımsız ola bilər... amma hamısı deyil.

USB cihazlarını aşkar etmək üçün var lsusb.

sensorlar RAM çipinizlə bağlı təfərrüatları açıqlayacaq.

dmesg: Bəzən məlumatın üzərinə yeni nüvə mesajları yazılır. Əgər belədirsə, baxın /var/log/boot.log.

SUSE sistemlərində: ümumi inzibati tapşırıqları yerinə yetirmək üçün "yast2" adlı alətiniz var. haqqında da məlumat verir aparat.

İmzasız

Bəs dmidecode?

üçün man səhifəsindən götürülmüşdür dmidekod.

dmidekod kompüterinizin DMI cədvəlinin (bəzən SMBIOS cədvəlləri adlanır) məzmununu insan qavrayışına uyğun formatda göstərmək üçün bir vasitədir. Bu cədvəldə sistemin aparat komponentlərinin təsviri, həmçinin digər faydalı məlumatlar, məsələn seriya nömrələri və BIOS versiyası.

dmidekod

Çalışan OS-də bios məlumatlarını göstərir.
Bütün hardware platformalarında işləmir.

İmzasız

Daha çox

Bax lshwdmidekod

İmzasız

Başqa bir...

haqqında unutmayın lsusb! Çox faydalı köməkçi proqram. Sadəcə paketi quraşdırın usbutils paylamanızdan (ən azı Ubuntu və Fedora-da, yəqin ki, başqalarında da).

İmzasız

hdparm

Almaq üçün ətraflı məlumat O sabit disklər istifadə edilə bilər hdparm.

İmzasız

Bəs HAL?

Onu da qeyd etmək lazımdır ki, müasir bir iş masası mühitindən istifadə edirsinizsə, əmr lshal HAL-dan (Təchizat Abstraksiya Layeri, başqa sözlə, Utopiya layihəsi) çoxlu məlumat istehsal edəcək.

İmzasız

lshw

Utilitydən də istifadə edə bilərsiniz lshw, bu, bütün bu mənbələrdən məlumatları vahid siyahı şəklində göstərməyə imkan verir (göstərilə bilər).


Qısa:

  • SELinux prosesinin konteksti belə bir əməliyyat sepolitika qaydalarında təsvir olunarsa dəyişdirilə bilər. IN Android versiyaları 4.4 (KitKat) konteksti dəyişdirərək imtiyazları artırmaq mümkündür. Lakin 5.x-dən başlayaraq bu artıq edilə bilməz.
  • fayl kontekstləri var.
  • Fayl və proseslərin kontekstinə əlavə olaraq, Android parametrlər üçün kontekstləri həyata keçirir mülkiyyət_kontekstləri.

adbd və konsol

İstehsalda nisbətən imtiyazlı qabıq əldə etməyin yeganə yolu Android cihazları- developer rejimi. Developer rejimi ssh/telnet-in analoqu kimi də çıxış edə bilən adbd demonunu işə salır. Android KitKat-da o, /sbin/adbd ünvanında initramfs-da yerləşir və kök olmayan istifadəçilər tərəfindən oxunmur. Əvvəlcə adbd kök kimi işləyir və SELinux kontekstində/init domenində işləyir (init prosesi tərəfindən istifadə olunur və adətən digər domenlərdən daha çox imtiyazlara malikdir). Əgər proses konteksti /init.rc-də açıq şəkildə göstərilibsə, məs. seclabel u:r:adbd:s0, sonra proses müəyyən edilmiş kontekstdə dərhal başlayır. Adbd-ni işə salarkən, tərtib parametrlərindən (və Android parametrlərindən (xüsusiyyətlərindən) asılı olaraq, imtiyazları azaldır, yəni cari istifadəçini kökdən qabığa dəyişir, SELinux kontekstini təyin edir: qabıq istisna olmaqla bütün sistem imkanlarını kəsir CAP_SETUIDCAP_SETGID(çalışdırılma yolu ilə proqramların sazlanması üçün tələb olunur). Qabiliyyət Məhdudlaşdırma Dəsti uşaq proqramlarına imkanları artırmağa imkan vermir, yalnız onları azaltmağa imkan verir. Bu imtiyazlar sizə telefonunuzda heç bir şey etməyə imkan verir. Siz cat /proc/self/status | əmri ilə cari prosesin imkanlarına baxa bilərsiniz grep CapBnd. Və siz onları capsh əmrindən istifadə edərək deşifrə edə bilərsiniz (Android-də mövcud deyil), məsələn:


$ capsh --decode=0000001ffffffffff

Cari SELinux kontekstinə komanda id və ya cat /proc/self/attr/current ilə baxmaq olar. Əvvəlki proses kontekstinə cat /proc/self/attr/prev əmri ilə baxmaq olar.


Kontekst fayllarına baxın: ls -Z
Çalışan proseslərin kontekstinə baxın: ps -Z

Kök girişi əldə edilir

kök, amma o deyil

Etdiyim ilk şey, dirtycow-u təyinatı üzrə istifadə etmək oldu - UID/GID-i 0-a təyin edən /system/bin/run-as əvəz etdim (su eyni şeyi edir). Bununla belə, mən fayl sistemini, hətta tmpf-ləri də quraşdıra bilmədim. Mən də kernel modullarını yükləyə bilmədim. dmesg-ə baxın - yox. 700 icazəsi olan və digər sistem istifadəçilərinə məxsus olan qovluqlara belə baxa bilmədim. Mən yalnız cihazları bloklamaq üçün oxuya və yaza bildim və fayl və ya qovluqlara baxmaq xüsusi istifadəçinin UID/GID-ni təyin etməklə mümkün idi (mən öz velosipedimi yazdım - selinux kontekstini və istifadəçi/qrupunu təyin edə bilən su analoqu).


Əvvəla, bütün proqram təminatını, açılışı və bərpanı atdım:


$ dd if=/dev/block/mmcblk0 of=/storage/sdcard1/mmcblk0.img $ dd if=/dev/block/platform/msm_sdcc.1/by-name/boot of=/storage/sdcard1/boot.img $ dd if=/dev/block/platform/msm_sdcc.1/by-name/recovery of=/storage/sdcard1/recovery.img

Siz kpartx və unpackbootimg yardım proqramlarından istifadə edərək zibilliyi öyrənə bilərsiniz. Kpartx -a mmbblk0.img əmri /dev/mapper/loop0 ünvanında əldə edilə bilən virtual blok cihazı yaradır. Hər hansı digər blok cihazı kimi onunla işləyə bilərsiniz. Yükləmə və bərpa arakəsmələrinin zibilləri unpackbootimg yardım proqramından istifadə edərək açıldı.


Sonra onu bərpa /dev/zero yazmağa, yoxlamağa və dərhal zibildən bərpa etməyə çalışdım.


Cihazları bloklamaq üçün yaza bildiyim üçün bu, xüsusi bərpa yaza biləcəyim deməkdir. Brigadier-dən TWRP-ni tapdım, onu bərpa rejiminə keçirdim və adb reboot bərpasına yenidən başladım. TWRP-ni görmədim, ancaq Android simvolu ilə Nida işarəsi. Standart bərpa belə görünür, yəni TWRP yanıb-sönmür.


Normal rejimə yenidən başladım, istismarı işə salıram, bölmənin hash bərpasını yoxlayıram - hash orijinala uyğun gəlir. Mən məlumatları yenidən yazmağa çalışıram - hash dəyişdi! Səhifənin önbelleği haqqında xatırlayıram, onu təmizləyirəm (echo 3 > /proc/sys/vm/drop_caches) - hash köhnədir. Bunlar. blok cihazına yazdığım hər şey səhvsiz /dev/null-a uçur və bəzən Linux önbelleğinde bitir. Ancaq proqram təminatının yenilənməsi hər hansı bir şəkildə baş verirmi? Və istifadəçi məlumatları bir şəkildə yazılır daxili yaddaş. Daha da qazmaq lazımdır.

SELinux-u söndürməyə çalışırıq

O zaman imtiyazların olmaması ilə bağlı bütün səhvlərin SELinux tərəfindən törədildiyini düşünürdüm (bacarıqların kəsilə biləcəyini tamamilə unutmuşam). Mən heç bir dmesg qeydini görmədim, logcat müvafiq heç nə göstərmədi. Və SELinux-u necə söndürmək barədə düşünməyə başladım.


Tapdığım ilk ipucu:


$ grep -A2 reload_policy boot/ramfs/init.rc əmlakda:selinux.reload_policy=1 yenidən başladın ueventd yenidən başladın quraşdırılıb

Bunlar. ZIP tətbiq etməzdən əvvəl bərpa bütün arakəsmələri ayıracaq, amma mənim vəziyyətimdə bir şey səhv gedir.

Nüvə mənbələrinin qazılması

GPL lisenziyası smartfon istehsalçılarını nüvə mənbələrini buraxmağa məcbur edir. Bunun üçün Linus və Stallmana təşəkkür edirəm. Bəzən istehsalçılar səhv bir şey, bəzən düzgün mənbələr, lakin defconfig faylı olmadan, bəzən düzgün və çox nadir hallarda onları necə yığmaq barədə təlimatlarla (məsələn, LG) yerləşdirirlər.


Mənim vəziyyətimdə düzgün defconfig olan, lakin təlimatsız mənbələr var idi. Bir az tərlədikdən sonra özümü yığa bildim və bunun tam cökə olmadığına əmin oldum.


vasitəsilə uzun müddətİki fayl üzərində qərar verdim:

qarmaqlar

Kyocera uzun müddət düşünmədi, sadəcə olaraq Android-də potensial təhlükəli əməliyyatlar üçün qarmaqlar əlavə etdi: mount, umount, insmod (yalnız bir modulun yüklənməsinə icazə verilir - wlan və yalnız başlanğıc prosesi onu yüklədikdə) və s. . Burada bərpa problemi yaranır. O, /sistem fayl sistemini ayıra bilmədi! Bu əməliyyatlara yalnız başlanğıc prosesində icazə verildi. Digər şeylərlə yanaşı, SELinux-u söndürə bilmədim, çünki kernel tərtib edildikdə bu xüsusiyyət söndürülmüşdü. Bu qarmaqları keçmək yalnız kernel müəyyən parametrlərlə yükləndiyi təqdirdə mümkün idi ( kcdroidboot.mode=f-ksg və ya androidboot.mode=kcfactory, onlar haqqında daha sonra).

yenidən başlamaq

Həm də öyrənmək üçün maraqlı bir fayl. təsvir edir mümkün variantlar telefon yukle:

  • adb yükləyicisini yenidən başladın - fastboot rejimi, telefonumda mövcud deyil (0x77665500 - sbl1 bölməsində hex etiket 00556677)
  • adb reboot bərpası - bərpa rejimi(0x77665502 - altıbucaqlı etiket 02556677 bölmə sbl1)
  • adb reboot rtc- sözdə ALARM_BOOT. Səbəbini hələ də başa düşə bilmirəm, sbl1-də etiket yoxdur. Bəlkə də bu https://developer.android.com/reference/android/app/AlarmManager.html deməkdir
  • adb reboot oem-X(mənim vəziyyətimdə oem-1, 0x6f656d01 - sbl1 bölməsində hex etiketi 016d656f). Bu rejim zamanı baş verənlər istehsalçı tərəfindən müəyyən edilir. Mənbə koduna əsasən, modem bölməsindən proqram təminatının autentifikasiyası zamanı xəta baş verdikdə telefon bu rejimə yenidən başlayır.
  • adb reboot edl- təcili yükləmə, telefonu standart Qualcomm birinə köçürür yükləmə rejimi. Telefon kimi müəyyən edilir QHSUSB__BULK COM portu, onun vasitəsilə imzalanmış yükləyicini ötürə bilərsiniz (səhv etmirəmsə, hər bir yükləyici bir növ SoC və telefon istehsalçısı üçün nəzərdə tutulub) və yanıb-sönmə də daxil olmaqla telefonla aşağı səviyyəli əməliyyatlar həyata keçirə bilərsiniz. Adətən QPST ilə birlikdə istifadə olunur. Bəzi telefonlar üçün yükləyicilər onlayn sızır, məsələn, Kyocera KYL22 üçün. Onların haradan gəldiyini bilmirəm.
  • Bəziləri yükləmə rejimi, hansı vasitəsilə daxil adb yenidən başladın girmə. Maraqlı olduğu yer budur... Amma bu haqda daha sonra.

Qualcomm prosessoru olan telefonlarda yükləmənin necə baş verdiyi haqqında bir az:


Qualcomm-un daxili ROM yükləyicisi (pbl - əsas yükləyici) sbl1 (ikinci yükləyici) bölməsini yükləyir. sbl1 tz (etibar zonası), sonra aboot (android açılışı, kiçik nüvə, lk) yükləyir. Aboot öz növbəsində açılış, bərpa və ya fota yükləyir.


Yükləmədə iştirak edən bölmələrin təsviri:

  • tz - Qualcomm Güvən Zonası. QFuses (rpmb bölməsi) ilə işləmək də daxil olmaqla, aşağı səviyyəli əməliyyatları yerinə yetirir.
  • rpm - Resurs və Güc Meneceri proqram təminatı. Resurslara və gücə cavabdeh olan ixtisaslaşmış SoC üçün proqram təminatı.
  • sdi - güvən zonası saxlama bölməsi. Trust Zone tərəfindən istifadə edilən data.

Bütün bu bölmələr sertifikat zənciri ilə imzalanır.

fota

Bəzi hallarda, proqram təminatı yeniləmələrinə məhəl qoymamaq faydalıdır.


FOTA - hava üzərindən proqram təminatı. Yükləmə və bərpadan fərqli olaraq, fota Android üçün qeyri-rəsmi yükləmə rejimidir. Fotanın vəzifəsi firmware proqramını yeniləməkdir. Bu məqsədlə, Kyocera yalnız nüvəni deyil, həm də /sistem bölməsini yeniləmək üçün 35Mb-ə uyğun olan Red Bend həllindən istifadə edir. Buna görə də, /sistem bölməsinə yazmaq qadağandır, əks halda yanlış məlumatlara yamaq tətbiq etmək telefonu kərpic edə bilər.


Telefonum üçün yeniləmə var idi. Mən bunu etməyə cəsarət edə bilərdim, çünki artıq istənilən vaxt /cache-ə yazmaq və yeniləməni dayandırmaq imkanım var idi.


Yenilənməyə cavabdeh olan Java proqramının mənbə kodunu öyrəndikdən sonra bunun necə baş verdiyi mənə aydın oldu:

  • Java proqramı xüsusi /cache/delta/boot_delta.bin faylını yükləyir, faylın uğurlu yüklənməsini təsdiqləyən /cache/delta/Alt-OTA_dlcomplete faylı və başlıqları olan digər faylları yaradır.
  • Yeniləmə təsdiqlənərkən bu faylların mövcudluğu yenidən yoxlanılır.
  • Fayllar yerindədirsə, fotamng bölməsi libjnialtota.so kitabxanası vasitəsilə dəyişdirilir.

Mən bölməni davamlı olaraq boşaldan və /cache/delta/boot_delta.bin adını dəyişdirən bir əmr yazıram. Telefonu yenidən başlatmağa razılaşdıqdan sonra dərhal işə salıram. Telefon FOTA rejiminə yenidən başlayır, heç bir yeniləmə barədə məlumat vermir və normal rejimə yenidən başlayır.


Mən atdığım məlumatları öyrənməyə başlayıram. /cache bölməsində, bonus olaraq, hətta dmseg loglarını ehtiva edən fota jurnalları alıram! Fota-da yenidən yükləmənin özü fotamng bölməsində "1" bayt ilə işə salınır:


$ dd if=/data/local/tmp/one_bit.bin of=/dev/block/platform/msm_sdcc.1/by-name/fotamng seek=16 bs=1 count=1 $ dd if=/data/local/ tmp/one_bit.bin of=/dev/block/platform/msm_sdcc.1/by-name/fotamng seek=24 bs=1 count=1 $ dd if=/data/local/tmp/one_bit.bin of=/dev /block/platform/msm_sdcc.1/by-name/fotamng seek=131088 bs=1 count=1 $ dd if=/data/local/tmp/one_bit.bin of=/dev/block/platform/msm_sdcc.1/ by-name/fotamng seek=131096 bs=1 count=1

Yenidən başladıqdan sonra onlar sıfırlanır. dmesg-də bir kernel parametrinin olduğunu gördüm kcdroidboot.mode=f-ksg. Bax budur! Bunlar. Bootloader fota üçün qorunmanı aradan qaldırır. Və sırf nəzəri olaraq, əgər mən yükləmə bölməsini fota-ya yazsam və telefonu bu rejimdə yenidən başlasam, Kyocera qoruması deaktiv edilmiş bir nüvə əldə edəcəm. Amma yazın sistem bölmələri Mən hələ də bacarmıram.

Kiçik nüvə (lk) mənbələrinin öyrənilməsi

Aboot bölməsində vanil mənbələri olan Android yükləyicisidir:


Orada bəzi rejimlərə yükləmənin necə baş verdiyi barədə də məlumat tapa bilərsiniz. Məsələn, mən məlumat tapdım ki, əgər siz misc bölməsində “boot-recovery” yazsanız, onda olmadan adb reboot bərpası. Bərpaya yükləyərkən bu. Bərpa yüklənə bilmirsə, telefon açılış döngəsinə daxil olacaq və siz onu itirəcəksiniz. Buna görə diqqətli olun və bu yenidən başlatma seçimindən qaçın.


Orada emmc sistem sahəsini rejimə keçirən kodu da tapa bilərsiniz. Bərpanın üzərinə niyə yazmaq mümkün deyil sualına cavab. Bu qoruma aradan qaldırıla bilər Linux nüvələri, müvafiq kernel modulunu yazsanız. Artıq hər şeyi doğan günəş ölkəsindən olan bir yoldaş yazıb ki, onun da Kyocera telefonları üçün yumşaq yeri var. Modul ilk dəfə işləmədi, bəzən iddia rejimində mmc dondurur. Bəlkə də hər şey o qədər də sadə deyil və ətraflı araşdırma tələb olunur.


Yükləmə bölməsi imzalarının yoxlanılması belədir:

İlk uğurlar

dmesg

Google mənə nüvə qeydlərini niyə oxuya bilmirəm sualına cavab verməyə kömək etdi: /proc/sys/kernel/dmesg_restrict . Telefon açıldıqda bu parametrin dəyəri 1-ə təyin edilir. İstifadəçidə yoxdursa CAP_SYS_ADMIN qabiliyyəti, onda qeydlər onun üçün mövcud deyil.

uevent_helper

Mənim vəziyyətimdə, təəccüblü şəkildə, /sys/kernel/uevent_helper qurmaq mümkün oldu. Bu parametrdə icra olunan faylın yolunu yazsanız (qabıq skripti də işləyəcək), o zaman o, init kontekstində init prosesindən müəyyən intervalda və ən əsası tam imkanlarla işə salınacaq.


Ssenari yazdım:


#!/system/bin/sh echo 0 > /proc/sys/kernel/dmesg_restrict

Mən onu telefonuma endirdim və yolunu /sys/kernel/uevent_helper-ə yazdım. İndi dmesg görmək fürsətim var!

Yamaqlanmış adbd


Çünki Mən silinmiş Android konsoluna giriş əldə etməkdən yoruldum və adbd binarını yamaqda çox tənbəliyəm, ona görə də öz adbd-ni blackjack və fahişələrlə qurmaq qərarına gəldim. Bunun üçün hər bir asılılıq ilə ayrıca məşğul olmamaq üçün 70 Gb Android mənbələri yükləməli oldum. İmkanları azaldan çeki sildim, tərtib etdim, /sbin/adbd-ni əvəz etdim və tam hüquqlu kök konsol aldım. İndi mən minə bilərəm fayl sistemləri, əlaqəni kəsmədən dmesg-ə baxın dmesg_restrict, kökə aid olmayan faylları sakitcə nəzərdən keçirin və redaktə edin və daha çox. Amma hələ ki /sistem bölməsini quraşdıra və modulları nüvəyə yükləyə bilmirəm.


Yeri gəlmişkən, lsh-i tərtib etməklə və onun yolunu /sys/kernel/uevent_helper-də əvəz etməklə bu prosedurdan qaçmaq olar. lsh işə salınmasını PATH mühitini təyin edən skriptə bükmək məqsədəuyğundur, əks halda hər bir əmrin tam yolunu göstərməli olacaqsınız.

WiFi

Telefonumdakı WiFi nüvə modulu vasitəsilə işləyir. WiFi aktivdir - modul yüklənir. WiFi söndürülüb - modul boşaldılıb. Modulu özünüzlə əvəz etsəniz, nə vaxt WiFi-ni yandırmaq Dummy modulu yüklənməlidir. Xoşbəxtlikdən modulların rəqəmsal imzası yoxlanılmadı. Çalışdığım ilk şey nüvə yaddaşını dəyişdirərək SELinux-u söndürən modul qurmaq və yükləmək oldu. Amazon yanğını Telefon: https://github.com/chaosmaster/ford_selinux_permissive


Modul yaratmaq üçün sizə az-çox uyğun nüvə mənbələri və Module.symvers faylı lazımdır. Mənbələr telefonda istifadə olunan ləpə ilə tam uyğundursa, nüvənin qurulması zamanı avtomatik olaraq yaradılan Module.symvers uyğun olmalıdır.


Əgər nüvə modulu yükləyərkən şikayət edirsə ( modul_layout simvolunun versiyası ilə razılaşmır), onda siz yükləmə bölməsindən Module.symvers çıxarmalı olacaqsınız. Bunu https://github.com/glandium/extract-symvers skripti ilə etmək olar:


$ unpackbootimg -i boot.img -o boot $ extract-symvers.py -e le -B 0xc0008000 boot/boot.img-zImage > %PATH_TO_KERNEL%/Module.symvers

Siz sadəcə olaraq Kyocera telefonu üçün öz modulunuzu götürüb yığa bilməzsiniz.




Başqa bir problemin hər həlli ilə proses getdikcə Axilles və tısbağanın aporiyasını xatırladır. Həvəsim daha nə qədər davam edəcək, bilmirəm. Ola bilsin ki, burada dovşan dəliyinin dibinə çatmağınıza kömək edə biləcək bilikli insanlar var.


Fürsətdən istifadə edərək, Kyocera-nın tərtibatçılarına əla cihazları və qorunmalarına görə minnətdarlığımı bildirmək istərdim. Əks halda bu məqalə mövcud olmazdı. Digər tərəfdən, müntəzəm yeniləmələrin olmaması çox məyusedicidir. Bootloader kilidini açmaq imkanı olan telefon modeli alsanız, onu mütləq alaram.


P.S. Android təhlükəsizlik daxili kitabının müəllifi Nikolay Elenkova çox təşəkkür edirəm. Yükləyicinin işləməsi ilə bağlı izahatları Android yükləmə prosesini başa düşməyə kömək etdi.


P.P.S. Digər mobil təhlükəsizlik mütəxəssisi Justin Case, bütün müasir olanların zəifliyini bildiyini söylədi Qualcomm prosessorları, lakin onun təfərrüatlarını açıqlamayacaq.

Teqlər:

  • android
  • bootloader Anonim göndərin

Kateqoriyalar